@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
@@ -4,11 +4,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
7
8
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
9
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
9
10
  import ToolbarSeparatorTemplate from "./ToolbarSeparatorTemplate.js";
10
- import ToolbarPopoverSeparatorTemplate from "./ToolbarPopoverSeparatorTemplate.js";
11
- import { registerToolbarItem } from "./ToolbarRegistry.js";
11
+ // Styles
12
+ import ToolbarSeparatorCss from "./generated/themes/ToolbarSeparator.css.js";
12
13
  import ToolbarItem from "./ToolbarItem.js";
13
14
  /**
14
15
  * @class
@@ -27,12 +28,6 @@ let ToolbarSeparator = class ToolbarSeparator extends ToolbarItem {
27
28
  super(...arguments);
28
29
  this.visible = false;
29
30
  }
30
- static get toolbarTemplate() {
31
- return ToolbarSeparatorTemplate;
32
- }
33
- static get toolbarPopoverTemplate() {
34
- return ToolbarPopoverSeparatorTemplate;
35
- }
36
31
  get isSeparator() {
37
32
  return true;
38
33
  }
@@ -46,9 +41,11 @@ __decorate([
46
41
  ToolbarSeparator = __decorate([
47
42
  customElement({
48
43
  tag: "ui5-toolbar-separator",
44
+ template: ToolbarSeparatorTemplate,
45
+ renderer: jsxRenderer,
46
+ styles: [ToolbarSeparatorCss],
49
47
  })
50
48
  ], ToolbarSeparator);
51
- registerToolbarItem(ToolbarSeparator);
52
49
  ToolbarSeparator.define();
53
50
  export default ToolbarSeparator;
54
51
  //# sourceMappingURL=ToolbarSeparator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarSeparator.js","sourceRoot":"","sources":["../src/ToolbarSeparator.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C;;;;;;;;;;;GAWG;AAKH,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,WAAW;IAA1C;;QAEC,YAAO,GAAG,KAAK,CAAC;IAiBjB,CAAC;IAfA,MAAM,KAAK,eAAe;QACzB,OAAO,wBAAwB,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,sBAAsB;QAChC,OAAO,+BAA+B,CAAC;IACxC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AAjBA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACZ;AAFX,gBAAgB;IAJrB,aAAa,CAAC;QACd,GAAG,EAAE,uBAAuB;KAC5B,CAAC;GAEI,gBAAgB,CAmBrB;AAED,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAEtC,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAE1B,eAAe,gBAAgB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport ToolbarSeparatorTemplate from \"./ToolbarSeparatorTemplate.js\";\nimport ToolbarPopoverSeparatorTemplate from \"./ToolbarPopoverSeparatorTemplate.js\";\n\nimport { registerToolbarItem } from \"./ToolbarRegistry.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-toolbar-separator` is an element, used for visual separation between two elements.\n * It takes no space in calculating toolbar items width.\n * @constructor\n * @extends ToolbarItem\n * @since 1.17.0\n * @abstract\n * @public\n */\n@customElement({\n\ttag: \"ui5-toolbar-separator\",\n})\n\nclass ToolbarSeparator extends ToolbarItem {\n\t@property({ type: Boolean })\n\tvisible = false;\n\n\tstatic get toolbarTemplate() {\n\t\treturn ToolbarSeparatorTemplate;\n\t}\n\n\tstatic get toolbarPopoverTemplate() {\n\t\treturn ToolbarPopoverSeparatorTemplate;\n\t}\n\n\tget isSeparator() {\n\t\treturn true;\n\t}\n\n\tget isInteractive() {\n\t\treturn false;\n\t}\n}\n\nregisterToolbarItem(ToolbarSeparator);\n\nToolbarSeparator.define();\n\nexport default ToolbarSeparator;\n"]}
1
+ {"version":3,"file":"ToolbarSeparator.js","sourceRoot":"","sources":["../src/ToolbarSeparator.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAErE,SAAS;AACT,OAAO,mBAAmB,MAAM,4CAA4C,CAAC;AAE7E,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C;;;;;;;;;;;GAWG;AAQH,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,WAAW;IAA1C;;QAEC,YAAO,GAAG,KAAK,CAAC;IASjB,CAAC;IAPA,IAAI,WAAW;QACd,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AATA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACZ;AAFX,gBAAgB;IAPrB,aAAa,CAAC;QACd,GAAG,EAAE,uBAAuB;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,CAAC,mBAAmB,CAAC;KAC7B,CAAC;GAEI,gBAAgB,CAWrB;AAED,gBAAgB,CAAC,MAAM,EAAE,CAAC;AAE1B,eAAe,gBAAgB,CAAC","sourcesContent":["import jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport ToolbarSeparatorTemplate from \"./ToolbarSeparatorTemplate.js\";\n\n// Styles\nimport ToolbarSeparatorCss from \"./generated/themes/ToolbarSeparator.css.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-toolbar-separator` is an element, used for visual separation between two elements.\n * It takes no space in calculating toolbar items width.\n * @constructor\n * @extends ToolbarItem\n * @since 1.17.0\n * @abstract\n * @public\n */\n@customElement({\n\ttag: \"ui5-toolbar-separator\",\n\ttemplate: ToolbarSeparatorTemplate,\n\trenderer: jsxRenderer,\n\tstyles: [ToolbarSeparatorCss],\n})\n\nclass ToolbarSeparator extends ToolbarItem {\n\t@property({ type: Boolean })\n\tvisible = false;\n\n\tget isSeparator() {\n\t\treturn true;\n\t}\n\n\tget isInteractive() {\n\t\treturn false;\n\t}\n}\n\nToolbarSeparator.define();\n\nexport default ToolbarSeparator;\n"]}
@@ -1,4 +1,3 @@
1
- import ToolbarSpacerTemplate from "./ToolbarSpacerTemplate.js";
2
1
  import ToolbarItem from "./ToolbarItem.js";
3
2
  /**
4
3
  * @class
@@ -30,8 +29,6 @@ declare class ToolbarSpacer extends ToolbarItem {
30
29
  };
31
30
  get ignoreSpace(): boolean;
32
31
  get hasFlexibleWidth(): boolean;
33
- static get toolbarTemplate(): typeof ToolbarSpacerTemplate;
34
- static get toolbarPopoverTemplate(): typeof ToolbarSpacerTemplate;
35
32
  get isInteractive(): boolean;
36
33
  }
37
34
  export default ToolbarSpacer;
@@ -6,9 +6,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
8
8
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
- import ToolbarSpacerTemplate from "./ToolbarSpacerTemplate.js";
9
+ import ToolbarCss from "./generated/themes/Toolbar.css.js";
10
10
  import ToolbarItem from "./ToolbarItem.js";
11
- import { registerToolbarItem } from "./ToolbarRegistry.js";
12
11
  /**
13
12
  * @class
14
13
  *
@@ -31,12 +30,6 @@ let ToolbarSpacer = class ToolbarSpacer extends ToolbarItem {
31
30
  get hasFlexibleWidth() {
32
31
  return this.width === "" || this.width === undefined || this.width === "auto";
33
32
  }
34
- static get toolbarTemplate() {
35
- return ToolbarSpacerTemplate;
36
- }
37
- static get toolbarPopoverTemplate() {
38
- return ToolbarSpacerTemplate;
39
- }
40
33
  get isInteractive() {
41
34
  return false;
42
35
  }
@@ -47,9 +40,9 @@ __decorate([
47
40
  ToolbarSpacer = __decorate([
48
41
  customElement({
49
42
  tag: "ui5-toolbar-spacer",
43
+ styles: ToolbarCss,
50
44
  })
51
45
  ], ToolbarSpacer);
52
- registerToolbarItem(ToolbarSpacer);
53
46
  ToolbarSpacer.define();
54
47
  export default ToolbarSpacer;
55
48
  //# sourceMappingURL=ToolbarSpacer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarSpacer.js","sourceRoot":"","sources":["../src/ToolbarSpacer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;GAWG;AAKH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,WAAW;IAWtC,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;IAC/E,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;IAC/E,CAAC;IAED,MAAM,KAAK,eAAe;QACzB,OAAO,qBAAqB,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,sBAAsB;QAChC,OAAO,qBAAqB,CAAC;IAC9B,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AAzBA;IADC,QAAQ,EAAE;4CACI;AATV,aAAa;IAJlB,aAAa,CAAC;QACd,GAAG,EAAE,oBAAoB;KACzB,CAAC;GAEI,aAAa,CAkClB;AAED,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAEnC,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport ToolbarSpacerTemplate from \"./ToolbarSpacerTemplate.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\n\nimport { registerToolbarItem } from \"./ToolbarRegistry.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-toolbar-spacer` is an element, used for taking needed space for toolbar items to take 100% width.\n * It takes no space in calculating toolbar items width.\n * @constructor\n * @extends ToolbarItem\n * @abstract\n * @since 1.17.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-toolbar-spacer\",\n})\n\nclass ToolbarSpacer extends ToolbarItem {\n\t/**\n\t * Defines the width of the spacer.\n\t *\n\t * **Note:** all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\twidth?: string;\n\n\tget styles() {\n\t\treturn this.width ? { width: this.width } : { flex: \"auto\" };\n\t}\n\n\tget ignoreSpace() {\n\t\treturn this.width === \"\" || this.width === undefined || this.width === \"auto\";\n\t}\n\n\tget hasFlexibleWidth() {\n\t\treturn this.width === \"\" || this.width === undefined || this.width === \"auto\";\n\t}\n\n\tstatic get toolbarTemplate() {\n\t\treturn ToolbarSpacerTemplate;\n\t}\n\n\tstatic get toolbarPopoverTemplate() {\n\t\treturn ToolbarSpacerTemplate;\n\t}\n\n\tget isInteractive() {\n\t\treturn false;\n\t}\n}\n\nregisterToolbarItem(ToolbarSpacer);\n\nToolbarSpacer.define();\n\nexport default ToolbarSpacer;\n"]}
1
+ {"version":3,"file":"ToolbarSpacer.js","sourceRoot":"","sources":["../src/ToolbarSpacer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAErF,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAE3D,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C;;;;;;;;;;;GAWG;AAMH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,WAAW;IAWtC,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;IAC/E,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;IAC/E,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AAjBA;IADC,QAAQ,EAAE;4CACI;AATV,aAAa;IALlB,aAAa,CAAC;QACd,GAAG,EAAE,oBAAoB;QACzB,MAAM,EAAE,UAAU;KAClB,CAAC;GAEI,aAAa,CA0BlB;AAED,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\n\nimport ToolbarCss from \"./generated/themes/Toolbar.css.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-toolbar-spacer` is an element, used for taking needed space for toolbar items to take 100% width.\n * It takes no space in calculating toolbar items width.\n * @constructor\n * @extends ToolbarItem\n * @abstract\n * @since 1.17.0\n * @public\n */\n@customElement({\n\ttag: \"ui5-toolbar-spacer\",\n\tstyles: ToolbarCss,\n})\n\nclass ToolbarSpacer extends ToolbarItem {\n\t/**\n\t * Defines the width of the spacer.\n\t *\n\t * **Note:** all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\twidth?: string;\n\n\tget styles() {\n\t\treturn this.width ? { width: this.width } : { flex: \"auto\" };\n\t}\n\n\tget ignoreSpace() {\n\t\treturn this.width === \"\" || this.width === undefined || this.width === \"auto\";\n\t}\n\n\tget hasFlexibleWidth() {\n\t\treturn this.width === \"\" || this.width === undefined || this.width === \"auto\";\n\t}\n\n\tget isInteractive() {\n\t\treturn false;\n\t}\n}\n\nToolbarSpacer.define();\n\nexport default ToolbarSpacer;\n"]}
@@ -1,15 +1,27 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import Button from "./Button.js";
3
- import toolbarPopoverTemplate from "./ToolbarPopoverTemplate.js";
3
+ import Popover from "./Popover.js";
4
4
  import overflowIcon from "@ui5/webcomponents-icons/dist/overflow.js";
5
5
  export default function ToolbarTemplate() {
6
6
  return (_jsxs(_Fragment, { children: [_jsxs("div", { class: {
7
7
  "ui5-tb-items": true,
8
8
  "ui5-tb-items-full-width": this.hasFlexibleSpacers,
9
- }, role: this.accInfo.root.role, "aria-label": this.accInfo.root.accessibleName, children: [this.standardItems.map(item => (item.toolbarTemplate.call(item.context))), _jsx(Button, { "aria-hidden": this.hideOverflowButton, icon: overflowIcon, design: "Transparent", onClick: this.toggleOverflow, class: {
9
+ }, role: this.accInfo.root.role, "aria-label": this.accInfo.root.accessibleName, children: [this.standardItems.map(item => {
10
+ if ("styles" in item) {
11
+ return (_jsx("div", { class: "ui5-tb-item", id: item._individualSlot, style: item.styles, children: _jsx("slot", { name: item._individualSlot }) }));
12
+ }
13
+ return (_jsx("div", { class: "ui5-tb-item", id: item._individualSlot, children: _jsx("slot", { name: item._individualSlot }) }));
14
+ }), _jsx(Button, { "aria-hidden": this.hideOverflowButton, icon: overflowIcon, design: "Transparent", onClick: this.toggleOverflow, class: {
10
15
  "ui5-tb-item": true,
11
16
  "ui5-tb-overflow-btn": true,
12
17
  "ui5-tb-overflow-btn-hidden": this.hideOverflowButton,
13
- }, tooltip: this.accInfo.overflowButton.tooltip, accessibleName: this.accInfo.overflowButton.accessibleName, accessibilityAttributes: this.accInfo.overflowButton.accessibilityAttributes })] }), toolbarPopoverTemplate.call(this)] }));
18
+ }, tooltip: this.accInfo.overflowButton.tooltip, accessibleName: this.accInfo.overflowButton.accessibleName, accessibilityAttributes: this.accInfo.overflowButton.accessibilityAttributes })] }), _jsx(Popover, { class: "ui5-overflow-popover", placement: "Bottom", horizontalAlign: "End", onClose: this.onOverflowPopoverClosed, onOpen: this.onOverflowPopoverOpened, accessibleName: this.accInfo.popover.accessibleName, hideArrow: true, children: _jsx("div", { class: {
19
+ "ui5-overflow-list": true
20
+ }, children: this.overflowItems.map(item => {
21
+ if (item.isSeparator) {
22
+ return (_jsx("div", { class: "ui5-tb-popover-item ui5-tb-separator ui5-tb-separator-in-overflow", id: item._individualSlot, children: _jsx("slot", { name: item._individualSlot }) }));
23
+ }
24
+ return (_jsx("div", { class: "ui5-tb-popover-item", id: item._individualSlot, children: _jsx("slot", { name: item._individualSlot }) }));
25
+ }) }) })] }));
14
26
  }
15
27
  //# sourceMappingURL=ToolbarTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarTemplate.js","sourceRoot":"","sources":["../src/ToolbarTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AACjE,OAAO,YAAY,MAAM,2CAA2C,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,eAAe;IACtC,OAAO,CAAC,8BACP,eACC,KAAK,EAAE;oBACN,cAAc,EAAE,IAAI;oBACpB,yBAAyB,EAAE,IAAI,CAAC,kBAAkB;iBAClD,EACD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,gBAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,aAE3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CACvC,CAAC,EAEF,KAAC,MAAM,mBACO,IAAI,CAAC,kBAAkB,EACpC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,KAAK,EAAE;4BACN,aAAa,EAAE,IAAI;4BACnB,qBAAqB,EAAE,IAAI;4BAC3B,4BAA4B,EAAE,IAAI,CAAC,kBAAkB;yBACrD,EACD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAC5C,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,EAC1D,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,uBAAuB,GAC3E,IACG,EAEL,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAChC,CAAC,CAAC;AACN,CAAC","sourcesContent":["import Button from \"./Button.js\";\nimport type Toolbar from \"./Toolbar.js\";\nimport toolbarPopoverTemplate from \"./ToolbarPopoverTemplate.js\";\nimport overflowIcon from \"@ui5/webcomponents-icons/dist/overflow.js\";\n\nexport default function ToolbarTemplate(this: Toolbar) {\n\treturn (<>\n\t\t<div\n\t\t\tclass={{\n\t\t\t\t\"ui5-tb-items\": true,\n\t\t\t\t\"ui5-tb-items-full-width\": this.hasFlexibleSpacers,\n\t\t\t}}\n\t\t\trole={this.accInfo.root.role}\n\t\t\taria-label={this.accInfo.root.accessibleName}\n\t\t>\n\t\t\t{this.standardItems.map(item => (\n\t\t\t\titem.toolbarTemplate.call(item.context)\n\t\t\t))}\n\n\t\t\t<Button\n\t\t\t\taria-hidden={this.hideOverflowButton}\n\t\t\t\ticon={overflowIcon}\n\t\t\t\tdesign=\"Transparent\"\n\t\t\t\tonClick={this.toggleOverflow}\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-tb-item\": true,\n\t\t\t\t\t\"ui5-tb-overflow-btn\": true,\n\t\t\t\t\t\"ui5-tb-overflow-btn-hidden\": this.hideOverflowButton,\n\t\t\t\t}}\n\t\t\t\ttooltip={this.accInfo.overflowButton.tooltip}\n\t\t\t\taccessibleName={this.accInfo.overflowButton.accessibleName}\n\t\t\t\taccessibilityAttributes={this.accInfo.overflowButton.accessibilityAttributes}\n\t\t\t/>\n\t\t</div>\n\n\t\t{toolbarPopoverTemplate.call(this)}\n\t</>);\n}\n"]}
1
+ {"version":3,"file":"ToolbarTemplate.js","sourceRoot":"","sources":["../src/ToolbarTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,YAAY,MAAM,2CAA2C,CAAC;AAErE,MAAM,CAAC,OAAO,UAAU,eAAe;IACtC,OAAO,CAAC,8BACP,eACC,KAAK,EAAE;oBACN,cAAc,EAAE,IAAI;oBACpB,yBAAyB,EAAE,IAAI,CAAC,kBAAkB;iBAClD,EACD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,gBAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,aAE3C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC9B,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;4BACtB,OAAO,CACN,cAAK,KAAK,EAAC,aAAa,EAAC,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,MAAgB,YAC9E,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,CACN,CAAC;wBACH,CAAC;wBACD,OAAO,CACN,cAAK,KAAK,EAAC,aAAa,EAAC,EAAE,EAAE,IAAI,CAAC,eAAe,YAChD,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,CACN,CAAC;oBACH,CAAC,CAAC,EACF,KAAC,MAAM,mBACO,IAAI,CAAC,kBAAkB,EACpC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAC,aAAa,EACpB,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,KAAK,EAAE;4BACN,aAAa,EAAE,IAAI;4BACnB,qBAAqB,EAAE,IAAI;4BAC3B,4BAA4B,EAAE,IAAI,CAAC,kBAAkB;yBACrD,EACD,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAC5C,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,EAC1D,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,uBAAuB,GAC3E,IACG,EAEN,KAAC,OAAO,IACP,KAAK,EAAC,sBAAsB,EAC5B,SAAS,EAAC,QAAQ,EAClB,eAAe,EAAC,KAAK,EACrB,OAAO,EAAE,IAAI,CAAC,uBAAuB,EACrC,MAAM,EAAE,IAAI,CAAC,uBAAuB,EACpC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EACnD,SAAS,EAAE,IAAI,YAEf,cAAK,KAAK,EAAE;wBACX,mBAAmB,EAAE,IAAI;qBACzB,YACC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;wBAC9B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;4BACtB,OAAO,CACN,cAAK,KAAK,EAAC,mEAAmE,EAAC,EAAE,EAAE,IAAI,CAAC,eAAe,YACtG,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,CACN,CAAC;wBACH,CAAC;wBACD,OAAO,CACN,cAAK,KAAK,EAAC,qBAAqB,EAAC,EAAE,EAAE,IAAI,CAAC,eAAe,YACxD,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,CACN,CAAC;oBACH,CAAC,CAAC,GACG,GACG,IACR,CAAC,CAAC;AACN,CAAC","sourcesContent":["import Button from \"./Button.js\";\nimport type Toolbar from \"./Toolbar.js\";\nimport Popover from \"./Popover.js\";\nimport overflowIcon from \"@ui5/webcomponents-icons/dist/overflow.js\";\n\nexport default function ToolbarTemplate(this: Toolbar) {\n\treturn (<>\n\t\t<div\n\t\t\tclass={{\n\t\t\t\t\"ui5-tb-items\": true,\n\t\t\t\t\"ui5-tb-items-full-width\": this.hasFlexibleSpacers,\n\t\t\t}}\n\t\t\trole={this.accInfo.root.role}\n\t\t\taria-label={this.accInfo.root.accessibleName}\n\t\t>\n\t\t\t{this.standardItems.map(item => {\n\t\t\t\tif (\"styles\" in item) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div class=\"ui5-tb-item\" id={item._individualSlot} style={item.styles as string}>\n\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<div class=\"ui5-tb-item\" id={item._individualSlot}>\n\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t\t<Button\n\t\t\t\taria-hidden={this.hideOverflowButton}\n\t\t\t\ticon={overflowIcon}\n\t\t\t\tdesign=\"Transparent\"\n\t\t\t\tonClick={this.toggleOverflow}\n\t\t\t\tclass={{\n\t\t\t\t\t\"ui5-tb-item\": true,\n\t\t\t\t\t\"ui5-tb-overflow-btn\": true,\n\t\t\t\t\t\"ui5-tb-overflow-btn-hidden\": this.hideOverflowButton,\n\t\t\t\t}}\n\t\t\t\ttooltip={this.accInfo.overflowButton.tooltip}\n\t\t\t\taccessibleName={this.accInfo.overflowButton.accessibleName}\n\t\t\t\taccessibilityAttributes={this.accInfo.overflowButton.accessibilityAttributes}\n\t\t\t/>\n\t\t</div>\n\n\t\t<Popover\n\t\t\tclass=\"ui5-overflow-popover\"\n\t\t\tplacement=\"Bottom\"\n\t\t\thorizontalAlign=\"End\"\n\t\t\tonClose={this.onOverflowPopoverClosed}\n\t\t\tonOpen={this.onOverflowPopoverOpened}\n\t\t\taccessibleName={this.accInfo.popover.accessibleName}\n\t\t\thideArrow={true}\n\t\t>\n\t\t\t<div class={{\n\t\t\t\t\"ui5-overflow-list\": true\n\t\t\t}}>\n\t\t\t\t{this.overflowItems.map(item => {\n\t\t\t\t\tif (item.isSeparator) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div class=\"ui5-tb-popover-item ui5-tb-separator ui5-tb-separator-in-overflow\" id={item._individualSlot}>\n\t\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div class=\"ui5-tb-popover-item\" id={item._individualSlot}>\n\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</Popover>\n\t</>);\n}\n"]}
package/dist/Tree.js CHANGED
@@ -372,10 +372,28 @@ Tree = __decorate([
372
372
  ,
373
373
  event("selection-change", {
374
374
  bubbles: true,
375
- }),
375
+ })
376
+ /**
377
+ * Fired when a movable tree item is moved over a potential drop target during a drag-and-drop operation.
378
+ *
379
+ * If the new position is valid, prevent the default action of the event using `preventDefault()`.
380
+ * @param {object} source Contains information about the moved element under the `element` property.
381
+ * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.
382
+ * @public
383
+ */
384
+ ,
376
385
  event("move", {
377
386
  bubbles: true,
378
- }),
387
+ })
388
+ /**
389
+ * Fired when a movable tree item is dropped onto a drop target.
390
+ *
391
+ * **Note:** The `move` event is fired only if there was a preceding `move-over` event with prevented default action.
392
+ * @param {object} source Contains information about the moved element under the `element` property.
393
+ * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.
394
+ * @public
395
+ */
396
+ ,
379
397
  event("move-over", {
380
398
  bubbles: true,
381
399
  cancelable: true,
package/dist/Tree.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../src/Tree.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport DragRegistry from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport handleDragOver from \"@ui5/webcomponents-base/dist/util/dragAndDrop/handleDragOver.js\";\nimport handleDrop from \"@ui5/webcomponents-base/dist/util/dragAndDrop/handleDrop.js\";\nimport { findClosestPosition } from \"@ui5/webcomponents-base/dist/util/dragAndDrop/findClosestPosition.js\";\nimport Orientation from \"@ui5/webcomponents-base/dist/types/Orientation.js\";\nimport MovePlacement from \"@ui5/webcomponents-base/dist/types/MovePlacement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type DropIndicator from \"./DropIndicator.js\";\nimport \"./TreeItem.js\";\nimport type TreeItemBase from \"./TreeItemBase.js\";\nimport \"./TreeItemCustom.js\";\nimport type TreeList from \"./TreeList.js\";\nimport type ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport ListAccessibleRole from \"./types/ListAccessibleRole.js\";\nimport type {\n\tTreeItemBaseToggleEventDetail,\n\tTreeItemBaseStepInEventDetail,\n\tTreeItemBaseStepOutEventDetail,\n} from \"./TreeItemBase.js\";\nimport type {\n\tListItemClickEventDetail,\n\tListItemDeleteEventDetail,\n\tListItemFocusEventDetail,\n\tListSelectionChangeEventDetail,\n} from \"./List.js\";\n\n// Template\nimport TreeTemplate from \"./TreeTemplate.js\";\n\n// Styles\nimport TreeCss from \"./generated/themes/Tree.css.js\";\n\ntype TreeMoveEventDetail = {\n\tsource: {\n\t\telement: HTMLElement,\n\t},\n\tdestination: {\n\t\telement: HTMLElement,\n\t\tplacement: `${MovePlacement}`,\n\t}\n}\n\ntype TreeItemEventDetail = {\n\titem: TreeItemBase,\n}\ntype TreeItemToggleEventDetail = TreeItemEventDetail;\ntype TreeItemMouseoverEventDetail = TreeItemEventDetail;\ntype TreeItemMouseoutEventDetail = TreeItemEventDetail;\ntype TreeItemClickEventDetail = TreeItemEventDetail;\ntype TreeItemDeleteEventDetail = TreeItemEventDetail;\ntype TreeItemFocusEventDetail = TreeItemEventDetail;\ntype TreeSelectionChangeEventDetail = {\n\tselectedItems: Array<TreeItemBase>;\n\tpreviouslySelectedItems: Array<TreeItemBase>;\n\ttargetItem: TreeItemBase;\n}\ntype WalkCallback = (item: TreeItemBase, level: number, index: number) => void;\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-tree` component provides a tree structure for displaying data in a hierarchy.\n *\n * ### Usage\n *\n * #### When to use:\n *\n * - To display hierarchically structured items.\n * - To select one or more items out of a set of hierarchically structured items.\n *\n * #### When not to use:\n *\n * - To display items not hierarchically structured. In this case, use the List component.\n * - To select one item from a very small number of non-hierarchical items. Select or ComboBox might be more appropriate.\n * - The hierarchy turns out to have only two levels. In this case, use List with group items.\n *\n * ### Keyboard Handling\n *\n * The `ui5-tree` provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n *\n * - [Up] or [Down] - Navigates up and down the tree items that are currently visible.\n * - [Right] - Drills down the tree by expanding the tree nodes.\n * - [Left] - Goes up the tree and collapses the tree nodes.\n *\n * The user can use the following keyboard shortcuts to perform selection,\n * when the `selectionMode` property is in use:\n *\n * - [Space] - Selects the currently focused item upon keyup.\n * - [Enter] - Selects the currently focused item upon keydown.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/Tree.js\";`\n *\n * `import \"@ui5/webcomponents/dist/TreeItem.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.8\n */\n@customElement({\n\ttag: \"ui5-tree\",\n\trenderer: jsxRenderer,\n\tstyles: TreeCss,\n\ttemplate: TreeTemplate,\n})\n/**\n * Fired when a tree item is expanded or collapsed.\n *\n * **Note:** You can call `preventDefault()` on the event object to suppress the event, if needed.\n * This may be handy for example if you want to dynamically load tree items upon the user expanding a node.\n * Even if you prevented the event's default behavior, you can always manually call `toggle()` on a tree item.\n * @param {HTMLElement} item the toggled item.\n * @public\n */\n@event(\"item-toggle\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired when the mouse cursor enters the tree item borders.\n * @param {HTMLElement} item the hovered item.\n * @since 1.0.0-rc.16\n * @public\n */\n@event(\"item-mouseover\", {\n\tbubbles: true,\n})\n/**\n * Fired when the mouse cursor leaves the tree item borders.\n * @param {HTMLElement} item the hovered item.\n * @since 1.0.0-rc.16\n * @public\n */\n@event(\"item-mouseout\", {\n\tbubbles: true,\n})\n/**\n * Fired when a tree item is activated.\n * @param {HTMLElement} item The clicked item.\n * @public\n */\n@event(\"item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when the Delete button of any tree item is pressed.\n *\n * **Note:** A Delete button is displayed on each item,\n * when the component `selectionMode` property is set to `Delete`.\n * @param {HTMLElement} item the deleted item.\n * @public\n */\n@event(\"item-delete\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when a tree item is focused.\n * @param {HTMLElement} item The focused item.\n * @private\n */\n@event(\"item-focus\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when selection is changed by user interaction\n * in `Single`, `SingleStart`, `SingleEnd` and `Multiple` modes.\n * @param {Array} selectedItems An array of the selected items.\n * @param {Array} previouslySelectedItems An array of the previously selected items.\n * @param {HTMLElement} targetItem The item triggering the event.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n})\n@event(\"move\", {\n\tbubbles: true,\n})\n@event(\"move-over\", {\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Tree extends UI5Element {\n\teventDetails!: {\n\t\t\"item-toggle\": TreeItemToggleEventDetail,\n\t\t\"item-mouseover\": TreeItemMouseoverEventDetail,\n\t\t\"item-mouseout\": TreeItemMouseoutEventDetail,\n\t\t\"item-click\": TreeItemClickEventDetail,\n\t\t\"item-delete\": TreeItemDeleteEventDetail,\n\t\t\"item-focus\": TreeItemFocusEventDetail,\n\t\t\"selection-change\": TreeSelectionChangeEventDetail,\n\t\t\"move\": TreeMoveEventDetail,\n\t\t\"move-over\": TreeMoveEventDetail,\n\t}\n\t/**\n\t * Defines the selection mode of the component. Since the tree uses a `ui5-list` to display its structure,\n\t * the tree modes are exactly the same as the list modes, and are all applicable.\n\t * @public\n\t * @default \"None\"\n\t */\n\t@property()\n\tselectionMode?: `${ListSelectionMode}` = \"None\";\n\n\t/**\n\t * Defines the text that is displayed when the component contains no items.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tnoDataText?: string;\n\n\t/**\n\t * Defines the component header text.\n\t *\n\t * **Note:** If the `header` slot is set, this property is ignored.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the component footer text.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tfooterText?: string;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines the IDs of the elements that describe the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescriptionRef?: string;\n\n\t/**\n\t * Defines the items of the component. Tree items may have other tree items as children.\n\t *\n\t * **Note:** Use `ui5-tree-item` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: Array<TreeItemBase>;\n\n\t/**\n\t * Defines the component header.\n\t *\n\t * **Note:** When the `header` slot is set, the\n\t * `headerText` property is ignored.\n\t * @public\n\t */\n\t@slot()\n\theader!: Array<HTMLElement>;\n\n\tonEnterDOM() {\n\t\tDragRegistry.subscribe(this);\n\t}\n\n\tonExitDOM() {\n\t\tDragRegistry.unsubscribe(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._prepareTreeItems();\n\t}\n\n\tonAfterRendering() {\n\t\t// Note: this is a workaround for the problem that the list cannot invalidate itself when its only physical child is a slot (and the list items are inside the slot)\n\t\t// This code should be removed once a framework-level fix is implemented\n\t\tthis.shadowRoot!.querySelector<TreeList>(\"[ui5-tree-list]\")!.onBeforeRendering();\n\t}\n\n\tget dropIndicatorDOM(): DropIndicator | null {\n\t\treturn this.shadowRoot!.querySelector(\"[ui5-drop-indicator]\");\n\t}\n\n\tget list() {\n\t\treturn this.getDomRef() as TreeList;\n\t}\n\n\tget _role() {\n\t\treturn ListAccessibleRole.Tree;\n\t}\n\n\tget _hasHeader() {\n\t\treturn !!this.header.length;\n\t}\n\n\t_ondragenter(e: DragEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_ondragleave(e: DragEvent) {\n\t\tif (e.relatedTarget instanceof Node && this.shadowRoot!.contains(e.relatedTarget)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t}\n\n\t_ondragover(e: DragEvent) {\n\t\tconst draggedElement = DragRegistry.getDraggedElement();\n\t\tconst allLiNodesTraversed: Array<HTMLElement> = []; // use the only <li> nodes to determine positioning\n\t\tif (!(e.target instanceof HTMLElement) || !draggedElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.walk(item => {\n\t\t\tallLiNodesTraversed.push(item.shadowRoot!.querySelector(\"li\")!);\n\t\t});\n\n\t\tconst closestPosition = findClosestPosition(\n\t\t\tallLiNodesTraversed,\n\t\t\te.clientY,\n\t\t\tOrientation.Vertical,\n\t\t);\n\n\t\tif (!closestPosition) {\n\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t\treturn;\n\t\t}\n\n\t\tclosestPosition.element = <HTMLElement>(<ShadowRoot>closestPosition.element.getRootNode()).host;\n\t\tif (draggedElement.contains(closestPosition.element)) { return; }\n\t\tif (closestPosition.element === draggedElement) {\n\t\t\tclosestPosition.placements = closestPosition.placements.filter(placement => placement !== MovePlacement.On);\n\t\t}\n\n\t\tconst { targetReference, placement } = handleDragOver(e, this, closestPosition, closestPosition.element);\n\t\tthis.dropIndicatorDOM!.targetReference = targetReference;\n\t\tthis.dropIndicatorDOM!.placement = placement;\n\t}\n\n\t_ondrop(e: DragEvent) {\n\t\tif (!this.dropIndicatorDOM?.targetReference || !this.dropIndicatorDOM?.placement) {\n\t\t\treturn;\n\t\t}\n\t\thandleDrop(e, this, this.dropIndicatorDOM.targetReference, this.dropIndicatorDOM.placement);\n\t\tthis.dropIndicatorDOM.targetReference = null;\n\t}\n\n\t_onListItemStepIn(e: CustomEvent<TreeItemBaseStepInEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tif (treeItem.items.length > 0) {\n\t\t\tconst firstChild = treeItem.items[0];\n\t\t\tconst firstChildListItem = this._getListItemForTreeItem(firstChild);\n\t\t\tfirstChildListItem && this.list.focusItem(firstChildListItem);\n\t\t}\n\t}\n\n\t_onListItemStepOut(e: CustomEvent<TreeItemBaseStepOutEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tif (treeItem.parentElement !== this) {\n\t\t\tconst parent = treeItem.parentElement as TreeItemBase;\n\t\t\tconst parentListItem = this._getListItemForTreeItem(parent);\n\t\t\tparentListItem && this.list.focusItem(parentListItem);\n\t\t}\n\t}\n\n\t_onListItemToggle(e: CustomEvent<TreeItemBaseToggleEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tconst defaultPrevented = !this.fireDecoratorEvent(\"item-toggle\", { item: treeItem });\n\t\tif (!defaultPrevented) {\n\t\t\ttreeItem.toggle();\n\t\t}\n\t}\n\n\t_onListItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\n\t\tif (!this.fireDecoratorEvent(\"item-click\", { item: treeItem })) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onListItemDelete(e: CustomEvent<ListItemDeleteEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\t\tthis.fireDecoratorEvent(\"item-delete\", { item: treeItem });\n\t}\n\n\t_onListItemFocus(e: CustomEvent<ListItemFocusEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\t\tthis.fireDecoratorEvent(\"item-focus\", { item: treeItem });\n\t}\n\n\t_onListItemMouseOver(e: MouseEvent) {\n\t\tconst target = e.target;\n\n\t\tif (this._isInstanceOfTreeItemBase(target)) {\n\t\t\tthis.fireDecoratorEvent(\"item-mouseover\", { item: target });\n\t\t}\n\t}\n\n\t_onListItemMouseOut(e: MouseEvent) {\n\t\tconst target = e.target;\n\n\t\tif (this._isInstanceOfTreeItemBase(target)) {\n\t\t\tthis.fireDecoratorEvent(\"item-mouseout\", { item: target });\n\t\t}\n\t}\n\n\t_onListSelectionChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tif (!e.detail || !e.detail.previouslySelectedItems || !e.detail.selectedItems) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previouslySelectedItems = e.detail.previouslySelectedItems as Array<TreeItemBase>;\n\t\tconst selectedItems = e.detail.selectedItems as Array<TreeItemBase>;\n\t\tconst targetItem = e.detail.targetItem as TreeItemBase;\n\n\t\tpreviouslySelectedItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t\tselectedItems.forEach(item => {\n\t\t\titem.selected = true;\n\t\t});\n\n\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\tpreviouslySelectedItems,\n\t\t\tselectedItems,\n\t\t\ttargetItem,\n\t\t});\n\t}\n\n\t_prepareTreeItems() {\n\t\t// set level to tree items\n\t\tthis.walk((item, level, index) => {\n\t\t\tconst parent = item.parentNode;\n\t\t\tconst ariaSetSize = (parent && parent.children.length) || this.items.length;\n\n\t\t\titem.setAttribute(\"level\", level.toString());\n\n\t\t\titem.forcedSetsize = ariaSetSize;\n\t\t\titem.forcedPosinset = index + 1;\n\t\t});\n\t}\n\n\t/**\n\t * Returns the corresponding list item for a given tree item\n\t * @param item The tree item\n\t * @protected\n\t */\n\t_getListItemForTreeItem(item: TreeItemBase) {\n\t\treturn this.getItems().find(listItem => listItem === item);\n\t}\n\n\t/**\n\t * Returns the a flat array of all tree items\n\t * @protected\n\t * @returns array of the tree items\n\t */\n\tgetItems(): Array<TreeItemBase> {\n\t\treturn this.list.getItems();\n\t}\n\n\t/**\n\t * Focus a tree item by its index in the flat array of all tree items\n\t * @protected\n\t * @param index\n\t */\n\tfocusItemByIndex(index: number) {\n\t\tconst item = this.getItems()[index];\n\t\titem && this.list.focusItem(item);\n\t}\n\n\t/**\n\t * Perform Depth-First-Search walk on the tree and run a callback on each node\n\t * @public\n\t * @param callback function to execute on each node of the tree with 3 arguments: the node, the level and the index\n\t */\n\twalk(callback: WalkCallback): void {\n\t\twalkTree(this, 1, callback);\n\t}\n\n\t_isInstanceOfTreeItemBase(object: any): object is TreeItemBase {\n\t\treturn \"isTreeItem\" in object;\n\t}\n}\n\nconst walkTree = (el: Tree | TreeItemBase, level: number, callback: WalkCallback) => {\n\t(el.items).forEach((item, index) => {\n\t\tcallback(item, level, index);\n\t\tif (item.items.length > 0) {\n\t\t\twalkTree(item, level + 1, callback);\n\t\t}\n\t});\n};\n\nTree.define();\n\nexport default Tree;\n\nexport type {\n\tTreeMoveEventDetail,\n\tTreeItemToggleEventDetail,\n\tTreeItemMouseoverEventDetail,\n\tTreeItemMouseoutEventDetail,\n\tTreeItemClickEventDetail,\n\tTreeItemDeleteEventDetail,\n\tTreeItemFocusEventDetail,\n\tTreeSelectionChangeEventDetail,\n\tWalkCallback,\n};\n"]}
1
+ {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../src/Tree.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport DragRegistry from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.js\";\nimport handleDragOver from \"@ui5/webcomponents-base/dist/util/dragAndDrop/handleDragOver.js\";\nimport handleDrop from \"@ui5/webcomponents-base/dist/util/dragAndDrop/handleDrop.js\";\nimport { findClosestPosition } from \"@ui5/webcomponents-base/dist/util/dragAndDrop/findClosestPosition.js\";\nimport Orientation from \"@ui5/webcomponents-base/dist/types/Orientation.js\";\nimport MovePlacement from \"@ui5/webcomponents-base/dist/types/MovePlacement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type DropIndicator from \"./DropIndicator.js\";\nimport \"./TreeItem.js\";\nimport type TreeItemBase from \"./TreeItemBase.js\";\nimport \"./TreeItemCustom.js\";\nimport type TreeList from \"./TreeList.js\";\nimport type ListSelectionMode from \"./types/ListSelectionMode.js\";\nimport ListAccessibleRole from \"./types/ListAccessibleRole.js\";\nimport type {\n\tTreeItemBaseToggleEventDetail,\n\tTreeItemBaseStepInEventDetail,\n\tTreeItemBaseStepOutEventDetail,\n} from \"./TreeItemBase.js\";\nimport type {\n\tListItemClickEventDetail,\n\tListItemDeleteEventDetail,\n\tListItemFocusEventDetail,\n\tListSelectionChangeEventDetail,\n} from \"./List.js\";\n\n// Template\nimport TreeTemplate from \"./TreeTemplate.js\";\n\n// Styles\nimport TreeCss from \"./generated/themes/Tree.css.js\";\n\ntype TreeMoveEventDetail = {\n\tsource: {\n\t\telement: HTMLElement,\n\t},\n\tdestination: {\n\t\telement: HTMLElement,\n\t\tplacement: `${MovePlacement}`,\n\t}\n}\n\ntype TreeItemEventDetail = {\n\titem: TreeItemBase,\n}\ntype TreeItemToggleEventDetail = TreeItemEventDetail;\ntype TreeItemMouseoverEventDetail = TreeItemEventDetail;\ntype TreeItemMouseoutEventDetail = TreeItemEventDetail;\ntype TreeItemClickEventDetail = TreeItemEventDetail;\ntype TreeItemDeleteEventDetail = TreeItemEventDetail;\ntype TreeItemFocusEventDetail = TreeItemEventDetail;\ntype TreeSelectionChangeEventDetail = {\n\tselectedItems: Array<TreeItemBase>;\n\tpreviouslySelectedItems: Array<TreeItemBase>;\n\ttargetItem: TreeItemBase;\n}\ntype WalkCallback = (item: TreeItemBase, level: number, index: number) => void;\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-tree` component provides a tree structure for displaying data in a hierarchy.\n *\n * ### Usage\n *\n * #### When to use:\n *\n * - To display hierarchically structured items.\n * - To select one or more items out of a set of hierarchically structured items.\n *\n * #### When not to use:\n *\n * - To display items not hierarchically structured. In this case, use the List component.\n * - To select one item from a very small number of non-hierarchical items. Select or ComboBox might be more appropriate.\n * - The hierarchy turns out to have only two levels. In this case, use List with group items.\n *\n * ### Keyboard Handling\n *\n * The `ui5-tree` provides advanced keyboard handling.\n * The user can use the following keyboard shortcuts in order to navigate trough the tree:\n *\n * - [Up] or [Down] - Navigates up and down the tree items that are currently visible.\n * - [Right] - Drills down the tree by expanding the tree nodes.\n * - [Left] - Goes up the tree and collapses the tree nodes.\n *\n * The user can use the following keyboard shortcuts to perform selection,\n * when the `selectionMode` property is in use:\n *\n * - [Space] - Selects the currently focused item upon keyup.\n * - [Enter] - Selects the currently focused item upon keydown.\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/Tree.js\";`\n *\n * `import \"@ui5/webcomponents/dist/TreeItem.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.0.0-rc.8\n */\n@customElement({\n\ttag: \"ui5-tree\",\n\trenderer: jsxRenderer,\n\tstyles: TreeCss,\n\ttemplate: TreeTemplate,\n})\n/**\n * Fired when a tree item is expanded or collapsed.\n *\n * **Note:** You can call `preventDefault()` on the event object to suppress the event, if needed.\n * This may be handy for example if you want to dynamically load tree items upon the user expanding a node.\n * Even if you prevented the event's default behavior, you can always manually call `toggle()` on a tree item.\n * @param {HTMLElement} item the toggled item.\n * @public\n */\n@event(\"item-toggle\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n/**\n * Fired when the mouse cursor enters the tree item borders.\n * @param {HTMLElement} item the hovered item.\n * @since 1.0.0-rc.16\n * @public\n */\n@event(\"item-mouseover\", {\n\tbubbles: true,\n})\n/**\n * Fired when the mouse cursor leaves the tree item borders.\n * @param {HTMLElement} item the hovered item.\n * @since 1.0.0-rc.16\n * @public\n */\n@event(\"item-mouseout\", {\n\tbubbles: true,\n})\n/**\n * Fired when a tree item is activated.\n * @param {HTMLElement} item The clicked item.\n * @public\n */\n@event(\"item-click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\n/**\n * Fired when the Delete button of any tree item is pressed.\n *\n * **Note:** A Delete button is displayed on each item,\n * when the component `selectionMode` property is set to `Delete`.\n * @param {HTMLElement} item the deleted item.\n * @public\n */\n@event(\"item-delete\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when a tree item is focused.\n * @param {HTMLElement} item The focused item.\n * @private\n */\n@event(\"item-focus\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when selection is changed by user interaction\n * in `Single`, `SingleStart`, `SingleEnd` and `Multiple` modes.\n * @param {Array} selectedItems An array of the selected items.\n * @param {Array} previouslySelectedItems An array of the previously selected items.\n * @param {HTMLElement} targetItem The item triggering the event.\n * @public\n */\n@event(\"selection-change\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when a movable tree item is moved over a potential drop target during a drag-and-drop operation.\n *\n * If the new position is valid, prevent the default action of the event using `preventDefault()`.\n * @param {object} source Contains information about the moved element under the `element` property.\n * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.\n * @public\n */\n@event(\"move\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when a movable tree item is dropped onto a drop target.\n *\n * **Note:** The `move` event is fired only if there was a preceding `move-over` event with prevented default action.\n * @param {object} source Contains information about the moved element under the `element` property.\n * @param {object} destination Contains information about the destination of the moved element. Has `element` and `placement` properties.\n * @public\n */\n@event(\"move-over\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass Tree extends UI5Element {\n\teventDetails!: {\n\t\t\"item-toggle\": TreeItemToggleEventDetail,\n\t\t\"item-mouseover\": TreeItemMouseoverEventDetail,\n\t\t\"item-mouseout\": TreeItemMouseoutEventDetail,\n\t\t\"item-click\": TreeItemClickEventDetail,\n\t\t\"item-delete\": TreeItemDeleteEventDetail,\n\t\t\"item-focus\": TreeItemFocusEventDetail,\n\t\t\"selection-change\": TreeSelectionChangeEventDetail,\n\t\t\"move\": TreeMoveEventDetail,\n\t\t\"move-over\": TreeMoveEventDetail,\n\t}\n\t/**\n\t * Defines the selection mode of the component. Since the tree uses a `ui5-list` to display its structure,\n\t * the tree modes are exactly the same as the list modes, and are all applicable.\n\t * @public\n\t * @default \"None\"\n\t */\n\t@property()\n\tselectionMode?: `${ListSelectionMode}` = \"None\";\n\n\t/**\n\t * Defines the text that is displayed when the component contains no items.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tnoDataText?: string;\n\n\t/**\n\t * Defines the component header text.\n\t *\n\t * **Note:** If the `header` slot is set, this property is ignored.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines the component footer text.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tfooterText?: string;\n\n\t/**\n\t * Defines the accessible name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines the IDs of the elements that label the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.8.0\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessible description of the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescription?: string;\n\n\t/**\n\t * Defines the IDs of the elements that describe the component.\n\t * @default undefined\n\t * @public\n\t * @since 2.5.0\n\t */\n\t@property()\n\taccessibleDescriptionRef?: string;\n\n\t/**\n\t * Defines the items of the component. Tree items may have other tree items as children.\n\t *\n\t * **Note:** Use `ui5-tree-item` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n\titems!: Array<TreeItemBase>;\n\n\t/**\n\t * Defines the component header.\n\t *\n\t * **Note:** When the `header` slot is set, the\n\t * `headerText` property is ignored.\n\t * @public\n\t */\n\t@slot()\n\theader!: Array<HTMLElement>;\n\n\tonEnterDOM() {\n\t\tDragRegistry.subscribe(this);\n\t}\n\n\tonExitDOM() {\n\t\tDragRegistry.unsubscribe(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._prepareTreeItems();\n\t}\n\n\tonAfterRendering() {\n\t\t// Note: this is a workaround for the problem that the list cannot invalidate itself when its only physical child is a slot (and the list items are inside the slot)\n\t\t// This code should be removed once a framework-level fix is implemented\n\t\tthis.shadowRoot!.querySelector<TreeList>(\"[ui5-tree-list]\")!.onBeforeRendering();\n\t}\n\n\tget dropIndicatorDOM(): DropIndicator | null {\n\t\treturn this.shadowRoot!.querySelector(\"[ui5-drop-indicator]\");\n\t}\n\n\tget list() {\n\t\treturn this.getDomRef() as TreeList;\n\t}\n\n\tget _role() {\n\t\treturn ListAccessibleRole.Tree;\n\t}\n\n\tget _hasHeader() {\n\t\treturn !!this.header.length;\n\t}\n\n\t_ondragenter(e: DragEvent) {\n\t\te.preventDefault();\n\t}\n\n\t_ondragleave(e: DragEvent) {\n\t\tif (e.relatedTarget instanceof Node && this.shadowRoot!.contains(e.relatedTarget)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t}\n\n\t_ondragover(e: DragEvent) {\n\t\tconst draggedElement = DragRegistry.getDraggedElement();\n\t\tconst allLiNodesTraversed: Array<HTMLElement> = []; // use the only <li> nodes to determine positioning\n\t\tif (!(e.target instanceof HTMLElement) || !draggedElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.walk(item => {\n\t\t\tallLiNodesTraversed.push(item.shadowRoot!.querySelector(\"li\")!);\n\t\t});\n\n\t\tconst closestPosition = findClosestPosition(\n\t\t\tallLiNodesTraversed,\n\t\t\te.clientY,\n\t\t\tOrientation.Vertical,\n\t\t);\n\n\t\tif (!closestPosition) {\n\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t\treturn;\n\t\t}\n\n\t\tclosestPosition.element = <HTMLElement>(<ShadowRoot>closestPosition.element.getRootNode()).host;\n\t\tif (draggedElement.contains(closestPosition.element)) { return; }\n\t\tif (closestPosition.element === draggedElement) {\n\t\t\tclosestPosition.placements = closestPosition.placements.filter(placement => placement !== MovePlacement.On);\n\t\t}\n\n\t\tconst { targetReference, placement } = handleDragOver(e, this, closestPosition, closestPosition.element);\n\t\tthis.dropIndicatorDOM!.targetReference = targetReference;\n\t\tthis.dropIndicatorDOM!.placement = placement;\n\t}\n\n\t_ondrop(e: DragEvent) {\n\t\tif (!this.dropIndicatorDOM?.targetReference || !this.dropIndicatorDOM?.placement) {\n\t\t\treturn;\n\t\t}\n\t\thandleDrop(e, this, this.dropIndicatorDOM.targetReference, this.dropIndicatorDOM.placement);\n\t\tthis.dropIndicatorDOM.targetReference = null;\n\t}\n\n\t_onListItemStepIn(e: CustomEvent<TreeItemBaseStepInEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tif (treeItem.items.length > 0) {\n\t\t\tconst firstChild = treeItem.items[0];\n\t\t\tconst firstChildListItem = this._getListItemForTreeItem(firstChild);\n\t\t\tfirstChildListItem && this.list.focusItem(firstChildListItem);\n\t\t}\n\t}\n\n\t_onListItemStepOut(e: CustomEvent<TreeItemBaseStepOutEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tif (treeItem.parentElement !== this) {\n\t\t\tconst parent = treeItem.parentElement as TreeItemBase;\n\t\t\tconst parentListItem = this._getListItemForTreeItem(parent);\n\t\t\tparentListItem && this.list.focusItem(parentListItem);\n\t\t}\n\t}\n\n\t_onListItemToggle(e: CustomEvent<TreeItemBaseToggleEventDetail>) {\n\t\tconst treeItem = e.detail.item;\n\t\tconst defaultPrevented = !this.fireDecoratorEvent(\"item-toggle\", { item: treeItem });\n\t\tif (!defaultPrevented) {\n\t\t\ttreeItem.toggle();\n\t\t}\n\t}\n\n\t_onListItemClick(e: CustomEvent<ListItemClickEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\n\t\tif (!this.fireDecoratorEvent(\"item-click\", { item: treeItem })) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onListItemDelete(e: CustomEvent<ListItemDeleteEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\t\tthis.fireDecoratorEvent(\"item-delete\", { item: treeItem });\n\t}\n\n\t_onListItemFocus(e: CustomEvent<ListItemFocusEventDetail>) {\n\t\tconst treeItem = e.detail.item as TreeItemBase;\n\t\tthis.fireDecoratorEvent(\"item-focus\", { item: treeItem });\n\t}\n\n\t_onListItemMouseOver(e: MouseEvent) {\n\t\tconst target = e.target;\n\n\t\tif (this._isInstanceOfTreeItemBase(target)) {\n\t\t\tthis.fireDecoratorEvent(\"item-mouseover\", { item: target });\n\t\t}\n\t}\n\n\t_onListItemMouseOut(e: MouseEvent) {\n\t\tconst target = e.target;\n\n\t\tif (this._isInstanceOfTreeItemBase(target)) {\n\t\t\tthis.fireDecoratorEvent(\"item-mouseout\", { item: target });\n\t\t}\n\t}\n\n\t_onListSelectionChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tif (!e.detail || !e.detail.previouslySelectedItems || !e.detail.selectedItems) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previouslySelectedItems = e.detail.previouslySelectedItems as Array<TreeItemBase>;\n\t\tconst selectedItems = e.detail.selectedItems as Array<TreeItemBase>;\n\t\tconst targetItem = e.detail.targetItem as TreeItemBase;\n\n\t\tpreviouslySelectedItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t\tselectedItems.forEach(item => {\n\t\t\titem.selected = true;\n\t\t});\n\n\t\tthis.fireDecoratorEvent(\"selection-change\", {\n\t\t\tpreviouslySelectedItems,\n\t\t\tselectedItems,\n\t\t\ttargetItem,\n\t\t});\n\t}\n\n\t_prepareTreeItems() {\n\t\t// set level to tree items\n\t\tthis.walk((item, level, index) => {\n\t\t\tconst parent = item.parentNode;\n\t\t\tconst ariaSetSize = (parent && parent.children.length) || this.items.length;\n\n\t\t\titem.setAttribute(\"level\", level.toString());\n\n\t\t\titem.forcedSetsize = ariaSetSize;\n\t\t\titem.forcedPosinset = index + 1;\n\t\t});\n\t}\n\n\t/**\n\t * Returns the corresponding list item for a given tree item\n\t * @param item The tree item\n\t * @protected\n\t */\n\t_getListItemForTreeItem(item: TreeItemBase) {\n\t\treturn this.getItems().find(listItem => listItem === item);\n\t}\n\n\t/**\n\t * Returns the a flat array of all tree items\n\t * @protected\n\t * @returns array of the tree items\n\t */\n\tgetItems(): Array<TreeItemBase> {\n\t\treturn this.list.getItems();\n\t}\n\n\t/**\n\t * Focus a tree item by its index in the flat array of all tree items\n\t * @protected\n\t * @param index\n\t */\n\tfocusItemByIndex(index: number) {\n\t\tconst item = this.getItems()[index];\n\t\titem && this.list.focusItem(item);\n\t}\n\n\t/**\n\t * Perform Depth-First-Search walk on the tree and run a callback on each node\n\t * @public\n\t * @param callback function to execute on each node of the tree with 3 arguments: the node, the level and the index\n\t */\n\twalk(callback: WalkCallback): void {\n\t\twalkTree(this, 1, callback);\n\t}\n\n\t_isInstanceOfTreeItemBase(object: any): object is TreeItemBase {\n\t\treturn \"isTreeItem\" in object;\n\t}\n}\n\nconst walkTree = (el: Tree | TreeItemBase, level: number, callback: WalkCallback) => {\n\t(el.items).forEach((item, index) => {\n\t\tcallback(item, level, index);\n\t\tif (item.items.length > 0) {\n\t\t\twalkTree(item, level + 1, callback);\n\t\t}\n\t});\n};\n\nTree.define();\n\nexport default Tree;\n\nexport type {\n\tTreeMoveEventDetail,\n\tTreeItemToggleEventDetail,\n\tTreeItemMouseoverEventDetail,\n\tTreeItemMouseoutEventDetail,\n\tTreeItemClickEventDetail,\n\tTreeItemDeleteEventDetail,\n\tTreeItemFocusEventDetail,\n\tTreeSelectionChangeEventDetail,\n\tWalkCallback,\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
2
2
  import CalendarPart from "./CalendarPart.js";
3
- import type { ICalendarPicker } from "./Calendar.js";
3
+ import type { CalendarYearRangeT, ICalendarPicker } from "./Calendar.js";
4
4
  import CalendarSelectionMode from "./types/CalendarSelectionMode.js";
5
5
  type Year = {
6
6
  timestamp: string;
@@ -62,15 +62,14 @@ declare class YearPicker extends CalendarPart implements ICalendarPicker {
62
62
  * @private
63
63
  */
64
64
  _secondTimestamp?: number;
65
+ _currentYearRange?: CalendarYearRangeT;
65
66
  _firstYear?: number;
66
- _lastYear?: number;
67
67
  static i18nBundle: I18nBundle;
68
68
  get roleDescription(): string;
69
69
  onBeforeRendering(): void;
70
70
  _getPageSize(): 8 | 20;
71
71
  _getRowSize(): 2 | 4;
72
72
  _buildYears(): void;
73
- _calculateFirstYear(): void;
74
73
  onAfterRendering(): void;
75
74
  /**
76
75
  * Returns true if year timestamp is inside the selection range.
@@ -14,7 +14,6 @@ import { isEnter, isSpace, isDown, isUp, isLeft, isRight, isHome, isEnd, isHomeC
14
14
  import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
15
15
  import transformDateToSecondaryType from "@ui5/webcomponents-localization/dist/dates/transformDateToSecondaryType.js";
16
16
  import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
17
- import { getMaxCalendarDate } from "@ui5/webcomponents-localization/dist/dates/ExtremeDates.js";
18
17
  import CalendarPart from "./CalendarPart.js";
19
18
  import { YEAR_PICKER_DESCRIPTION } from "./generated/i18n/i18n-defaults.js";
20
19
  // Template
@@ -59,6 +58,10 @@ let YearPicker = YearPicker_1 = class YearPicker extends CalendarPart {
59
58
  return YearPicker_1.i18nBundle.getText(YEAR_PICKER_DESCRIPTION);
60
59
  }
61
60
  onBeforeRendering() {
61
+ if (this._hidden) {
62
+ return;
63
+ }
64
+ this._firstYear = this._currentYearRange?.startYear ? this._currentYearRange?.startYear : this._calendarDate.getYear();
62
65
  this._buildYears();
63
66
  }
64
67
  _getPageSize() {
@@ -70,15 +73,10 @@ let YearPicker = YearPicker_1 = class YearPicker extends CalendarPart {
70
73
  return this.hasSecondaryCalendarType ? 2 : 4;
71
74
  }
72
75
  _buildYears() {
73
- if (this._hidden) {
74
- return;
75
- }
76
76
  const pageSize = this._getPageSize();
77
77
  const locale = getLocale();
78
78
  const oYearFormat = DateFormat.getDateInstance({ format: "y", calendarType: this._primaryCalendarType }, locale);
79
79
  const oYearFormatInSecType = DateFormat.getDateInstance({ format: "y", calendarType: this.secondaryCalendarType }, locale);
80
- this._calculateFirstYear();
81
- this._lastYear = this._firstYear + pageSize - 1;
82
80
  const calendarDate = this._calendarDate; // store the value of the expensive getter
83
81
  const minDate = this._minDate; // store the value of the expensive getter
84
82
  const maxDate = this._maxDate; // store the value of the expensive getter
@@ -142,33 +140,6 @@ let YearPicker = YearPicker_1 = class YearPicker extends CalendarPart {
142
140
  }
143
141
  this._yearsInterval = intervals;
144
142
  }
145
- _calculateFirstYear() {
146
- const pageSize = this._getPageSize();
147
- const absoluteMaxYear = getMaxCalendarDate(this._primaryCalendarType).getYear(); // 9999
148
- const currentYear = this._calendarDate.getYear();
149
- // 1. If first load - center the current year (set first year to be current year minus half page size)
150
- if (!this._firstYear) {
151
- this._firstYear = currentYear - pageSize / 2;
152
- }
153
- // 2. If out of range - change by a page (20) - do not center in order to keep the same position as the last page
154
- if (currentYear < this._firstYear) {
155
- this._firstYear -= pageSize;
156
- }
157
- else if (currentYear >= this._firstYear + pageSize) {
158
- this._firstYear += pageSize;
159
- }
160
- // 3. If the date was changed by more than 20 years - reset _firstYear completely
161
- if (Math.abs(this._firstYear - currentYear) >= pageSize) {
162
- this._firstYear = currentYear - pageSize / 2;
163
- }
164
- // Keep it in the range between the min and max year
165
- this._firstYear = Math.max(this._firstYear, this._minDate.getYear());
166
- this._firstYear = Math.min(this._firstYear, this._maxDate.getYear());
167
- // If first year is > 9980, make it 9980 to not show any years beyond 9999
168
- if (this._firstYear > absoluteMaxYear - pageSize + 1) {
169
- this._firstYear = absoluteMaxYear - pageSize + 1;
170
- }
171
- }
172
143
  onAfterRendering() {
173
144
  if (!this._hidden) {
174
145
  this.focus();
@@ -363,6 +334,9 @@ __decorate([
363
334
  __decorate([
364
335
  property({ type: Number })
365
336
  ], YearPicker.prototype, "_secondTimestamp", void 0);
337
+ __decorate([
338
+ property({ noAttribute: true })
339
+ ], YearPicker.prototype, "_currentYearRange", void 0);
366
340
  __decorate([
367
341
  i18n("@ui5/webcomponents")
368
342
  ], YearPicker, "i18nBundle", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"YearPicker.js","sourceRoot":"","sources":["../src/YearPicker.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 transformDateToSecondaryType from \"@ui5/webcomponents-localization/dist/dates/transformDateToSecondaryType.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 } from \"./Calendar.js\";\nimport { YEAR_PICKER_DESCRIPTION } from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport YearPickerTemplate from \"./YearPickerTemplate.js\";\n\n// Styles\nimport yearPickerStyles from \"./generated/themes/YearPicker.css.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\n\nconst isBetween = (x: number, num1: number, num2: number) => x > Math.min(num1, num2) && x < Math.max(num1, num2);\n\ntype Year = {\n\ttimestamp: string;\n\t_tabIndex: number;\n\tfocusRef: boolean;\n\tselected: boolean;\n\tariaSelected: boolean;\n\tyear: string;\n\tyearInSecType: string | undefined;\n\tdisabled: boolean;\n\tariaDisabled: boolean | undefined;\n\tclasses: string;\n\tparts: string;\n}\n\ntype YearInterval = Array<Array<Year>>;\n\ntype YearPickerChangeEventDetail = {\n\tdates: Array<number>,\n\ttimestamp: number,\n}\n\ntype YearPickerNavigateEventDetail = {\n\ttimestamp: number,\n}\n\n/**\n * @class\n *\n * Displays years which can be selected.\n * @constructor\n * @extends CalendarPart\n * @private\n */\n@customElement({\n\ttag: \"ui5-yearpicker\",\n\tstyles: yearPickerStyles,\n\ttemplate: YearPickerTemplate,\n})\n/**\n * Fired when the user selects a year via \"Space\", \"Enter\" or click.\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n/**\n * Fired when the timestamp changes - the user navigates with the keyboard or clicks with the mouse.\n * @since 1.0.0-rc.9\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\nclass YearPicker extends CalendarPart implements ICalendarPicker {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\t\"change\": YearPickerChangeEventDetail,\n\t\t\"navigate\": YearPickerNavigateEventDetail,\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 the type of selection used in the year picker component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables election of a single year.\n\t * - `CalendarSelectionMode.Range` - enables selection of a year range.\n\t *\n\t * Note that 'CalendarSelectionMode.Multiple` is not supported for Year Picker!\n\t * @default \"Single\"\n\t * @since 2.2.0\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t@property({ type: Array })\n\t_yearsInterval: YearInterval = [];\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_hidden = false;\n\n\t/**\n\t * When selectionMode=\"Range\" and the first year in the range is selected, this is the currently hovered or focused year.\n\t *\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_secondTimestamp?: number;\n\n\t_firstYear?: number;\n\t_lastYear?: number;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget roleDescription() {\n\t\treturn YearPicker.i18nBundle.getText(YEAR_PICKER_DESCRIPTION);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._buildYears();\n\t}\n\n\t_getPageSize() {\n\t\t// Total years on a single page depending on using on one or two calendar type\n\t\treturn this.hasSecondaryCalendarType ? 8 : 20;\n\t}\n\n\t_getRowSize() {\n\t\t// Years per row (5 rows of 4 years each) for one claendar type and (4 row of 2 years each) for two calendar type\n\t\treturn this.hasSecondaryCalendarType ? 2 : 4;\n\t}\n\n\t_buildYears() {\n\t\tif (this._hidden) {\n\t\t\treturn;\n\t\t}\n\t\tconst pageSize = this._getPageSize();\n\t\tconst locale = getLocale() as unknown as LocaleT;\n\t\tconst oYearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this._primaryCalendarType }, locale);\n\t\tconst oYearFormatInSecType = DateFormat.getDateInstance({ format: \"y\", calendarType: this.secondaryCalendarType }, locale);\n\t\tthis._calculateFirstYear();\n\t\tthis._lastYear = this._firstYear! + pageSize - 1;\n\n\t\tconst calendarDate = this._calendarDate; // store the value of the expensive getter\n\t\tconst minDate = this._minDate; // store the value of the expensive getter\n\t\tconst maxDate = this._maxDate; // store the value of the expensive getter\n\t\tconst tempDate = new CalendarDate(calendarDate, this._primaryCalendarType);\n\t\tlet tempDateInSecType;\n\t\tlet textInSecType;\n\t\ttempDate.setYear(this._firstYear!);\n\n\t\tconst intervals: YearInterval = [];\n\t\tlet timestamp;\n\n\t\t/* eslint-disable no-loop-func */\n\t\tfor (let i = 0; i < pageSize; i++) {\n\t\t\ttimestamp = tempDate.valueOf() / 1000;\n\n\t\t\tconst isSelected = this.selectedDates.some(itemTimestamp => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(itemTimestamp * 1000, this._primaryCalendarType);\n\t\t\t\treturn date.getYear() === tempDate.getYear();\n\t\t\t});\n\t\t\tconst isFocused = tempDate.getYear() === calendarDate.getYear();\n\t\t\tconst isDisabled = tempDate.getYear() < minDate.getYear() || tempDate.getYear() > maxDate.getYear();\n\t\t\tconst isSelectedBetween = this._isYearInsideSelectionRange(timestamp);\n\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\ttempDateInSecType = transformDateToSecondaryType(this._primaryCalendarType, this.secondaryCalendarType, timestamp, true);\n\t\t\t\ttextInSecType = tempDateInSecType.firstDate.getYear() === tempDateInSecType.lastDate.getYear()\n\t\t\t\t\t? `${oYearFormatInSecType.format(tempDateInSecType.firstDate.toLocalJSDate())}`\n\t\t\t\t\t: `${oYearFormatInSecType.format(tempDateInSecType.firstDate.toLocalJSDate())} - ${oYearFormatInSecType.format(tempDateInSecType.lastDate.toLocalJSDate())}`;\n\t\t\t}\n\n\t\t\tconst year: Year = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\t_tabIndex: isFocused ? 0 : -1,\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\tselected: isSelected || isSelectedBetween,\n\t\t\t\tariaSelected: isSelected || isSelectedBetween,\n\t\t\t\tyear: oYearFormat.format(tempDate.toLocalJSDate()),\n\t\t\t\tyearInSecType: textInSecType,\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\tariaDisabled: isDisabled,\n\t\t\t\tclasses: \"ui5-yp-item\",\n\t\t\t\tparts: \"year-cell\",\n\t\t\t};\n\n\t\t\tif (isSelected) {\n\t\t\t\tyear.classes += \" ui5-yp-item--selected\";\n\t\t\t\tyear.parts += \" year-cell-selected\";\n\t\t\t}\n\n\t\t\tif (isSelectedBetween) {\n\t\t\t\tyear.classes += \" ui5-yp-item--selected-between\";\n\t\t\t\tyear.parts += \" year-cell-selected-between\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tyear.classes += \" ui5-yp-item--disabled\";\n\t\t\t}\n\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\tyear.classes += \" ui5-yp-item-secondary-type\";\n\t\t\t}\n\t\t\tconst intervalIndex = Math.floor(i / this._getRowSize());\n\n\t\t\tif (intervals[intervalIndex]) {\n\t\t\t\tintervals[intervalIndex].push(year);\n\t\t\t} else {\n\t\t\t\tintervals[intervalIndex] = [year];\n\t\t\t}\n\n\t\t\ttempDate.setYear(tempDate.getYear() + 1);\n\t\t}\n\n\t\tthis._yearsInterval = intervals;\n\t}\n\n\t_calculateFirstYear() {\n\t\tconst pageSize = this._getPageSize();\n\t\tconst absoluteMaxYear = getMaxCalendarDate(this._primaryCalendarType).getYear(); // 9999\n\t\tconst currentYear = this._calendarDate.getYear();\n\n\t\t// 1. If first load - center the current year (set first year to be current year minus half page size)\n\t\tif (!this._firstYear) {\n\t\t\tthis._firstYear = currentYear - pageSize / 2;\n\t\t}\n\n\t\t// 2. If out of range - change by a page (20) - do not center in order to keep the same position as the last page\n\t\tif (currentYear < this._firstYear) {\n\t\t\tthis._firstYear -= pageSize;\n\t\t} else if (currentYear >= this._firstYear + pageSize) {\n\t\t\tthis._firstYear += pageSize;\n\t\t}\n\n\t\t// 3. If the date was changed by more than 20 years - reset _firstYear completely\n\t\tif (Math.abs(this._firstYear - currentYear) >= pageSize) {\n\t\t\tthis._firstYear = currentYear - pageSize / 2;\n\t\t}\n\n\t\t// Keep it in the range between the min and max year\n\t\tthis._firstYear = Math.max(this._firstYear, this._minDate.getYear());\n\t\tthis._firstYear = Math.min(this._firstYear, this._maxDate.getYear());\n\n\t\t// If first year is > 9980, make it 9980 to not show any years beyond 9999\n\t\tif (this._firstYear > absoluteMaxYear - pageSize + 1) {\n\t\t\tthis._firstYear = absoluteMaxYear - pageSize + 1;\n\t\t}\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Returns true if year timestamp is inside the selection range.\n\t * @private\n\t */\n\t_isYearInsideSelectionRange(timestamp: number): boolean {\n\t\tif (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Only one date selected - second is hovered or focused\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\treturn isBetween(timestamp, this.selectedDates[0], this.selectedDates[1]);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\t\tconst pageSize = this._getPageSize();\n\t\tconst rowSize = this._getRowSize();\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._selectYear(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._yearsInterval[0][0].timestamp)); // first year of first row\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tthis._setTimestamp(parseInt(this._yearsInterval[pageSize / rowSize - 1][rowSize - 1].timestamp)); // last year of last row\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onHomeOrEnd(homePressed: boolean) {\n\t\tthis._yearsInterval.forEach(row => {\n\t\t\tconst indexInRow = row.findIndex(item => CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000).getYear() === this._calendarDate.getYear());\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 * In range selection, the currently focused or hovered year is considered the \"second day\".\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && (this.selectedDates.length === 1 || this.selectedDates.length === 2)) {\n\t\t\tthis._secondTimestamp = this.timestamp;\n\t\t}\n\t}\n\n\t/**\n\t * Set the hovered day as the \"_secondTimestamp\".\n\t *\n\t * @param e\n\t * @private\n\t */\n\t_onmouseover(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst hoveredItem = target.closest(\".ui5-yp-item\") as HTMLElement;\n\t\tif (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\n\t\t}\n\t}\n\n\t/**\n\t * Sets the 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 * Modifies timestamp by a given amount of years 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\tthis._safelyModifyTimestampBy(amount, \"year\");\n\t\tthis._updateSecondTimestamp();\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._selectYear(e);\n\t\t}\n\t}\n\n\t/**\n\t * User clicked with the mouser or pressed Enter/Space\n\t * @param e\n\t * @private\n\t */\n\t_selectYear(e: Event) {\n\t\te.preventDefault();\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (target.className.indexOf(\"ui5-yp-item\") === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestamp = this._getTimestampFromDom(target);\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis._updateSecondTimestamp();\n\t\tthis._updateSelectedDates(timestamp);\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp!,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_updateSelectedDates(timestamp: number) {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis.selectedDates = [this.selectedDates[0], timestamp];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectedDates = [timestamp];\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasPreviousPage(): boolean {\n\t\treturn this._firstYear! > this._minDate.getYear();\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasNextPage(): boolean {\n\t\treturn this._firstYear! + this._getPageSize() - 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\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\tthis._modifyTimestampBy(this._getPageSize());\n\t}\n}\n\nYearPicker.define();\n\nexport default YearPicker;\nexport type {\n\tYearPickerChangeEventDetail,\n\tYearPickerNavigateEventDetail,\n};\n"]}
1
+ {"version":3,"file":"YearPicker.js","sourceRoot":"","sources":["../src/YearPicker.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 transformDateToSecondaryType from \"@ui5/webcomponents-localization/dist/dates/transformDateToSecondaryType.js\";\nimport CalendarDate from \"@ui5/webcomponents-localization/dist/dates/CalendarDate.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport CalendarPart from \"./CalendarPart.js\";\nimport type { CalendarYearRangeT, ICalendarPicker } from \"./Calendar.js\";\nimport { YEAR_PICKER_DESCRIPTION } from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport YearPickerTemplate from \"./YearPickerTemplate.js\";\n\n// Styles\nimport yearPickerStyles from \"./generated/themes/YearPicker.css.js\";\nimport CalendarSelectionMode from \"./types/CalendarSelectionMode.js\";\n\nconst isBetween = (x: number, num1: number, num2: number) => x > Math.min(num1, num2) && x < Math.max(num1, num2);\n\ntype Year = {\n\ttimestamp: string;\n\t_tabIndex: number;\n\tfocusRef: boolean;\n\tselected: boolean;\n\tariaSelected: boolean;\n\tyear: string;\n\tyearInSecType: string | undefined;\n\tdisabled: boolean;\n\tariaDisabled: boolean | undefined;\n\tclasses: string;\n\tparts: string;\n}\n\ntype YearInterval = Array<Array<Year>>;\n\ntype YearPickerChangeEventDetail = {\n\tdates: Array<number>,\n\ttimestamp: number,\n}\n\ntype YearPickerNavigateEventDetail = {\n\ttimestamp: number,\n}\n\n/**\n * @class\n *\n * Displays years which can be selected.\n * @constructor\n * @extends CalendarPart\n * @private\n */\n@customElement({\n\ttag: \"ui5-yearpicker\",\n\tstyles: yearPickerStyles,\n\ttemplate: YearPickerTemplate,\n})\n/**\n * Fired when the user selects a year via \"Space\", \"Enter\" or click.\n */\n@event(\"change\", {\n\tbubbles: true,\n})\n/**\n * Fired when the timestamp changes - the user navigates with the keyboard or clicks with the mouse.\n * @since 1.0.0-rc.9\n */\n@event(\"navigate\", {\n\tbubbles: true,\n})\nclass YearPicker extends CalendarPart implements ICalendarPicker {\n\teventDetails!: CalendarPart[\"eventDetails\"] & {\n\t\t\"change\": YearPickerChangeEventDetail,\n\t\t\"navigate\": YearPickerNavigateEventDetail,\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 the type of selection used in the year picker component.\n\t * Accepted property values are:\n\t *\n\t * - `CalendarSelectionMode.Single` - enables election of a single year.\n\t * - `CalendarSelectionMode.Range` - enables selection of a year range.\n\t *\n\t * Note that 'CalendarSelectionMode.Multiple` is not supported for Year Picker!\n\t * @default \"Single\"\n\t * @since 2.2.0\n\t */\n\t@property()\n\tselectionMode: `${CalendarSelectionMode}` = \"Single\";\n\n\t@property({ type: Array })\n\t_yearsInterval: YearInterval = [];\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_hidden = false;\n\n\t/**\n\t * When selectionMode=\"Range\" and the first year in the range is selected, this is the currently hovered or focused year.\n\t *\n\t * @private\n\t */\n\t@property({ type: Number })\n\t_secondTimestamp?: number;\n\n\t@property({ noAttribute: true })\n\t_currentYearRange?: CalendarYearRangeT;\n\n\t_firstYear?: number;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget roleDescription() {\n\t\treturn YearPicker.i18nBundle.getText(YEAR_PICKER_DESCRIPTION);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this._hidden) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._firstYear = this._currentYearRange?.startYear ? this._currentYearRange?.startYear : this._calendarDate.getYear();\n\t\tthis._buildYears();\n\t}\n\n\t_getPageSize() {\n\t\t// Total years on a single page depending on using on one or two calendar type\n\t\treturn this.hasSecondaryCalendarType ? 8 : 20;\n\t}\n\n\t_getRowSize() {\n\t\t// Years per row (5 rows of 4 years each) for one claendar type and (4 row of 2 years each) for two calendar type\n\t\treturn this.hasSecondaryCalendarType ? 2 : 4;\n\t}\n\n\t_buildYears() {\n\t\tconst pageSize = this._getPageSize();\n\t\tconst locale = getLocale() as unknown as LocaleT;\n\t\tconst oYearFormat = DateFormat.getDateInstance({ format: \"y\", calendarType: this._primaryCalendarType }, locale);\n\t\tconst oYearFormatInSecType = DateFormat.getDateInstance({ format: \"y\", calendarType: this.secondaryCalendarType }, locale);\n\n\t\tconst calendarDate = this._calendarDate; // store the value of the expensive getter\n\t\tconst minDate = this._minDate; // store the value of the expensive getter\n\t\tconst maxDate = this._maxDate; // store the value of the expensive getter\n\t\tconst tempDate = new CalendarDate(calendarDate, this._primaryCalendarType);\n\t\tlet tempDateInSecType;\n\t\tlet textInSecType;\n\t\ttempDate.setYear(this._firstYear!);\n\n\t\tconst intervals: YearInterval = [];\n\t\tlet timestamp;\n\n\t\t/* eslint-disable no-loop-func */\n\t\tfor (let i = 0; i < pageSize; i++) {\n\t\t\ttimestamp = tempDate.valueOf() / 1000;\n\n\t\t\tconst isSelected = this.selectedDates.some(itemTimestamp => {\n\t\t\t\tconst date = CalendarDate.fromTimestamp(itemTimestamp * 1000, this._primaryCalendarType);\n\t\t\t\treturn date.getYear() === tempDate.getYear();\n\t\t\t});\n\t\t\tconst isFocused = tempDate.getYear() === calendarDate.getYear();\n\t\t\tconst isDisabled = tempDate.getYear() < minDate.getYear() || tempDate.getYear() > maxDate.getYear();\n\t\t\tconst isSelectedBetween = this._isYearInsideSelectionRange(timestamp);\n\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\ttempDateInSecType = transformDateToSecondaryType(this._primaryCalendarType, this.secondaryCalendarType, timestamp, true);\n\t\t\t\ttextInSecType = tempDateInSecType.firstDate.getYear() === tempDateInSecType.lastDate.getYear()\n\t\t\t\t\t? `${oYearFormatInSecType.format(tempDateInSecType.firstDate.toLocalJSDate())}`\n\t\t\t\t\t: `${oYearFormatInSecType.format(tempDateInSecType.firstDate.toLocalJSDate())} - ${oYearFormatInSecType.format(tempDateInSecType.lastDate.toLocalJSDate())}`;\n\t\t\t}\n\n\t\t\tconst year: Year = {\n\t\t\t\ttimestamp: timestamp.toString(),\n\t\t\t\t_tabIndex: isFocused ? 0 : -1,\n\t\t\t\tfocusRef: isFocused,\n\t\t\t\tselected: isSelected || isSelectedBetween,\n\t\t\t\tariaSelected: isSelected || isSelectedBetween,\n\t\t\t\tyear: oYearFormat.format(tempDate.toLocalJSDate()),\n\t\t\t\tyearInSecType: textInSecType,\n\t\t\t\tdisabled: isDisabled,\n\t\t\t\tariaDisabled: isDisabled,\n\t\t\t\tclasses: \"ui5-yp-item\",\n\t\t\t\tparts: \"year-cell\",\n\t\t\t};\n\n\t\t\tif (isSelected) {\n\t\t\t\tyear.classes += \" ui5-yp-item--selected\";\n\t\t\t\tyear.parts += \" year-cell-selected\";\n\t\t\t}\n\n\t\t\tif (isSelectedBetween) {\n\t\t\t\tyear.classes += \" ui5-yp-item--selected-between\";\n\t\t\t\tyear.parts += \" year-cell-selected-between\";\n\t\t\t}\n\n\t\t\tif (isDisabled) {\n\t\t\t\tyear.classes += \" ui5-yp-item--disabled\";\n\t\t\t}\n\n\t\t\tif (this.hasSecondaryCalendarType) {\n\t\t\t\tyear.classes += \" ui5-yp-item-secondary-type\";\n\t\t\t}\n\t\t\tconst intervalIndex = Math.floor(i / this._getRowSize());\n\n\t\t\tif (intervals[intervalIndex]) {\n\t\t\t\tintervals[intervalIndex].push(year);\n\t\t\t} else {\n\t\t\t\tintervals[intervalIndex] = [year];\n\t\t\t}\n\n\t\t\ttempDate.setYear(tempDate.getYear() + 1);\n\t\t}\n\n\t\tthis._yearsInterval = intervals;\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this._hidden) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Returns true if year timestamp is inside the selection range.\n\t * @private\n\t */\n\t_isYearInsideSelectionRange(timestamp: number): boolean {\n\t\tif (this.selectionMode !== CalendarSelectionMode.Range || !this.selectedDates.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Only one date selected - second is hovered or focused\n\t\tif (this.selectedDates.length === 1 && this._secondTimestamp) {\n\t\t\treturn isBetween(timestamp, this.selectedDates[0], this._secondTimestamp);\n\t\t}\n\n\t\treturn isBetween(timestamp, this.selectedDates[0], this.selectedDates[1]);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tlet preventDefault = true;\n\t\tconst pageSize = this._getPageSize();\n\t\tconst rowSize = this._getRowSize();\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._selectYear(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._yearsInterval[0][0].timestamp)); // first year of first row\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tthis._setTimestamp(parseInt(this._yearsInterval[pageSize / rowSize - 1][rowSize - 1].timestamp)); // last year of last row\n\t\t} else {\n\t\t\tpreventDefault = false;\n\t\t}\n\n\t\tif (preventDefault) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onHomeOrEnd(homePressed: boolean) {\n\t\tthis._yearsInterval.forEach(row => {\n\t\t\tconst indexInRow = row.findIndex(item => CalendarDate.fromTimestamp(parseInt(item.timestamp) * 1000).getYear() === this._calendarDate.getYear());\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 * In range selection, the currently focused or hovered year is considered the \"second day\".\n\t * @private\n\t */\n\t_updateSecondTimestamp() {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && (this.selectedDates.length === 1 || this.selectedDates.length === 2)) {\n\t\t\tthis._secondTimestamp = this.timestamp;\n\t\t}\n\t}\n\n\t/**\n\t * Set the hovered day as the \"_secondTimestamp\".\n\t *\n\t * @param e\n\t * @private\n\t */\n\t_onmouseover(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst hoveredItem = target.closest(\".ui5-yp-item\") as HTMLElement;\n\t\tif (hoveredItem && this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis._secondTimestamp = this._getTimestampFromDom(hoveredItem);\n\t\t}\n\t}\n\n\t/**\n\t * Sets the 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 * Modifies timestamp by a given amount of years 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\tthis._safelyModifyTimestampBy(amount, \"year\");\n\t\tthis._updateSecondTimestamp();\n\n\t\t// Notify the calendar to update its timestamp\n\t\tthis.fireDecoratorEvent(\"navigate\", { timestamp: this.timestamp! });\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._selectYear(e);\n\t\t}\n\t}\n\n\t/**\n\t * User clicked with the mouser or pressed Enter/Space\n\t * @param e\n\t * @private\n\t */\n\t_selectYear(e: Event) {\n\t\te.preventDefault();\n\t\tconst target = e.target as HTMLElement;\n\n\t\tif (target.className.indexOf(\"ui5-yp-item\") === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst timestamp = this._getTimestampFromDom(target);\n\t\tthis._safelySetTimestamp(timestamp);\n\t\tthis._updateSecondTimestamp();\n\t\tthis._updateSelectedDates(timestamp);\n\n\t\tthis.fireDecoratorEvent(\"change\", {\n\t\t\ttimestamp: this.timestamp!,\n\t\t\tdates: this.selectedDates,\n\t\t});\n\t}\n\n\t_updateSelectedDates(timestamp: number) {\n\t\tif (this.selectionMode === CalendarSelectionMode.Range && this.selectedDates.length === 1) {\n\t\t\tthis.selectedDates = [this.selectedDates[0], timestamp];\n\t\t\treturn;\n\t\t}\n\n\t\tthis.selectedDates = [timestamp];\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasPreviousPage(): boolean {\n\t\treturn this._firstYear! > this._minDate.getYear();\n\t}\n\n\t/**\n\t * Called by the Calendar component.\n\t * @protected\n\t */\n\t_hasNextPage(): boolean {\n\t\treturn this._firstYear! + this._getPageSize() - 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\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\tthis._modifyTimestampBy(this._getPageSize());\n\t}\n}\n\nYearPicker.define();\n\nexport default YearPicker;\nexport type {\n\tYearPickerChangeEventDetail,\n\tYearPickerNavigateEventDetail,\n};\n"]}