@ui5/webcomponents 2.11.0-rc.2 → 2.11.0-rc.4

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 (843) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Assets-node.d.ts +16 -0
  4. package/dist/Assets-node.js +19 -0
  5. package/dist/Assets-node.js.map +1 -0
  6. package/dist/Avatar.d.ts +4 -0
  7. package/dist/Avatar.js +9 -4
  8. package/dist/Avatar.js.map +1 -1
  9. package/dist/Breadcrumbs.js +2 -2
  10. package/dist/Breadcrumbs.js.map +1 -1
  11. package/dist/Calendar.d.ts +31 -8
  12. package/dist/Calendar.js +100 -26
  13. package/dist/Calendar.js.map +1 -1
  14. package/dist/CalendarHeaderTemplate.js +1 -1
  15. package/dist/CalendarHeaderTemplate.js.map +1 -1
  16. package/dist/CalendarTemplate.js +3 -1
  17. package/dist/CalendarTemplate.js.map +1 -1
  18. package/dist/CheckBoxTemplate.js +1 -1
  19. package/dist/CheckBoxTemplate.js.map +1 -1
  20. package/dist/ComboBox.d.ts +1 -0
  21. package/dist/ComboBox.js +4 -1
  22. package/dist/ComboBox.js.map +1 -1
  23. package/dist/ComboBoxPopoverTemplate.js +1 -1
  24. package/dist/ComboBoxPopoverTemplate.js.map +1 -1
  25. package/dist/DynamicDateRange.d.ts +133 -0
  26. package/dist/DynamicDateRange.js +291 -0
  27. package/dist/DynamicDateRange.js.map +1 -0
  28. package/dist/DynamicDateRangeInputTemplate.d.ts +2 -0
  29. package/dist/DynamicDateRangeInputTemplate.js +13 -0
  30. package/dist/DynamicDateRangeInputTemplate.js.map +1 -0
  31. package/dist/DynamicDateRangePopoverTemplate.d.ts +2 -0
  32. package/dist/DynamicDateRangePopoverTemplate.js +18 -0
  33. package/dist/DynamicDateRangePopoverTemplate.js.map +1 -0
  34. package/dist/DynamicDateRangeTemplate.d.ts +2 -0
  35. package/dist/DynamicDateRangeTemplate.js +9 -0
  36. package/dist/DynamicDateRangeTemplate.js.map +1 -0
  37. package/dist/Icon.js +2 -2
  38. package/dist/Icon.js.map +1 -1
  39. package/dist/Input.d.ts +1 -0
  40. package/dist/Input.js +4 -1
  41. package/dist/Input.js.map +1 -1
  42. package/dist/Tab.d.ts +2 -1
  43. package/dist/Tab.js +2 -1
  44. package/dist/Tab.js.map +1 -1
  45. package/dist/TabContainer.js +2 -2
  46. package/dist/TabContainer.js.map +1 -1
  47. package/dist/Table.d.ts +0 -6
  48. package/dist/Table.js +3 -6
  49. package/dist/Table.js.map +1 -1
  50. package/dist/TableCell.d.ts +0 -1
  51. package/dist/TableCell.js +0 -1
  52. package/dist/TableCell.js.map +1 -1
  53. package/dist/TableGrowing.d.ts +0 -1
  54. package/dist/TableGrowing.js +0 -1
  55. package/dist/TableGrowing.js.map +1 -1
  56. package/dist/TableHeaderCell.d.ts +0 -1
  57. package/dist/TableHeaderCell.js +0 -1
  58. package/dist/TableHeaderCell.js.map +1 -1
  59. package/dist/TableHeaderCellActionAI.d.ts +0 -1
  60. package/dist/TableHeaderCellActionAI.js +0 -1
  61. package/dist/TableHeaderCellActionAI.js.map +1 -1
  62. package/dist/TableHeaderRow.d.ts +0 -1
  63. package/dist/TableHeaderRow.js +0 -1
  64. package/dist/TableHeaderRow.js.map +1 -1
  65. package/dist/TableRow.d.ts +1 -2
  66. package/dist/TableRow.js +9 -5
  67. package/dist/TableRow.js.map +1 -1
  68. package/dist/TableRowAction.d.ts +0 -1
  69. package/dist/TableRowAction.js +0 -1
  70. package/dist/TableRowAction.js.map +1 -1
  71. package/dist/TableRowActionNavigation.d.ts +0 -1
  72. package/dist/TableRowActionNavigation.js +0 -1
  73. package/dist/TableRowActionNavigation.js.map +1 -1
  74. package/dist/TableSelection.d.ts +1 -1
  75. package/dist/TableSelection.js +1 -1
  76. package/dist/TableSelection.js.map +1 -1
  77. package/dist/TableSelectionBase.d.ts +9 -2
  78. package/dist/TableSelectionBase.js +14 -3
  79. package/dist/TableSelectionBase.js.map +1 -1
  80. package/dist/TableSelectionMulti.d.ts +0 -1
  81. package/dist/TableSelectionMulti.js +0 -5
  82. package/dist/TableSelectionMulti.js.map +1 -1
  83. package/dist/Tokenizer.d.ts +2 -0
  84. package/dist/Tokenizer.js +7 -1
  85. package/dist/Tokenizer.js.map +1 -1
  86. package/dist/TokenizerPopoverTemplate.js +1 -1
  87. package/dist/TokenizerPopoverTemplate.js.map +1 -1
  88. package/dist/Toolbar.d.ts +3 -22
  89. package/dist/Toolbar.js +12 -45
  90. package/dist/Toolbar.js.map +1 -1
  91. package/dist/ToolbarButton.d.ts +10 -11
  92. package/dist/ToolbarButton.js +14 -23
  93. package/dist/ToolbarButton.js.map +1 -1
  94. package/dist/ToolbarButtonTemplate.js +2 -3
  95. package/dist/ToolbarButtonTemplate.js.map +1 -1
  96. package/dist/ToolbarItem.d.ts +13 -17
  97. package/dist/ToolbarItem.js +18 -22
  98. package/dist/ToolbarItem.js.map +1 -1
  99. package/dist/ToolbarSelect.d.ts +0 -4
  100. package/dist/ToolbarSelect.js +5 -9
  101. package/dist/ToolbarSelect.js.map +1 -1
  102. package/dist/ToolbarSelectTemplate.js +1 -1
  103. package/dist/ToolbarSelectTemplate.js.map +1 -1
  104. package/dist/ToolbarSeparator.d.ts +0 -4
  105. package/dist/ToolbarSeparator.js +6 -9
  106. package/dist/ToolbarSeparator.js.map +1 -1
  107. package/dist/ToolbarSpacer.d.ts +0 -3
  108. package/dist/ToolbarSpacer.js +2 -9
  109. package/dist/ToolbarSpacer.js.map +1 -1
  110. package/dist/ToolbarTemplate.js +15 -3
  111. package/dist/ToolbarTemplate.js.map +1 -1
  112. package/dist/Tree.js +20 -2
  113. package/dist/Tree.js.map +1 -1
  114. package/dist/YearPicker.d.ts +2 -3
  115. package/dist/YearPicker.js +7 -33
  116. package/dist/YearPicker.js.map +1 -1
  117. package/dist/YearRangePicker.d.ts +144 -0
  118. package/dist/YearRangePicker.js +418 -0
  119. package/dist/YearRangePicker.js.map +1 -0
  120. package/dist/YearRangePickerTemplate.d.ts +2 -0
  121. package/dist/YearRangePickerTemplate.js +6 -0
  122. package/dist/YearRangePickerTemplate.js.map +1 -0
  123. package/dist/bundle.esm.js +6 -0
  124. package/dist/bundle.esm.js.map +1 -1
  125. package/dist/css/themes/Avatar.css +1 -1
  126. package/dist/css/themes/AvatarGroup.css +1 -1
  127. package/dist/css/themes/Bar.css +1 -1
  128. package/dist/css/themes/Breadcrumbs.css +1 -1
  129. package/dist/css/themes/BusyIndicator.css +1 -1
  130. package/dist/css/themes/Button.css +1 -1
  131. package/dist/css/themes/ButtonBadge.css +1 -1
  132. package/dist/css/themes/Calendar.css +1 -1
  133. package/dist/css/themes/CalendarHeader.css +1 -1
  134. package/dist/css/themes/CalendarLegend.css +1 -1
  135. package/dist/css/themes/CalendarLegendItem.css +1 -1
  136. package/dist/css/themes/Card.css +1 -1
  137. package/dist/css/themes/CardHeader.css +1 -1
  138. package/dist/css/themes/Carousel.css +1 -1
  139. package/dist/css/themes/CheckBox.css +1 -1
  140. package/dist/css/themes/ColorPalette.css +1 -1
  141. package/dist/css/themes/ColorPaletteItem.css +1 -1
  142. package/dist/css/themes/ColorPalettePopover.css +1 -1
  143. package/dist/css/themes/ColorPicker.css +1 -1
  144. package/dist/css/themes/ComboBox.css +1 -1
  145. package/dist/css/themes/ComboBoxItem.css +1 -1
  146. package/dist/css/themes/DatePicker.css +1 -1
  147. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  148. package/dist/css/themes/DayPicker.css +1 -1
  149. package/dist/css/themes/Dialog.css +1 -1
  150. package/dist/css/themes/DynamicDateRange.css +1 -0
  151. package/dist/css/themes/DynamicDateRangePopover.css +1 -0
  152. package/dist/css/themes/FileUploader.css +1 -1
  153. package/dist/css/themes/Form.css +1 -1
  154. package/dist/css/themes/FormItem.css +1 -1
  155. package/dist/css/themes/FormItemSpan.css +1 -1
  156. package/dist/css/themes/GrowingButton.css +1 -1
  157. package/dist/css/themes/Icon.css +1 -1
  158. package/dist/css/themes/Input.css +1 -1
  159. package/dist/css/themes/InputIcon.css +1 -1
  160. package/dist/css/themes/InputSharedStyles.css +1 -1
  161. package/dist/css/themes/Link.css +1 -1
  162. package/dist/css/themes/List.css +1 -1
  163. package/dist/css/themes/ListItem.css +1 -1
  164. package/dist/css/themes/ListItemBase.css +1 -1
  165. package/dist/css/themes/ListItemCustom.css +1 -1
  166. package/dist/css/themes/ListItemGroup.css +1 -1
  167. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  168. package/dist/css/themes/ListItemIcon.css +1 -1
  169. package/dist/css/themes/Menu.css +1 -1
  170. package/dist/css/themes/MenuItem.css +1 -1
  171. package/dist/css/themes/MessageStrip.css +1 -1
  172. package/dist/css/themes/MonthPicker.css +1 -1
  173. package/dist/css/themes/MultiComboBox.css +1 -1
  174. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  175. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  176. package/dist/css/themes/MultiInput.css +1 -1
  177. package/dist/css/themes/OptionBase.css +1 -1
  178. package/dist/css/themes/Panel.css +1 -1
  179. package/dist/css/themes/Popover.css +1 -1
  180. package/dist/css/themes/PopupsCommon.css +1 -1
  181. package/dist/css/themes/ProgressIndicator.css +1 -1
  182. package/dist/css/themes/RadioButton.css +1 -1
  183. package/dist/css/themes/RangeSlider.css +1 -1
  184. package/dist/css/themes/RatingIndicator.css +1 -1
  185. package/dist/css/themes/ResponsivePopover.css +1 -1
  186. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  187. package/dist/css/themes/SegmentedButton.css +1 -1
  188. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  189. package/dist/css/themes/Select.css +1 -1
  190. package/dist/css/themes/SliderBase.css +1 -1
  191. package/dist/css/themes/SplitButton.css +1 -1
  192. package/dist/css/themes/StepInput.css +1 -1
  193. package/dist/css/themes/SuggestionItem.css +1 -1
  194. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  195. package/dist/css/themes/Switch.css +1 -1
  196. package/dist/css/themes/TabContainer.css +1 -1
  197. package/dist/css/themes/TabInOverflow.css +1 -1
  198. package/dist/css/themes/TabInStrip.css +1 -1
  199. package/dist/css/themes/TabSemanticIcon.css +1 -1
  200. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  201. package/dist/css/themes/TableCellBase.css +1 -1
  202. package/dist/css/themes/TableHeaderRow.css +1 -1
  203. package/dist/css/themes/TableRow.css +1 -1
  204. package/dist/css/themes/TableRowActionBase.css +1 -1
  205. package/dist/css/themes/TableRowBase.css +1 -1
  206. package/dist/css/themes/Tag.css +1 -1
  207. package/dist/css/themes/Text.css +1 -1
  208. package/dist/css/themes/TextArea.css +1 -1
  209. package/dist/css/themes/TimePicker.css +1 -1
  210. package/dist/css/themes/Toast.css +1 -1
  211. package/dist/css/themes/ToggleButton.css +1 -1
  212. package/dist/css/themes/Token.css +1 -1
  213. package/dist/css/themes/Tokenizer.css +1 -1
  214. package/dist/css/themes/TokenizerPopover.css +1 -1
  215. package/dist/css/themes/Toolbar.css +1 -1
  216. package/dist/css/themes/ToolbarPopover.css +1 -1
  217. package/dist/css/themes/ToolbarSelect.css +1 -1
  218. package/dist/css/themes/ToolbarSeparator.css +1 -0
  219. package/dist/css/themes/TreeItem.css +1 -1
  220. package/dist/css/themes/ValueStateMessage.css +1 -1
  221. package/dist/css/themes/YearPicker.css +1 -1
  222. package/dist/css/themes/YearRangePicker.css +1 -0
  223. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  224. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  225. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  226. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  227. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  228. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  229. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  230. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  231. package/dist/custom-elements-internal.json +523 -17
  232. package/dist/custom-elements.json +414 -8
  233. package/dist/dynamic-date-range-options/DateRange.d.ts +23 -0
  234. package/dist/dynamic-date-range-options/DateRange.js +71 -0
  235. package/dist/dynamic-date-range-options/DateRange.js.map +1 -0
  236. package/dist/dynamic-date-range-options/DateRangeTemplate.d.ts +2 -0
  237. package/dist/dynamic-date-range-options/DateRangeTemplate.js +11 -0
  238. package/dist/dynamic-date-range-options/DateRangeTemplate.js.map +1 -0
  239. package/dist/dynamic-date-range-options/SingleDate.d.ts +23 -0
  240. package/dist/dynamic-date-range-options/SingleDate.js +67 -0
  241. package/dist/dynamic-date-range-options/SingleDate.js.map +1 -0
  242. package/dist/dynamic-date-range-options/SingleDateTemplate.d.ts +2 -0
  243. package/dist/dynamic-date-range-options/SingleDateTemplate.js +7 -0
  244. package/dist/dynamic-date-range-options/SingleDateTemplate.js.map +1 -0
  245. package/dist/dynamic-date-range-options/Today.d.ts +17 -0
  246. package/dist/dynamic-date-range-options/Today.js +37 -0
  247. package/dist/dynamic-date-range-options/Today.js.map +1 -0
  248. package/dist/dynamic-date-range-options/Tomorrow.d.ts +17 -0
  249. package/dist/dynamic-date-range-options/Tomorrow.js +37 -0
  250. package/dist/dynamic-date-range-options/Tomorrow.js.map +1 -0
  251. package/dist/dynamic-date-range-options/Yesterday.d.ts +17 -0
  252. package/dist/dynamic-date-range-options/Yesterday.js +37 -0
  253. package/dist/dynamic-date-range-options/Yesterday.js.map +1 -0
  254. package/dist/dynamic-date-range-options/toDates.d.ts +7 -0
  255. package/dist/dynamic-date-range-options/toDates.js +41 -0
  256. package/dist/dynamic-date-range-options/toDates.js.map +1 -0
  257. package/dist/features/InputSuggestionsTemplate.js +1 -1
  258. package/dist/features/InputSuggestionsTemplate.js.map +1 -1
  259. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  260. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  261. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  262. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  263. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  264. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  265. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  266. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  267. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  268. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  269. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  270. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  271. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  272. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  273. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  274. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  275. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  276. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  277. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  278. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  279. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  280. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  281. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  282. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  283. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  284. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  285. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  286. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  287. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  288. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  289. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  290. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  291. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  292. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  293. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  294. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  295. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  296. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  297. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  298. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  299. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  300. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  301. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  302. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  303. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  304. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  305. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  306. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  307. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  308. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  309. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  310. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  311. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  312. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  313. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  314. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  315. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  316. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  317. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  318. package/dist/generated/i18n/i18n-defaults.d.ts +14 -1
  319. package/dist/generated/i18n/i18n-defaults.js +14 -1
  320. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  321. package/dist/generated/json-imports/Themes-node.d.ts +1 -0
  322. package/dist/generated/json-imports/Themes-node.js +25 -0
  323. package/dist/generated/json-imports/Themes-node.js.map +1 -0
  324. package/dist/generated/json-imports/i18n-node.d.ts +1 -0
  325. package/dist/generated/json-imports/i18n-node.js +120 -0
  326. package/dist/generated/json-imports/i18n-node.js.map +1 -0
  327. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  328. package/dist/generated/themes/Avatar.css.js +1 -1
  329. package/dist/generated/themes/Avatar.css.js.map +1 -1
  330. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  331. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  332. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  333. package/dist/generated/themes/Bar.css.d.ts +1 -1
  334. package/dist/generated/themes/Bar.css.js +1 -1
  335. package/dist/generated/themes/Bar.css.js.map +1 -1
  336. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  337. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  338. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  339. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  340. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  341. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  342. package/dist/generated/themes/Button.css.d.ts +1 -1
  343. package/dist/generated/themes/Button.css.js +1 -1
  344. package/dist/generated/themes/Button.css.js.map +1 -1
  345. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  346. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  347. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  348. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  349. package/dist/generated/themes/Calendar.css.js +1 -1
  350. package/dist/generated/themes/Calendar.css.js.map +1 -1
  351. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  352. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  353. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  354. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  355. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  356. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  357. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  358. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  359. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  360. package/dist/generated/themes/Card.css.d.ts +1 -1
  361. package/dist/generated/themes/Card.css.js +1 -1
  362. package/dist/generated/themes/Card.css.js.map +1 -1
  363. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  364. package/dist/generated/themes/CardHeader.css.js +1 -1
  365. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  366. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  367. package/dist/generated/themes/Carousel.css.js +1 -1
  368. package/dist/generated/themes/Carousel.css.js.map +1 -1
  369. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  370. package/dist/generated/themes/CheckBox.css.js +1 -1
  371. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  372. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  373. package/dist/generated/themes/ColorPalette.css.js +1 -1
  374. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  375. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  376. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  377. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  378. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  379. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  380. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  381. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  382. package/dist/generated/themes/ColorPicker.css.js +1 -1
  383. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  384. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  385. package/dist/generated/themes/ComboBox.css.js +1 -1
  386. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  387. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  388. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  389. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  390. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  391. package/dist/generated/themes/DatePicker.css.js +1 -1
  392. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  393. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  394. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  395. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  396. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  397. package/dist/generated/themes/DayPicker.css.js +1 -1
  398. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  399. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  400. package/dist/generated/themes/Dialog.css.js +1 -1
  401. package/dist/generated/themes/Dialog.css.js.map +1 -1
  402. package/dist/generated/themes/DynamicDateRange.css.d.ts +2 -0
  403. package/dist/generated/themes/DynamicDateRange.css.js +8 -0
  404. package/dist/generated/themes/DynamicDateRange.css.js.map +1 -0
  405. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +2 -0
  406. package/dist/generated/themes/DynamicDateRangePopover.css.js +8 -0
  407. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -0
  408. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  409. package/dist/generated/themes/FileUploader.css.js +1 -1
  410. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  411. package/dist/generated/themes/Form.css.d.ts +1 -1
  412. package/dist/generated/themes/Form.css.js +1 -1
  413. package/dist/generated/themes/Form.css.js.map +1 -1
  414. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  415. package/dist/generated/themes/FormItem.css.js +1 -1
  416. package/dist/generated/themes/FormItem.css.js.map +1 -1
  417. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  418. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  419. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  420. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  421. package/dist/generated/themes/GrowingButton.css.js +1 -1
  422. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  423. package/dist/generated/themes/Icon.css.d.ts +1 -1
  424. package/dist/generated/themes/Icon.css.js +1 -1
  425. package/dist/generated/themes/Icon.css.js.map +1 -1
  426. package/dist/generated/themes/Input.css.d.ts +1 -1
  427. package/dist/generated/themes/Input.css.js +1 -1
  428. package/dist/generated/themes/Input.css.js.map +1 -1
  429. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  430. package/dist/generated/themes/InputIcon.css.js +1 -1
  431. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  432. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  433. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  434. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  435. package/dist/generated/themes/Link.css.d.ts +1 -1
  436. package/dist/generated/themes/Link.css.js +1 -1
  437. package/dist/generated/themes/Link.css.js.map +1 -1
  438. package/dist/generated/themes/List.css.d.ts +1 -1
  439. package/dist/generated/themes/List.css.js +1 -1
  440. package/dist/generated/themes/List.css.js.map +1 -1
  441. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  442. package/dist/generated/themes/ListItem.css.js +1 -1
  443. package/dist/generated/themes/ListItem.css.js.map +1 -1
  444. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  445. package/dist/generated/themes/ListItemBase.css.js +1 -1
  446. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  447. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  448. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  449. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  450. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  451. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  452. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  453. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  454. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  455. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  456. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  457. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  458. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  459. package/dist/generated/themes/Menu.css.d.ts +1 -1
  460. package/dist/generated/themes/Menu.css.js +1 -1
  461. package/dist/generated/themes/Menu.css.js.map +1 -1
  462. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  463. package/dist/generated/themes/MenuItem.css.js +1 -1
  464. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  465. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  466. package/dist/generated/themes/MessageStrip.css.js +1 -1
  467. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  468. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  469. package/dist/generated/themes/MonthPicker.css.js +1 -1
  470. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  471. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  472. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  473. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  474. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  475. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  476. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  477. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  478. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  479. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  480. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  481. package/dist/generated/themes/MultiInput.css.js +1 -1
  482. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  483. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  484. package/dist/generated/themes/OptionBase.css.js +1 -1
  485. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  486. package/dist/generated/themes/Panel.css.d.ts +1 -1
  487. package/dist/generated/themes/Panel.css.js +1 -1
  488. package/dist/generated/themes/Panel.css.js.map +1 -1
  489. package/dist/generated/themes/Popover.css.d.ts +1 -1
  490. package/dist/generated/themes/Popover.css.js +1 -1
  491. package/dist/generated/themes/Popover.css.js.map +1 -1
  492. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  493. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  494. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  495. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  496. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  497. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  498. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  499. package/dist/generated/themes/RadioButton.css.js +1 -1
  500. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  501. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  502. package/dist/generated/themes/RangeSlider.css.js +1 -1
  503. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  504. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  505. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  506. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  507. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  508. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  509. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  510. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  511. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  512. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  513. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  514. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  515. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  516. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  517. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  518. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  519. package/dist/generated/themes/Select.css.d.ts +1 -1
  520. package/dist/generated/themes/Select.css.js +1 -1
  521. package/dist/generated/themes/Select.css.js.map +1 -1
  522. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  523. package/dist/generated/themes/SliderBase.css.js +1 -1
  524. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  525. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  526. package/dist/generated/themes/SplitButton.css.js +1 -1
  527. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  528. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  529. package/dist/generated/themes/StepInput.css.js +1 -1
  530. package/dist/generated/themes/StepInput.css.js.map +1 -1
  531. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  532. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  533. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  534. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  535. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  536. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  537. package/dist/generated/themes/Switch.css.d.ts +1 -1
  538. package/dist/generated/themes/Switch.css.js +1 -1
  539. package/dist/generated/themes/Switch.css.js.map +1 -1
  540. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  541. package/dist/generated/themes/TabContainer.css.js +1 -1
  542. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  543. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  544. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  545. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  546. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  547. package/dist/generated/themes/TabInStrip.css.js +1 -1
  548. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  549. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  550. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  551. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  552. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  553. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  554. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  555. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  556. package/dist/generated/themes/TableCellBase.css.js +1 -1
  557. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  558. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  559. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  560. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  561. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  562. package/dist/generated/themes/TableRow.css.js +1 -1
  563. package/dist/generated/themes/TableRow.css.js.map +1 -1
  564. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  565. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  566. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  567. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  568. package/dist/generated/themes/TableRowBase.css.js +1 -1
  569. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  570. package/dist/generated/themes/Tag.css.d.ts +1 -1
  571. package/dist/generated/themes/Tag.css.js +1 -1
  572. package/dist/generated/themes/Tag.css.js.map +1 -1
  573. package/dist/generated/themes/Text.css.d.ts +1 -1
  574. package/dist/generated/themes/Text.css.js +1 -1
  575. package/dist/generated/themes/Text.css.js.map +1 -1
  576. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  577. package/dist/generated/themes/TextArea.css.js +1 -1
  578. package/dist/generated/themes/TextArea.css.js.map +1 -1
  579. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  580. package/dist/generated/themes/TimePicker.css.js +1 -1
  581. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  582. package/dist/generated/themes/Toast.css.d.ts +1 -1
  583. package/dist/generated/themes/Toast.css.js +1 -1
  584. package/dist/generated/themes/Toast.css.js.map +1 -1
  585. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  586. package/dist/generated/themes/ToggleButton.css.js +1 -1
  587. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  588. package/dist/generated/themes/Token.css.d.ts +1 -1
  589. package/dist/generated/themes/Token.css.js +1 -1
  590. package/dist/generated/themes/Token.css.js.map +1 -1
  591. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  592. package/dist/generated/themes/Tokenizer.css.js +1 -1
  593. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  594. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  595. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  596. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  597. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  598. package/dist/generated/themes/Toolbar.css.js +1 -1
  599. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  600. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  601. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  602. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  603. package/dist/generated/themes/ToolbarSelect.css.d.ts +1 -1
  604. package/dist/generated/themes/ToolbarSelect.css.js +1 -1
  605. package/dist/generated/themes/ToolbarSelect.css.js.map +1 -1
  606. package/dist/generated/themes/ToolbarSeparator.css.d.ts +2 -0
  607. package/dist/generated/themes/ToolbarSeparator.css.js +8 -0
  608. package/dist/generated/themes/ToolbarSeparator.css.js.map +1 -0
  609. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  610. package/dist/generated/themes/TreeItem.css.js +1 -1
  611. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  612. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  613. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  614. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  615. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  616. package/dist/generated/themes/YearPicker.css.js +1 -1
  617. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  618. package/dist/generated/themes/YearRangePicker.css.d.ts +2 -0
  619. package/dist/generated/themes/YearRangePicker.css.js +8 -0
  620. package/dist/generated/themes/YearRangePicker.css.js.map +1 -0
  621. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  622. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  623. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  624. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  625. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  626. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  627. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  628. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  629. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  630. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  631. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  632. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  633. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  634. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  635. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  636. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  637. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  638. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  639. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  640. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  641. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  642. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  643. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  644. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  645. package/dist/popup-utils/PopoverRegistry.js +14 -2
  646. package/dist/popup-utils/PopoverRegistry.js.map +1 -1
  647. package/dist/types/TableSelectionBehavior.d.ts +22 -0
  648. package/dist/types/TableSelectionBehavior.js +24 -0
  649. package/dist/types/TableSelectionBehavior.js.map +1 -0
  650. package/dist/vscode.html-custom-data.json +42 -5
  651. package/dist/web-types.json +143 -13
  652. package/package.json +9 -9
  653. package/src/CalendarHeaderTemplate.tsx +6 -3
  654. package/src/CalendarTemplate.tsx +21 -0
  655. package/src/CheckBoxTemplate.tsx +1 -0
  656. package/src/ComboBoxPopoverTemplate.tsx +1 -1
  657. package/src/DynamicDateRangeInputTemplate.tsx +38 -0
  658. package/src/DynamicDateRangePopoverTemplate.tsx +75 -0
  659. package/src/DynamicDateRangeTemplate.tsx +11 -0
  660. package/src/TokenizerPopoverTemplate.tsx +2 -2
  661. package/src/ToolbarButtonTemplate.tsx +2 -3
  662. package/src/ToolbarSelectTemplate.tsx +1 -1
  663. package/src/ToolbarTemplate.tsx +43 -6
  664. package/src/YearRangePickerTemplate.tsx +42 -0
  665. package/src/dynamic-date-range-options/DateRangeTemplate.tsx +22 -0
  666. package/src/dynamic-date-range-options/SingleDateTemplate.tsx +13 -0
  667. package/src/features/InputSuggestionsTemplate.tsx +1 -1
  668. package/src/i18n/messagebundle.properties +40 -1
  669. package/src/i18n/messagebundle_ar.properties +6 -0
  670. package/src/i18n/messagebundle_bg.properties +6 -0
  671. package/src/i18n/messagebundle_ca.properties +6 -0
  672. package/src/i18n/messagebundle_cnr.properties +6 -0
  673. package/src/i18n/messagebundle_cs.properties +6 -0
  674. package/src/i18n/messagebundle_cy.properties +6 -0
  675. package/src/i18n/messagebundle_da.properties +6 -0
  676. package/src/i18n/messagebundle_de.properties +7 -1
  677. package/src/i18n/messagebundle_el.properties +6 -0
  678. package/src/i18n/messagebundle_en.properties +4 -217
  679. package/src/i18n/messagebundle_en_GB.properties +6 -0
  680. package/src/i18n/messagebundle_en_US_sappsd.properties +6 -0
  681. package/src/i18n/messagebundle_en_US_saprigi.properties +4 -0
  682. package/src/i18n/messagebundle_en_US_saptrc.properties +6 -0
  683. package/src/i18n/messagebundle_es.properties +6 -0
  684. package/src/i18n/messagebundle_es_MX.properties +6 -0
  685. package/src/i18n/messagebundle_et.properties +6 -0
  686. package/src/i18n/messagebundle_fi.properties +6 -0
  687. package/src/i18n/messagebundle_fr.properties +6 -0
  688. package/src/i18n/messagebundle_fr_CA.properties +6 -0
  689. package/src/i18n/messagebundle_hi.properties +6 -0
  690. package/src/i18n/messagebundle_hr.properties +6 -0
  691. package/src/i18n/messagebundle_hu.properties +6 -0
  692. package/src/i18n/messagebundle_id.properties +6 -0
  693. package/src/i18n/messagebundle_it.properties +10 -4
  694. package/src/i18n/messagebundle_iw.properties +6 -0
  695. package/src/i18n/messagebundle_ja.properties +6 -0
  696. package/src/i18n/messagebundle_kk.properties +6 -0
  697. package/src/i18n/messagebundle_ko.properties +6 -0
  698. package/src/i18n/messagebundle_lt.properties +6 -0
  699. package/src/i18n/messagebundle_lv.properties +6 -0
  700. package/src/i18n/messagebundle_mk.properties +6 -0
  701. package/src/i18n/messagebundle_ms.properties +6 -0
  702. package/src/i18n/messagebundle_nl.properties +6 -0
  703. package/src/i18n/messagebundle_no.properties +6 -0
  704. package/src/i18n/messagebundle_pl.properties +6 -0
  705. package/src/i18n/messagebundle_pt.properties +6 -0
  706. package/src/i18n/messagebundle_pt_PT.properties +6 -0
  707. package/src/i18n/messagebundle_ro.properties +6 -0
  708. package/src/i18n/messagebundle_ru.properties +6 -0
  709. package/src/i18n/messagebundle_sh.properties +6 -0
  710. package/src/i18n/messagebundle_sk.properties +6 -0
  711. package/src/i18n/messagebundle_sl.properties +6 -0
  712. package/src/i18n/messagebundle_sr.properties +6 -0
  713. package/src/i18n/messagebundle_sv.properties +6 -0
  714. package/src/i18n/messagebundle_th.properties +6 -0
  715. package/src/i18n/messagebundle_tr.properties +6 -0
  716. package/src/i18n/messagebundle_uk.properties +7 -1
  717. package/src/i18n/messagebundle_vi.properties +6 -0
  718. package/src/i18n/messagebundle_zh_CN.properties +6 -0
  719. package/src/i18n/messagebundle_zh_TW.properties +6 -0
  720. package/src/themes/Avatar.css +1 -1
  721. package/src/themes/AvatarGroup.css +1 -0
  722. package/src/themes/CalendarHeader.css +0 -10
  723. package/src/themes/CheckBox.css +0 -9
  724. package/src/themes/DatePicker.css +0 -1
  725. package/src/themes/DynamicDateRange.css +7 -0
  726. package/src/themes/DynamicDateRangePopover.css +89 -0
  727. package/src/themes/Toolbar.css +0 -7
  728. package/src/themes/ToolbarPopover.css +5 -0
  729. package/src/themes/ToolbarSelect.css +3 -3
  730. package/src/themes/ToolbarSeparator.css +6 -0
  731. package/src/themes/YearRangePicker.css +118 -0
  732. package/src/themes/base/Avatar-parameters.css +1 -0
  733. package/src/themes/base/AvatarGroup-parameters.css +1 -0
  734. package/src/themes/base/DynamicDateRange-parameters.css +3 -0
  735. package/src/themes/base/rtl-parameters.css +1 -1
  736. package/src/themes/sap_horizon/parameters-bundle.css +1 -0
  737. package/cypress/specs/Avatar.cy.tsx +0 -55
  738. package/cypress/specs/AvatarGroup.cy.tsx +0 -66
  739. package/cypress/specs/Breadcrumbs.mobile.cy.tsx +0 -53
  740. package/cypress/specs/Button.cy.tsx +0 -434
  741. package/cypress/specs/Calendar.cy.tsx +0 -710
  742. package/cypress/specs/CalendarLegend.cy.tsx +0 -77
  743. package/cypress/specs/Card.cy.tsx +0 -338
  744. package/cypress/specs/Carousel.cy.tsx +0 -581
  745. package/cypress/specs/Carousel.mobile.cy.tsx +0 -67
  746. package/cypress/specs/ColorPalette.cy.tsx +0 -213
  747. package/cypress/specs/ColorPicker.cy.tsx +0 -332
  748. package/cypress/specs/ComboBox.cy.tsx +0 -198
  749. package/cypress/specs/DateControlsWithTimezone.cy.tsx +0 -75
  750. package/cypress/specs/DatePicker.cy.tsx +0 -1699
  751. package/cypress/specs/DateRangePicker.cy.tsx +0 -594
  752. package/cypress/specs/DateTimePicker.cy.tsx +0 -568
  753. package/cypress/specs/DayPicker.cy.tsx +0 -81
  754. package/cypress/specs/Dialog.cy.tsx +0 -133
  755. package/cypress/specs/ExpandableText.cy.tsx +0 -393
  756. package/cypress/specs/F6.cy.tsx +0 -977
  757. package/cypress/specs/Form.cy.tsx +0 -1022
  758. package/cypress/specs/FormSupport.cy.tsx +0 -975
  759. package/cypress/specs/Input.cy.tsx +0 -978
  760. package/cypress/specs/Label.cy.tsx +0 -144
  761. package/cypress/specs/Link.cy.tsx +0 -216
  762. package/cypress/specs/List.cy.tsx +0 -309
  763. package/cypress/specs/List.mobile.cy.tsx +0 -31
  764. package/cypress/specs/LitKeyFunction.cy.tsx +0 -58
  765. package/cypress/specs/Menu.cy.tsx +0 -617
  766. package/cypress/specs/MessageStrip.cy.tsx +0 -171
  767. package/cypress/specs/MultiComboBox.cy.tsx +0 -189
  768. package/cypress/specs/MultiInput.cy.tsx +0 -72
  769. package/cypress/specs/Popover.cy.tsx +0 -419
  770. package/cypress/specs/RTL.cy.tsx +0 -18
  771. package/cypress/specs/RadioButton.cy.tsx +0 -499
  772. package/cypress/specs/RangeSlider.cy.tsx +0 -52
  773. package/cypress/specs/RatingIndicator.cy.tsx +0 -279
  774. package/cypress/specs/ResponsivePopover.mobile.cy.tsx +0 -112
  775. package/cypress/specs/SegmentedButton.cy.tsx +0 -215
  776. package/cypress/specs/Select.cy.tsx +0 -241
  777. package/cypress/specs/Slider.cy.tsx +0 -87
  778. package/cypress/specs/StepInput.cy.tsx +0 -32
  779. package/cypress/specs/TabContainer.cy.tsx +0 -78
  780. package/cypress/specs/Table.cy.tsx +0 -1025
  781. package/cypress/specs/TableDragAndDrop.cy.tsx +0 -236
  782. package/cypress/specs/TableGrowing.cy.tsx +0 -336
  783. package/cypress/specs/TableLoading.cy.tsx +0 -48
  784. package/cypress/specs/TableNavigation.cy.tsx +0 -223
  785. package/cypress/specs/TableNavigationFixedHeader.cy.tsx +0 -199
  786. package/cypress/specs/TableRowActions.cy.tsx +0 -239
  787. package/cypress/specs/TableSelection.cy.tsx +0 -275
  788. package/cypress/specs/TableSelections.cy.tsx +0 -332
  789. package/cypress/specs/TableUtils.cy.tsx +0 -63
  790. package/cypress/specs/TableVirtualizer.cy.tsx +0 -243
  791. package/cypress/specs/Tag.cy.tsx +0 -120
  792. package/cypress/specs/Text.cy.tsx +0 -46
  793. package/cypress/specs/TextArea.cy.tsx +0 -735
  794. package/cypress/specs/Title.cy.tsx +0 -36
  795. package/cypress/specs/Toast.cy.tsx +0 -45
  796. package/cypress/specs/Tokenizer.cy.tsx +0 -209
  797. package/cypress/specs/Toolbar.cy.tsx +0 -194
  798. package/cypress/specs/Tree.cy.tsx +0 -72
  799. package/cypress/specs/base/AccessibilityTextsHelper.cy.tsx +0 -468
  800. package/cypress/specs/base/Events.cy.tsx +0 -301
  801. package/cypress/specs/base/IconCollection.cy.tsx +0 -58
  802. package/cypress/specs/base/IgnoreCustomElements.cy.tsx +0 -38
  803. package/cypress/specs/base/InvisibleMessage.cy.tsx +0 -31
  804. package/cypress/specs/base/Tooltips.cy.tsx +0 -64
  805. package/cypress/specs/base/css/redfish.custom.theme.css +0 -13
  806. package/cypress/support/commands/Calendar.commands.ts +0 -21
  807. package/cypress/support/commands/ColorPalette.commands.ts +0 -86
  808. package/cypress/support/commands/ColorPicker.commands.ts +0 -38
  809. package/cypress/support/commands/DatePicker.commands.ts +0 -218
  810. package/cypress/support/commands/DateTimePicker.commands.ts +0 -105
  811. package/cypress/support/commands/Dialog.commands.ts +0 -16
  812. package/cypress/support/commands/Menu.commands.ts +0 -52
  813. package/cypress/support/commands/Popover.commands.ts +0 -16
  814. package/cypress/support/commands/ResponsivePopover.commands.ts +0 -42
  815. package/cypress/support/commands/SegmentedButton.commands.ts +0 -32
  816. package/cypress/support/commands/utils/popup-open.ts +0 -35
  817. package/cypress/support/commands.ts +0 -113
  818. package/cypress/support/component-index.html +0 -12
  819. package/cypress/support/component.ts +0 -20
  820. package/cypress/tsconfig.json +0 -42
  821. package/dist/ToolbarPopoverButtonTemplate.d.ts +0 -2
  822. package/dist/ToolbarPopoverButtonTemplate.js +0 -6
  823. package/dist/ToolbarPopoverButtonTemplate.js.map +0 -1
  824. package/dist/ToolbarPopoverSelectTemplate.d.ts +0 -2
  825. package/dist/ToolbarPopoverSelectTemplate.js +0 -7
  826. package/dist/ToolbarPopoverSelectTemplate.js.map +0 -1
  827. package/dist/ToolbarPopoverSeparatorTemplate.d.ts +0 -2
  828. package/dist/ToolbarPopoverSeparatorTemplate.js +0 -5
  829. package/dist/ToolbarPopoverSeparatorTemplate.js.map +0 -1
  830. package/dist/ToolbarPopoverTemplate.d.ts +0 -2
  831. package/dist/ToolbarPopoverTemplate.js +0 -9
  832. package/dist/ToolbarPopoverTemplate.js.map +0 -1
  833. package/dist/ToolbarRegistry.d.ts +0 -5
  834. package/dist/ToolbarRegistry.js +0 -16
  835. package/dist/ToolbarRegistry.js.map +0 -1
  836. package/dist/ToolbarSpacerTemplate.d.ts +0 -2
  837. package/dist/ToolbarSpacerTemplate.js +0 -5
  838. package/dist/ToolbarSpacerTemplate.js.map +0 -1
  839. package/src/ToolbarPopoverButtonTemplate.tsx +0 -24
  840. package/src/ToolbarPopoverSelectTemplate.tsx +0 -29
  841. package/src/ToolbarPopoverSeparatorTemplate.tsx +0 -10
  842. package/src/ToolbarPopoverTemplate.tsx +0 -25
  843. package/src/ToolbarSpacerTemplate.tsx +0 -12
@@ -0,0 +1,144 @@
1
+ import DateFormat from "@ui5/webcomponents-localization/dist/DateFormat.js";
2
+ import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
3
+ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
+ import CalendarPart from "./CalendarPart.js";
5
+ import type { ICalendarPicker, CalendarYearRangeT } from "./Calendar.js";
6
+ type YearRange = {
7
+ timestamp: string;
8
+ _tabIndex: number;
9
+ focusRef: boolean;
10
+ selected: boolean;
11
+ ariaSelected: boolean;
12
+ range: string;
13
+ rangeInSecType: string | undefined;
14
+ disabled: boolean;
15
+ ariaDisabled: boolean | undefined;
16
+ classes: string;
17
+ parts: string;
18
+ };
19
+ type YearRanges = Array<Array<YearRange>>;
20
+ type YearRangePickerChangeEventDetail = {
21
+ timestamp: number;
22
+ };
23
+ type YearRangePickerNavigateEventDetail = {
24
+ timestamp: number;
25
+ };
26
+ /**
27
+ * @class
28
+ *
29
+ * Displays year ranges which help navigate through years faster.
30
+ * @constructor
31
+ * @extends CalendarPart
32
+ * @private
33
+ */
34
+ declare class YearRangePicker extends CalendarPart implements ICalendarPicker {
35
+ eventDetails: CalendarPart["eventDetails"] & {
36
+ "change": YearRangePickerChangeEventDetail;
37
+ "navigate": YearRangePickerNavigateEventDetail;
38
+ };
39
+ /**
40
+ * An array of UTC timestamps representing the selected date
41
+ * or dates depending on the capabilities of the picker component.
42
+ * @default []
43
+ */
44
+ selectedDates: Array<number>;
45
+ /**
46
+ * Defines if the YearRangePicker should visualize the selected dates as a range.
47
+ * @default false
48
+ *
49
+ * @private
50
+ */
51
+ _showRangeSelection: boolean;
52
+ /**
53
+ * When _showRangeSelection is "true" and the first year in the range is selected, this is the currently hovered or focused year range.
54
+ *
55
+ * @private
56
+ */
57
+ _secondTimestamp?: number;
58
+ _yearRanges: YearRanges;
59
+ _hidden: boolean;
60
+ _currentYearRange?: CalendarYearRangeT;
61
+ _gridStartYear?: number;
62
+ static i18nBundle: I18nBundle;
63
+ get roleDescription(): string;
64
+ onBeforeRendering(): void;
65
+ _shouldShowOneColumn(): boolean;
66
+ _getPageSize(): 6 | 8;
67
+ _getRowSize(): 1 | 2;
68
+ _getInitialFocusedIndex(): number;
69
+ _getRangeSize(): 8 | 20;
70
+ _getYearRangeFormattedText(startDate: CalendarDate, endDate: CalendarDate, yearFormat: DateFormat): string;
71
+ _getGridStartYear(): number;
72
+ _getYearRanges(): YearRanges;
73
+ _getYearRange(timestamp: number, isFocused: boolean, isSelected: boolean, isSelectedBetween: boolean, yearRangeText: string, secYearRangeText: string | undefined, isDisabled: boolean): YearRange;
74
+ _isYearRangeSelected(startYear: number, endYear: number): boolean;
75
+ /**
76
+ * Returns true if the timestamp is inside the selection range.
77
+ * @private
78
+ */
79
+ _isInsideSelectionRange(timestamp: number): boolean;
80
+ onAfterRendering(): void;
81
+ _onkeydown(e: KeyboardEvent): void;
82
+ _onkeyup(e: KeyboardEvent): void;
83
+ _onHomeOrEnd(homePressed: boolean): void;
84
+ /**
85
+ * Set the hovered day as the "_secondTimestamp".
86
+ *
87
+ * @param e
88
+ * @private
89
+ */
90
+ _onmouseover(e: MouseEvent): void;
91
+ /**
92
+ * Sets the timestamp to an absolute value.
93
+ * @param value
94
+ * @private
95
+ */
96
+ _setTimestamp(value: number): void;
97
+ /**
98
+ * In range selection, the currently focused or hovered year range is considered the "second timestamp".
99
+ * @private
100
+ */
101
+ _updateSecondTimestamp(): void;
102
+ /**
103
+ * User selected range with the mouse or pressed Enter/Space.
104
+ * @param e
105
+ * @private
106
+ */
107
+ _selectYearRange(e: Event): void;
108
+ /**
109
+ * Returns the centered timestamp for the year picker.
110
+ * @private
111
+ */
112
+ _getYearPickerCenteredTimestamp(oldTimestamp: number): number;
113
+ /**
114
+ * Called by the Calendar component.
115
+ * @protected
116
+ */
117
+ _hasPreviousPage(): boolean;
118
+ /**
119
+ * Called by the Calendar component.
120
+ * @protected
121
+ */
122
+ _hasNextPage(): boolean;
123
+ /**
124
+ * Called by the Calendar component.
125
+ * **Note:** when the user presses the "<" button in the calendar header (same as "PageUp")
126
+ * @protected
127
+ */
128
+ _showPreviousPage(): void;
129
+ /**
130
+ * Called by the Calendar component.
131
+ * **Note:** when the user presses the ">" button in the calendar header (same as "PageDown")
132
+ * @protected
133
+ */
134
+ _showNextPage(): void;
135
+ /**
136
+ * Modifies timestamp by a given amount of year ranges and, if necessary, loads the prev/next page.
137
+ * @param amount
138
+ * @private
139
+ */
140
+ _modifyTimestampBy(amount: number): void;
141
+ _modifyGridStartBy(years: number): void;
142
+ }
143
+ export default YearRangePicker;
144
+ export type { YearRangePickerChangeEventDetail, YearRangePickerNavigateEventDetail, };
@@ -0,0 +1,418 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var YearRangePicker_1;
8
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
+ import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
11
+ import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
12
+ import DateFormat from "@ui5/webcomponents-localization/dist/DateFormat.js";
13
+ import { isEnter, isSpace, isDown, isUp, isLeft, isRight, isHome, isEnd, isHomeCtrl, isEndCtrl, isPageUp, isPageDown, } from "@ui5/webcomponents-base/dist/Keys.js";
14
+ import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
15
+ import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
16
+ import { getMaxCalendarDate } from "@ui5/webcomponents-localization/dist/dates/ExtremeDates.js";
17
+ import CalendarPart from "./CalendarPart.js";
18
+ import { YEAR_RANGE_PICKER_DESCRIPTION } from "./generated/i18n/i18n-defaults.js";
19
+ // Template
20
+ import YearRangePickerTemplate from "./YearRangePickerTemplate.js";
21
+ // Styles
22
+ import yearRangePickerStyles from "./generated/themes/YearRangePicker.css.js";
23
+ const isBetweenInclusive = (x, num1, num2) => x >= Math.min(num1, num2) && x <= Math.max(num1, num2);
24
+ /**
25
+ * @class
26
+ *
27
+ * Displays year ranges which help navigate through years faster.
28
+ * @constructor
29
+ * @extends CalendarPart
30
+ * @private
31
+ */
32
+ let YearRangePicker = YearRangePicker_1 = class YearRangePicker extends CalendarPart {
33
+ constructor() {
34
+ super(...arguments);
35
+ /**
36
+ * An array of UTC timestamps representing the selected date
37
+ * or dates depending on the capabilities of the picker component.
38
+ * @default []
39
+ */
40
+ this.selectedDates = [];
41
+ /**
42
+ * Defines if the YearRangePicker should visualize the selected dates as a range.
43
+ * @default false
44
+ *
45
+ * @private
46
+ */
47
+ this._showRangeSelection = false;
48
+ this._yearRanges = [];
49
+ this._hidden = false;
50
+ }
51
+ get roleDescription() {
52
+ return YearRangePicker_1.i18nBundle.getText(YEAR_RANGE_PICKER_DESCRIPTION);
53
+ }
54
+ onBeforeRendering() {
55
+ if (this._hidden) {
56
+ return;
57
+ }
58
+ this._gridStartYear = this._getGridStartYear();
59
+ this._yearRanges = this._getYearRanges();
60
+ }
61
+ _shouldShowOneColumn() {
62
+ const locale = getLocale();
63
+ const language = locale.getLanguage();
64
+ const longLanguages = ["zh", "ja", "ko", "bg", "mk", "ru"];
65
+ return longLanguages.includes(language) && this.hasSecondaryCalendarType;
66
+ }
67
+ _getPageSize() {
68
+ return this._shouldShowOneColumn() ? 6 : 8;
69
+ }
70
+ _getRowSize() {
71
+ return this._shouldShowOneColumn() ? 1 : 2;
72
+ }
73
+ _getInitialFocusedIndex() {
74
+ return 2;
75
+ }
76
+ _getRangeSize() {
77
+ return this.hasSecondaryCalendarType ? 8 : 20;
78
+ }
79
+ _getYearRangeFormattedText(startDate, endDate, yearFormat) {
80
+ return `${yearFormat.format(startDate.toLocalJSDate())} - ${yearFormat.format(endDate.toLocalJSDate())}`;
81
+ }
82
+ _getGridStartYear() {
83
+ const rangeSize = this._getRangeSize();
84
+ const pageSize = this._getPageSize();
85
+ const pageSizeInYears = rangeSize * pageSize;
86
+ const yearsOffset = rangeSize * this._getInitialFocusedIndex();
87
+ const currentStartYear = this._currentYearRange?.startYear ? this._currentYearRange?.startYear : this._calendarDate.getYear();
88
+ // On first load, current range should be the 3rd item in the grid
89
+ let gridStartYear = this._gridStartYear ? this._gridStartYear : currentStartYear - yearsOffset;
90
+ // If page navigation occured, update the current range start year
91
+ gridStartYear += Math.floor((currentStartYear - gridStartYear) / pageSizeInYears) * pageSizeInYears;
92
+ // Normalize grid start year to be between the min and absolute max year
93
+ const minYear = this._minDate.getYear();
94
+ if (currentStartYear - rangeSize < minYear) {
95
+ gridStartYear = minYear;
96
+ }
97
+ const absoluteMaxYear = getMaxCalendarDate(this._primaryCalendarType).getYear();
98
+ if (currentStartYear + pageSizeInYears > absoluteMaxYear) {
99
+ gridStartYear = absoluteMaxYear - pageSizeInYears + 1;
100
+ }
101
+ return gridStartYear;
102
+ }
103
+ _getYearRanges() {
104
+ const locale = getLocale();
105
+ const yearFormat = DateFormat.getDateInstance({ format: "y", calendarType: this._primaryCalendarType }, locale);
106
+ const yearFormatInSecType = DateFormat.getDateInstance({ format: "y", calendarType: this._secondaryCalendarType }, locale);
107
+ const pageSize = this._getPageSize();
108
+ const rowSize = this._getRowSize();
109
+ const rangeSize = this._getRangeSize();
110
+ const calendarDate = this._calendarDate;
111
+ const minYear = this._minDate.getYear();
112
+ const maxYear = this._maxDate.getYear();
113
+ const tempDate = new CalendarDate(calendarDate, this._primaryCalendarType);
114
+ tempDate.setYear(this._gridStartYear);
115
+ const yearRanges = [];
116
+ for (let i = 0; i < pageSize; i++) {
117
+ const endDate = new CalendarDate(tempDate, this._primaryCalendarType);
118
+ endDate.setYear(endDate.getYear() + rangeSize - 1);
119
+ const timestamp = tempDate.valueOf() / 1000;
120
+ const endTimestamp = endDate.valueOf() / 1000;
121
+ const isFocused = isBetweenInclusive(calendarDate.getYear(), tempDate.getYear(), endDate.getYear());
122
+ const isSelected = this._isYearRangeSelected(timestamp, endTimestamp);
123
+ const isSelectedBetween = this._isInsideSelectionRange(timestamp);
124
+ const yearRangeText = this._getYearRangeFormattedText(tempDate, endDate, yearFormat);
125
+ const secYearRangeText = this.hasSecondaryCalendarType ? this._getYearRangeFormattedText(tempDate, endDate, yearFormatInSecType) : undefined;
126
+ const isDisabled = !(isBetweenInclusive(tempDate.getYear(), minYear, maxYear)
127
+ || isBetweenInclusive(endDate.getYear(), minYear, maxYear));
128
+ const yearRange = this._getYearRange(timestamp, isFocused, isSelected, isSelectedBetween, yearRangeText, secYearRangeText, isDisabled);
129
+ const intervalIndex = Math.floor(i / rowSize);
130
+ if (yearRanges[intervalIndex]) {
131
+ yearRanges[intervalIndex].push(yearRange);
132
+ }
133
+ else {
134
+ yearRanges[intervalIndex] = [yearRange];
135
+ }
136
+ tempDate.setYear(tempDate.getYear() + rangeSize);
137
+ }
138
+ return yearRanges;
139
+ }
140
+ _getYearRange(timestamp, isFocused, isSelected, isSelectedBetween, yearRangeText, secYearRangeText, isDisabled) {
141
+ const yearRange = {
142
+ timestamp: timestamp.toString(),
143
+ _tabIndex: isFocused ? 0 : -1,
144
+ focusRef: isFocused,
145
+ selected: isSelected || isSelectedBetween,
146
+ ariaSelected: isSelected || isSelectedBetween,
147
+ range: yearRangeText,
148
+ rangeInSecType: secYearRangeText,
149
+ disabled: isDisabled,
150
+ ariaDisabled: isDisabled,
151
+ classes: "ui5-yrp-item",
152
+ parts: "year-range-cell",
153
+ };
154
+ if (isSelected) {
155
+ yearRange.classes += " ui5-yrp-item--selected";
156
+ yearRange.parts += " year-range-cell-selected";
157
+ }
158
+ if (isSelectedBetween && !isSelected) {
159
+ yearRange.classes += " ui5-yrp-item--selected-between";
160
+ yearRange.parts += " year-range-cell-selected-between";
161
+ }
162
+ if (isDisabled) {
163
+ yearRange.classes += " ui5-yrp-item--disabled";
164
+ }
165
+ if (this.hasSecondaryCalendarType) {
166
+ yearRange.classes += " ui5-yrp-item-secondary-type";
167
+ }
168
+ if (this._shouldShowOneColumn()) {
169
+ yearRange.classes += " ui5-yrp-item-one-column-view";
170
+ }
171
+ return yearRange;
172
+ }
173
+ _isYearRangeSelected(startYear, endYear) {
174
+ return this.selectedDates.some(itemTimestamp => {
175
+ return isBetweenInclusive(itemTimestamp, startYear, endYear);
176
+ });
177
+ }
178
+ /**
179
+ * Returns true if the timestamp is inside the selection range.
180
+ * @private
181
+ */
182
+ _isInsideSelectionRange(timestamp) {
183
+ if (!this._showRangeSelection || !this.selectedDates.length) {
184
+ return false;
185
+ }
186
+ if (this.selectedDates.length === 1 && this._secondTimestamp) {
187
+ return isBetweenInclusive(timestamp, this.selectedDates[0], this._secondTimestamp);
188
+ }
189
+ return isBetweenInclusive(timestamp, this.selectedDates[0], this.selectedDates[1]);
190
+ }
191
+ onAfterRendering() {
192
+ if (!this._hidden) {
193
+ this.focus();
194
+ }
195
+ }
196
+ _onkeydown(e) {
197
+ let preventDefault = true;
198
+ const pageSize = this._getPageSize();
199
+ const rowSize = this._getRowSize();
200
+ if (isEnter(e)) {
201
+ this._selectYearRange(e);
202
+ }
203
+ else if (isSpace(e)) {
204
+ e.preventDefault();
205
+ }
206
+ else if (isLeft(e)) {
207
+ this._modifyTimestampBy(-1);
208
+ }
209
+ else if (isRight(e)) {
210
+ this._modifyTimestampBy(1);
211
+ }
212
+ else if (isUp(e)) {
213
+ this._modifyTimestampBy(-rowSize);
214
+ }
215
+ else if (isDown(e)) {
216
+ this._modifyTimestampBy(rowSize);
217
+ }
218
+ else if (isPageUp(e)) {
219
+ this._modifyTimestampBy(-pageSize);
220
+ }
221
+ else if (isPageDown(e)) {
222
+ this._modifyTimestampBy(pageSize);
223
+ }
224
+ else if (isHome(e) || isEnd(e)) {
225
+ this._onHomeOrEnd(isHome(e));
226
+ }
227
+ else if (isHomeCtrl(e)) {
228
+ this._setTimestamp(parseInt(this._yearRanges[0][0].timestamp)); // first year range of first row
229
+ }
230
+ else if (isEndCtrl(e)) {
231
+ this._setTimestamp(parseInt(this._yearRanges[pageSize / rowSize - 1][rowSize - 1].timestamp)); // last year range of last row
232
+ }
233
+ else {
234
+ preventDefault = false;
235
+ }
236
+ if (preventDefault) {
237
+ e.preventDefault();
238
+ }
239
+ }
240
+ _onkeyup(e) {
241
+ if (isSpace(e)) {
242
+ this._selectYearRange(e);
243
+ }
244
+ }
245
+ _onHomeOrEnd(homePressed) {
246
+ this._yearRanges.forEach(row => {
247
+ const indexInRow = row.findIndex(item => {
248
+ const startYear = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000).getYear();
249
+ const currentYear = this._calendarDate.getYear();
250
+ return isBetweenInclusive(startYear, currentYear, currentYear + this._getRangeSize() - 1);
251
+ });
252
+ if (indexInRow !== -1) { // The current year is on this row
253
+ const index = homePressed ? 0 : this._getRowSize() - 1; // select the first (if Home) or last (if End) year on the row
254
+ this._setTimestamp(parseInt(row[index].timestamp));
255
+ }
256
+ });
257
+ }
258
+ /**
259
+ * Set the hovered day as the "_secondTimestamp".
260
+ *
261
+ * @param e
262
+ * @private
263
+ */
264
+ _onmouseover(e) {
265
+ const target = e.target;
266
+ const hoveredItem = target.closest(".ui5-yrp-item");
267
+ if (hoveredItem && this._showRangeSelection && this.selectedDates.length === 1) {
268
+ this._secondTimestamp = this._getTimestampFromDom(hoveredItem);
269
+ }
270
+ }
271
+ /**
272
+ * Sets the timestamp to an absolute value.
273
+ * @param value
274
+ * @private
275
+ */
276
+ _setTimestamp(value) {
277
+ this._safelySetTimestamp(value);
278
+ this.fireDecoratorEvent("navigate", { timestamp: this.timestamp });
279
+ }
280
+ /**
281
+ * In range selection, the currently focused or hovered year range is considered the "second timestamp".
282
+ * @private
283
+ */
284
+ _updateSecondTimestamp() {
285
+ if (this._showRangeSelection && (this.selectedDates.length === 1 || this.selectedDates.length === 2)) {
286
+ this._secondTimestamp = this.timestamp;
287
+ }
288
+ }
289
+ /**
290
+ * User selected range with the mouse or pressed Enter/Space.
291
+ * @param e
292
+ * @private
293
+ */
294
+ _selectYearRange(e) {
295
+ e.preventDefault();
296
+ const target = e.target;
297
+ if (target.className.indexOf("ui5-yrp-item") === -1) {
298
+ return;
299
+ }
300
+ let timestamp = this._getTimestampFromDom(target);
301
+ timestamp = this._getYearPickerCenteredTimestamp(timestamp);
302
+ this._safelySetTimestamp(timestamp);
303
+ this.fireDecoratorEvent("change", {
304
+ timestamp: this.timestamp,
305
+ });
306
+ }
307
+ /**
308
+ * Returns the centered timestamp for the year picker.
309
+ * @private
310
+ */
311
+ _getYearPickerCenteredTimestamp(oldTimestamp) {
312
+ const yearsOffset = this.hasSecondaryCalendarType ? 2 : 9;
313
+ const selectedDate = CalendarDate.fromTimestamp(oldTimestamp * 1000, this._primaryCalendarType);
314
+ const startYear = selectedDate.getYear();
315
+ const centeredYear = startYear + yearsOffset;
316
+ selectedDate.setYear(centeredYear);
317
+ return selectedDate.valueOf() / 1000;
318
+ }
319
+ /**
320
+ * Called by the Calendar component.
321
+ * @protected
322
+ */
323
+ _hasPreviousPage() {
324
+ return this._gridStartYear > this._minDate.getYear();
325
+ }
326
+ /**
327
+ * Called by the Calendar component.
328
+ * @protected
329
+ */
330
+ _hasNextPage() {
331
+ const amountInYears = this._getPageSize() * this._getRangeSize();
332
+ return this._gridStartYear + amountInYears - 1 < this._maxDate.getYear();
333
+ }
334
+ /**
335
+ * Called by the Calendar component.
336
+ * **Note:** when the user presses the "<" button in the calendar header (same as "PageUp")
337
+ * @protected
338
+ */
339
+ _showPreviousPage() {
340
+ const pageSize = this._getPageSize();
341
+ this._modifyTimestampBy(-pageSize);
342
+ const amountInYears = pageSize * this._getRangeSize();
343
+ this._modifyGridStartBy(-amountInYears);
344
+ }
345
+ /**
346
+ * Called by the Calendar component.
347
+ * **Note:** when the user presses the ">" button in the calendar header (same as "PageDown")
348
+ * @protected
349
+ */
350
+ _showNextPage() {
351
+ const pageSize = this._getPageSize();
352
+ this._modifyTimestampBy(pageSize);
353
+ const amountInYears = pageSize * this._getRangeSize();
354
+ this._modifyGridStartBy(amountInYears);
355
+ }
356
+ /**
357
+ * Modifies timestamp by a given amount of year ranges and, if necessary, loads the prev/next page.
358
+ * @param amount
359
+ * @private
360
+ */
361
+ _modifyTimestampBy(amount) {
362
+ // Modify the current timestamp
363
+ const amountInYears = amount * this._getRangeSize();
364
+ this._safelyModifyTimestampBy(amountInYears, "year");
365
+ // Notify the calendar to update its timestamp
366
+ this.fireDecoratorEvent("navigate", { timestamp: this.timestamp });
367
+ }
368
+ _modifyGridStartBy(years) {
369
+ this._gridStartYear += years;
370
+ }
371
+ };
372
+ __decorate([
373
+ property({ type: Array })
374
+ ], YearRangePicker.prototype, "selectedDates", void 0);
375
+ __decorate([
376
+ property({ type: Boolean, noAttribute: true })
377
+ ], YearRangePicker.prototype, "_showRangeSelection", void 0);
378
+ __decorate([
379
+ property({ type: Number })
380
+ ], YearRangePicker.prototype, "_secondTimestamp", void 0);
381
+ __decorate([
382
+ property({ type: Array })
383
+ ], YearRangePicker.prototype, "_yearRanges", void 0);
384
+ __decorate([
385
+ property({ type: Boolean, noAttribute: true })
386
+ ], YearRangePicker.prototype, "_hidden", void 0);
387
+ __decorate([
388
+ property({ noAttribute: true })
389
+ ], YearRangePicker.prototype, "_currentYearRange", void 0);
390
+ __decorate([
391
+ i18n("@ui5/webcomponents")
392
+ ], YearRangePicker, "i18nBundle", void 0);
393
+ YearRangePicker = YearRangePicker_1 = __decorate([
394
+ customElement({
395
+ tag: "ui5-yearrangepicker",
396
+ styles: [
397
+ yearRangePickerStyles,
398
+ ],
399
+ template: YearRangePickerTemplate,
400
+ })
401
+ /**
402
+ * Fired when the user selects a year range via "Space", "Enter" or click.
403
+ */
404
+ ,
405
+ event("change", {
406
+ bubbles: true,
407
+ })
408
+ /**
409
+ * Fired when the timestamp changes - the user navigates with the keyboard or clicks with the mouse.
410
+ */
411
+ ,
412
+ event("navigate", {
413
+ bubbles: true,
414
+ })
415
+ ], YearRangePicker);
416
+ YearRangePicker.define();
417
+ export default YearRangePicker;
418
+ //# sourceMappingURL=YearRangePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YearRangePicker.js","sourceRoot":"","sources":["../src/YearRangePicker.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 type LocaleT from \"sap/ui/core/Locale\";\nimport DateFormat from \"@ui5/webcomponents-localization/dist/DateFormat.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 CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport { getMaxCalendarDate } from \"@ui5/webcomponents-localization/dist/dates/ExtremeDates.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type { ICalendarPicker, CalendarYearRangeT } from \"./Calendar.js\";\nimport { YEAR_RANGE_PICKER_DESCRIPTION } from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport YearRangePickerTemplate from \"./YearRangePickerTemplate.js\";\n\n// Styles\nimport yearRangePickerStyles from \"./generated/themes/YearRangePicker.css.js\";\n\nconst isBetweenInclusive = (x: number, num1: number, num2: number) => x >= Math.min(num1, num2) && x <= Math.max(num1, num2);\n\ntype YearRange = {\n\ttimestamp: string;\n\t_tabIndex: number;\n\tfocusRef: boolean;\n\tselected: boolean;\n\tariaSelected: boolean;\n\trange: string;\n\trangeInSecType: string | undefined;\n\tdisabled: boolean;\n\tariaDisabled: boolean | undefined;\n\tclasses: string;\n\tparts: string;\n}\n\ntype YearRanges = Array<Array<YearRange>>;\n\ntype YearRangePickerChangeEventDetail = {\n\ttimestamp: number,\n}\n\ntype YearRangePickerNavigateEventDetail = {\n\ttimestamp: number,\n}\n\n/**\n * @class\n *\n * Displays year ranges which help navigate through years faster.\n * @constructor\n * @extends CalendarPart\n * @private\n */\n@customElement({\n\ttag: \"ui5-yearrangepicker\",\n\tstyles: [\n\t\tyearRangePickerStyles,\n\t],\n\ttemplate: YearRangePickerTemplate,\n})\n\n/**\n * Fired when the user selects a year range 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 */\n@event(\"navigate\", {\n\tbubbles: true,\n})\nclass YearRangePicker extends CalendarPart implements ICalendarPicker {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\t\"change\": YearRangePickerChangeEventDetail,\n\t\t\"navigate\": YearRangePickerNavigateEventDetail,\n\t}\n\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 if the YearRangePicker should visualize the selected dates as a range.\n\t * @default false\n\t *\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_showRangeSelection = false;\n\n\t/**\n\t * When _showRangeSelection is \"true\" and the first year in the range is selected, this is the currently hovered or focused year range.\n\t *\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_secondTimestamp?: number;\n\n\t@property({ type: Array })\n\t_yearRanges: YearRanges = [];\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_hidden = false;\n\n\t@property({ noAttribute: true })\n\t_currentYearRange?: CalendarYearRangeT;\n\n\t_gridStartYear?: number;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget roleDescription() {\n\t\treturn YearRangePicker.i18nBundle.getText(YEAR_RANGE_PICKER_DESCRIPTION);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this._hidden) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._gridStartYear = this._getGridStartYear();\n\t\tthis._yearRanges = this._getYearRanges();\n\t}\n\n\t_shouldShowOneColumn() {\n\t\tconst locale = getLocale() as unknown as LocaleT;\n\t\tconst language = locale.getLanguage();\n\t\tconst longLanguages = [\"zh\", \"ja\", \"ko\", \"bg\", \"mk\", \"ru\"];\n\n\t\treturn longLanguages.includes(language) && this.hasSecondaryCalendarType;\n\t}\n\n\t_getPageSize() {\n\t\treturn this._shouldShowOneColumn() ? 6 : 8;\n\t}\n\n\t_getRowSize() {\n\t\treturn this._shouldShowOneColumn() ? 1 : 2;\n\t}\n\n\t_getInitialFocusedIndex() {\n\t\treturn 2;\n\t}\n\n\t_getRangeSize() {\n\t\treturn this.hasSecondaryCalendarType ? 8 : 20;\n\t}\n\n\t_getYearRangeFormattedText(startDate: CalendarDate, endDate: CalendarDate, yearFormat: DateFormat): string {\n\t\treturn `${yearFormat.format(startDate.toLocalJSDate())} - ${yearFormat.format(endDate.toLocalJSDate())}`;\n\t}\n\n\t_getGridStartYear() {\n\t\tconst rangeSize = this._getRangeSize();\n\t\tconst pageSize = this._getPageSize();\n\t\tconst pageSizeInYears = rangeSize * pageSize;\n\t\tconst yearsOffset = rangeSize * this._getInitialFocusedIndex();\n\t\tconst currentStartYear = this._currentYearRange?.startYear ? this._currentYearRange?.startYear : this._calendarDate.getYear();\n\n\t\t// On first load, current range should be the 3rd item in the grid\n\t\tlet gridStartYear = this._gridStartYear ? this._gridStartYear : currentStartYear - yearsOffset;\n\n\t\t// If page navigation occured, update the current range start year\n\t\tgridStartYear += Math.floor((currentStartYear - gridStartYear) / pageSizeInYears) * pageSizeInYears;\n\n\t\t// Normalize grid start year to be between the min and absolute max year\n\t\tconst minYear = this._minDate.getYear();\n\t\tif (currentStartYear - rangeSize < minYear) {\n\t\t\tgridStartYear = minYear;\n\t\t}\n\n\t\tconst absoluteMaxYear = getMaxCalendarDate(this._primaryCalendarType).getYear();\n\t\tif (currentStartYear + pageSizeInYears > absoluteMaxYear) {\n\t\t\tgridStartYear = absoluteMaxYear - pageSizeInYears + 1;\n\t\t}\n\n\t\treturn gridStartYear;\n\t}\n\n\t_getYearRanges() {\n\t\tconst locale = getLocale() as unknown as LocaleT;\n\t\tconst yearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this._primaryCalendarType }, locale);\n\t\tconst yearFormatInSecType = DateFormat.getDateInstance({ format: \"y\", calendarType: this._secondaryCalendarType }, locale);\n\n\t\tconst pageSize = this._getPageSize();\n\t\tconst rowSize = this._getRowSize();\n\t\tconst rangeSize = this._getRangeSize();\n\n\t\tconst calendarDate = this._calendarDate;\n\t\tconst minYear = this._minDate.getYear();\n\t\tconst maxYear = this._maxDate.getYear();\n\n\t\tconst tempDate = new CalendarDate(calendarDate, this._primaryCalendarType);\n\t\ttempDate.setYear(this._gridStartYear!);\n\n\t\tconst yearRanges: YearRanges = [];\n\n\t\tfor (let i = 0; i < pageSize; i++) {\n\t\t\tconst endDate = new CalendarDate(tempDate, this._primaryCalendarType);\n\t\t\tendDate.setYear(endDate.getYear() + rangeSize - 1);\n\n\t\t\tconst timestamp = tempDate.valueOf() / 1000;\n\t\t\tconst endTimestamp = endDate.valueOf() / 1000;\n\n\t\t\tconst isFocused = isBetweenInclusive(calendarDate.getYear(), tempDate.getYear(), endDate.getYear());\n\n\t\t\tconst isSelected = this._isYearRangeSelected(timestamp, endTimestamp);\n\t\t\tconst isSelectedBetween = this._isInsideSelectionRange(timestamp);\n\n\t\t\tconst yearRangeText = this._getYearRangeFormattedText(tempDate, endDate, yearFormat);\n\t\t\tconst secYearRangeText = this.hasSecondaryCalendarType ? this._getYearRangeFormattedText(tempDate, endDate, yearFormatInSecType) : undefined;\n\n\t\t\tconst isDisabled = !(isBetweenInclusive(tempDate.getYear(), minYear, maxYear)\n\t\t\t\t\t\t\t\t|| isBetweenInclusive(endDate.getYear(), minYear, maxYear));\n\n\t\t\tconst yearRange = this._getYearRange(timestamp, isFocused, isSelected, isSelectedBetween, yearRangeText, secYearRangeText, isDisabled);\n\n\t\t\tconst intervalIndex = Math.floor(i / rowSize);\n\n\t\t\tif (yearRanges[intervalIndex]) {\n\t\t\t\tyearRanges[intervalIndex].push(yearRange);\n\t\t\t} else {\n\t\t\t\tyearRanges[intervalIndex] = [yearRange];\n\t\t\t}\n\n\t\t\ttempDate.setYear(tempDate.getYear() + rangeSize);\n\t\t}\n\n\t\treturn yearRanges;\n\t}\n\n\t_getYearRange(timestamp: number, isFocused: boolean, isSelected: boolean, isSelectedBetween: boolean, yearRangeText: string, secYearRangeText: string | undefined, isDisabled: boolean) {\n\t\tconst yearRange: YearRange = {\n\t\t\ttimestamp: timestamp.toString(),\n\t\t\t_tabIndex: isFocused ? 0 : -1,\n\t\t\tfocusRef: isFocused,\n\t\t\tselected: isSelected || isSelectedBetween,\n\t\t\tariaSelected: isSelected || isSelectedBetween,\n\t\t\trange: yearRangeText,\n\t\t\trangeInSecType: secYearRangeText,\n\t\t\tdisabled: isDisabled,\n\t\t\tariaDisabled: isDisabled,\n\t\t\tclasses: \"ui5-yrp-item\",\n\t\t\tparts: \"year-range-cell\",\n\t\t};\n\n\t\tif (isSelected) {\n\t\t\tyearRange.classes += \" ui5-yrp-item--selected\";\n\t\t\tyearRange.parts += \" year-range-cell-selected\";\n\t\t}\n\n\t\tif (isSelectedBetween && !isSelected) {\n\t\t\tyearRange.classes += \" ui5-yrp-item--selected-between\";\n\t\t\tyearRange.parts += \" year-range-cell-selected-between\";\n\t\t}\n\n\t\tif (isDisabled) {\n\t\t\tyearRange.classes += \" ui5-yrp-item--disabled\";\n\t\t}\n\n\t\tif (this.hasSecondaryCalendarType) {\n\t\t\tyearRange.classes += \" ui5-yrp-item-secondary-type\";\n\t\t}\n\n\t\tif (this._shouldShowOneColumn()) {\n\t\t\tyearRange.classes += \" ui5-yrp-item-one-column-view\";\n\t\t}\n\n\t\treturn yearRange;\n\t}\n\n\t_isYearRangeSelected(startYear: number, endYear: number) {\n\t\treturn this.selectedDates.some(itemTimestamp => {\n\t\t\treturn isBetweenInclusive(itemTimestamp, startYear, endYear);\n\t\t});\n\t}\n\n\t/**\n\t * Returns true if the timestamp is inside the selection range.\n\t * @private\n\t */\n\t_isInsideSelectionRange(timestamp: number): boolean {\n\t\tif (!this._showRangeSelection || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetweenInclusive(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\treturn isBetweenInclusive(timestamp, this.selectedDates[0], this.selectedDates[1]);\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\t\tconst pageSize = this._getPageSize();\n\t\tconst rowSize = this._getRowSize();\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._selectYearRange(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(-rowSize);\n\t\t} else if (isDown(e)) {\n\t\t\tthis._modifyTimestampBy(rowSize);\n\t\t} else if (isPageUp(e)) {\n\t\t\tthis._modifyTimestampBy(-pageSize);\n\t\t} else if (isPageDown(e)) {\n\t\t\tthis._modifyTimestampBy(pageSize);\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._yearRanges[0][0].timestamp)); // first year range of first row\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tthis._setTimestamp(parseInt(this._yearRanges[pageSize / rowSize - 1][rowSize - 1].timestamp)); // last year range 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_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._selectYearRange(e);\n\t\t}\n\t}\n\n\t_onHomeOrEnd(homePressed: boolean) {\n\t\tthis._yearRanges.forEach(row => {\n\t\t\tconst indexInRow = row.findIndex(item => {\n\t\t\t\tconst startYear = CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000).getYear();\n\t\t\t\tconst currentYear = this._calendarDate.getYear();\n\t\t\t\treturn isBetweenInclusive(startYear, currentYear, currentYear + this._getRangeSize() - 1);\n\t\t\t});\n\t\t\tif (indexInRow !== -1) { // The current year is on this row\n\t\t\t\tconst index = homePressed ? 0 : this._getRowSize() - 1; // select the first (if Home) or last (if End) year 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 * 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-yrp-item\") as HTMLElement;\n\t\tif (hoveredItem && this._showRangeSelection && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\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 year range is considered the \"second timestamp\".\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this._showRangeSelection && (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 * User selected range with the mouse or pressed Enter/Space.\n\t * @param e\n\t * @private\n\t */\n\t_selectYearRange(e: Event) {\n\t\te.preventDefault();\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (target.className.indexOf(\"ui5-yrp-item\") === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet timestamp = this._getTimestampFromDom(target);\n\t\ttimestamp = this._getYearPickerCenteredTimestamp(timestamp);\n\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp!,\n\t\t});\n\t}\n\n\t/**\n\t * Returns the centered timestamp for the year picker.\n\t * @private\n\t */\n\t_getYearPickerCenteredTimestamp(oldTimestamp: number): number {\n\t\tconst yearsOffset = this.hasSecondaryCalendarType ? 2 : 9;\n\t\tconst selectedDate = CalendarDate.fromTimestamp(oldTimestamp * 1000, this._primaryCalendarType);\n\t\tconst startYear = selectedDate.getYear();\n\t\tconst centeredYear = startYear + yearsOffset;\n\n\t\tselectedDate.setYear(centeredYear);\n\n\t\treturn selectedDate.valueOf() / 1000;\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._gridStartYear! > 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\tconst amountInYears = this._getPageSize() * this._getRangeSize();\n\t\treturn this._gridStartYear! + amountInYears - 1 < this._maxDate.getYear();\n\t}\n\n\t/**\n\t * Called by the Calendar component.\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\tconst pageSize = this._getPageSize();\n\t\tthis._modifyTimestampBy(-pageSize);\n\n\t\tconst amountInYears = pageSize * this._getRangeSize();\n\t\tthis._modifyGridStartBy(-amountInYears);\n\t}\n\n\t/**\n\t * Called by the Calendar component.\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\tconst pageSize = this._getPageSize();\n\t\tthis._modifyTimestampBy(pageSize);\n\n\t\tconst amountInYears = pageSize * this._getRangeSize();\n\t\tthis._modifyGridStartBy(amountInYears);\n\t}\n\n\t/**\n\t * Modifies timestamp by a given amount of year ranges and, if necessary, loads the prev/next page.\n\t * @param amount\n\t * @private\n\t */\n\t_modifyTimestampBy(amount: number) {\n\t\t// Modify the current timestamp\n\t\tconst amountInYears = amount * this._getRangeSize();\n\t\tthis._safelyModifyTimestampBy(amountInYears, \"year\");\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t_modifyGridStartBy(years: number) {\n\t\tthis._gridStartYear! += years;\n\t}\n}\n\nYearRangePicker.define();\n\nexport default YearRangePicker;\nexport type {\n\tYearRangePickerChangeEventDetail,\n\tYearRangePickerNavigateEventDetail,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ import type YearRangePicker from "./YearRangePicker.js";
2
+ export default function YearRangePickerTemplate(this: YearRangePicker): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
+ export default function YearRangePickerTemplate() {
3
+ return (_jsx("div", { class: "ui5-yrp-root", role: "grid", "aria-roledescription": this.roleDescription, "aria-readonly": "false", "aria-multiselectable": "false", onClick: this._selectYearRange, onMouseOver: this._onmouseover, onKeyDown: this._onkeydown, onKeyUp: this._onkeyup, children: this._yearRanges.map(rangeRow => _jsx("div", { role: "row", class: "ui5-yrp-interval-container", children: rangeRow.map(yearRange => _jsxs("div", { "data-sap-timestamp": yearRange.timestamp, tabindex: yearRange._tabIndex, "data-sap-focus-ref": yearRange.focusRef ? "true" : undefined, class: yearRange.classes, part: yearRange.parts, role: "gridcell", "aria-selected": yearRange.ariaSelected, "aria-disabled": yearRange.ariaDisabled, children: [_jsx("span", { class: "ui5-dp-yeartext", children: yearRange.range }), yearRange.rangeInSecType &&
4
+ _jsx("span", { class: "ui5-yrp-item-sec-type", children: yearRange.rangeInSecType })] })) })) }));
5
+ }
6
+ //# sourceMappingURL=YearRangePickerTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YearRangePickerTemplate.js","sourceRoot":"","sources":["../src/YearRangePickerTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,uBAAuB;IAC9C,OAAO,CACN,cACC,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,MAAM,0BACW,IAAI,CAAC,eAAe,mBAC5B,OAAO,0BACA,OAAO,EAC5B,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,WAAW,EAAE,IAAI,CAAC,YAAY,EAC9B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ,YAErB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAChC,cAAK,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,4BAA4B,YAChD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,qCACN,SAAS,CAAC,SAAS,EACvC,QAAQ,EAAE,SAAS,CAAC,SAAS,wBACT,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC3D,KAAK,EAAE,SAAS,CAAC,OAAO,EACxB,IAAI,EAAE,SAAS,CAAC,KAAK,EACrB,IAAI,EAAC,UAAU,mBACA,SAAS,CAAC,YAAY,mBACtB,SAAS,CAAC,YAAY,aAErC,eAAM,KAAK,EAAC,iBAAiB,YAC3B,SAAS,CAAC,KAAK,GACV,EAEN,SAAS,CAAC,cAAc;wBACxB,eAAM,KAAK,EAAC,uBAAuB,YACjC,SAAS,CAAC,cAAc,GACnB,IAEH,CACL,GACI,CACN,GACI,CAAC,CAAC;AACV,CAAC","sourcesContent":["import type YearRangePicker from \"./YearRangePicker.js\";\n\nexport default function YearRangePickerTemplate(this: YearRangePicker) {\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-yrp-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\tonClick={this._selectYearRange}\n\t\t\tonMouseOver={this._onmouseover}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t\tonKeyUp={this._onkeyup}\n\t\t>\n\t\t\t{this._yearRanges.map(rangeRow =>\n\t\t\t\t<div role=\"row\" class=\"ui5-yrp-interval-container\">\n\t\t\t\t\t{rangeRow.map(yearRange => <div\n\t\t\t\t\t\tdata-sap-timestamp={yearRange.timestamp}\n\t\t\t\t\t\ttabindex={yearRange._tabIndex}\n\t\t\t\t\t\tdata-sap-focus-ref={yearRange.focusRef ? \"true\" : undefined}\n\t\t\t\t\t\tclass={yearRange.classes}\n\t\t\t\t\t\tpart={yearRange.parts}\n\t\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\t\taria-selected={yearRange.ariaSelected}\n\t\t\t\t\t\taria-disabled={yearRange.ariaDisabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"ui5-dp-yeartext\">\n\t\t\t\t\t\t\t{yearRange.range}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tyearRange.rangeInSecType &&\n\t\t\t\t\t\t\t<span class=\"ui5-yrp-item-sec-type\">\n\t\t\t\t\t\t\t\t{yearRange.rangeInSecType}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t}\n\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"]}
@@ -45,6 +45,12 @@ import DatePicker from "./DatePicker.js";
45
45
  import DateRangePicker from "./DateRangePicker.js";
46
46
  import DateTimePicker from "./DateTimePicker.js";
47
47
  import Dialog from "./Dialog.js";
48
+ import DynamicDateRange from "./DynamicDateRange.js";
49
+ import Today from "./dynamic-date-range-options/Today.js";
50
+ import Yesterday from "./dynamic-date-range-options/Yesterday.js";
51
+ import Tomorrow from "./dynamic-date-range-options/Tomorrow.js";
52
+ import SingleDate from "./dynamic-date-range-options/SingleDate.js";
53
+ import DateRange from "./dynamic-date-range-options/DateRange.js";
48
54
  import ExpandableText from "./ExpandableText.js";
49
55
  import Form from "./Form.js";
50
56
  import FormItem from "./FormItem.js";