@ui5/webcomponents 2.16.0-rc.1 → 2.16.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 (683) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Button.js +5 -3
  4. package/dist/Button.js.map +1 -1
  5. package/dist/Calendar.d.ts +9 -9
  6. package/dist/Calendar.js +46 -38
  7. package/dist/Calendar.js.map +1 -1
  8. package/dist/CalendarHeaderTemplate.js +3 -3
  9. package/dist/CalendarHeaderTemplate.js.map +1 -1
  10. package/dist/ComboBox.js +1 -1
  11. package/dist/ComboBox.js.map +1 -1
  12. package/dist/DatePicker.d.ts +2 -0
  13. package/dist/DatePicker.js +45 -5
  14. package/dist/DatePicker.js.map +1 -1
  15. package/dist/DateRangePicker.d.ts +4 -0
  16. package/dist/DateRangePicker.js +40 -10
  17. package/dist/DateRangePicker.js.map +1 -1
  18. package/dist/DateTimePicker.d.ts +2 -0
  19. package/dist/DateTimePicker.js +27 -1
  20. package/dist/DateTimePicker.js.map +1 -1
  21. package/dist/DayPickerTemplate.js +1 -1
  22. package/dist/DayPickerTemplate.js.map +1 -1
  23. package/dist/DynamicDateRange.d.ts +5 -1
  24. package/dist/DynamicDateRange.js +11 -2
  25. package/dist/DynamicDateRange.js.map +1 -1
  26. package/dist/FileUploader.d.ts +2 -0
  27. package/dist/FileUploader.js +13 -1
  28. package/dist/FileUploader.js.map +1 -1
  29. package/dist/Form.d.ts +1 -0
  30. package/dist/Form.js +3 -2
  31. package/dist/Form.js.map +1 -1
  32. package/dist/FormGroup.d.ts +11 -0
  33. package/dist/FormGroup.js +23 -2
  34. package/dist/FormGroup.js.map +1 -1
  35. package/dist/FormTemplate.js +1 -1
  36. package/dist/FormTemplate.js.map +1 -1
  37. package/dist/MonthPicker.d.ts +6 -1
  38. package/dist/MonthPicker.js +13 -5
  39. package/dist/MonthPicker.js.map +1 -1
  40. package/dist/MonthPickerTemplate.js +1 -1
  41. package/dist/MonthPickerTemplate.js.map +1 -1
  42. package/dist/MultiInput.js +1 -1
  43. package/dist/MultiInput.js.map +1 -1
  44. package/dist/StepInput.d.ts +2 -0
  45. package/dist/StepInput.js +24 -4
  46. package/dist/StepInput.js.map +1 -1
  47. package/dist/Table.d.ts +22 -4
  48. package/dist/Table.js +27 -5
  49. package/dist/Table.js.map +1 -1
  50. package/dist/TableCellBase.d.ts +1 -2
  51. package/dist/TableCellBase.js +1 -4
  52. package/dist/TableCellBase.js.map +1 -1
  53. package/dist/TableCustomAnnouncement.js +4 -1
  54. package/dist/TableCustomAnnouncement.js.map +1 -1
  55. package/dist/TableHeaderCell.d.ts +1 -1
  56. package/dist/TableHeaderCell.js.map +1 -1
  57. package/dist/TableHeaderRowTemplate.js +4 -2
  58. package/dist/TableHeaderRowTemplate.js.map +1 -1
  59. package/dist/TableRow.js +3 -3
  60. package/dist/TableRow.js.map +1 -1
  61. package/dist/TableRowBase.d.ts +1 -0
  62. package/dist/TableRowBase.js +5 -1
  63. package/dist/TableRowBase.js.map +1 -1
  64. package/dist/TableRowTemplate.js +4 -2
  65. package/dist/TableRowTemplate.js.map +1 -1
  66. package/dist/TableSelection.js +1 -1
  67. package/dist/TableSelection.js.map +1 -1
  68. package/dist/TableSelectionMulti.js +1 -1
  69. package/dist/TableSelectionMulti.js.map +1 -1
  70. package/dist/TableTemplate.js +3 -6
  71. package/dist/TableTemplate.js.map +1 -1
  72. package/dist/TimePicker.d.ts +6 -0
  73. package/dist/TimePicker.js +23 -3
  74. package/dist/TimePicker.js.map +1 -1
  75. package/dist/TimePickerTemplate.js +1 -1
  76. package/dist/TimePickerTemplate.js.map +1 -1
  77. package/dist/Token.d.ts +0 -1
  78. package/dist/Token.js +0 -4
  79. package/dist/Token.js.map +1 -1
  80. package/dist/Tokenizer.js +5 -0
  81. package/dist/Tokenizer.js.map +1 -1
  82. package/dist/YearPicker.d.ts +0 -1
  83. package/dist/YearPicker.js +0 -5
  84. package/dist/YearPicker.js.map +1 -1
  85. package/dist/YearRangePicker.d.ts +0 -1
  86. package/dist/YearRangePicker.js +0 -5
  87. package/dist/YearRangePicker.js.map +1 -1
  88. package/dist/bundle.esm.js +3 -0
  89. package/dist/bundle.esm.js.map +1 -1
  90. package/dist/css/themes/Avatar.css +1 -1
  91. package/dist/css/themes/AvatarGroup.css +1 -1
  92. package/dist/css/themes/Bar.css +1 -1
  93. package/dist/css/themes/Breadcrumbs.css +1 -1
  94. package/dist/css/themes/BusyIndicator.css +1 -1
  95. package/dist/css/themes/Button.css +1 -1
  96. package/dist/css/themes/ButtonBadge.css +1 -1
  97. package/dist/css/themes/Calendar.css +1 -1
  98. package/dist/css/themes/CalendarHeader.css +1 -1
  99. package/dist/css/themes/CalendarLegend.css +1 -1
  100. package/dist/css/themes/CalendarLegendItem.css +1 -1
  101. package/dist/css/themes/Card.css +1 -1
  102. package/dist/css/themes/CardHeader.css +1 -1
  103. package/dist/css/themes/Carousel.css +1 -1
  104. package/dist/css/themes/CheckBox.css +1 -1
  105. package/dist/css/themes/ColorPalette.css +1 -1
  106. package/dist/css/themes/ColorPaletteItem.css +1 -1
  107. package/dist/css/themes/ColorPalettePopover.css +1 -1
  108. package/dist/css/themes/ColorPicker.css +1 -1
  109. package/dist/css/themes/ComboBox.css +1 -1
  110. package/dist/css/themes/ComboBoxItem.css +1 -1
  111. package/dist/css/themes/DatePicker.css +1 -1
  112. package/dist/css/themes/DatePickerPopover.css +1 -1
  113. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  114. package/dist/css/themes/DayPicker.css +1 -1
  115. package/dist/css/themes/Dialog.css +1 -1
  116. package/dist/css/themes/DynamicDateRange.css +1 -1
  117. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  118. package/dist/css/themes/FileUploader.css +1 -1
  119. package/dist/css/themes/Form.css +1 -1
  120. package/dist/css/themes/FormItem.css +1 -1
  121. package/dist/css/themes/FormItemSpan.css +1 -1
  122. package/dist/css/themes/GrowingButton.css +1 -1
  123. package/dist/css/themes/Icon.css +1 -1
  124. package/dist/css/themes/Input.css +1 -1
  125. package/dist/css/themes/InputIcon.css +1 -1
  126. package/dist/css/themes/InputSharedStyles.css +1 -1
  127. package/dist/css/themes/Link.css +1 -1
  128. package/dist/css/themes/List.css +1 -1
  129. package/dist/css/themes/ListItem.css +1 -1
  130. package/dist/css/themes/ListItemBase.css +1 -1
  131. package/dist/css/themes/ListItemCustom.css +1 -1
  132. package/dist/css/themes/ListItemGroup.css +1 -1
  133. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  134. package/dist/css/themes/ListItemIcon.css +1 -1
  135. package/dist/css/themes/Menu.css +1 -1
  136. package/dist/css/themes/MenuItem.css +1 -1
  137. package/dist/css/themes/MessageStrip.css +1 -1
  138. package/dist/css/themes/MonthPicker.css +1 -1
  139. package/dist/css/themes/MultiComboBox.css +1 -1
  140. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  141. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  142. package/dist/css/themes/MultiInput.css +1 -1
  143. package/dist/css/themes/OptionBase.css +1 -1
  144. package/dist/css/themes/Panel.css +1 -1
  145. package/dist/css/themes/Popover.css +1 -1
  146. package/dist/css/themes/PopupsCommon.css +1 -1
  147. package/dist/css/themes/ProgressIndicator.css +1 -1
  148. package/dist/css/themes/RadioButton.css +1 -1
  149. package/dist/css/themes/RangeSlider.css +1 -1
  150. package/dist/css/themes/RatingIndicator.css +1 -1
  151. package/dist/css/themes/ResponsivePopover.css +1 -1
  152. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  153. package/dist/css/themes/SegmentedButton.css +1 -1
  154. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  155. package/dist/css/themes/Select.css +1 -1
  156. package/dist/css/themes/SliderBase.css +1 -1
  157. package/dist/css/themes/SplitButton.css +1 -1
  158. package/dist/css/themes/StepInput.css +1 -1
  159. package/dist/css/themes/SuggestionItem.css +1 -1
  160. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  161. package/dist/css/themes/Switch.css +1 -1
  162. package/dist/css/themes/TabContainer.css +1 -1
  163. package/dist/css/themes/TabInOverflow.css +1 -1
  164. package/dist/css/themes/TabInStrip.css +1 -1
  165. package/dist/css/themes/TabSemanticIcon.css +1 -1
  166. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  167. package/dist/css/themes/Table.css +1 -1
  168. package/dist/css/themes/TableCellBase.css +1 -1
  169. package/dist/css/themes/TableGrowing.css +1 -1
  170. package/dist/css/themes/TableHeaderRow.css +1 -1
  171. package/dist/css/themes/TableRow.css +1 -1
  172. package/dist/css/themes/TableRowActionBase.css +1 -1
  173. package/dist/css/themes/TableRowBase.css +1 -1
  174. package/dist/css/themes/Tag.css +1 -1
  175. package/dist/css/themes/Text.css +1 -1
  176. package/dist/css/themes/TextArea.css +1 -1
  177. package/dist/css/themes/TimePicker.css +1 -1
  178. package/dist/css/themes/Toast.css +1 -1
  179. package/dist/css/themes/ToggleButton.css +1 -1
  180. package/dist/css/themes/Token.css +1 -1
  181. package/dist/css/themes/Tokenizer.css +1 -1
  182. package/dist/css/themes/TokenizerPopover.css +1 -1
  183. package/dist/css/themes/Toolbar.css +1 -1
  184. package/dist/css/themes/ToolbarButton.css +1 -1
  185. package/dist/css/themes/ToolbarPopover.css +1 -1
  186. package/dist/css/themes/ToolbarSeparator.css +1 -1
  187. package/dist/css/themes/TreeItem.css +1 -1
  188. package/dist/css/themes/ValueStateMessage.css +1 -1
  189. package/dist/css/themes/ValueStateVariables.css +1 -1
  190. package/dist/css/themes/YearPicker.css +1 -1
  191. package/dist/css/themes/YearRangePicker.css +1 -1
  192. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  193. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  194. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  195. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  196. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  197. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  198. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  199. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  200. package/dist/custom-elements-internal.json +111 -2
  201. package/dist/custom-elements.json +103 -2
  202. package/dist/dynamic-date-range-options/DateTimeRange.d.ts +25 -0
  203. package/dist/dynamic-date-range-options/DateTimeRange.js +82 -0
  204. package/dist/dynamic-date-range-options/DateTimeRange.js.map +1 -0
  205. package/dist/dynamic-date-range-options/DateTimeRangeTemplate.d.ts +2 -0
  206. package/dist/dynamic-date-range-options/DateTimeRangeTemplate.js +38 -0
  207. package/dist/dynamic-date-range-options/DateTimeRangeTemplate.js.map +1 -0
  208. package/dist/dynamic-date-range-options/FromDateTime.d.ts +36 -0
  209. package/dist/dynamic-date-range-options/FromDateTime.js +136 -0
  210. package/dist/dynamic-date-range-options/FromDateTime.js.map +1 -0
  211. package/dist/dynamic-date-range-options/FromDateTimeTemplate.d.ts +2 -0
  212. package/dist/dynamic-date-range-options/FromDateTimeTemplate.js +24 -0
  213. package/dist/dynamic-date-range-options/FromDateTimeTemplate.js.map +1 -0
  214. package/dist/dynamic-date-range-options/ToDateTime.d.ts +36 -0
  215. package/dist/dynamic-date-range-options/ToDateTime.js +136 -0
  216. package/dist/dynamic-date-range-options/ToDateTime.js.map +1 -0
  217. package/dist/dynamic-date-range-options/toDates.d.ts +3 -1
  218. package/dist/dynamic-date-range-options/toDates.js +25 -1
  219. package/dist/dynamic-date-range-options/toDates.js.map +1 -1
  220. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  221. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  222. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  223. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  224. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  225. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  226. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  227. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  228. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  229. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  230. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  231. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  232. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  233. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  234. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  235. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  236. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  237. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  238. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  239. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  240. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  241. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  242. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  243. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  244. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  245. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  246. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  247. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  248. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  249. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  250. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  251. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  252. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  253. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  254. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  255. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  256. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  257. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  258. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  259. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  260. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  261. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  262. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  263. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  264. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  265. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  266. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  267. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  268. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  269. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  270. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  271. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  272. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  273. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  274. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  275. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  276. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  277. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  278. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  279. package/dist/generated/i18n/i18n-defaults.d.ts +28 -1
  280. package/dist/generated/i18n/i18n-defaults.js +30 -3
  281. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  282. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  283. package/dist/generated/themes/Avatar.css.js +1 -1
  284. package/dist/generated/themes/Avatar.css.js.map +1 -1
  285. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  286. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  287. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  288. package/dist/generated/themes/Bar.css.d.ts +1 -1
  289. package/dist/generated/themes/Bar.css.js +1 -1
  290. package/dist/generated/themes/Bar.css.js.map +1 -1
  291. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  292. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  293. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  294. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  295. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  296. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  297. package/dist/generated/themes/Button.css.d.ts +1 -1
  298. package/dist/generated/themes/Button.css.js +1 -1
  299. package/dist/generated/themes/Button.css.js.map +1 -1
  300. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  301. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  302. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  303. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  304. package/dist/generated/themes/Calendar.css.js +1 -1
  305. package/dist/generated/themes/Calendar.css.js.map +1 -1
  306. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  307. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  308. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  309. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  310. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  311. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  312. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  313. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  314. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  315. package/dist/generated/themes/Card.css.d.ts +1 -1
  316. package/dist/generated/themes/Card.css.js +1 -1
  317. package/dist/generated/themes/Card.css.js.map +1 -1
  318. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  319. package/dist/generated/themes/CardHeader.css.js +1 -1
  320. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  321. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  322. package/dist/generated/themes/Carousel.css.js +1 -1
  323. package/dist/generated/themes/Carousel.css.js.map +1 -1
  324. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  325. package/dist/generated/themes/CheckBox.css.js +1 -1
  326. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  327. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  328. package/dist/generated/themes/ColorPalette.css.js +1 -1
  329. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  330. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  331. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  332. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  333. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  334. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  335. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  336. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  337. package/dist/generated/themes/ColorPicker.css.js +1 -1
  338. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  339. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  340. package/dist/generated/themes/ComboBox.css.js +1 -1
  341. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  342. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  343. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  344. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  345. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  346. package/dist/generated/themes/DatePicker.css.js +1 -1
  347. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  348. package/dist/generated/themes/DatePickerPopover.css.d.ts +1 -1
  349. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  350. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  351. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  352. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  353. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  354. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  355. package/dist/generated/themes/DayPicker.css.js +1 -1
  356. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  357. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  358. package/dist/generated/themes/Dialog.css.js +1 -1
  359. package/dist/generated/themes/Dialog.css.js.map +1 -1
  360. package/dist/generated/themes/DynamicDateRange.css.d.ts +1 -1
  361. package/dist/generated/themes/DynamicDateRange.css.js +1 -1
  362. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -1
  363. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  364. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  365. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  366. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  367. package/dist/generated/themes/FileUploader.css.js +1 -1
  368. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  369. package/dist/generated/themes/Form.css.d.ts +1 -1
  370. package/dist/generated/themes/Form.css.js +1 -1
  371. package/dist/generated/themes/Form.css.js.map +1 -1
  372. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  373. package/dist/generated/themes/FormItem.css.js +1 -1
  374. package/dist/generated/themes/FormItem.css.js.map +1 -1
  375. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  376. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  377. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  378. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  379. package/dist/generated/themes/GrowingButton.css.js +1 -1
  380. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  381. package/dist/generated/themes/Icon.css.d.ts +1 -1
  382. package/dist/generated/themes/Icon.css.js +1 -1
  383. package/dist/generated/themes/Icon.css.js.map +1 -1
  384. package/dist/generated/themes/Input.css.d.ts +1 -1
  385. package/dist/generated/themes/Input.css.js +1 -1
  386. package/dist/generated/themes/Input.css.js.map +1 -1
  387. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  388. package/dist/generated/themes/InputIcon.css.js +1 -1
  389. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  390. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  391. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  392. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  393. package/dist/generated/themes/Link.css.d.ts +1 -1
  394. package/dist/generated/themes/Link.css.js +1 -1
  395. package/dist/generated/themes/Link.css.js.map +1 -1
  396. package/dist/generated/themes/List.css.d.ts +1 -1
  397. package/dist/generated/themes/List.css.js +1 -1
  398. package/dist/generated/themes/List.css.js.map +1 -1
  399. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  400. package/dist/generated/themes/ListItem.css.js +1 -1
  401. package/dist/generated/themes/ListItem.css.js.map +1 -1
  402. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  403. package/dist/generated/themes/ListItemBase.css.js +1 -1
  404. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  405. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  406. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  407. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  408. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  409. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  410. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  411. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  412. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  413. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  414. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  415. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  416. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  417. package/dist/generated/themes/Menu.css.d.ts +1 -1
  418. package/dist/generated/themes/Menu.css.js +1 -1
  419. package/dist/generated/themes/Menu.css.js.map +1 -1
  420. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  421. package/dist/generated/themes/MenuItem.css.js +1 -1
  422. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  423. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  424. package/dist/generated/themes/MessageStrip.css.js +1 -1
  425. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  426. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  427. package/dist/generated/themes/MonthPicker.css.js +1 -1
  428. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  429. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  430. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  431. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  432. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  433. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  434. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  435. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  436. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  437. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  438. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  439. package/dist/generated/themes/MultiInput.css.js +1 -1
  440. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  441. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  442. package/dist/generated/themes/OptionBase.css.js +1 -1
  443. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  444. package/dist/generated/themes/Panel.css.d.ts +1 -1
  445. package/dist/generated/themes/Panel.css.js +1 -1
  446. package/dist/generated/themes/Panel.css.js.map +1 -1
  447. package/dist/generated/themes/Popover.css.d.ts +1 -1
  448. package/dist/generated/themes/Popover.css.js +1 -1
  449. package/dist/generated/themes/Popover.css.js.map +1 -1
  450. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  451. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  452. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  453. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  454. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  455. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  456. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  457. package/dist/generated/themes/RadioButton.css.js +1 -1
  458. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  459. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  460. package/dist/generated/themes/RangeSlider.css.js +1 -1
  461. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  462. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  463. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  464. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  465. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  466. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  467. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  468. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  469. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  470. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  471. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  472. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  473. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  474. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  475. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  476. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  477. package/dist/generated/themes/Select.css.d.ts +1 -1
  478. package/dist/generated/themes/Select.css.js +1 -1
  479. package/dist/generated/themes/Select.css.js.map +1 -1
  480. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  481. package/dist/generated/themes/SliderBase.css.js +1 -1
  482. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  483. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  484. package/dist/generated/themes/SplitButton.css.js +1 -1
  485. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  486. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  487. package/dist/generated/themes/StepInput.css.js +1 -1
  488. package/dist/generated/themes/StepInput.css.js.map +1 -1
  489. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  490. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  491. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  492. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  493. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  494. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  495. package/dist/generated/themes/Switch.css.d.ts +1 -1
  496. package/dist/generated/themes/Switch.css.js +1 -1
  497. package/dist/generated/themes/Switch.css.js.map +1 -1
  498. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  499. package/dist/generated/themes/TabContainer.css.js +1 -1
  500. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  501. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  502. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  503. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  504. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  505. package/dist/generated/themes/TabInStrip.css.js +1 -1
  506. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  507. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  508. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  509. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  510. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  511. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  512. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  513. package/dist/generated/themes/Table.css.d.ts +1 -1
  514. package/dist/generated/themes/Table.css.js +1 -1
  515. package/dist/generated/themes/Table.css.js.map +1 -1
  516. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  517. package/dist/generated/themes/TableCellBase.css.js +1 -1
  518. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  519. package/dist/generated/themes/TableGrowing.css.d.ts +1 -1
  520. package/dist/generated/themes/TableGrowing.css.js +1 -1
  521. package/dist/generated/themes/TableGrowing.css.js.map +1 -1
  522. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  523. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  524. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  525. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  526. package/dist/generated/themes/TableRow.css.js +1 -1
  527. package/dist/generated/themes/TableRow.css.js.map +1 -1
  528. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  529. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  530. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  531. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  532. package/dist/generated/themes/TableRowBase.css.js +1 -1
  533. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  534. package/dist/generated/themes/Tag.css.d.ts +1 -1
  535. package/dist/generated/themes/Tag.css.js +1 -1
  536. package/dist/generated/themes/Tag.css.js.map +1 -1
  537. package/dist/generated/themes/Text.css.d.ts +1 -1
  538. package/dist/generated/themes/Text.css.js +1 -1
  539. package/dist/generated/themes/Text.css.js.map +1 -1
  540. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  541. package/dist/generated/themes/TextArea.css.js +1 -1
  542. package/dist/generated/themes/TextArea.css.js.map +1 -1
  543. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  544. package/dist/generated/themes/TimePicker.css.js +1 -1
  545. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  546. package/dist/generated/themes/Toast.css.d.ts +1 -1
  547. package/dist/generated/themes/Toast.css.js +1 -1
  548. package/dist/generated/themes/Toast.css.js.map +1 -1
  549. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  550. package/dist/generated/themes/ToggleButton.css.js +1 -1
  551. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  552. package/dist/generated/themes/Token.css.d.ts +1 -1
  553. package/dist/generated/themes/Token.css.js +1 -1
  554. package/dist/generated/themes/Token.css.js.map +1 -1
  555. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  556. package/dist/generated/themes/Tokenizer.css.js +1 -1
  557. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  558. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  559. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  560. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  561. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  562. package/dist/generated/themes/Toolbar.css.js +1 -1
  563. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  564. package/dist/generated/themes/ToolbarButton.css.d.ts +1 -1
  565. package/dist/generated/themes/ToolbarButton.css.js +1 -1
  566. package/dist/generated/themes/ToolbarButton.css.js.map +1 -1
  567. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  568. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  569. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  570. package/dist/generated/themes/ToolbarSeparator.css.d.ts +1 -1
  571. package/dist/generated/themes/ToolbarSeparator.css.js +1 -1
  572. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -1
  573. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  574. package/dist/generated/themes/TreeItem.css.js +1 -1
  575. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  576. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  577. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  578. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  579. package/dist/generated/themes/ValueStateVariables.css.d.ts +1 -1
  580. package/dist/generated/themes/ValueStateVariables.css.js +1 -1
  581. package/dist/generated/themes/ValueStateVariables.css.js.map +1 -1
  582. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  583. package/dist/generated/themes/YearPicker.css.js +1 -1
  584. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  585. package/dist/generated/themes/YearRangePicker.css.d.ts +1 -1
  586. package/dist/generated/themes/YearRangePicker.css.js +1 -1
  587. package/dist/generated/themes/YearRangePicker.css.js.map +1 -1
  588. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  589. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  590. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  591. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  592. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  593. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  594. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  595. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  596. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  597. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  598. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  599. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  600. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  601. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  602. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  603. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  604. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  605. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  606. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  607. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  608. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  609. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  610. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  611. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  612. package/dist/vscode.html-custom-data.json +12 -2
  613. package/dist/web-types.json +23 -3
  614. package/package.json +10 -10
  615. package/src/CalendarHeaderTemplate.tsx +3 -3
  616. package/src/DayPickerTemplate.tsx +0 -2
  617. package/src/FormTemplate.tsx +1 -1
  618. package/src/MonthPickerTemplate.tsx +1 -0
  619. package/src/TableHeaderRowTemplate.tsx +8 -9
  620. package/src/TableRowTemplate.tsx +5 -1
  621. package/src/TableTemplate.tsx +4 -20
  622. package/src/TimePickerTemplate.tsx +1 -0
  623. package/src/dynamic-date-range-options/DateTimeRangeTemplate.tsx +62 -0
  624. package/src/dynamic-date-range-options/FromDateTimeTemplate.tsx +53 -0
  625. package/src/i18n/messagebundle.properties +61 -2
  626. package/src/i18n/messagebundle_ar.properties +18 -6
  627. package/src/i18n/messagebundle_bg.properties +18 -6
  628. package/src/i18n/messagebundle_ca.properties +19 -7
  629. package/src/i18n/messagebundle_cnr.properties +18 -6
  630. package/src/i18n/messagebundle_cs.properties +18 -6
  631. package/src/i18n/messagebundle_cy.properties +18 -6
  632. package/src/i18n/messagebundle_da.properties +18 -6
  633. package/src/i18n/messagebundle_de.properties +19 -7
  634. package/src/i18n/messagebundle_el.properties +18 -6
  635. package/src/i18n/messagebundle_en.properties +2 -299
  636. package/src/i18n/messagebundle_en_GB.properties +20 -8
  637. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -2
  638. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -2
  639. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -2
  640. package/src/i18n/messagebundle_es.properties +19 -7
  641. package/src/i18n/messagebundle_es_MX.properties +19 -7
  642. package/src/i18n/messagebundle_et.properties +18 -6
  643. package/src/i18n/messagebundle_fi.properties +18 -6
  644. package/src/i18n/messagebundle_fr.properties +18 -6
  645. package/src/i18n/messagebundle_fr_CA.properties +18 -6
  646. package/src/i18n/messagebundle_hi.properties +18 -6
  647. package/src/i18n/messagebundle_hr.properties +19 -7
  648. package/src/i18n/messagebundle_hu.properties +18 -6
  649. package/src/i18n/messagebundle_id.properties +19 -7
  650. package/src/i18n/messagebundle_it.properties +18 -6
  651. package/src/i18n/messagebundle_iw.properties +18 -6
  652. package/src/i18n/messagebundle_ja.properties +18 -6
  653. package/src/i18n/messagebundle_kk.properties +18 -6
  654. package/src/i18n/messagebundle_ko.properties +18 -6
  655. package/src/i18n/messagebundle_lt.properties +18 -6
  656. package/src/i18n/messagebundle_lv.properties +18 -6
  657. package/src/i18n/messagebundle_mk.properties +18 -6
  658. package/src/i18n/messagebundle_ms.properties +18 -6
  659. package/src/i18n/messagebundle_nl.properties +18 -6
  660. package/src/i18n/messagebundle_no.properties +18 -6
  661. package/src/i18n/messagebundle_pl.properties +18 -6
  662. package/src/i18n/messagebundle_pt.properties +18 -6
  663. package/src/i18n/messagebundle_pt_PT.properties +18 -6
  664. package/src/i18n/messagebundle_ro.properties +18 -6
  665. package/src/i18n/messagebundle_ru.properties +18 -6
  666. package/src/i18n/messagebundle_sh.properties +18 -6
  667. package/src/i18n/messagebundle_sk.properties +18 -6
  668. package/src/i18n/messagebundle_sl.properties +18 -6
  669. package/src/i18n/messagebundle_sr.properties +18 -6
  670. package/src/i18n/messagebundle_sv.properties +22 -10
  671. package/src/i18n/messagebundle_th.properties +20 -8
  672. package/src/i18n/messagebundle_tr.properties +18 -6
  673. package/src/i18n/messagebundle_uk.properties +19 -7
  674. package/src/i18n/messagebundle_vi.properties +18 -6
  675. package/src/i18n/messagebundle_zh_CN.properties +18 -6
  676. package/src/i18n/messagebundle_zh_TW.properties +19 -7
  677. package/src/themes/DynamicDateRangePopover.css +15 -5
  678. package/src/themes/StepInput.css +11 -4
  679. package/src/themes/Table.css +0 -14
  680. package/src/themes/TableGrowing.css +7 -14
  681. package/src/themes/TableHeaderRow.css +1 -0
  682. package/src/themes/TableRow.css +12 -8
  683. package/src/themes/base/Table-parameters.css +4 -0
package/dist/Form.js CHANGED
@@ -432,7 +432,7 @@ let Form = Form_1 = class Form extends UI5Element {
432
432
  return this.hasGroupItems ? "region" : "form";
433
433
  }
434
434
  get groupItemsInfo() {
435
- return this.items.map((groupItem) => {
435
+ return this.items.map((groupItem, index) => {
436
436
  const items = this.getItemsInfo(Array.from(groupItem.children));
437
437
  breakpoints.forEach(breakpoint => {
438
438
  const cols = ((groupItem[`cols${breakpoint}`]) || 1);
@@ -453,7 +453,8 @@ let Form = Form_1 = class Form extends UI5Element {
453
453
  });
454
454
  return {
455
455
  groupItem,
456
- accessibleNameRef: groupItem.headerText ? `${groupItem._id}-group-header-text` : undefined,
456
+ accessibleName: groupItem.getEffectiveAccessibleName(index),
457
+ accessibleNameRef: groupItem.effectiveАccessibleNameRef,
457
458
  items: this.getItemsInfo(Array.from(groupItem.children)),
458
459
  };
459
460
  });
package/dist/Form.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","sourceRoot":"","sources":["../src/Form.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\n// Template\nimport FormTemplate from \"./FormTemplate.js\";\n\n// Styles\nimport FormCss from \"./generated/themes/Form.css.js\";\n\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type FormGroup from \"./FormGroup.js\";\nimport type TitleLevel from \"./types/TitleLevel.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\nimport { FORM_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\n\nconst additionalStylesMap = new Map<string, string>();\n\nconst StepColumn = {\n\t\"S\": 1,\n\t\"M\": 2,\n\t\"L\": 3,\n\t\"XL\": 6,\n};\n\nconst breakpoints = [\"S\", \"M\", \"L\", \"Xl\"];\nconst MAX_FORM_ITEM_CELLS = 12;\nconst DEFAULT_FORM_ITEM_LAYOUT = \"4fr 8fr 0fr\";\nconst DEFAULT_FORM_ITEM_LAYOUT_S = \"1fr\";\n\n/**\n * Interface for components that can be slotted inside `ui5-form` as items.\n * @public\n * @since 2.0.0\n */\ninterface IFormItem extends UI5Element {\n\titemSpacing: `${FormItemSpacing}`;\n\treadonly isGroup: boolean;\n\tcolsXl?: number;\n\tcolsL?: number;\n\tcolsM?: number;\n\tcolsS?: number;\n\tcolumnSpan?: number;\n\theaderText?: string;\n\theaderLevel?: `${TitleLevel}`;\n}\n\ntype GroupItemsInfo = {\n\tgroupItem: IFormItem,\n\titems: Array<ItemsInfo>,\n\taccessibleNameRef: string | undefined\n}\n\ntype ItemsInfo = {\n\titem: IFormItem,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The Form is a layout component that arranges labels and form fields (like input fields) pairs\n * into a specific number of columns.\n *\n * **Note:** The Form web component is a layout component, it isn't a replacement for the native `form` HTML element.\n * The Form web component does not provide any APIs for form submission.\n *\n * ### Structure\n *\n * - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.\n * - **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.\n * - **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.\n *\n * The simplest Form (`ui5-form`) consists of a header area on top,\n * displaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),\n * representing the pairs of label and form fields.\n *\n * And, there is also \"grouping\" available to assist the implementation of richer UIs.\n * This is enabled by the FormGroup (`ui5-form-group`) component.\n * In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.\n *\n * ### Responsiveness\n *\n * The Form component reacts and changes its layout on predefined breakpoints.\n * Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:\n * - **S** (< 600px) – 1 column is recommended (default: 1)\n * - **M** (600px - 1022px) – up to 2 columns are recommended (default: 1)\n * - **L** (1023px - 1439px) - up to 3 columns are recommended (default: 2)\n * - **XL** (> 1439px) – up to 6 columns are recommended (default: 3)\n *\n * To change the layout, use the `layout` property - f.e. layout=\"S1 M2 L3 XL6\".\n *\n * ### Groups\n *\n * To make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.\n *\n * - **Example #1** (perfect match):\n * 4 columns and 4 groups: each group will use 1 column.\n *\n * - **Example #2** (balanced distribution):\n * 4 columns and 2 groups: each group will use 2 columns.\n * 6 columns and 2 groups: each group will use 3 columns.\n *\n * - **Example #3** (unbalanced distribution):\n * 3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.\n * 5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.\n *\n * **Note:** The size of a group element is determined by the number of FormItems assigned to it.\n * In the case of equality, the first in the DOM will use more columns, and the last - fewer columns.\n *\n * - **Example #4** (more groups than columns):\n * 3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.\n *\n * ### Groups Column Span\n *\n * To influence the built-in group distribution, described in the previous section,\n * you can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.\n *\n * ### Items Column Span\n *\n * FormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.\n *\n * ### Items Label Span\n *\n * The placement of the labels depends on the size of the used column.\n * If there is enough space, the labels are next to their associated fields, otherwise - above the fields.\n * By default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.\n * You can control what space the labels should take via the `labelSpan` property.\n *\n * **For example:** To always place the labels on top set: `labelSpan=\"S12 M12 L12 XL12\"` property.\n *\n * ### Items Empty Span\n *\n * By default, a form item spans 12 cells, fully divided between its label and field, with no empty space at the end:\n * - **Label:** occupies 4 cells.\n * - **Field:** occupies 8 cells.\n *\n * The `emptySpan` property provides additional layout flexibility by defining empty space at the form item’s end.\n *\n * **For example:** Setting \"S0 M0 L3 XL3\" (or just \"L3 XL3\") adjusts the layout as follows:\n * - **Label:** remains 4 cells.\n * - **Field:** is reduced to 5 cells.\n * - **Empty space:** 3 cells are added at the end.\n *\n * Greater values increase the empty space at the end of the form item, reducing the space available for the label and its field.\n * However, setting `emptySpan` to 1 cell is recommended and typically sufficient to achieve a balanced layout.\n *\n * ### Navigation flow\n *\n * The Form component supports two layout options for keyboard navigation:\n *\n * #### Simple form\n *\n * In this \"simple form\" layout, each `ui5-form-item` acts as a standalone group\n * with one item, so focus moves horizontally across the grid from one `ui5-form-item` to the next.\n * This layout is ideal for simpler forms and supports custom arrangements, e.g.,\n *\n * ```\n * | 1 | 2 |\n * | 3 |\n * | 4 | 5 |\n * ```\n *\n * #### Complex form\n *\n * In this layout, items are grouped into `ui5-form-group` elements, allowing more complex configurations:\n *\n * - **Single-Column Group**: Focus moves vertically down from one item to the next.\n * ```\n * | 1 |\n * | 2 |\n * | 3 |\n * ```\n *\n * - **Multi-Column Group**: Focus moves horizontally within each row, advancing to the next row after completing the current one.\n * ```\n * | 1 | 4 |\n * | 2 | 5 |\n * | 3 | 6 |\n * ```\n *\n * ### Keyboard Handling\n *\n * - [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\n * - [Shift] + [Tab] - Moves the focus to the previous interactive element within the Form/FormGroup (if available) or to the previous element in the tab chain outside the Form\n * - [F6] - Moves the focus to the first interactive element of the next FormGroup (if available) or to the next element in the tab chain outside the Form\n * - [Shift] + [F6] - Moves the focus to the first interactive element of the previous FormGroup (if available) or to the previous element in the tab chain outside the Form\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/Form.js\";\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n * - import @ui5/webcomponents/dist/FormItem.js\";\n *\n * @csspart header - Used to style the wrapper of the header.\n * @csspart layout - Used to style the element defining the form column layout.\n * @csspart column - Used to style a single column of the form column layout.\n *\n * @public\n * @since 2.0.0\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form\",\n\trenderer: jsxRenderer,\n\tstyles: FormCss,\n\ttemplate: FormTemplate,\n})\nclass Form extends UI5Element {\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the number of columns to distribute the form content by breakpoint.\n\t *\n\t * Supported values:\n\t * - `S` - 1 column by default (1 column is recommended)\n\t * - `M` - 1 column by default (up to 2 columns are recommended)\n\t * - `L` - 2 columns by default (up to 3 columns are recommended)\n\t * - `XL` - 3 columns by default (up to 6 columns are recommended)\n\t *\n\t * @default \"S1 M1 L2 XL3\"\n\t * @public\n\t */\n\t@property()\n\tlayout = \"S1 M1 L2 XL3\"\n\n\t/**\n\t * Defines the width proportion of the labels and fields of a form item by breakpoint.\n\t *\n\t * By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,\n\t * and 12/12 in S size, e.g in S the label is on top of its associated field.\n\t *\n\t * The supported values are between 1 and 12. Greater the number, more space the label will use.\n\t *\n\t * **Note:** If \"12\" is set, the label will be displayed on top of its assosiated field.\n\t *\n\t * @default \"S12 M4 L4 XL4\"\n\t * @public\n\t */\n\t@property()\n\tlabelSpan = \"S12 M4 L4 XL4\";\n\n\t/**\n\t * Defines the number of cells that are empty at the end of each form item, configurable by breakpoint.\n\t *\n\t * 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.\n\t * The `emptySpan` provides additional layout flexibility by defining empty space at the form item’s end.\n\t *\n\t * **Note:**\n\t * - The maximum allowable empty space is 10 cells. At least 1 cell each must remain for the label and the field.\n\t * - 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.\n\t *\n\t * @default \"S0 M0 L0 XL0\"\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property()\n\temptySpan = \"S0 M0 L0 XL0\";\n\n\t/**\n\t * Defines the header text of the component.\n\t *\n\t * **Note:** The property gets overridden by the `header` slot.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the compoennt heading level,\n\t * set by the `headerText`.\n\t * @default \"H2\"\n\t * @since 2.10.0\n\t * @public\n\t*/\n\t@property()\n\theaderLevel: `${TitleLevel}` = \"H2\";\n\n\t/**\n\t * Defines the vertical spacing between form items.\n\t *\n\t * **Note:** If the Form is meant to be switched between \"non-edit\" and \"edit\" modes,\n\t * we recommend using \"Large\" item spacing in \"non-edit\" mode, and \"Normal\" - for \"edit\" mode,\n\t * to avoid \"jumping\" effect, caused by the hight difference between texts in \"non-edit\" mode and the input fields in \"edit\" mode.\n\t *\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\t/**\n\t * Defines the component header area.\n\t *\n\t * **Note:** When a `header` is provided, the `headerText` property is ignored.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\theader!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the component content - FormGroups or FormItems.\n\t *\n\t * **Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\n\t * Either use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: Array<IFormItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\tcolumnsS = 1;\n\t@property({ type: Number })\n\tlabelSpanS = 12\n\t@property({ type: Number })\n\temptySpanS = 0\n\n\t@property({ type: Number })\n\tcolumnsM = 1;\n\t@property({ type: Number })\n\tlabelSpanM = 4;\n\t@property({ type: Number })\n\temptySpanM = 0\n\n\t@property({ type: Number })\n\tcolumnsL = 2;\n\t@property({ type: Number })\n\tlabelSpanL = 4;\n\t@property({ type: Number })\n\temptySpanL = 0\n\n\t@property({ type: Number })\n\tcolumnsXl = 3;\n\t@property({ type: Number })\n\tlabelSpanXl = 4;\n\t@property({ type: Number })\n\temptySpanXl = 0;\n\n\tonBeforeRendering() {\n\t\t// Parse the layout and set it to the FormGroups/FormItems.\n\t\tthis.setColumnLayout();\n\n\t\t// Parse the labelSpan and emptySpan and set it to the FormGroups/FormItems.\n\t\tthis.setFormItemLayout();\n\n\t\t// Define how many columns a group should take.\n\t\tthis.setGroupsColSpan();\n\n\t\t// Set item spacing\n\t\tthis.setItemSpacing();\n\t}\n\n\tonAfterRendering() {\n\t\t// Create additional CSS for number of columns that are not supported by default.\n\t\tthis.createAdditionalCSSStyleSheet();\n\n\t\tthis.setFastNavGroup();\n\t}\n\n\tsetColumnLayout() {\n\t\tconst layoutArr = this.layout.split(\" \");\n\t\tlayoutArr.forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.columnsS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.columnsM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.columnsL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.columnsXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\t}\n\n\tparseFormItemSpan() {\n\t\tthis.labelSpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.labelSpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.labelSpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.labelSpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.labelSpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\n\t\tthis.emptySpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.emptySpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.emptySpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.emptySpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.emptySpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\t}\n\n\tsetFormItemLayout() {\n\t\tthis.parseFormItemSpan();\n\n\t\t[\n\t\t\t{\n\t\t\t\tbreakpoint: \"S\",\n\t\t\t\tlabelSpan: this.labelSpanS,\n\t\t\t\temptySpan: this.emptySpanS,\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: \"M\",\n\t\t\t\tlabelSpan: this.labelSpanM,\n\t\t\t\temptySpan: this.emptySpanM,\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: \"L\",\n\t\t\t\tlabelSpan: this.labelSpanL,\n\t\t\t\temptySpan: this.emptySpanL,\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: \"XL\",\n\t\t\t\tlabelSpan: this.labelSpanXl,\n\t\t\t\temptySpan: this.emptySpanXl,\n\t\t\t},\n\t\t].forEach(layout => {\n\t\t\tif (this.isValidFormItemLayout(layout.labelSpan, layout.emptySpan)) {\n\t\t\t\tconst formItemLayout = layout.labelSpan === MAX_FORM_ITEM_CELLS ? `1fr` : `${layout.labelSpan}fr ${MAX_FORM_ITEM_CELLS - (layout.labelSpan + layout.emptySpan)}fr ${layout.emptySpan}fr`;\n\t\t\t\tthis.style.setProperty(getScopedVarName(`--ui5-form-item-layout-${layout.breakpoint}`), formItemLayout);\n\t\t\t} else {\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tconsole.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.`)\n\t\t\t\tthis.style.setProperty(getScopedVarName(`--ui5-form-item-layout-${layout.breakpoint}`), layout.breakpoint === \"S\" ? DEFAULT_FORM_ITEM_LAYOUT_S : DEFAULT_FORM_ITEM_LAYOUT);\n\t\t\t}\n\t\t});\n\t}\n\n\tisValidFormItemLayout(labelSpan: number, emptySpan: number) {\n\t\treturn emptySpan === 0 ? labelSpan <= MAX_FORM_ITEM_CELLS : labelSpan + emptySpan <= MAX_FORM_ITEM_CELLS - 1;\n\t}\n\n\tsetFastNavGroup() {\n\t\tif (this.hasGroupItems) {\n\t\t\tthis.removeAttribute(\"data-sap-ui-fastnavgroup\");\n\t\t} else {\n\t\t\tthis.setAttribute(\"data-sap-ui-fastnavgroup\", \"true\");\n\t\t}\n\t}\n\n\tsetGroupsColSpan() {\n\t\tif (!this.hasGroupItems) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsCount = this.items.length;\n\t\tconst sortedItems = [...this.items].sort((itemA: IFormItem, itemB: IFormItem) => {\n\t\t\treturn (itemB as FormGroup)?.items.length - (itemA as FormGroup)?.items.length;\n\t\t});\n\n\t\tsortedItems.forEach((item: IFormItem, idx: number) => {\n\t\t\titem.colsXl = this.getGroupsColSpan(this.columnsXl, itemsCount, idx, item);\n\t\t\titem.colsL = this.getGroupsColSpan(this.columnsL, itemsCount, idx, item);\n\t\t\titem.colsM = this.getGroupsColSpan(this.columnsM, itemsCount, idx, item);\n\t\t\titem.colsS = this.getGroupsColSpan(this.columnsS, itemsCount, idx, item);\n\t\t});\n\t}\n\n\tgetGroupsColSpan(cols: number, groups: number, index: number, group: IFormItem): number {\n\t\t// Case 0: column span is set from outside.\n\t\tif (group.columnSpan) {\n\t\t\treturn group.columnSpan;\n\t\t}\n\n\t\t// CASE 1: The number of available columns match the number of groups, or only 1 column is available - each group takes 1 column.\n\t\t// For example: 1 column - 1 group, 2 columns - 2 groups, 3 columns - 3 groups, 4columns - 4 groups\n\t\tif (cols === 1 || cols <= groups) {\n\t\t\treturn 1;\n\t\t}\n\n\t\t// CASE 2: The number of available columns IS multiple of the number of groups.\n\t\t// For example: 2 column - 1 group, 3 columns - 1 groups, 4 columns - 1 group, 4 columns - 2 groups\n\t\tif (cols % groups === 0) {\n\t\t\treturn cols / groups;\n\t\t}\n\n\t\t// CASE 3: The number of available columns IS NOT multiple of the number of groups.\n\t\tconst MIN_COL_SPAN = 1;\n\t\tconst delta = cols - groups;\n\n\t\t// 7 cols & 4 groups => 2, 2, 2, 1\n\t\tif (delta <= groups) {\n\t\t\treturn index < delta ? MIN_COL_SPAN + 1 : MIN_COL_SPAN;\n\t\t}\n\n\t\t// 7 cols & 3 groups => 3, 2, 2\n\t\treturn index === 0 ? MIN_COL_SPAN + (delta - groups) + 1 : MIN_COL_SPAN + 1;\n\t}\n\n\tsetItemSpacing() {\n\t\tthis.items.forEach((item: IFormItem) => {\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t});\n\t}\n\n\tget hasGroupItems(): boolean {\n\t\treturn this.items.some((item: IFormItem) => item.isGroup);\n\t}\n\n\tget hasHeader(): boolean {\n\t\treturn this.hasCustomHeader || this.hasHeaderText;\n\t}\n\n\tget hasHeaderText(): boolean {\n\t\treturn !!this.headerText;\n\t}\n\n\tget hasCustomHeader(): boolean {\n\t\treturn !!this.header.length;\n\t}\n\n\tget effectiveAccessibleName() {\n\t\tif (this.accessibleName) {\n\t\t\treturn this.accessibleName;\n\t\t}\n\t\treturn this.hasHeader ? undefined : Form.i18nBundle.getText(FORM_ACCESSIBLE_NAME);\n\t}\n\n\tget effectiveАccessibleNameRef(): string | undefined {\n\t\treturn this.hasHeaderText && !this.hasCustomHeader ? `${this._id}-header-text` : undefined;\n\t}\n\n\tget effectiveAccessibleRole() {\n\t\treturn this.hasGroupItems ? \"region\" : \"form\";\n\t}\n\n\tget groupItemsInfo(): Array<GroupItemsInfo> {\n\t\treturn this.items.map((groupItem: IFormItem) => {\n\t\t\tconst items = this.getItemsInfo((Array.from(groupItem.children) as Array<IFormItem>));\n\t\t\tbreakpoints.forEach(breakpoint => {\n\t\t\t\tconst cols = ((groupItem[`cols${breakpoint}` as keyof IFormItem]) as number || 1);\n\t\t\t\tconst rows = Math.ceil(items.length / cols);\n\t\t\t\tconst total = cols * rows;\n\t\t\t\tconst lastRowColumns = (cols - (total - items.length) - 1); // all other indecies start from 0\n\t\t\t\tlet currentItem = 0;\n\n\t\t\t\tfor (let i = 0; i < total; i++) {\n\t\t\t\t\tconst column = Math.floor(i / rows);\n\t\t\t\t\tconst row = i % rows;\n\n\t\t\t\t\tif (row === rows - 1 && column > lastRowColumns) {\n\t\t\t\t\t\t// eslint-disable-next-line no-continue\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\titems[currentItem].item.style.setProperty(getScopedVarName(`--ui5-form-item-order-${breakpoint}`), `${column + row * cols}`);\n\t\t\t\t\tcurrentItem++;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tgroupItem,\n\t\t\t\taccessibleNameRef: (groupItem as FormGroup).headerText ? `${groupItem._id}-group-header-text` : undefined,\n\t\t\t\titems: this.getItemsInfo((Array.from(groupItem.children) as Array<IFormItem>)),\n\t\t\t};\n\t\t});\n\t}\n\n\tget itemsInfo(): Array<ItemsInfo> {\n\t\treturn this.getItemsInfo();\n\t}\n\n\tgetItemsInfo(items?: Array<IFormItem>): Array<ItemsInfo> {\n\t\treturn (items || this.items).map((item: IFormItem) => {\n\t\t\treturn {\n\t\t\t\titem,\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\t// TODO: remove classes and classMap after deleting the hbs template\n\t\t\t\tclasses: item.columnSpan ? `ui5-form-item-span-${item.columnSpan}` : \"\",\n\t\t\t\tclassMap: {\n\t\t\t\t\t[`ui5-form-item-span-${item.columnSpan}`]: item.columnSpan !== undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\t}\n\n\tcreateAdditionalCSSStyleSheet() {\n\t\t[\n\t\t\t{ breakpoint: \"S\", columns: this.columnsS },\n\t\t\t{ breakpoint: \"M\", columns: this.columnsM },\n\t\t\t{ breakpoint: \"L\", columns: this.columnsL },\n\t\t\t{ breakpoint: \"XL\", columns: this.columnsXl },\n\t\t].forEach(step => {\n\t\t\tconst additionalStyle: string | undefined = this.getAdditionalCSS(step.breakpoint, step.columns);\n\n\t\t\tif (additionalStyle) {\n\t\t\t\tthis.shadowRoot!.adoptedStyleSheets = [...this.shadowRoot!.adoptedStyleSheets, this.getCSSStyleSheet(additionalStyle)];\n\t\t\t}\n\t\t});\n\t}\n\n\tgetAdditionalCSS(step: string, colsNumber: number): string | undefined {\n\t\tif (StepColumn[step as keyof typeof StepColumn] >= colsNumber) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst key = `${step}-${colsNumber}`;\n\n\t\tif (!additionalStylesMap.has(key)) {\n\t\t\tlet containerQuery;\n\t\t\tlet supporedColumnsNumber = StepColumn.S;\n\t\t\tlet stepSpanCSS = \"\";\n\t\t\tlet cols = colsNumber;\n\n\t\t\tif (step === \"S\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.S;\n\t\t\t\tcontainerQuery = `@container (max-width: 599px) {`;\n\t\t\t} else if (step === \"M\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.M;\n\t\t\t\tcontainerQuery = `@container (width > 599px) and (width < 1024px) {`;\n\t\t\t} else if (step === \"L\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.L;\n\t\t\t\tcontainerQuery = `@container (width > 1023px) and (width < 1439px) {`;\n\t\t\t} else if (step === \"XL\") {\n\t\t\t\tcontainerQuery = `@container (min-width: 1440px) {`;\n\t\t\t\tsupporedColumnsNumber = StepColumn.XL;\n\t\t\t}\n\n\t\t\twhile (cols > supporedColumnsNumber) {\n\t\t\t\tstepSpanCSS += `\n\t\t\t\t:host([columns-${step.toLocaleLowerCase()}=\"${cols}\"]) .ui5-form-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\n\t\t\t\t.ui5-form-column-span${step}-${cols},\n\t\t\t\t.ui5-form-item-span-${cols} {\n\t\t\t\t\tgrid-column: span ${cols};\n\t\t\t\t}\n\n\t\t\t\t.ui5-form-column-span${step}-${cols} .ui5-form-group-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tcols--;\n\t\t\t}\n\n\t\t\tconst css = `${containerQuery}${stepSpanCSS}}`;\n\t\t\tadditionalStylesMap.set(key, css);\n\t\t}\n\n\t\treturn additionalStylesMap.get(key)!;\n\t}\n\n\tgetCSSStyleSheet(cssText: string): CSSStyleSheet {\n\t\tconst style = new CSSStyleSheet();\n\t\tstyle.replaceSync(cssText);\n\t\treturn style;\n\t}\n}\n\nForm.define();\n\nexport default Form;\nexport type {\n\tIFormItem,\n};\n"]}
1
+ {"version":3,"file":"Form.js","sourceRoot":"","sources":["../src/Form.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\n// Template\nimport FormTemplate from \"./FormTemplate.js\";\n\n// Styles\nimport FormCss from \"./generated/themes/Form.css.js\";\n\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type FormGroup from \"./FormGroup.js\";\nimport type TitleLevel from \"./types/TitleLevel.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\n\nimport { FORM_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\n\nconst additionalStylesMap = new Map<string, string>();\n\nconst StepColumn = {\n\t\"S\": 1,\n\t\"M\": 2,\n\t\"L\": 3,\n\t\"XL\": 6,\n};\n\nconst breakpoints = [\"S\", \"M\", \"L\", \"Xl\"];\nconst MAX_FORM_ITEM_CELLS = 12;\nconst DEFAULT_FORM_ITEM_LAYOUT = \"4fr 8fr 0fr\";\nconst DEFAULT_FORM_ITEM_LAYOUT_S = \"1fr\";\n\n/**\n * Interface for components that can be slotted inside `ui5-form` as items.\n * @public\n * @since 2.0.0\n */\ninterface IFormItem extends UI5Element {\n\titemSpacing: `${FormItemSpacing}`;\n\treadonly isGroup: boolean;\n\tcolsXl?: number;\n\tcolsL?: number;\n\tcolsM?: number;\n\tcolsS?: number;\n\tcolumnSpan?: number;\n\theaderText?: string;\n\theaderLevel?: `${TitleLevel}`;\n}\n\ntype GroupItemsInfo = {\n\tgroupItem: IFormItem,\n\titems: Array<ItemsInfo>,\n\taccessibleNameRef: string | undefined,\n\taccessibleName: string | undefined,\n}\n\ntype ItemsInfo = {\n\titem: IFormItem,\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The Form is a layout component that arranges labels and form fields (like input fields) pairs\n * into a specific number of columns.\n *\n * **Note:** The Form web component is a layout component, it isn't a replacement for the native `form` HTML element.\n * The Form web component does not provide any APIs for form submission.\n *\n * ### Structure\n *\n * - **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.\n * - **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.\n * - **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.\n *\n * The simplest Form (`ui5-form`) consists of a header area on top,\n * displaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),\n * representing the pairs of label and form fields.\n *\n * And, there is also \"grouping\" available to assist the implementation of richer UIs.\n * This is enabled by the FormGroup (`ui5-form-group`) component.\n * In this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.\n *\n * ### Responsiveness\n *\n * The Form component reacts and changes its layout on predefined breakpoints.\n * Depending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:\n * - **S** (< 600px) – 1 column is recommended (default: 1)\n * - **M** (600px - 1022px) – up to 2 columns are recommended (default: 1)\n * - **L** (1023px - 1439px) - up to 3 columns are recommended (default: 2)\n * - **XL** (> 1439px) – up to 6 columns are recommended (default: 3)\n *\n * To change the layout, use the `layout` property - f.e. layout=\"S1 M2 L3 XL6\".\n *\n * ### Groups\n *\n * To make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.\n *\n * - **Example #1** (perfect match):\n * 4 columns and 4 groups: each group will use 1 column.\n *\n * - **Example #2** (balanced distribution):\n * 4 columns and 2 groups: each group will use 2 columns.\n * 6 columns and 2 groups: each group will use 3 columns.\n *\n * - **Example #3** (unbalanced distribution):\n * 3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.\n * 5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.\n *\n * **Note:** The size of a group element is determined by the number of FormItems assigned to it.\n * In the case of equality, the first in the DOM will use more columns, and the last - fewer columns.\n *\n * - **Example #4** (more groups than columns):\n * 3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.\n *\n * ### Groups Column Span\n *\n * To influence the built-in group distribution, described in the previous section,\n * you can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.\n *\n * ### Items Column Span\n *\n * FormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.\n *\n * ### Items Label Span\n *\n * The placement of the labels depends on the size of the used column.\n * If there is enough space, the labels are next to their associated fields, otherwise - above the fields.\n * By default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.\n * You can control what space the labels should take via the `labelSpan` property.\n *\n * **For example:** To always place the labels on top set: `labelSpan=\"S12 M12 L12 XL12\"` property.\n *\n * ### Items Empty Span\n *\n * By default, a form item spans 12 cells, fully divided between its label and field, with no empty space at the end:\n * - **Label:** occupies 4 cells.\n * - **Field:** occupies 8 cells.\n *\n * The `emptySpan` property provides additional layout flexibility by defining empty space at the form item’s end.\n *\n * **For example:** Setting \"S0 M0 L3 XL3\" (or just \"L3 XL3\") adjusts the layout as follows:\n * - **Label:** remains 4 cells.\n * - **Field:** is reduced to 5 cells.\n * - **Empty space:** 3 cells are added at the end.\n *\n * Greater values increase the empty space at the end of the form item, reducing the space available for the label and its field.\n * However, setting `emptySpan` to 1 cell is recommended and typically sufficient to achieve a balanced layout.\n *\n * ### Navigation flow\n *\n * The Form component supports two layout options for keyboard navigation:\n *\n * #### Simple form\n *\n * In this \"simple form\" layout, each `ui5-form-item` acts as a standalone group\n * with one item, so focus moves horizontally across the grid from one `ui5-form-item` to the next.\n * This layout is ideal for simpler forms and supports custom arrangements, e.g.,\n *\n * ```\n * | 1 | 2 |\n * | 3 |\n * | 4 | 5 |\n * ```\n *\n * #### Complex form\n *\n * In this layout, items are grouped into `ui5-form-group` elements, allowing more complex configurations:\n *\n * - **Single-Column Group**: Focus moves vertically down from one item to the next.\n * ```\n * | 1 |\n * | 2 |\n * | 3 |\n * ```\n *\n * - **Multi-Column Group**: Focus moves horizontally within each row, advancing to the next row after completing the current one.\n * ```\n * | 1 | 4 |\n * | 2 | 5 |\n * | 3 | 6 |\n * ```\n *\n * ### Keyboard Handling\n *\n * - [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\n * - [Shift] + [Tab] - Moves the focus to the previous interactive element within the Form/FormGroup (if available) or to the previous element in the tab chain outside the Form\n * - [F6] - Moves the focus to the first interactive element of the next FormGroup (if available) or to the next element in the tab chain outside the Form\n * - [Shift] + [F6] - Moves the focus to the first interactive element of the previous FormGroup (if available) or to the previous element in the tab chain outside the Form\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/Form.js\";\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n * - import @ui5/webcomponents/dist/FormItem.js\";\n *\n * @csspart header - Used to style the wrapper of the header.\n * @csspart layout - Used to style the element defining the form column layout.\n * @csspart column - Used to style a single column of the form column layout.\n *\n * @public\n * @since 2.0.0\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form\",\n\trenderer: jsxRenderer,\n\tstyles: FormCss,\n\ttemplate: FormTemplate,\n})\nclass Form extends UI5Element {\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.10.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the number of columns to distribute the form content by breakpoint.\n\t *\n\t * Supported values:\n\t * - `S` - 1 column by default (1 column is recommended)\n\t * - `M` - 1 column by default (up to 2 columns are recommended)\n\t * - `L` - 2 columns by default (up to 3 columns are recommended)\n\t * - `XL` - 3 columns by default (up to 6 columns are recommended)\n\t *\n\t * @default \"S1 M1 L2 XL3\"\n\t * @public\n\t */\n\t@property()\n\tlayout = \"S1 M1 L2 XL3\"\n\n\t/**\n\t * Defines the width proportion of the labels and fields of a form item by breakpoint.\n\t *\n\t * By default, the labels take 4/12 (or 1/3) of the form item in M,L and XL sizes,\n\t * and 12/12 in S size, e.g in S the label is on top of its associated field.\n\t *\n\t * The supported values are between 1 and 12. Greater the number, more space the label will use.\n\t *\n\t * **Note:** If \"12\" is set, the label will be displayed on top of its assosiated field.\n\t *\n\t * @default \"S12 M4 L4 XL4\"\n\t * @public\n\t */\n\t@property()\n\tlabelSpan = \"S12 M4 L4 XL4\";\n\n\t/**\n\t * Defines the number of cells that are empty at the end of each form item, configurable by breakpoint.\n\t *\n\t * 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.\n\t * The `emptySpan` provides additional layout flexibility by defining empty space at the form item’s end.\n\t *\n\t * **Note:**\n\t * - The maximum allowable empty space is 10 cells. At least 1 cell each must remain for the label and the field.\n\t * - 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.\n\t *\n\t * @default \"S0 M0 L0 XL0\"\n\t * @since 2.5.0\n\t * @public\n\t */\n\t@property()\n\temptySpan = \"S0 M0 L0 XL0\";\n\n\t/**\n\t * Defines the header text of the component.\n\t *\n\t * **Note:** The property gets overridden by the `header` slot.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the compoennt heading level,\n\t * set by the `headerText`.\n\t * @default \"H2\"\n\t * @since 2.10.0\n\t * @public\n\t*/\n\t@property()\n\theaderLevel: `${TitleLevel}` = \"H2\";\n\n\t/**\n\t * Defines the vertical spacing between form items.\n\t *\n\t * **Note:** If the Form is meant to be switched between \"non-edit\" and \"edit\" modes,\n\t * we recommend using \"Large\" item spacing in \"non-edit\" mode, and \"Normal\" - for \"edit\" mode,\n\t * to avoid \"jumping\" effect, caused by the hight difference between texts in \"non-edit\" mode and the input fields in \"edit\" mode.\n\t *\n\t * @default \"Normal\"\n\t * @public\n\t */\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\t/**\n\t * Defines the component header area.\n\t *\n\t * **Note:** When a `header` is provided, the `headerText` property is ignored.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\theader!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the component content - FormGroups or FormItems.\n\t *\n\t * **Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\n\t * Either use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: Array<IFormItem>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\tcolumnsS = 1;\n\t@property({ type: Number })\n\tlabelSpanS = 12\n\t@property({ type: Number })\n\temptySpanS = 0\n\n\t@property({ type: Number })\n\tcolumnsM = 1;\n\t@property({ type: Number })\n\tlabelSpanM = 4;\n\t@property({ type: Number })\n\temptySpanM = 0\n\n\t@property({ type: Number })\n\tcolumnsL = 2;\n\t@property({ type: Number })\n\tlabelSpanL = 4;\n\t@property({ type: Number })\n\temptySpanL = 0\n\n\t@property({ type: Number })\n\tcolumnsXl = 3;\n\t@property({ type: Number })\n\tlabelSpanXl = 4;\n\t@property({ type: Number })\n\temptySpanXl = 0;\n\n\tonBeforeRendering() {\n\t\t// Parse the layout and set it to the FormGroups/FormItems.\n\t\tthis.setColumnLayout();\n\n\t\t// Parse the labelSpan and emptySpan and set it to the FormGroups/FormItems.\n\t\tthis.setFormItemLayout();\n\n\t\t// Define how many columns a group should take.\n\t\tthis.setGroupsColSpan();\n\n\t\t// Set item spacing\n\t\tthis.setItemSpacing();\n\t}\n\n\tonAfterRendering() {\n\t\t// Create additional CSS for number of columns that are not supported by default.\n\t\tthis.createAdditionalCSSStyleSheet();\n\n\t\tthis.setFastNavGroup();\n\t}\n\n\tsetColumnLayout() {\n\t\tconst layoutArr = this.layout.split(\" \");\n\t\tlayoutArr.forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.columnsS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.columnsM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.columnsL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.columnsXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\t}\n\n\tparseFormItemSpan() {\n\t\tthis.labelSpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.labelSpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.labelSpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.labelSpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.labelSpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\n\t\tthis.emptySpan.split(\" \").forEach((breakpoint: string) => {\n\t\t\tif (breakpoint.startsWith(\"S\")) {\n\t\t\t\tthis.emptySpanS = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"M\")) {\n\t\t\t\tthis.emptySpanM = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"L\")) {\n\t\t\t\tthis.emptySpanL = parseInt(breakpoint.slice(1));\n\t\t\t} else if (breakpoint.startsWith(\"XL\")) {\n\t\t\t\tthis.emptySpanXl = parseInt(breakpoint.slice(2));\n\t\t\t}\n\t\t});\n\t}\n\n\tsetFormItemLayout() {\n\t\tthis.parseFormItemSpan();\n\n\t\t[\n\t\t\t{\n\t\t\t\tbreakpoint: \"S\",\n\t\t\t\tlabelSpan: this.labelSpanS,\n\t\t\t\temptySpan: this.emptySpanS,\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: \"M\",\n\t\t\t\tlabelSpan: this.labelSpanM,\n\t\t\t\temptySpan: this.emptySpanM,\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: \"L\",\n\t\t\t\tlabelSpan: this.labelSpanL,\n\t\t\t\temptySpan: this.emptySpanL,\n\t\t\t},\n\t\t\t{\n\t\t\t\tbreakpoint: \"XL\",\n\t\t\t\tlabelSpan: this.labelSpanXl,\n\t\t\t\temptySpan: this.emptySpanXl,\n\t\t\t},\n\t\t].forEach(layout => {\n\t\t\tif (this.isValidFormItemLayout(layout.labelSpan, layout.emptySpan)) {\n\t\t\t\tconst formItemLayout = layout.labelSpan === MAX_FORM_ITEM_CELLS ? `1fr` : `${layout.labelSpan}fr ${MAX_FORM_ITEM_CELLS - (layout.labelSpan + layout.emptySpan)}fr ${layout.emptySpan}fr`;\n\t\t\t\tthis.style.setProperty(getScopedVarName(`--ui5-form-item-layout-${layout.breakpoint}`), formItemLayout);\n\t\t\t} else {\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\tconsole.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.`)\n\t\t\t\tthis.style.setProperty(getScopedVarName(`--ui5-form-item-layout-${layout.breakpoint}`), layout.breakpoint === \"S\" ? DEFAULT_FORM_ITEM_LAYOUT_S : DEFAULT_FORM_ITEM_LAYOUT);\n\t\t\t}\n\t\t});\n\t}\n\n\tisValidFormItemLayout(labelSpan: number, emptySpan: number) {\n\t\treturn emptySpan === 0 ? labelSpan <= MAX_FORM_ITEM_CELLS : labelSpan + emptySpan <= MAX_FORM_ITEM_CELLS - 1;\n\t}\n\n\tsetFastNavGroup() {\n\t\tif (this.hasGroupItems) {\n\t\t\tthis.removeAttribute(\"data-sap-ui-fastnavgroup\");\n\t\t} else {\n\t\t\tthis.setAttribute(\"data-sap-ui-fastnavgroup\", \"true\");\n\t\t}\n\t}\n\n\tsetGroupsColSpan() {\n\t\tif (!this.hasGroupItems) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsCount = this.items.length;\n\t\tconst sortedItems = [...this.items].sort((itemA: IFormItem, itemB: IFormItem) => {\n\t\t\treturn (itemB as FormGroup)?.items.length - (itemA as FormGroup)?.items.length;\n\t\t});\n\n\t\tsortedItems.forEach((item: IFormItem, idx: number) => {\n\t\t\titem.colsXl = this.getGroupsColSpan(this.columnsXl, itemsCount, idx, item);\n\t\t\titem.colsL = this.getGroupsColSpan(this.columnsL, itemsCount, idx, item);\n\t\t\titem.colsM = this.getGroupsColSpan(this.columnsM, itemsCount, idx, item);\n\t\t\titem.colsS = this.getGroupsColSpan(this.columnsS, itemsCount, idx, item);\n\t\t});\n\t}\n\n\tgetGroupsColSpan(cols: number, groups: number, index: number, group: IFormItem): number {\n\t\t// Case 0: column span is set from outside.\n\t\tif (group.columnSpan) {\n\t\t\treturn group.columnSpan;\n\t\t}\n\n\t\t// CASE 1: The number of available columns match the number of groups, or only 1 column is available - each group takes 1 column.\n\t\t// For example: 1 column - 1 group, 2 columns - 2 groups, 3 columns - 3 groups, 4columns - 4 groups\n\t\tif (cols === 1 || cols <= groups) {\n\t\t\treturn 1;\n\t\t}\n\n\t\t// CASE 2: The number of available columns IS multiple of the number of groups.\n\t\t// For example: 2 column - 1 group, 3 columns - 1 groups, 4 columns - 1 group, 4 columns - 2 groups\n\t\tif (cols % groups === 0) {\n\t\t\treturn cols / groups;\n\t\t}\n\n\t\t// CASE 3: The number of available columns IS NOT multiple of the number of groups.\n\t\tconst MIN_COL_SPAN = 1;\n\t\tconst delta = cols - groups;\n\n\t\t// 7 cols & 4 groups => 2, 2, 2, 1\n\t\tif (delta <= groups) {\n\t\t\treturn index < delta ? MIN_COL_SPAN + 1 : MIN_COL_SPAN;\n\t\t}\n\n\t\t// 7 cols & 3 groups => 3, 2, 2\n\t\treturn index === 0 ? MIN_COL_SPAN + (delta - groups) + 1 : MIN_COL_SPAN + 1;\n\t}\n\n\tsetItemSpacing() {\n\t\tthis.items.forEach((item: IFormItem) => {\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t});\n\t}\n\n\tget hasGroupItems(): boolean {\n\t\treturn this.items.some((item: IFormItem) => item.isGroup);\n\t}\n\n\tget hasHeader(): boolean {\n\t\treturn this.hasCustomHeader || this.hasHeaderText;\n\t}\n\n\tget hasHeaderText(): boolean {\n\t\treturn !!this.headerText;\n\t}\n\n\tget hasCustomHeader(): boolean {\n\t\treturn !!this.header.length;\n\t}\n\n\tget effectiveAccessibleName() {\n\t\tif (this.accessibleName) {\n\t\t\treturn this.accessibleName;\n\t\t}\n\t\treturn this.hasHeader ? undefined : Form.i18nBundle.getText(FORM_ACCESSIBLE_NAME);\n\t}\n\n\tget effectiveАccessibleNameRef(): string | undefined {\n\t\treturn this.hasHeaderText && !this.hasCustomHeader ? `${this._id}-header-text` : undefined;\n\t}\n\n\tget effectiveAccessibleRole() {\n\t\treturn this.hasGroupItems ? \"region\" : \"form\";\n\t}\n\n\tget groupItemsInfo(): Array<GroupItemsInfo> {\n\t\treturn this.items.map((groupItem: IFormItem, index: number) => {\n\t\t\tconst items = this.getItemsInfo((Array.from(groupItem.children) as Array<IFormItem>));\n\t\t\tbreakpoints.forEach(breakpoint => {\n\t\t\t\tconst cols = ((groupItem[`cols${breakpoint}` as keyof IFormItem]) as number || 1);\n\t\t\t\tconst rows = Math.ceil(items.length / cols);\n\t\t\t\tconst total = cols * rows;\n\t\t\t\tconst lastRowColumns = (cols - (total - items.length) - 1); // all other indecies start from 0\n\t\t\t\tlet currentItem = 0;\n\n\t\t\t\tfor (let i = 0; i < total; i++) {\n\t\t\t\t\tconst column = Math.floor(i / rows);\n\t\t\t\t\tconst row = i % rows;\n\n\t\t\t\t\tif (row === rows - 1 && column > lastRowColumns) {\n\t\t\t\t\t\t// eslint-disable-next-line no-continue\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\titems[currentItem].item.style.setProperty(getScopedVarName(`--ui5-form-item-order-${breakpoint}`), `${column + row * cols}`);\n\t\t\t\t\tcurrentItem++;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tgroupItem,\n\t\t\t\taccessibleName: (groupItem as FormGroup).getEffectiveAccessibleName(index),\n\t\t\t\taccessibleNameRef: (groupItem as FormGroup).effectiveАccessibleNameRef,\n\t\t\t\titems: this.getItemsInfo((Array.from(groupItem.children) as Array<IFormItem>)),\n\t\t\t};\n\t\t});\n\t}\n\n\tget itemsInfo(): Array<ItemsInfo> {\n\t\treturn this.getItemsInfo();\n\t}\n\n\tgetItemsInfo(items?: Array<IFormItem>): Array<ItemsInfo> {\n\t\treturn (items || this.items).map((item: IFormItem) => {\n\t\t\treturn {\n\t\t\t\titem,\n\t\t\t\t// eslint-disable-next-line\n\t\t\t\t// TODO: remove classes and classMap after deleting the hbs template\n\t\t\t\tclasses: item.columnSpan ? `ui5-form-item-span-${item.columnSpan}` : \"\",\n\t\t\t\tclassMap: {\n\t\t\t\t\t[`ui5-form-item-span-${item.columnSpan}`]: item.columnSpan !== undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\t}\n\n\tcreateAdditionalCSSStyleSheet() {\n\t\t[\n\t\t\t{ breakpoint: \"S\", columns: this.columnsS },\n\t\t\t{ breakpoint: \"M\", columns: this.columnsM },\n\t\t\t{ breakpoint: \"L\", columns: this.columnsL },\n\t\t\t{ breakpoint: \"XL\", columns: this.columnsXl },\n\t\t].forEach(step => {\n\t\t\tconst additionalStyle: string | undefined = this.getAdditionalCSS(step.breakpoint, step.columns);\n\n\t\t\tif (additionalStyle) {\n\t\t\t\tthis.shadowRoot!.adoptedStyleSheets = [...this.shadowRoot!.adoptedStyleSheets, this.getCSSStyleSheet(additionalStyle)];\n\t\t\t}\n\t\t});\n\t}\n\n\tgetAdditionalCSS(step: string, colsNumber: number): string | undefined {\n\t\tif (StepColumn[step as keyof typeof StepColumn] >= colsNumber) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst key = `${step}-${colsNumber}`;\n\n\t\tif (!additionalStylesMap.has(key)) {\n\t\t\tlet containerQuery;\n\t\t\tlet supporedColumnsNumber = StepColumn.S;\n\t\t\tlet stepSpanCSS = \"\";\n\t\t\tlet cols = colsNumber;\n\n\t\t\tif (step === \"S\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.S;\n\t\t\t\tcontainerQuery = `@container (max-width: 599px) {`;\n\t\t\t} else if (step === \"M\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.M;\n\t\t\t\tcontainerQuery = `@container (width > 599px) and (width < 1024px) {`;\n\t\t\t} else if (step === \"L\") {\n\t\t\t\tsupporedColumnsNumber = StepColumn.L;\n\t\t\t\tcontainerQuery = `@container (width > 1023px) and (width < 1439px) {`;\n\t\t\t} else if (step === \"XL\") {\n\t\t\t\tcontainerQuery = `@container (min-width: 1440px) {`;\n\t\t\t\tsupporedColumnsNumber = StepColumn.XL;\n\t\t\t}\n\n\t\t\twhile (cols > supporedColumnsNumber) {\n\t\t\t\tstepSpanCSS += `\n\t\t\t\t:host([columns-${step.toLocaleLowerCase()}=\"${cols}\"]) .ui5-form-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\n\t\t\t\t.ui5-form-column-span${step}-${cols},\n\t\t\t\t.ui5-form-item-span-${cols} {\n\t\t\t\t\tgrid-column: span ${cols};\n\t\t\t\t}\n\n\t\t\t\t.ui5-form-column-span${step}-${cols} .ui5-form-group-layout {\n\t\t\t\t\tgrid-template-columns: repeat(${cols}, 1fr);\n\t\t\t\t}\n\t\t\t\t`;\n\t\t\t\tcols--;\n\t\t\t}\n\n\t\t\tconst css = `${containerQuery}${stepSpanCSS}}`;\n\t\t\tadditionalStylesMap.set(key, css);\n\t\t}\n\n\t\treturn additionalStylesMap.get(key)!;\n\t}\n\n\tgetCSSStyleSheet(cssText: string): CSSStyleSheet {\n\t\tconst style = new CSSStyleSheet();\n\t\tstyle.replaceSync(cssText);\n\t\treturn style;\n\t}\n}\n\nForm.define();\n\nexport default Form;\nexport type {\n\tIFormItem,\n};\n"]}
@@ -1,4 +1,5 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
2
3
  import type FormItem from "./FormItem.js";
3
4
  import type { IFormItem } from "./Form.js";
4
5
  import type FormItemSpacing from "./types/FormItemSpacing.js";
@@ -53,6 +54,13 @@ declare class FormGroup extends UI5Element implements IFormItem {
53
54
  * @public
54
55
  */
55
56
  columnSpan?: number;
57
+ /**
58
+ * Defines the accessible ARIA name of the component.
59
+ * @default undefined
60
+ * @public
61
+ * @since 2.16.0
62
+ */
63
+ accessibleName?: string;
56
64
  /**
57
65
  * Defines the items of the component.
58
66
  * @public
@@ -66,8 +74,11 @@ declare class FormGroup extends UI5Element implements IFormItem {
66
74
  colsL: number;
67
75
  colsXl: number;
68
76
  itemSpacing: `${FormItemSpacing}`;
77
+ static i18nBundle: I18nBundle;
69
78
  onBeforeRendering(): void;
70
79
  processFormItems(): void;
80
+ getEffectiveAccessibleName(index: number): string | undefined;
81
+ get effectiveАccessibleNameRef(): string | undefined;
71
82
  get isGroup(): boolean;
72
83
  }
73
84
  export default FormGroup;
package/dist/FormGroup.js CHANGED
@@ -4,10 +4,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ var FormGroup_1;
7
8
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
9
+ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
8
10
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
11
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
12
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
13
+ import { FORM_GROUP_ACCESSIBLE_NAME } from "./generated/i18n/i18n-defaults.js";
11
14
  /**
12
15
  * @class
13
16
  *
@@ -34,7 +37,7 @@ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
34
37
  * @since 2.0.0
35
38
  * @extends UI5Element
36
39
  */
37
- let FormGroup = class FormGroup extends UI5Element {
40
+ let FormGroup = FormGroup_1 = class FormGroup extends UI5Element {
38
41
  constructor() {
39
42
  super(...arguments);
40
43
  /**
@@ -62,6 +65,18 @@ let FormGroup = class FormGroup extends UI5Element {
62
65
  item.itemSpacing = this.itemSpacing;
63
66
  });
64
67
  }
68
+ getEffectiveAccessibleName(index) {
69
+ if (this.accessibleName) {
70
+ return this.accessibleName;
71
+ }
72
+ if (this.headerText) {
73
+ return undefined;
74
+ }
75
+ return FormGroup_1.i18nBundle.getText(FORM_GROUP_ACCESSIBLE_NAME, index + 1);
76
+ }
77
+ get effectiveАccessibleNameRef() {
78
+ return this.headerText ? `${this._id}-group-header-text` : undefined;
79
+ }
65
80
  get isGroup() {
66
81
  return true;
67
82
  }
@@ -75,6 +90,9 @@ __decorate([
75
90
  __decorate([
76
91
  property({ type: Number })
77
92
  ], FormGroup.prototype, "columnSpan", void 0);
93
+ __decorate([
94
+ property()
95
+ ], FormGroup.prototype, "accessibleName", void 0);
78
96
  __decorate([
79
97
  slot({
80
98
  type: HTMLElement,
@@ -96,7 +114,10 @@ __decorate([
96
114
  __decorate([
97
115
  property()
98
116
  ], FormGroup.prototype, "itemSpacing", void 0);
99
- FormGroup = __decorate([
117
+ __decorate([
118
+ i18n("@ui5/webcomponents")
119
+ ], FormGroup, "i18nBundle", void 0);
120
+ FormGroup = FormGroup_1 = __decorate([
100
121
  customElement({
101
122
  tag: "ui5-form-group",
102
123
  fastNavigation: true,
@@ -1 +1 @@
1
- {"version":3,"file":"FormGroup.js","sourceRoot":"","sources":["../src/FormGroup.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAOnE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,UAAU;IAAlC;;QAUC;;;;;;UAME;QAEF,gBAAW,GAAoB,IAAI,CAAC;QAsBpC;;WAEG;QAEH,UAAK,GAAG,CAAC,CAAC;QAGV,UAAK,GAAG,CAAC,CAAC;QAGV,UAAK,GAAG,CAAC,CAAC;QAGV,WAAM,GAAG,CAAC,CAAC;QAGX,gBAAW,GAAyB,QAAQ,CAAC;IAe9C,CAAC;IAbA,iBAAiB;QAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAc,EAAE,EAAE;YACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AA/DA;IADC,QAAQ,EAAE;6CACS;AAUpB;IADC,QAAQ,EAAE;8CACyB;AAUpC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACP;AAUpB;IAJC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;KACf,CAAC;wCACsB;AAMxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACjB;AAGV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACjB;AAGV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACjB;AAGV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAChB;AAGX;IADC,QAAQ,EAAE;8CACkC;AAxDxC,SAAS;IAJd,aAAa,CAAC;QACd,GAAG,EAAE,gBAAgB;QACrB,cAAc,EAAE,IAAI;KACpB,CAAC;GACI,SAAS,CAuEd;AAED,SAAS,CAAC,MAAM,EAAE,CAAC;AAEnB,eAAe,SAAS,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\n\nimport type FormItem from \"./FormItem.js\";\nimport type { IFormItem } from \"./Form.js\";\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type TitleLevel from \"./types/TitleLevel.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The FormGroup (ui5-form-group) represents a group inside the Form (ui5-form) component\n * and it consists of FormItem (ui5-form-item) components.\n *\n * The layout of the FormGroup is mostly defined and controlled by the overarching Form (ui5-form) component.\n * Still, one can influence the layout via the FormGroup's `columnSpan` property,\n * that defines how many columns the group should expand to.\n *\n * ### Usage\n *\n * Тhe FormGroup (ui5-form-group) allows to split a Form into groups,\n * e.g to group FormItems that logically belong together.\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n *\n * @public\n * @implements {IFormItem}\n * @since 2.0.0\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form-group\",\n\tfastNavigation: true,\n})\nclass FormGroup extends UI5Element implements IFormItem {\n\t/**\n\t * Defines header text of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the compoennt heading level,\n\t * set by the `headerText`.\n\t * @default \"H3\"\n\t * @public\n\t * @since 2.10.0\n\t*/\n\t@property()\n\theaderLevel: `${TitleLevel}` = \"H3\";\n\n\t/**\n\t * Defines column span of the component,\n\t * e.g how many columns the group should span to.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ type: Number })\n\tcolumnSpan?: number;\n\n\t/**\n\t * Defines the items of the component.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t})\n\titems!: Array<FormItem>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\tcolsS = 1;\n\n\t@property({ type: Number })\n\tcolsM = 1;\n\n\t@property({ type: Number })\n\tcolsL = 1;\n\n\t@property({ type: Number })\n\tcolsXl = 1;\n\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\tonBeforeRendering() {\n\t\tthis.processFormItems();\n\t}\n\n\tprocessFormItems() {\n\t\tthis.items.forEach((item: FormItem) => {\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t});\n\t}\n\n\tget isGroup() {\n\t\treturn true;\n\t}\n}\n\nFormGroup.define();\n\nexport default FormGroup;\n"]}
1
+ {"version":3,"file":"FormGroup.js","sourceRoot":"","sources":["../src/FormGroup.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAOnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,IAAM,SAAS,iBAAf,MAAM,SAAU,SAAQ,UAAU;IAAlC;;QAUC;;;;;;UAME;QAEF,gBAAW,GAAoB,IAAI,CAAC;QA+BpC;;WAEG;QAEH,UAAK,GAAG,CAAC,CAAC;QAGV,UAAK,GAAG,CAAC,CAAC;QAGV,UAAK,GAAG,CAAC,CAAC;QAGV,WAAM,GAAG,CAAC,CAAC;QAGX,gBAAW,GAAyB,QAAQ,CAAC;IAkC9C,CAAC;IA7BA,iBAAiB;QAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAc,EAAE,EAAE;YACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,0BAA0B,CAAC,KAAa;QACvC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,cAAc,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,OAAO,WAAS,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,0BAA0B;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AA3FA;IADC,QAAQ,EAAE;6CACS;AAUpB;IADC,QAAQ,EAAE;8CACyB;AAUpC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CACP;AASpB;IADC,QAAQ,EAAE;iDACa;AAUxB;IAJC,IAAI,CAAC;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,IAAI;KACf,CAAC;wCACsB;AAMxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACjB;AAGV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACjB;AAGV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACjB;AAGV;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAChB;AAGX;IADC,QAAQ,EAAE;8CACkC;AAGtC;IADN,IAAI,CAAC,oBAAoB,CAAC;mCACG;AApEzB,SAAS;IAJd,aAAa,CAAC;QACd,GAAG,EAAE,gBAAgB;QACrB,cAAc,EAAE,IAAI;KACpB,CAAC;GACI,SAAS,CAmGd;AAED,SAAS,CAAC,MAAM,EAAE,CAAC;AAEnB,eAAe,SAAS,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\n\nimport type FormItem from \"./FormItem.js\";\nimport type { IFormItem } from \"./Form.js\";\nimport type FormItemSpacing from \"./types/FormItemSpacing.js\";\nimport type TitleLevel from \"./types/TitleLevel.js\";\n\nimport { FORM_GROUP_ACCESSIBLE_NAME } from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The FormGroup (ui5-form-group) represents a group inside the Form (ui5-form) component\n * and it consists of FormItem (ui5-form-item) components.\n *\n * The layout of the FormGroup is mostly defined and controlled by the overarching Form (ui5-form) component.\n * Still, one can influence the layout via the FormGroup's `columnSpan` property,\n * that defines how many columns the group should expand to.\n *\n * ### Usage\n *\n * Тhe FormGroup (ui5-form-group) allows to split a Form into groups,\n * e.g to group FormItems that logically belong together.\n *\n * ### ES6 Module Import\n *\n * - import @ui5/webcomponents/dist/FormGroup.js\";\n *\n * @public\n * @implements {IFormItem}\n * @since 2.0.0\n * @extends UI5Element\n */\n@customElement({\n\ttag: \"ui5-form-group\",\n\tfastNavigation: true,\n})\nclass FormGroup extends UI5Element implements IFormItem {\n\t/**\n\t * Defines header text of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the compoennt heading level,\n\t * set by the `headerText`.\n\t * @default \"H3\"\n\t * @public\n\t * @since 2.10.0\n\t*/\n\t@property()\n\theaderLevel: `${TitleLevel}` = \"H3\";\n\n\t/**\n\t * Defines column span of the component,\n\t * e.g how many columns the group should span to.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ type: Number })\n\tcolumnSpan?: number;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.16.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the items of the component.\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t})\n\titems!: Array<FormItem>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Number })\n\tcolsS = 1;\n\n\t@property({ type: Number })\n\tcolsM = 1;\n\n\t@property({ type: Number })\n\tcolsL = 1;\n\n\t@property({ type: Number })\n\tcolsXl = 1;\n\n\t@property()\n\titemSpacing: `${FormItemSpacing}` = \"Normal\";\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tthis.processFormItems();\n\t}\n\n\tprocessFormItems() {\n\t\tthis.items.forEach((item: FormItem) => {\n\t\t\titem.itemSpacing = this.itemSpacing;\n\t\t});\n\t}\n\n\tgetEffectiveAccessibleName(index: number) {\n\t\tif (this.accessibleName) {\n\t\t\treturn this.accessibleName;\n\t\t}\n\n\t\tif (this.headerText) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn FormGroup.i18nBundle.getText(FORM_GROUP_ACCESSIBLE_NAME, index + 1);\n\t}\n\n\tget effectiveАccessibleNameRef() {\n\t\treturn this.headerText ? `${this._id}-group-header-text` : undefined;\n\t}\n\n\tget isGroup() {\n\t\treturn true;\n\t}\n}\n\nFormGroup.define();\n\nexport default FormGroup;\n"]}
@@ -14,7 +14,7 @@ export default function FormTemplate() {
14
14
  [`ui5-form-column-spanXL-${groupItem.colsXl}`]: true,
15
15
  [`ui5-form-column-spanM-${groupItem.colsM}`]: true,
16
16
  [`ui5-form-column-spanS-${groupItem.colsS}`]: true,
17
- }, part: "column", children: _jsxs("div", { class: "ui5-form-group", role: "form", "aria-labelledby": groupItemInfo.accessibleNameRef, children: [groupItem.headerText &&
17
+ }, part: "column", children: _jsxs("div", { class: "ui5-form-group", role: "form", "aria-labelledby": groupItemInfo.accessibleNameRef, "aria-label": groupItemInfo.accessibleName, children: [groupItem.headerText &&
18
18
  _jsx("div", { class: "ui5-form-group-heading", children: _jsx(Title, { id: `${groupItem._id}-group-header-text`, level: groupItem.headerLevel, size: "H6", children: groupItem.headerText }) }), _jsx("div", { class: "ui5-form-group-layout", children: _jsx("slot", { name: groupItem._individualSlot }) })] }) }));
19
19
  }) })
20
20
  :
@@ -1 +1 @@
1
- {"version":3,"file":"FormTemplate.js","sourceRoot":"","sources":["../src/FormTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,UAAU,YAAY;IACnC,OAAO,CACN,eACC,KAAK,EAAC,eAAe,EACrB,IAAI,EAAE,IAAI,CAAC,uBAAuB,gBACtB,IAAI,CAAC,uBAAuB,qBACvB,IAAI,CAAC,0BAA0B,aAE/C,IAAI,CAAC,SAAS;gBACd,cAAK,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,QAAQ,YACxC,IAAI,CAAC,eAAe,CAAC,CAAC;wBACtB,eAAM,IAAI,EAAC,QAAQ,GAAQ;wBAC3B,CAAC;4BACD,KAAC,KAAK,IAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,YAAG,IAAI,CAAC,UAAU,GAAS,GAEpF,EAGP,cAAK,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,QAAQ,YAExC,IAAI,CAAC,aAAa,CAAC,CAAC;oBACnB,4BAEE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;4BACvC,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;4BAC1C,OAAO,CACN,cAAK,KAAK,EAAE;oCACX,iBAAiB,EAAE,IAAI;oCACvB,CAAC,yBAAyB,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;oCAClD,CAAC,0BAA0B,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI;oCACpD,CAAC,yBAAyB,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;oCAClD,CAAC,yBAAyB,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;iCAClD,EACD,IAAI,EAAC,QAAQ,YAEZ,eAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,MAAM,qBAAkB,aAAa,CAAC,iBAAiB,aACtF,SAAS,CAAC,UAAU;4CACrB,cAAK,KAAK,EAAC,wBAAwB,YAClC,KAAC,KAAK,IAAC,EAAE,EAAE,GAAG,SAAS,CAAC,GAAG,oBAAoB,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,EAAC,IAAI,YAAE,SAAS,CAAC,UAAU,GAAS,GAClH,EAGN,cAAK,KAAK,EAAC,uBAAuB,YACjC,eAAM,IAAI,EAAE,SAAS,CAAC,eAAe,GAAS,GACzC,IACD,GACD,CACN,CAAC;wBACH,CAAC,CACA,GACA;oBACH,CAAC;wBACD,4BAEE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gCAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gCAC3B,OAAO,CACN,cAAK,KAAK,EAAE;wCACX,eAAe,EAAE,IAAI;wCACrB,CAAC,sBAAsB,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS;qCACxE,YAEA,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,CACN,CAAC;4BACH,CAAC,CAAC,GAED,GAEA,IACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type Form from \"./Form.js\";\nimport Title from \"./Title.js\";\n\nexport default function FormTemplate(this: Form) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-form-root\"\n\t\t\trole={this.effectiveAccessibleRole}\n\t\t\taria-label={this.effectiveAccessibleName}\n\t\t\taria-labelledby={this.effectiveАccessibleNameRef}\n\t\t>\n\t\t\t{this.hasHeader &&\n\t\t\t\t<div class=\"ui5-form-header\" part=\"header\">\n\t\t\t\t\t{this.hasCustomHeader ?\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<Title id={`${this._id}-header-text`} level={this.headerLevel}>{this.headerText}</Title>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t<div class=\"ui5-form-layout\" part=\"layout\">\n\t\t\t\t{\n\t\t\t\t\tthis.hasGroupItems ?\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.groupItemsInfo.map(groupItemInfo => {\n\t\t\t\t\t\t\t\t\tconst groupItem = groupItemInfo.groupItem;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<div class={{\n\t\t\t\t\t\t\t\t\t\t\t\"ui5-form-column\": true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-column-spanL-${groupItem.colsL}`]: true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-column-spanXL-${groupItem.colsXl}`]: true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-column-spanM-${groupItem.colsM}`]: true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-column-spanS-${groupItem.colsS}`]: true,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tpart=\"column\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"ui5-form-group\" role=\"form\" aria-labelledby={groupItemInfo.accessibleNameRef}>\n\t\t\t\t\t\t\t\t\t\t\t\t{groupItem.headerText &&\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ui5-form-group-heading\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Title id={`${groupItem._id}-group-header-text`} level={groupItem.headerLevel} size=\"H6\">{groupItem.headerText}</Title>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.itemsInfo.map(itemInfo => {\n\t\t\t\t\t\t\t\t\tconst item = itemInfo.item;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<div class={{\n\t\t\t\t\t\t\t\t\t\t\t\"ui5-form-item\": true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-item-span-${item.columnSpan}`]: item.columnSpan !== undefined,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"FormTemplate.js","sourceRoot":"","sources":["../src/FormTemplate.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,UAAU,YAAY;IACnC,OAAO,CACN,eACC,KAAK,EAAC,eAAe,EACrB,IAAI,EAAE,IAAI,CAAC,uBAAuB,gBACtB,IAAI,CAAC,uBAAuB,qBACvB,IAAI,CAAC,0BAA0B,aAE/C,IAAI,CAAC,SAAS;gBACd,cAAK,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,QAAQ,YACxC,IAAI,CAAC,eAAe,CAAC,CAAC;wBACtB,eAAM,IAAI,EAAC,QAAQ,GAAQ;wBAC3B,CAAC;4BACD,KAAC,KAAK,IAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,YAAG,IAAI,CAAC,UAAU,GAAS,GAEpF,EAGP,cAAK,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,QAAQ,YAExC,IAAI,CAAC,aAAa,CAAC,CAAC;oBACnB,4BAEE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;4BACvC,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;4BAC1C,OAAO,CACN,cAAK,KAAK,EAAE;oCACX,iBAAiB,EAAE,IAAI;oCACvB,CAAC,yBAAyB,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;oCAClD,CAAC,0BAA0B,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI;oCACpD,CAAC,yBAAyB,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;oCAClD,CAAC,yBAAyB,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI;iCAClD,EACD,IAAI,EAAC,QAAQ,YAEZ,eAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,MAAM,qBAAkB,aAAa,CAAC,iBAAiB,gBAAc,aAAa,CAAC,cAAc,aAChI,SAAS,CAAC,UAAU;4CACrB,cAAK,KAAK,EAAC,wBAAwB,YAClC,KAAC,KAAK,IAAC,EAAE,EAAE,GAAG,SAAS,CAAC,GAAG,oBAAoB,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,IAAI,EAAC,IAAI,YAAE,SAAS,CAAC,UAAU,GAAS,GAClH,EAGN,cAAK,KAAK,EAAC,uBAAuB,YACjC,eAAM,IAAI,EAAE,SAAS,CAAC,eAAe,GAAS,GACzC,IACD,GACD,CACN,CAAC;wBACH,CAAC,CACA,GACA;oBACH,CAAC;wBACD,4BAEE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gCAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gCAC3B,OAAO,CACN,cAAK,KAAK,EAAE;wCACX,eAAe,EAAE,IAAI;wCACrB,CAAC,sBAAsB,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS;qCACxE,YAEA,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,CACN,CAAC;4BACH,CAAC,CAAC,GAED,GAEA,IACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type Form from \"./Form.js\";\nimport Title from \"./Title.js\";\n\nexport default function FormTemplate(this: Form) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-form-root\"\n\t\t\trole={this.effectiveAccessibleRole}\n\t\t\taria-label={this.effectiveAccessibleName}\n\t\t\taria-labelledby={this.effectiveАccessibleNameRef}\n\t\t>\n\t\t\t{this.hasHeader &&\n\t\t\t\t<div class=\"ui5-form-header\" part=\"header\">\n\t\t\t\t\t{this.hasCustomHeader ?\n\t\t\t\t\t\t<slot name=\"header\"></slot>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<Title id={`${this._id}-header-text`} level={this.headerLevel}>{this.headerText}</Title>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t<div class=\"ui5-form-layout\" part=\"layout\">\n\t\t\t\t{\n\t\t\t\t\tthis.hasGroupItems ?\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.groupItemsInfo.map(groupItemInfo => {\n\t\t\t\t\t\t\t\t\tconst groupItem = groupItemInfo.groupItem;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<div class={{\n\t\t\t\t\t\t\t\t\t\t\t\"ui5-form-column\": true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-column-spanL-${groupItem.colsL}`]: true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-column-spanXL-${groupItem.colsXl}`]: true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-column-spanM-${groupItem.colsM}`]: true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-column-spanS-${groupItem.colsS}`]: true,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tpart=\"column\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"ui5-form-group\" role=\"form\" aria-labelledby={groupItemInfo.accessibleNameRef} aria-label={groupItemInfo.accessibleName}>\n\t\t\t\t\t\t\t\t\t\t\t\t{groupItem.headerText &&\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ui5-form-group-heading\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Title id={`${groupItem._id}-group-header-text`} level={groupItem.headerLevel} size=\"H6\">{groupItem.headerText}</Title>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ui5-form-group-layout\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<slot name={groupItem._individualSlot}></slot>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t\t:\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.itemsInfo.map(itemInfo => {\n\t\t\t\t\t\t\t\t\tconst item = itemInfo.item;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<div class={{\n\t\t\t\t\t\t\t\t\t\t\t\"ui5-form-item\": true,\n\t\t\t\t\t\t\t\t\t\t\t[`ui5-form-item-span-${item.columnSpan}`]: item.columnSpan !== undefined,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -67,7 +67,6 @@ declare class MonthPicker extends CalendarPart implements ICalendarPicker {
67
67
  static i18nBundle: I18nBundle;
68
68
  get roleDescription(): string;
69
69
  onBeforeRendering(): void;
70
- onAfterRendering(): void;
71
70
  get rowSize(): 2 | 3;
72
71
  _buildMonths(): void;
73
72
  _getDisplayedSecondaryMonthText(timestamp: number): {
@@ -99,6 +98,12 @@ declare class MonthPicker extends CalendarPart implements ICalendarPicker {
99
98
  * @private
100
99
  */
101
100
  _onmouseover(e: MouseEvent): void;
101
+ /**
102
+ * Sets the focus reference to the month that was clicked with mousedown.
103
+ * @param e
104
+ * @private
105
+ */
106
+ _onmousedown(e: MouseEvent): void;
102
107
  /**
103
108
  * Modifies timestamp by a given amount of months and,
104
109
  * if necessary, loads the prev/next page.
@@ -64,11 +64,6 @@ let MonthPicker = MonthPicker_1 = class MonthPicker extends CalendarPart {
64
64
  onBeforeRendering() {
65
65
  this._buildMonths();
66
66
  }
67
- onAfterRendering() {
68
- if (!this._hidden) {
69
- this.focus();
70
- }
71
- }
72
67
  get rowSize() {
73
68
  return (this.secondaryCalendarType === CalendarType.Islamic && this.primaryCalendarType !== CalendarType.Islamic)
74
69
  || (this.secondaryCalendarType === CalendarType.Persian && this.primaryCalendarType !== CalendarType.Persian) ? 2 : 3;
@@ -236,6 +231,19 @@ let MonthPicker = MonthPicker_1 = class MonthPicker extends CalendarPart {
236
231
  this._secondTimestamp = this._getTimestampFromDom(hoveredItem);
237
232
  }
238
233
  }
234
+ /**
235
+ * Sets the focus reference to the month that was clicked with mousedown.
236
+ * @param e
237
+ * @private
238
+ */
239
+ _onmousedown(e) {
240
+ const target = e.target;
241
+ const clickedItem = target.closest(".ui5-mp-item");
242
+ if (clickedItem) {
243
+ const timestamp = this._getTimestampFromDom(clickedItem);
244
+ this._setTimestamp(timestamp);
245
+ }
246
+ }
239
247
  /**
240
248
  * Modifies timestamp by a given amount of months and,
241
249
  * if necessary, loads the prev/next page.
@@ -1 +1 @@
1
- {"version":3,"file":"MonthPicker.js","sourceRoot":"","sources":["../src/MonthPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport convertMonthNumbersToMonthNames from \"@ui5/webcomponents-localization/dist/dates/convertMonthNumbersToMonthNames.js\";\nimport transformDateToSecondaryType from \"@ui5/webcomponents-localization/dist/dates/transformDateToSecondaryType.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport {\n\tisEnter,\n\tisSpace,\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisPageUp,\n\tisPageDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tMONTH_PICKER_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type { ICalendarPicker } from \"./Calendar.js\";\n\n// Template\nimport MonthPickerTemplate from \"./MonthPickerTemplate.js\";\n\n// Styles\nimport monthPickerStyles from \"./generated/themes/MonthPicker.css.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\n\nconst isBetween = (x: number, num1: number, num2: number) => x > Math.min(num1, num2) && x < Math.max(num1, num2);\nconst PAGE_SIZE = 12; // total months on a single page\n\ntype Month = {\n\ttimestamp: string,\n\tfocusRef: boolean,\n\t_tabIndex: number,\n\tselected: boolean,\n\tariaSelected: boolean,\n\tname: string,\n\tnameInSecType: string,\n\tdisabled: boolean,\n\tariaDisabled: boolean | undefined,\n\tclasses: string,\n\tparts: string,\n}\n\ntype MonthInterval = Array<Array<Month>>;\n\ntype MonthPickerChangeEventDetail = {\n\tdates: Array<number>,\n\ttimestamp: number,\n}\n\ntype MonthPickerNavigateEventDetail = {\n\ttimestamp: number,\n}\n\n/**\n * Month picker component.\n * @class\n *\n * Displays months which can be selected.\n * @constructor\n * @extends CalendarPart\n * @private\n */\n@customElement({\n\ttag: \"ui5-monthpicker\",\n\ttemplate: MonthPickerTemplate,\n\tstyles: monthPickerStyles,\n})\n/**\n * Fired when the user selects a month via \"Space\", \"Enter\" or click.\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n/**\n * Fired when the timestamp changes - the user navigates with the keyboard or clicks with the mouse.\n * @since 1.0.0-rc.9\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\nclass MonthPicker extends CalendarPart implements ICalendarPicker {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\tchange: MonthPickerChangeEventDetail,\n\t\tnavigate: MonthPickerNavigateEventDetail,\n\t}\n\t/**\n\t * An array of UTC timestamps representing the selected date\n\t * or dates depending on the capabilities of the picker component.\n\t * @default []\n\t */\n\t@property({ type: Array })\n\tselectedDates: Array<number> = [];\n\n\t/**\n\t * Defines the type of selection used in the month picker component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables election of a single month.\n\t * - `CalendarSelectionMode.Range` - enables selection of a month range.\n\t *\n\t * Note that 'CalendarSelectionMode.Multiple` is not supported for Month Picker!\n\t * @default \"Single\"\n\t * @since 2.2.0\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t@property({ type: Array })\n\t_monthsInterval: MonthInterval = [];\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_hidden = false;\n\n\t/**\n\t * When selectionMode=\"Range\" and the first month in the range is selected, this is the currently hovered or focused month.\n\t *\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_secondTimestamp?: number;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget roleDescription() {\n\t\treturn MonthPicker.i18nBundle.getText(MONTH_PICKER_DESCRIPTION);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._buildMonths();\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\tget rowSize() {\n\t\treturn (this.secondaryCalendarType === CalendarType.Islamic && this.primaryCalendarType !== CalendarType.Islamic)\n\t\t\t|| (this.secondaryCalendarType === CalendarType.Persian && this.primaryCalendarType !== CalendarType.Persian) ? 2 : 3;\n\t}\n\n\t_buildMonths() {\n\t\tif (this._hidden) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tconst monthsNames = localeData.getMonthsStandAlone(\"wide\", this._primaryCalendarType);\n\n\t\tconst months: MonthInterval = [];\n\t\tconst calendarDate = this._calendarDate; // store the value of the expensive getter\n\t\tconst minDate = this._minDate; // store the value of the expensive getter\n\t\tconst maxDate = this._maxDate; // store the value of the expensive getter\n\t\tlet timestamp;\n\n\t\t/* eslint-disable no-loop-func */\n\t\tfor (let i = 0; i < 12; i++) {\n\t\t\tconst tempDate = new CalendarDate(calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setMonth(i);\n\n\t\t\t// If the current date of the current month is larger than this month, set the date to the last day of the previous month.\n\t\t\t// This is needed because the date object will automatically switch to the next month if larger date is set.\n\t\t\tif (tempDate.getMonth() !== i) {\n\t\t\t\ttempDate.setMonth(tempDate.getMonth() - 1);\n\t\t\t\ttempDate.setDate(this._calendarDate.getDate() - tempDate.getDate());\n\t\t\t}\n\n\t\t\ttimestamp = tempDate.valueOf() / 1000;\n\n\t\t\tconst isSelected = this.selectedDates.some(itemTimestamp => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(itemTimestamp * 1000, this._primaryCalendarType);\n\t\t\t\treturn date.getYear() === tempDate.getYear() && date.getMonth() === tempDate.getMonth();\n\t\t\t});\n\t\t\tconst isFocused = tempDate.getMonth() === calendarDate.getMonth();\n\t\t\tconst isDisabled = this._isOutOfSelectableRange(tempDate, minDate, maxDate);\n\t\t\tconst isSelectedBetween = this._isMonthInsideSelectionRange(timestamp);\n\n\t\t\tconst month: Month = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\t_tabIndex: isFocused ? 0 : -1,\n\t\t\t\tselected: isSelected || isSelectedBetween,\n\t\t\t\tariaSelected: isSelected || isSelectedBetween,\n\t\t\t\tname: monthsNames[i],\n\t\t\t\tnameInSecType: this.hasSecondaryCalendarType && this._getDisplayedSecondaryMonthText(timestamp).text,\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\tariaDisabled: isDisabled,\n\t\t\t\tclasses: \"ui5-mp-item\",\n\t\t\t\tparts: \"month-cell\",\n\t\t\t};\n\n\t\t\tif (isSelected) {\n\t\t\t\tmonth.classes += \" ui5-mp-item--selected\";\n\t\t\t\tmonth.parts += \" month-cell-selected\";\n\t\t\t}\n\n\t\t\tif (isSelectedBetween) {\n\t\t\t\tmonth.classes += \" ui5-mp-item--selected-between\";\n\t\t\t\tmonth.parts += \" month-cell-selected-between\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tmonth.classes += \" ui5-mp-item--disabled\";\n\t\t\t}\n\n\t\t\tconst quarterIndex = Math.floor(i / this.rowSize);\n\n\t\t\tif (months[quarterIndex]) {\n\t\t\t\tmonths[quarterIndex].push(month);\n\t\t\t} else {\n\t\t\t\tmonths[quarterIndex] = [month];\n\t\t\t}\n\t\t}\n\n\t\tthis._monthsInterval = months;\n\t}\n\n\t_getDisplayedSecondaryMonthText(timestamp: number) {\n\t\tconst monthsName = transformDateToSecondaryType(this._primaryCalendarType, this.secondaryCalendarType, timestamp);\n\t\treturn convertMonthNumbersToMonthNames(monthsName.firstDate.getMonth(), monthsName.lastDate.getMonth(), this.secondaryCalendarType);\n\t}\n\n\t/**\n\t * Returns true if month timestamp is inside the selection range.\n\t * @private\n\t */\n\t_isMonthInsideSelectionRange(timestamp: number): boolean {\n\t\tif (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Only one date selected - second is hovered or focused\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\treturn isBetween(timestamp, this.selectedDates[0], this.selectedDates[1]);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._selectMonth(e);\n\t\t} else if (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t} else if (isLeft(e)) {\n\t\t\tthis._modifyTimestampBy(-1);\n\t\t} else if (isRight(e)) {\n\t\t\tthis._modifyTimestampBy(1);\n\t\t} else if (isUp(e)) {\n\t\t\tthis._modifyTimestampBy(-this.rowSize);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._modifyTimestampBy(this.rowSize);\n\t\t} else if (isPageUp(e)) {\n\t\t\tthis._modifyTimestampBy(-PAGE_SIZE);\n\t\t} else if (isPageDown(e)) {\n\t\t\tthis._modifyTimestampBy(PAGE_SIZE);\n\t\t} else if (isHome(e) || isEnd(e)) {\n\t\t\tthis._onHomeOrEnd(isHome(e));\n\t\t} else if (isHomeCtrl(e)) {\n\t\t\tthis._setTimestamp(parseInt(this._monthsInterval[0][0].timestamp)); // first month of first row\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tthis._setTimestamp(parseInt(this._monthsInterval[PAGE_SIZE / this.rowSize - 1][this.rowSize - 1].timestamp)); // last month of last row\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onHomeOrEnd(homePressed: boolean) {\n\t\tthis._monthsInterval.forEach(row => {\n\t\t\tconst indexInRow = row.findIndex(item => CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000).getMonth() === this._calendarDate.getMonth());\n\t\t\tif (indexInRow !== -1) { // The current month is on this row\n\t\t\t\tconst index = homePressed ? 0 : this.rowSize - 1; // select the first (if Home) or last (if End) month on the row\n\t\t\t\tthis._setTimestamp(parseInt(row[index].timestamp));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets the timestamp to an absolute value.\n\t * @param value\n\t * @private\n\t */\n\t_setTimestamp(value: number) {\n\t\tthis._safelySetTimestamp(value);\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * In range selection, the currently focused or hovered month is considered the \"second day\".\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && (this.selectedDates.length === 1 || this.selectedDates.length === 2)) {\n\t\t\tthis._secondTimestamp = this.timestamp;\n\t\t}\n\t}\n\n\t/**\n\t * Set the hovered day as the \"_secondTimestamp\".\n\t *\n\t * @param e\n\t * @private\n\t */\n\t_onmouseover(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst hoveredItem = target.closest(\".ui5-mp-item\") as HTMLElement;\n\t\tif (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\n\t\t}\n\t}\n\n\t/**\n\t * Modifies timestamp by a given amount of months and,\n\t * if necessary, loads the prev/next page.\n\t * @param amount\n\t * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)\n\t * @private\n\t */\n\t_modifyTimestampBy(amount: number, preserveDate?: boolean) {\n\t\t// Modify the current timestamp\n\t\tthis._safelyModifyTimestampBy(amount, \"month\", preserveDate);\n\t\tthis._updateSecondTimestamp();\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._selectMonth(e);\n\t\t}\n\t}\n\n\t/**\n\t * Selects a month, when user made selection with mouse or using Space/Enter.\n\t * @param e\n\t * @private\n\t */\n\t_selectMonth(e: Event) {\n\t\te.preventDefault();\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (!target.classList.contains(\"ui5-mp-item\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestamp = this._getTimestampFromDom(target);\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis._updateSecondTimestamp();\n\t\tthis._updateSelectedDates(timestamp);\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp!,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_updateSelectedDates(timestamp: number) {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis.selectedDates = [this.selectedDates[0], timestamp];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectedDates = [timestamp];\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasPreviousPage(): boolean {\n\t\treturn this._calendarDate.getYear() !== this._minDate.getYear();\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasNextPage(): boolean {\n\t\treturn this._calendarDate.getYear() !== this._maxDate.getYear();\n\t}\n\n\t/**\n\t * Called by Calendar.js.\n\t *\n\t * **Note:** when the user presses the \"<\" button in the calendar header (same as \"PageUp\")\n\t * @protected\n\t */\n\t_showPreviousPage() {\n\t\tthis._modifyTimestampBy(-PAGE_SIZE, true);\n\t}\n\n\t/**\n\t * Called by Calendar.js\n\t * **Note:** when the user presses the \">\" button in the calendar header (same as \"PageDown\")\n\t * @protected\n\t */\n\t_showNextPage() {\n\t\tthis._modifyTimestampBy(PAGE_SIZE, true);\n\t}\n\n\t_isOutOfSelectableRange(date: CalendarDate, minDate: CalendarDate, maxDate: CalendarDate): boolean {\n\t\tconst month = date.getMonth();\n\t\tconst year = date.getYear();\n\t\tconst minYear = minDate.getYear();\n\t\tconst minMonth = minDate.getMonth();\n\t\tconst maxYear = maxDate.getYear();\n\t\tconst maxMonth = maxDate.getMonth();\n\n\t\treturn year < minYear || (year === minYear && month < minMonth) || year > maxYear || (year === maxYear && month > maxMonth);\n\t}\n}\n\nMonthPicker.define();\n\nexport default MonthPicker;\nexport type {\n\tMonthPickerNavigateEventDetail,\n\tMonthPickerChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"MonthPicker.js","sourceRoot":"","sources":["../src/MonthPicker.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport getCachedLocaleDataInstance from \"@ui5/webcomponents-localization/dist/getCachedLocaleDataInstance.js\";\nimport convertMonthNumbersToMonthNames from \"@ui5/webcomponents-localization/dist/dates/convertMonthNumbersToMonthNames.js\";\nimport transformDateToSecondaryType from \"@ui5/webcomponents-localization/dist/dates/transformDateToSecondaryType.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport {\n\tisEnter,\n\tisSpace,\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisPageUp,\n\tisPageDown,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getLocale from \"@ui5/webcomponents-base/dist/locale/getLocale.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n\tMONTH_PICKER_DESCRIPTION,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type { ICalendarPicker } from \"./Calendar.js\";\n\n// Template\nimport MonthPickerTemplate from \"./MonthPickerTemplate.js\";\n\n// Styles\nimport monthPickerStyles from \"./generated/themes/MonthPicker.css.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\n\nconst isBetween = (x: number, num1: number, num2: number) => x > Math.min(num1, num2) && x < Math.max(num1, num2);\nconst PAGE_SIZE = 12; // total months on a single page\n\ntype Month = {\n\ttimestamp: string,\n\tfocusRef: boolean,\n\t_tabIndex: number,\n\tselected: boolean,\n\tariaSelected: boolean,\n\tname: string,\n\tnameInSecType: string,\n\tdisabled: boolean,\n\tariaDisabled: boolean | undefined,\n\tclasses: string,\n\tparts: string,\n}\n\ntype MonthInterval = Array<Array<Month>>;\n\ntype MonthPickerChangeEventDetail = {\n\tdates: Array<number>,\n\ttimestamp: number,\n}\n\ntype MonthPickerNavigateEventDetail = {\n\ttimestamp: number,\n}\n\n/**\n * Month picker component.\n * @class\n *\n * Displays months which can be selected.\n * @constructor\n * @extends CalendarPart\n * @private\n */\n@customElement({\n\ttag: \"ui5-monthpicker\",\n\ttemplate: MonthPickerTemplate,\n\tstyles: monthPickerStyles,\n})\n/**\n * Fired when the user selects a month via \"Space\", \"Enter\" or click.\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n/**\n * Fired when the timestamp changes - the user navigates with the keyboard or clicks with the mouse.\n * @since 1.0.0-rc.9\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\nclass MonthPicker extends CalendarPart implements ICalendarPicker {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\tchange: MonthPickerChangeEventDetail,\n\t\tnavigate: MonthPickerNavigateEventDetail,\n\t}\n\t/**\n\t * An array of UTC timestamps representing the selected date\n\t * or dates depending on the capabilities of the picker component.\n\t * @default []\n\t */\n\t@property({ type: Array })\n\tselectedDates: Array<number> = [];\n\n\t/**\n\t * Defines the type of selection used in the month picker component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables election of a single month.\n\t * - `CalendarSelectionMode.Range` - enables selection of a month range.\n\t *\n\t * Note that 'CalendarSelectionMode.Multiple` is not supported for Month Picker!\n\t * @default \"Single\"\n\t * @since 2.2.0\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t@property({ type: Array })\n\t_monthsInterval: MonthInterval = [];\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_hidden = false;\n\n\t/**\n\t * When selectionMode=\"Range\" and the first month in the range is selected, this is the currently hovered or focused month.\n\t *\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_secondTimestamp?: number;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget roleDescription() {\n\t\treturn MonthPicker.i18nBundle.getText(MONTH_PICKER_DESCRIPTION);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._buildMonths();\n\t}\n\n\tget rowSize() {\n\t\treturn (this.secondaryCalendarType === CalendarType.Islamic && this.primaryCalendarType !== CalendarType.Islamic)\n\t\t\t|| (this.secondaryCalendarType === CalendarType.Persian && this.primaryCalendarType !== CalendarType.Persian) ? 2 : 3;\n\t}\n\n\t_buildMonths() {\n\t\tif (this._hidden) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst localeData = getCachedLocaleDataInstance(getLocale());\n\t\tconst monthsNames = localeData.getMonthsStandAlone(\"wide\", this._primaryCalendarType);\n\n\t\tconst months: MonthInterval = [];\n\t\tconst calendarDate = this._calendarDate; // store the value of the expensive getter\n\t\tconst minDate = this._minDate; // store the value of the expensive getter\n\t\tconst maxDate = this._maxDate; // store the value of the expensive getter\n\t\tlet timestamp;\n\n\t\t/* eslint-disable no-loop-func */\n\t\tfor (let i = 0; i < 12; i++) {\n\t\t\tconst tempDate = new CalendarDate(calendarDate, this._primaryCalendarType);\n\t\t\ttempDate.setMonth(i);\n\n\t\t\t// If the current date of the current month is larger than this month, set the date to the last day of the previous month.\n\t\t\t// This is needed because the date object will automatically switch to the next month if larger date is set.\n\t\t\tif (tempDate.getMonth() !== i) {\n\t\t\t\ttempDate.setMonth(tempDate.getMonth() - 1);\n\t\t\t\ttempDate.setDate(this._calendarDate.getDate() - tempDate.getDate());\n\t\t\t}\n\n\t\t\ttimestamp = tempDate.valueOf() / 1000;\n\n\t\t\tconst isSelected = this.selectedDates.some(itemTimestamp => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(itemTimestamp * 1000, this._primaryCalendarType);\n\t\t\t\treturn date.getYear() === tempDate.getYear() && date.getMonth() === tempDate.getMonth();\n\t\t\t});\n\t\t\tconst isFocused = tempDate.getMonth() === calendarDate.getMonth();\n\t\t\tconst isDisabled = this._isOutOfSelectableRange(tempDate, minDate, maxDate);\n\t\t\tconst isSelectedBetween = this._isMonthInsideSelectionRange(timestamp);\n\n\t\t\tconst month: Month = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\t_tabIndex: isFocused ? 0 : -1,\n\t\t\t\tselected: isSelected || isSelectedBetween,\n\t\t\t\tariaSelected: isSelected || isSelectedBetween,\n\t\t\t\tname: monthsNames[i],\n\t\t\t\tnameInSecType: this.hasSecondaryCalendarType && this._getDisplayedSecondaryMonthText(timestamp).text,\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\tariaDisabled: isDisabled,\n\t\t\t\tclasses: \"ui5-mp-item\",\n\t\t\t\tparts: \"month-cell\",\n\t\t\t};\n\n\t\t\tif (isSelected) {\n\t\t\t\tmonth.classes += \" ui5-mp-item--selected\";\n\t\t\t\tmonth.parts += \" month-cell-selected\";\n\t\t\t}\n\n\t\t\tif (isSelectedBetween) {\n\t\t\t\tmonth.classes += \" ui5-mp-item--selected-between\";\n\t\t\t\tmonth.parts += \" month-cell-selected-between\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tmonth.classes += \" ui5-mp-item--disabled\";\n\t\t\t}\n\n\t\t\tconst quarterIndex = Math.floor(i / this.rowSize);\n\n\t\t\tif (months[quarterIndex]) {\n\t\t\t\tmonths[quarterIndex].push(month);\n\t\t\t} else {\n\t\t\t\tmonths[quarterIndex] = [month];\n\t\t\t}\n\t\t}\n\n\t\tthis._monthsInterval = months;\n\t}\n\n\t_getDisplayedSecondaryMonthText(timestamp: number) {\n\t\tconst monthsName = transformDateToSecondaryType(this._primaryCalendarType, this.secondaryCalendarType, timestamp);\n\t\treturn convertMonthNumbersToMonthNames(monthsName.firstDate.getMonth(), monthsName.lastDate.getMonth(), this.secondaryCalendarType);\n\t}\n\n\t/**\n\t * Returns true if month timestamp is inside the selection range.\n\t * @private\n\t */\n\t_isMonthInsideSelectionRange(timestamp: number): boolean {\n\t\tif (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Only one date selected - second is hovered or focused\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\treturn isBetween(timestamp, this.selectedDates[0], this.selectedDates[1]);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._selectMonth(e);\n\t\t} else if (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t} else if (isLeft(e)) {\n\t\t\tthis._modifyTimestampBy(-1);\n\t\t} else if (isRight(e)) {\n\t\t\tthis._modifyTimestampBy(1);\n\t\t} else if (isUp(e)) {\n\t\t\tthis._modifyTimestampBy(-this.rowSize);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._modifyTimestampBy(this.rowSize);\n\t\t} else if (isPageUp(e)) {\n\t\t\tthis._modifyTimestampBy(-PAGE_SIZE);\n\t\t} else if (isPageDown(e)) {\n\t\t\tthis._modifyTimestampBy(PAGE_SIZE);\n\t\t} else if (isHome(e) || isEnd(e)) {\n\t\t\tthis._onHomeOrEnd(isHome(e));\n\t\t} else if (isHomeCtrl(e)) {\n\t\t\tthis._setTimestamp(parseInt(this._monthsInterval[0][0].timestamp)); // first month of first row\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tthis._setTimestamp(parseInt(this._monthsInterval[PAGE_SIZE / this.rowSize - 1][this.rowSize - 1].timestamp)); // last month of last row\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onHomeOrEnd(homePressed: boolean) {\n\t\tthis._monthsInterval.forEach(row => {\n\t\t\tconst indexInRow = row.findIndex(item => CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000).getMonth() === this._calendarDate.getMonth());\n\t\t\tif (indexInRow !== -1) { // The current month is on this row\n\t\t\t\tconst index = homePressed ? 0 : this.rowSize - 1; // select the first (if Home) or last (if End) month on the row\n\t\t\t\tthis._setTimestamp(parseInt(row[index].timestamp));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Sets the timestamp to an absolute value.\n\t * @param value\n\t * @private\n\t */\n\t_setTimestamp(value: number) {\n\t\tthis._safelySetTimestamp(value);\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t/**\n\t * In range selection, the currently focused or hovered month is considered the \"second day\".\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && (this.selectedDates.length === 1 || this.selectedDates.length === 2)) {\n\t\t\tthis._secondTimestamp = this.timestamp;\n\t\t}\n\t}\n\n\t/**\n\t * Set the hovered day as the \"_secondTimestamp\".\n\t *\n\t * @param e\n\t * @private\n\t */\n\t_onmouseover(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst hoveredItem = target.closest(\".ui5-mp-item\") as HTMLElement;\n\t\tif (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\n\t\t}\n\t}\n\n\t/**\n\t * Sets the focus reference to the month that was clicked with mousedown.\n\t * @param e\n\t * @private\n\t */\n\t_onmousedown(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst clickedItem = target.closest(\".ui5-mp-item\") as HTMLElement;\n\n\t\tif (clickedItem) {\n\t\t\tconst timestamp = this._getTimestampFromDom(clickedItem);\n\t\t\tthis._setTimestamp(timestamp);\n\t\t}\n\t}\n\n\t/**\n\t * Modifies timestamp by a given amount of months and,\n\t * if necessary, loads the prev/next page.\n\t * @param amount\n\t * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)\n\t * @private\n\t */\n\t_modifyTimestampBy(amount: number, preserveDate?: boolean) {\n\t\t// Modify the current timestamp\n\t\tthis._safelyModifyTimestampBy(amount, \"month\", preserveDate);\n\t\tthis._updateSecondTimestamp();\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._selectMonth(e);\n\t\t}\n\t}\n\n\t/**\n\t * Selects a month, when user made selection with mouse or using Space/Enter.\n\t * @param e\n\t * @private\n\t */\n\t_selectMonth(e: Event) {\n\t\te.preventDefault();\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (!target.classList.contains(\"ui5-mp-item\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestamp = this._getTimestampFromDom(target);\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis._updateSecondTimestamp();\n\t\tthis._updateSelectedDates(timestamp);\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp!,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_updateSelectedDates(timestamp: number) {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis.selectedDates = [this.selectedDates[0], timestamp];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectedDates = [timestamp];\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasPreviousPage(): boolean {\n\t\treturn this._calendarDate.getYear() !== this._minDate.getYear();\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasNextPage(): boolean {\n\t\treturn this._calendarDate.getYear() !== this._maxDate.getYear();\n\t}\n\n\t/**\n\t * Called by Calendar.js.\n\t *\n\t * **Note:** when the user presses the \"<\" button in the calendar header (same as \"PageUp\")\n\t * @protected\n\t */\n\t_showPreviousPage() {\n\t\tthis._modifyTimestampBy(-PAGE_SIZE, true);\n\t}\n\n\t/**\n\t * Called by Calendar.js\n\t * **Note:** when the user presses the \">\" button in the calendar header (same as \"PageDown\")\n\t * @protected\n\t */\n\t_showNextPage() {\n\t\tthis._modifyTimestampBy(PAGE_SIZE, true);\n\t}\n\n\t_isOutOfSelectableRange(date: CalendarDate, minDate: CalendarDate, maxDate: CalendarDate): boolean {\n\t\tconst month = date.getMonth();\n\t\tconst year = date.getYear();\n\t\tconst minYear = minDate.getYear();\n\t\tconst minMonth = minDate.getMonth();\n\t\tconst maxYear = maxDate.getYear();\n\t\tconst maxMonth = maxDate.getMonth();\n\n\t\treturn year < minYear || (year === minYear && month < minMonth) || year > maxYear || (year === maxYear && month > maxMonth);\n\t}\n}\n\nMonthPicker.define();\n\nexport default MonthPicker;\nexport type {\n\tMonthPickerNavigateEventDetail,\n\tMonthPickerChangeEventDetail,\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  export default function MonthPickerTemplate() {
3
- return (_jsx("div", { class: "ui5-mp-root", part: "month-picker-root", role: "grid", "aria-roledescription": this.roleDescription, "aria-readonly": "false", "aria-multiselectable": "false", onMouseOver: this._onmouseover, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._selectMonth, children: this._monthsInterval.map(months => _jsx("div", { role: "row", class: "ui5-mp-quarter", children: months.map(month => _jsxs("div", { "data-sap-timestamp": month.timestamp, tabindex: month._tabIndex, "data-sap-focus-ref": month.focusRef ? "true" : undefined, class: month.classes, part: month.parts, role: "gridcell", "aria-selected": month.ariaSelected, "aria-disabled": month.ariaDisabled, children: [_jsx("span", { class: "ui5-dp-monthtext", children: month.name }), month.nameInSecType &&
3
+ return (_jsx("div", { class: "ui5-mp-root", part: "month-picker-root", role: "grid", "aria-roledescription": this.roleDescription, "aria-readonly": "false", "aria-multiselectable": "false", onMouseOver: this._onmouseover, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, onClick: this._selectMonth, onMouseDown: this._onmousedown, children: this._monthsInterval.map(months => _jsx("div", { role: "row", class: "ui5-mp-quarter", children: months.map(month => _jsxs("div", { "data-sap-timestamp": month.timestamp, tabindex: month._tabIndex, "data-sap-focus-ref": month.focusRef ? "true" : undefined, class: month.classes, part: month.parts, role: "gridcell", "aria-selected": month.ariaSelected, "aria-disabled": month.ariaDisabled, children: [_jsx("span", { class: "ui5-dp-monthtext", children: month.name }), month.nameInSecType &&
4
4
  _jsx("span", { class: "ui5-dp-monthtext ui5-dp-monthsectext", children: month.nameInSecType })] })) })) }));
5
5
  }
6
6
  //# sourceMappingURL=MonthPickerTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonthPickerTemplate.js","sourceRoot":"","sources":["../src/MonthPickerTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,cACC,KAAK,EAAC,aAAa,EACnB,IAAI,EAAC,mBAAmB,EACxB,IAAI,EAAC,MAAM,0BACW,IAAI,CAAC,eAAe,mBAC5B,OAAO,0BACA,OAAO,EAC5B,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,OAAO,EAAE,IAAI,CAAC,YAAY,YAEzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAClC,cAAK,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,gBAAgB,YAEpC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACnB,qCACqB,KAAK,CAAC,SAAS,EACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,wBACL,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACvD,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,IAAI,EAAE,KAAK,CAAC,KAAK,EACjB,IAAI,EAAC,UAAU,mBACA,KAAK,CAAC,YAAY,mBAClB,KAAK,CAAC,YAAY,aAEjC,eAAM,KAAK,EAAC,kBAAkB,YAC5B,KAAK,CAAC,IAAI,GACL,EAEN,KAAK,CAAC,aAAa;wBACrB,eAAM,KAAK,EAAC,sCAAsC,YAChD,KAAK,CAAC,aAAa,GACd,IAED,CACN,GACI,CACN,GACI,CAAC,CAAC;AACV,CAAC","sourcesContent":["import type MonthPicker from \"./MonthPicker.js\";\n\nexport default function MonthPickerTemplate(this: MonthPicker) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-mp-root\"\n\t\t\tpart=\"month-picker-root\"\n\t\t\trole=\"grid\"\n\t\t\taria-roledescription={this.roleDescription}\n\t\t\taria-readonly=\"false\"\n\t\t\taria-multiselectable=\"false\"\n\t\t\tonMouseOver={this._onmouseover}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tonClick={this._selectMonth}\n\t\t>\n\t\t\t{this._monthsInterval.map(months =>\n\t\t\t\t<div role=\"row\" class=\"ui5-mp-quarter\">\n\n\t\t\t\t\t{months.map(month =>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-sap-timestamp={month.timestamp}\n\t\t\t\t\t\t\ttabindex={month._tabIndex}\n\t\t\t\t\t\t\tdata-sap-focus-ref={month.focusRef ? \"true\" : undefined}\n\t\t\t\t\t\t\tclass={month.classes}\n\t\t\t\t\t\t\tpart={month.parts}\n\t\t\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\t\t\taria-selected={month.ariaSelected}\n\t\t\t\t\t\t\taria-disabled={month.ariaDisabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"ui5-dp-monthtext\">\n\t\t\t\t\t\t\t\t{month.name}\n\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t{month.nameInSecType &&\n\t\t\t\t\t\t<span class=\"ui5-dp-monthtext ui5-dp-monthsectext\">\n\t\t\t\t\t\t\t{month.nameInSecType}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>);\n}\n"]}
1
+ {"version":3,"file":"MonthPickerTemplate.js","sourceRoot":"","sources":["../src/MonthPickerTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,mBAAmB;IAC1C,OAAO,CACN,cACC,KAAK,EAAC,aAAa,EACnB,IAAI,EAAC,mBAAmB,EACxB,IAAI,EAAC,MAAM,0BACW,IAAI,CAAC,eAAe,mBAC5B,OAAO,0BACA,OAAO,EAC5B,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,WAAW,EAAE,IAAI,CAAC,YAAY,YAE7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAClC,cAAK,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,gBAAgB,YAEpC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACnB,qCACqB,KAAK,CAAC,SAAS,EACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,wBACL,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACvD,KAAK,EAAE,KAAK,CAAC,OAAO,EACpB,IAAI,EAAE,KAAK,CAAC,KAAK,EACjB,IAAI,EAAC,UAAU,mBACA,KAAK,CAAC,YAAY,mBAClB,KAAK,CAAC,YAAY,aAEjC,eAAM,KAAK,EAAC,kBAAkB,YAC5B,KAAK,CAAC,IAAI,GACL,EAEN,KAAK,CAAC,aAAa;wBACrB,eAAM,KAAK,EAAC,sCAAsC,YAChD,KAAK,CAAC,aAAa,GACd,IAED,CACN,GACI,CACN,GACI,CAAC,CAAC;AACV,CAAC","sourcesContent":["import type MonthPicker from \"./MonthPicker.js\";\n\nexport default function MonthPickerTemplate(this: MonthPicker) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-mp-root\"\n\t\t\tpart=\"month-picker-root\"\n\t\t\trole=\"grid\"\n\t\t\taria-roledescription={this.roleDescription}\n\t\t\taria-readonly=\"false\"\n\t\t\taria-multiselectable=\"false\"\n\t\t\tonMouseOver={this._onmouseover}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t\tonClick={this._selectMonth}\n\t\t\tonMouseDown={this._onmousedown}\n\t\t>\n\t\t\t{this._monthsInterval.map(months =>\n\t\t\t\t<div role=\"row\" class=\"ui5-mp-quarter\">\n\n\t\t\t\t\t{months.map(month =>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-sap-timestamp={month.timestamp}\n\t\t\t\t\t\t\ttabindex={month._tabIndex}\n\t\t\t\t\t\t\tdata-sap-focus-ref={month.focusRef ? \"true\" : undefined}\n\t\t\t\t\t\t\tclass={month.classes}\n\t\t\t\t\t\t\tpart={month.parts}\n\t\t\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\t\t\taria-selected={month.ariaSelected}\n\t\t\t\t\t\t\taria-disabled={month.ariaDisabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"ui5-dp-monthtext\">\n\t\t\t\t\t\t\t\t{month.name}\n\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t{month.nameInSecType &&\n\t\t\t\t\t\t<span class=\"ui5-dp-monthtext ui5-dp-monthsectext\">\n\t\t\t\t\t\t\t{month.nameInSecType}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>);\n}\n"]}
@@ -127,7 +127,7 @@ let MultiInput = MultiInput_1 = class MultiInput extends Input {
127
127
  this._skipOpenSuggestions = true; // Prevent input focus when navigating through the tokens
128
128
  return this._focusFirstToken(e);
129
129
  }
130
- if (isEnter(e)) {
130
+ if (isEnter(e) && !!this._internals.form) {
131
131
  e.preventDefault();
132
132
  }
133
133
  if (isLeft(e)) {