@ui5/webcomponents 2.3.0 → 2.4.0-rc.0

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 (481) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/cypress/specs/base/Events.cy.ts +207 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/Avatar.js +4 -2
  5. package/dist/Avatar.js.map +1 -1
  6. package/dist/AvatarGroup.js +2 -2
  7. package/dist/AvatarGroup.js.map +1 -1
  8. package/dist/Breadcrumbs.js +6 -5
  9. package/dist/Breadcrumbs.js.map +1 -1
  10. package/dist/Button.js +8 -3
  11. package/dist/Button.js.map +1 -1
  12. package/dist/Calendar.js +17 -12
  13. package/dist/Calendar.js.map +1 -1
  14. package/dist/CalendarLegend.js +6 -3
  15. package/dist/CalendarLegend.js.map +1 -1
  16. package/dist/CardHeader.js +6 -4
  17. package/dist/CardHeader.js.map +1 -1
  18. package/dist/Carousel.js +4 -3
  19. package/dist/Carousel.js.map +1 -1
  20. package/dist/CheckBox.js +16 -5
  21. package/dist/CheckBox.js.map +1 -1
  22. package/dist/ColorPalette.js +1 -1
  23. package/dist/ColorPalette.js.map +1 -1
  24. package/dist/ColorPaletteItem.js +5 -0
  25. package/dist/ColorPaletteItem.js.map +1 -1
  26. package/dist/ColorPalettePopover.js +12 -3
  27. package/dist/ColorPalettePopover.js.map +1 -1
  28. package/dist/ColorPicker.js +5 -2
  29. package/dist/ColorPicker.js.map +1 -1
  30. package/dist/ComboBox.js +16 -11
  31. package/dist/ComboBox.js.map +1 -1
  32. package/dist/DatePicker.js +8 -5
  33. package/dist/DatePicker.js.map +1 -1
  34. package/dist/DayPicker.js +15 -7
  35. package/dist/DayPicker.js.map +1 -1
  36. package/dist/FileUploader.js +5 -3
  37. package/dist/FileUploader.js.map +1 -1
  38. package/dist/Icon.js +5 -3
  39. package/dist/Icon.js.map +1 -1
  40. package/dist/Input.js +41 -19
  41. package/dist/Input.js.map +1 -1
  42. package/dist/Link.d.ts +1 -6
  43. package/dist/Link.js +10 -15
  44. package/dist/Link.js.map +1 -1
  45. package/dist/List.d.ts +1 -0
  46. package/dist/List.js +31 -19
  47. package/dist/List.js.map +1 -1
  48. package/dist/ListItem.d.ts +1 -0
  49. package/dist/ListItem.js +20 -7
  50. package/dist/ListItem.js.map +1 -1
  51. package/dist/ListItemBase.js +21 -10
  52. package/dist/ListItemBase.js.map +1 -1
  53. package/dist/ListItemGroup.js +6 -5
  54. package/dist/ListItemGroup.js.map +1 -1
  55. package/dist/MessageStrip.js +4 -2
  56. package/dist/MessageStrip.js.map +1 -1
  57. package/dist/MonthPicker.js +9 -5
  58. package/dist/MonthPicker.js.map +1 -1
  59. package/dist/MultiComboBox.js +24 -15
  60. package/dist/MultiComboBox.js.map +1 -1
  61. package/dist/MultiInput.js +6 -3
  62. package/dist/MultiInput.js.map +1 -1
  63. package/dist/Panel.js +5 -3
  64. package/dist/Panel.js.map +1 -1
  65. package/dist/Popover.js +1 -1
  66. package/dist/Popover.js.map +1 -1
  67. package/dist/Popup.js +16 -13
  68. package/dist/Popup.js.map +1 -1
  69. package/dist/RadioButton.js +4 -2
  70. package/dist/RadioButton.js.map +1 -1
  71. package/dist/RadioButtonGroup.js +1 -1
  72. package/dist/RadioButtonGroup.js.map +1 -1
  73. package/dist/RangeSlider.js +2 -2
  74. package/dist/RangeSlider.js.map +1 -1
  75. package/dist/RatingIndicator.js +5 -3
  76. package/dist/RatingIndicator.js.map +1 -1
  77. package/dist/ResponsivePopover.js +1 -1
  78. package/dist/ResponsivePopover.js.map +1 -1
  79. package/dist/SegmentedButton.js +2 -1
  80. package/dist/SegmentedButton.js.map +1 -1
  81. package/dist/Select.js +20 -8
  82. package/dist/Select.js.map +1 -1
  83. package/dist/Slider.js +1 -1
  84. package/dist/Slider.js.map +1 -1
  85. package/dist/SliderBase.js +7 -3
  86. package/dist/SliderBase.js.map +1 -1
  87. package/dist/SplitButton.js +8 -4
  88. package/dist/SplitButton.js.map +1 -1
  89. package/dist/StepInput.js +8 -5
  90. package/dist/StepInput.js.map +1 -1
  91. package/dist/Switch.js +16 -4
  92. package/dist/Switch.js.map +1 -1
  93. package/dist/TabContainer.js +16 -14
  94. package/dist/TabContainer.js.map +1 -1
  95. package/dist/Table.js +2 -1
  96. package/dist/Table.js.map +1 -1
  97. package/dist/TableGrowing.js +4 -2
  98. package/dist/TableGrowing.js.map +1 -1
  99. package/dist/TableSelection.js +6 -4
  100. package/dist/TableSelection.js.map +1 -1
  101. package/dist/Tag.js +4 -2
  102. package/dist/Tag.js.map +1 -1
  103. package/dist/TextArea.js +26 -10
  104. package/dist/TextArea.js.map +1 -1
  105. package/dist/TimePicker.js +11 -5
  106. package/dist/TimePicker.js.map +1 -1
  107. package/dist/TimePickerClock.js +3 -2
  108. package/dist/TimePickerClock.js.map +1 -1
  109. package/dist/TimePickerInternals.js +2 -1
  110. package/dist/TimePickerInternals.js.map +1 -1
  111. package/dist/TimeSelectionClocks.d.ts +1 -2
  112. package/dist/TimeSelectionClocks.js +5 -10
  113. package/dist/TimeSelectionClocks.js.map +1 -1
  114. package/dist/TimeSelectionInputs.js +5 -1
  115. package/dist/TimeSelectionInputs.js.map +1 -1
  116. package/dist/Toast.js +4 -2
  117. package/dist/Toast.js.map +1 -1
  118. package/dist/Token.js +7 -4
  119. package/dist/Token.js.map +1 -1
  120. package/dist/Tokenizer.js +23 -17
  121. package/dist/Tokenizer.js.map +1 -1
  122. package/dist/Toolbar.js +14 -1
  123. package/dist/Toolbar.js.map +1 -1
  124. package/dist/ToolbarSelect.js +5 -2
  125. package/dist/ToolbarSelect.js.map +1 -1
  126. package/dist/Tree.js +34 -12
  127. package/dist/Tree.js.map +1 -1
  128. package/dist/TreeItemBase.js +8 -5
  129. package/dist/TreeItemBase.js.map +1 -1
  130. package/dist/YearPicker.js +9 -5
  131. package/dist/YearPicker.js.map +1 -1
  132. package/dist/css/themes/Avatar.css +1 -1
  133. package/dist/css/themes/AvatarGroup.css +1 -1
  134. package/dist/css/themes/Bar.css +1 -1
  135. package/dist/css/themes/Breadcrumbs.css +1 -1
  136. package/dist/css/themes/BusyIndicator.css +1 -1
  137. package/dist/css/themes/Button.css +1 -1
  138. package/dist/css/themes/Calendar.css +1 -1
  139. package/dist/css/themes/CalendarHeader.css +1 -1
  140. package/dist/css/themes/CalendarLegend.css +1 -1
  141. package/dist/css/themes/CalendarLegendItem.css +1 -1
  142. package/dist/css/themes/Card.css +1 -1
  143. package/dist/css/themes/CardHeader.css +1 -1
  144. package/dist/css/themes/Carousel.css +1 -1
  145. package/dist/css/themes/CheckBox.css +1 -1
  146. package/dist/css/themes/ColorPalette.css +1 -1
  147. package/dist/css/themes/ColorPaletteItem.css +1 -1
  148. package/dist/css/themes/ColorPalettePopover.css +1 -1
  149. package/dist/css/themes/ColorPicker.css +1 -1
  150. package/dist/css/themes/ComboBox.css +1 -1
  151. package/dist/css/themes/DatePicker.css +1 -1
  152. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  153. package/dist/css/themes/DayPicker.css +1 -1
  154. package/dist/css/themes/Dialog.css +1 -1
  155. package/dist/css/themes/FileUploader.css +1 -1
  156. package/dist/css/themes/Form.css +1 -1
  157. package/dist/css/themes/FormItem.css +1 -1
  158. package/dist/css/themes/FormLabelSpan.css +1 -1
  159. package/dist/css/themes/GrowingButton.css +1 -1
  160. package/dist/css/themes/Icon.css +1 -1
  161. package/dist/css/themes/Input.css +1 -1
  162. package/dist/css/themes/InputIcon.css +1 -1
  163. package/dist/css/themes/InputSharedStyles.css +1 -1
  164. package/dist/css/themes/Link.css +1 -1
  165. package/dist/css/themes/List.css +1 -1
  166. package/dist/css/themes/ListItem.css +1 -1
  167. package/dist/css/themes/ListItemBase.css +1 -1
  168. package/dist/css/themes/ListItemCustom.css +1 -1
  169. package/dist/css/themes/ListItemGroup.css +1 -1
  170. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  171. package/dist/css/themes/ListItemIcon.css +1 -1
  172. package/dist/css/themes/Menu.css +1 -1
  173. package/dist/css/themes/MenuItem.css +1 -1
  174. package/dist/css/themes/MessageStrip.css +1 -1
  175. package/dist/css/themes/MonthPicker.css +1 -1
  176. package/dist/css/themes/MultiComboBox.css +1 -1
  177. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  178. package/dist/css/themes/MultiInput.css +1 -1
  179. package/dist/css/themes/NavigationMenu.css +1 -1
  180. package/dist/css/themes/NavigationMenuItem.css +1 -1
  181. package/dist/css/themes/OptionBase.css +1 -1
  182. package/dist/css/themes/Panel.css +1 -1
  183. package/dist/css/themes/Popover.css +1 -1
  184. package/dist/css/themes/PopupsCommon.css +1 -1
  185. package/dist/css/themes/ProgressIndicator.css +1 -1
  186. package/dist/css/themes/RadioButton.css +1 -1
  187. package/dist/css/themes/RangeSlider.css +1 -1
  188. package/dist/css/themes/RatingIndicator.css +1 -1
  189. package/dist/css/themes/ResponsivePopover.css +1 -1
  190. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  191. package/dist/css/themes/SegmentedButton.css +1 -1
  192. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  193. package/dist/css/themes/Select.css +1 -1
  194. package/dist/css/themes/SliderBase.css +1 -1
  195. package/dist/css/themes/SplitButton.css +1 -1
  196. package/dist/css/themes/StepInput.css +1 -1
  197. package/dist/css/themes/SuggestionItem.css +1 -1
  198. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  199. package/dist/css/themes/Switch.css +1 -1
  200. package/dist/css/themes/TabContainer.css +1 -1
  201. package/dist/css/themes/TabInOverflow.css +1 -1
  202. package/dist/css/themes/TabInStrip.css +1 -1
  203. package/dist/css/themes/TabSemanticIcon.css +1 -1
  204. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  205. package/dist/css/themes/Table.css +1 -1
  206. package/dist/css/themes/TableCellBase.css +1 -1
  207. package/dist/css/themes/TableHeaderRow.css +1 -1
  208. package/dist/css/themes/TableRow.css +1 -1
  209. package/dist/css/themes/TableRowBase.css +1 -1
  210. package/dist/css/themes/Tag.css +1 -1
  211. package/dist/css/themes/Text.css +1 -1
  212. package/dist/css/themes/TextArea.css +1 -1
  213. package/dist/css/themes/TimePicker.css +1 -1
  214. package/dist/css/themes/Toast.css +1 -1
  215. package/dist/css/themes/ToggleButton.css +1 -1
  216. package/dist/css/themes/Token.css +1 -1
  217. package/dist/css/themes/Tokenizer.css +1 -1
  218. package/dist/css/themes/TokenizerPopover.css +1 -1
  219. package/dist/css/themes/Toolbar.css +1 -1
  220. package/dist/css/themes/ToolbarPopover.css +1 -1
  221. package/dist/css/themes/TreeItem.css +1 -1
  222. package/dist/css/themes/ValueStateMessage.css +1 -1
  223. package/dist/css/themes/YearPicker.css +1 -1
  224. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  225. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  226. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  227. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  228. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  229. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  230. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  231. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  232. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  233. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  234. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  235. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  236. package/dist/custom-elements-internal.json +415 -54
  237. package/dist/custom-elements.json +16 -16
  238. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  239. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  240. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  241. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  242. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  243. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  244. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  245. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  246. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  247. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  248. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  249. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  250. package/dist/generated/templates/LinkTemplate.lit.js +1 -1
  251. package/dist/generated/templates/LinkTemplate.lit.js.map +1 -1
  252. package/dist/generated/templates/ListTemplate.lit.js +5 -4
  253. package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
  254. package/dist/generated/templates/TimeSelectionClocksTemplate.lit.js +2 -2
  255. package/dist/generated/templates/TimeSelectionClocksTemplate.lit.js.map +1 -1
  256. package/dist/generated/themes/Avatar.css.js +1 -1
  257. package/dist/generated/themes/Avatar.css.js.map +1 -1
  258. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  259. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  260. package/dist/generated/themes/Bar.css.js +1 -1
  261. package/dist/generated/themes/Bar.css.js.map +1 -1
  262. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  263. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  264. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  265. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  266. package/dist/generated/themes/Button.css.js +1 -1
  267. package/dist/generated/themes/Button.css.js.map +1 -1
  268. package/dist/generated/themes/Calendar.css.js +1 -1
  269. package/dist/generated/themes/Calendar.css.js.map +1 -1
  270. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  271. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  272. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  273. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  274. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  275. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  276. package/dist/generated/themes/Card.css.js +1 -1
  277. package/dist/generated/themes/Card.css.js.map +1 -1
  278. package/dist/generated/themes/CardHeader.css.js +1 -1
  279. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  280. package/dist/generated/themes/Carousel.css.js +1 -1
  281. package/dist/generated/themes/Carousel.css.js.map +1 -1
  282. package/dist/generated/themes/CheckBox.css.js +1 -1
  283. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  284. package/dist/generated/themes/ColorPalette.css.js +1 -1
  285. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  286. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  287. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  288. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  289. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  290. package/dist/generated/themes/ColorPicker.css.js +1 -1
  291. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  292. package/dist/generated/themes/ComboBox.css.js +1 -1
  293. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  294. package/dist/generated/themes/DatePicker.css.js +1 -1
  295. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  296. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  297. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  298. package/dist/generated/themes/DayPicker.css.js +1 -1
  299. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  300. package/dist/generated/themes/Dialog.css.js +1 -1
  301. package/dist/generated/themes/Dialog.css.js.map +1 -1
  302. package/dist/generated/themes/FileUploader.css.js +1 -1
  303. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  304. package/dist/generated/themes/Form.css.js +1 -1
  305. package/dist/generated/themes/Form.css.js.map +1 -1
  306. package/dist/generated/themes/FormItem.css.js +1 -1
  307. package/dist/generated/themes/FormItem.css.js.map +1 -1
  308. package/dist/generated/themes/FormLabelSpan.css.js +1 -1
  309. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -1
  310. package/dist/generated/themes/GrowingButton.css.js +1 -1
  311. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  312. package/dist/generated/themes/Icon.css.js +1 -1
  313. package/dist/generated/themes/Icon.css.js.map +1 -1
  314. package/dist/generated/themes/Input.css.js +1 -1
  315. package/dist/generated/themes/Input.css.js.map +1 -1
  316. package/dist/generated/themes/InputIcon.css.js +1 -1
  317. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  318. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  319. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  320. package/dist/generated/themes/Link.css.js +1 -1
  321. package/dist/generated/themes/Link.css.js.map +1 -1
  322. package/dist/generated/themes/List.css.js +1 -1
  323. package/dist/generated/themes/List.css.js.map +1 -1
  324. package/dist/generated/themes/ListItem.css.js +1 -1
  325. package/dist/generated/themes/ListItem.css.js.map +1 -1
  326. package/dist/generated/themes/ListItemBase.css.js +1 -1
  327. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  328. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  329. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  330. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  331. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  332. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  333. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  334. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  335. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  336. package/dist/generated/themes/Menu.css.js +1 -1
  337. package/dist/generated/themes/Menu.css.js.map +1 -1
  338. package/dist/generated/themes/MenuItem.css.js +1 -1
  339. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  340. package/dist/generated/themes/MessageStrip.css.js +1 -1
  341. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  342. package/dist/generated/themes/MonthPicker.css.js +1 -1
  343. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  344. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  345. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  346. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  347. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  348. package/dist/generated/themes/MultiInput.css.js +1 -1
  349. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  350. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  351. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  352. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  353. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  354. package/dist/generated/themes/OptionBase.css.js +1 -1
  355. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  356. package/dist/generated/themes/Panel.css.js +1 -1
  357. package/dist/generated/themes/Panel.css.js.map +1 -1
  358. package/dist/generated/themes/Popover.css.js +1 -1
  359. package/dist/generated/themes/Popover.css.js.map +1 -1
  360. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  361. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  362. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  363. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  364. package/dist/generated/themes/RadioButton.css.js +1 -1
  365. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  366. package/dist/generated/themes/RangeSlider.css.js +1 -1
  367. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  368. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  369. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  370. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  371. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  372. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  373. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  374. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  375. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  376. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  377. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  378. package/dist/generated/themes/Select.css.js +1 -1
  379. package/dist/generated/themes/Select.css.js.map +1 -1
  380. package/dist/generated/themes/SliderBase.css.js +1 -1
  381. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  382. package/dist/generated/themes/SplitButton.css.js +1 -1
  383. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  384. package/dist/generated/themes/StepInput.css.js +1 -1
  385. package/dist/generated/themes/StepInput.css.js.map +1 -1
  386. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  387. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  388. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  389. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  390. package/dist/generated/themes/Switch.css.js +1 -1
  391. package/dist/generated/themes/Switch.css.js.map +1 -1
  392. package/dist/generated/themes/TabContainer.css.js +1 -1
  393. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  394. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  395. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  396. package/dist/generated/themes/TabInStrip.css.js +1 -1
  397. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  398. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  399. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  400. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  401. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  402. package/dist/generated/themes/Table.css.js +1 -1
  403. package/dist/generated/themes/Table.css.js.map +1 -1
  404. package/dist/generated/themes/TableCellBase.css.js +1 -1
  405. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  406. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  407. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  408. package/dist/generated/themes/TableRow.css.js +1 -1
  409. package/dist/generated/themes/TableRow.css.js.map +1 -1
  410. package/dist/generated/themes/TableRowBase.css.js +1 -1
  411. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  412. package/dist/generated/themes/Tag.css.js +1 -1
  413. package/dist/generated/themes/Tag.css.js.map +1 -1
  414. package/dist/generated/themes/Text.css.js +1 -1
  415. package/dist/generated/themes/Text.css.js.map +1 -1
  416. package/dist/generated/themes/TextArea.css.js +1 -1
  417. package/dist/generated/themes/TextArea.css.js.map +1 -1
  418. package/dist/generated/themes/TimePicker.css.js +1 -1
  419. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  420. package/dist/generated/themes/Toast.css.js +1 -1
  421. package/dist/generated/themes/Toast.css.js.map +1 -1
  422. package/dist/generated/themes/ToggleButton.css.js +1 -1
  423. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  424. package/dist/generated/themes/Token.css.js +1 -1
  425. package/dist/generated/themes/Token.css.js.map +1 -1
  426. package/dist/generated/themes/Tokenizer.css.js +1 -1
  427. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  428. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  429. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  430. package/dist/generated/themes/Toolbar.css.js +1 -1
  431. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  432. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  433. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  434. package/dist/generated/themes/TreeItem.css.js +1 -1
  435. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  436. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  437. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  438. package/dist/generated/themes/YearPicker.css.js +1 -1
  439. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  440. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  441. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  442. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  443. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  444. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  445. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  446. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  447. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  448. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  449. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  450. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  451. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  452. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  453. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  454. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  455. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  456. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  457. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  458. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  459. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  460. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  461. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  462. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  463. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  464. package/dist/vscode.html-custom-data.json +4 -4
  465. package/dist/web-types.json +28 -28
  466. package/package.json +9 -9
  467. package/src/Link.hbs +0 -1
  468. package/src/List.hbs +7 -1
  469. package/src/TimeSelectionClocks.hbs +0 -2
  470. package/src/themes/ColorPaletteItem.css +23 -1
  471. package/src/themes/GrowingButton.css +5 -2
  472. package/src/themes/Input.css +0 -1
  473. package/src/themes/Link.css +10 -6
  474. package/src/themes/ListItemBase.css +3 -3
  475. package/src/themes/ListItemGroupHeader.css +4 -0
  476. package/src/themes/Switch.css +2 -1
  477. package/src/themes/base/ColorPalette-parameters.css +3 -0
  478. package/src/themes/sap_horizon/ColorPalette-parameters.css +3 -0
  479. package/src/themes/sap_horizon_dark/ColorPalette-parameters.css +3 -0
  480. package/src/themes/sap_horizon_dark_exp/ColorPalette-parameters.css +3 -0
  481. package/src/themes/sap_horizon_exp/ColorPalette-parameters.css +3 -0
package/dist/Tree.js CHANGED
@@ -140,7 +140,7 @@ let Tree = class Tree extends UI5Element {
140
140
  }
141
141
  const placementAccepted = placements.some(placement => {
142
142
  const closestElement = closestPosition.element;
143
- const beforeItemMovePrevented = !this.fireEvent("move-over", {
143
+ const beforeItemMovePrevented = !this.fireDecoratorEvent("move-over", {
144
144
  source: {
145
145
  element: draggedElement,
146
146
  },
@@ -148,7 +148,7 @@ let Tree = class Tree extends UI5Element {
148
148
  element: closestElement,
149
149
  placement,
150
150
  },
151
- }, true);
151
+ });
152
152
  if (beforeItemMovePrevented) {
153
153
  e.preventDefault();
154
154
  this.dropIndicatorDOM.targetReference = closestElement;
@@ -164,7 +164,7 @@ let Tree = class Tree extends UI5Element {
164
164
  _ondrop(e) {
165
165
  e.preventDefault();
166
166
  const draggedElement = DragRegistry.getDraggedElement();
167
- this.fireEvent("move", {
167
+ this.fireDecoratorEvent("move", {
168
168
  source: {
169
169
  element: draggedElement,
170
170
  },
@@ -194,35 +194,35 @@ let Tree = class Tree extends UI5Element {
194
194
  }
195
195
  _onListItemToggle(e) {
196
196
  const treeItem = e.detail.item;
197
- const defaultPrevented = !this.fireEvent("item-toggle", { item: treeItem }, true);
197
+ const defaultPrevented = !this.fireDecoratorEvent("item-toggle", { item: treeItem });
198
198
  if (!defaultPrevented) {
199
199
  treeItem.toggle();
200
200
  }
201
201
  }
202
202
  _onListItemClick(e) {
203
203
  const treeItem = e.detail.item;
204
- if (!this.fireEvent("item-click", { item: treeItem }, true)) {
204
+ if (!this.fireDecoratorEvent("item-click", { item: treeItem })) {
205
205
  e.preventDefault();
206
206
  }
207
207
  }
208
208
  _onListItemDelete(e) {
209
209
  const treeItem = e.detail.item;
210
- this.fireEvent("item-delete", { item: treeItem });
210
+ this.fireDecoratorEvent("item-delete", { item: treeItem });
211
211
  }
212
212
  _onListItemFocus(e) {
213
213
  const treeItem = e.detail.item;
214
- this.fireEvent("item-focus", { item: treeItem });
214
+ this.fireDecoratorEvent("item-focus", { item: treeItem });
215
215
  }
216
216
  _onListItemMouseOver(e) {
217
217
  const target = e.target;
218
218
  if (this._isInstanceOfTreeItemBase(target)) {
219
- this.fireEvent("item-mouseover", { item: target });
219
+ this.fireDecoratorEvent("item-mouseover", { item: target });
220
220
  }
221
221
  }
222
222
  _onListItemMouseOut(e) {
223
223
  const target = e.target;
224
224
  if (this._isInstanceOfTreeItemBase(target)) {
225
- this.fireEvent("item-mouseout", { item: target });
225
+ this.fireDecoratorEvent("item-mouseout", { item: target });
226
226
  }
227
227
  }
228
228
  _onListSelectionChange(e) {
@@ -235,7 +235,7 @@ let Tree = class Tree extends UI5Element {
235
235
  selectedItems.forEach(item => {
236
236
  item.selected = true;
237
237
  });
238
- this.fireEvent("selection-change", {
238
+ this.fireDecoratorEvent("selection-change", {
239
239
  previouslySelectedItems,
240
240
  selectedItems,
241
241
  targetItem,
@@ -332,7 +332,6 @@ Tree = __decorate([
332
332
  * This may be handy for example if you want to dynamically load tree items upon the user expanding a node.
333
333
  * Even if you prevented the event's default behavior, you can always manually call `toggle()` on a tree item.
334
334
  * @param {HTMLElement} item the toggled item.
335
- * @allowPreventDefault
336
335
  * @public
337
336
  */
338
337
  ,
@@ -343,6 +342,8 @@ Tree = __decorate([
343
342
  */
344
343
  item: { type: HTMLElement },
345
344
  },
345
+ bubbles: true,
346
+ cancelable: true,
346
347
  })
347
348
  /**
348
349
  * Fired when the mouse cursor enters the tree item borders.
@@ -358,6 +359,7 @@ Tree = __decorate([
358
359
  */
359
360
  item: { type: HTMLElement },
360
361
  },
362
+ bubbles: true,
361
363
  })
362
364
  /**
363
365
  * Fired when the mouse cursor leaves the tree item borders.
@@ -373,10 +375,10 @@ Tree = __decorate([
373
375
  */
374
376
  item: { type: HTMLElement },
375
377
  },
378
+ bubbles: true,
376
379
  })
377
380
  /**
378
381
  * Fired when a tree item is activated.
379
- * @allowPreventDefault
380
382
  * @param {HTMLElement} item The clicked item.
381
383
  * @public
382
384
  */
@@ -388,6 +390,8 @@ Tree = __decorate([
388
390
  */
389
391
  item: { type: HTMLElement },
390
392
  },
393
+ bubbles: true,
394
+ cancelable: true,
391
395
  })
392
396
  /**
393
397
  * Fired when the Delete button of any tree item is pressed.
@@ -405,6 +409,7 @@ Tree = __decorate([
405
409
  */
406
410
  item: { type: HTMLElement },
407
411
  },
412
+ bubbles: true,
408
413
  })
409
414
  /**
410
415
  * Fired when a tree item is focused.
@@ -416,6 +421,7 @@ Tree = __decorate([
416
421
  detail: {
417
422
  item: { type: HTMLElement },
418
423
  },
424
+ bubbles: true,
419
425
  })
420
426
  /**
421
427
  * Fired when selection is changed by user interaction
@@ -441,6 +447,22 @@ Tree = __decorate([
441
447
  */
442
448
  targetItem: { type: HTMLElement },
443
449
  },
450
+ bubbles: true,
451
+ }),
452
+ event("move", {
453
+ detail: {
454
+ source: { type: Object },
455
+ destination: { type: Object },
456
+ },
457
+ bubbles: true,
458
+ }),
459
+ event("move-over", {
460
+ detail: {
461
+ source: { type: Object },
462
+ destination: { type: Object },
463
+ },
464
+ bubbles: true,
465
+ cancelable: true,
444
466
  })
445
467
  ], Tree);
446
468
  const walkTree = (el, level, callback) => {
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 { 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.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport DropIndicator from \"./DropIndicator.js\";\nimport TreeItem from \"./TreeItem.js\";\nimport type TreeItemBase from \"./TreeItemBase.js\";\nimport TreeItemCustom from \"./TreeItemCustom.js\";\nimport 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 \"./generated/templates/TreeTemplate.lit.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: litRender,\n\tstyles: TreeCss,\n\ttemplate: TreeTemplate,\n\tdependencies: [\n\t\tTreeList,\n\t\tTreeItem,\n\t\tTreeItemCustom,\n\t\tDropIndicator,\n\t],\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 * @allowPreventDefault\n * @public\n */\n@event<TreeItemToggleEventDetail>(\"item-toggle\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\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<TreeItemMouseoverEventDetail>(\"item-mouseover\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\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<TreeItemMouseoutEventDetail>(\"item-mouseout\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\n})\n/**\n * Fired when a tree item is activated.\n * @allowPreventDefault\n * @param {HTMLElement} item The clicked item.\n * @public\n */\n@event<TreeItemClickEventDetail>(\"item-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\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<TreeItemDeleteEventDetail>(\"item-delete\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when a tree item is focused.\n * @param {HTMLElement} item The focused item.\n * @private\n */\n@event<TreeItemFocusEventDetail>(\"item-focus\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\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<TreeSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedItems: { type: Array },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tpreviouslySelectedItems: { type: Array },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttargetItem: { type: HTMLElement },\n\t},\n})\nclass Tree extends UI5Element {\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 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 _label() {\n\t\treturn getEffectiveAriaLabelText(this);\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\tlet placements = closestPosition.placements;\n\n\t\tclosestPosition.element = <HTMLElement>(<ShadowRoot>closestPosition.element.getRootNode()).host;\n\n\t\tif (draggedElement.contains(closestPosition.element)) { return; }\n\n\t\tif (closestPosition.element === draggedElement) {\n\t\t\tplacements = placements.filter(placement => placement !== MovePlacement.On);\n\t\t}\n\n\t\tconst placementAccepted = placements.some(placement => {\n\t\t\tconst closestElement = closestPosition.element;\n\t\t\tconst beforeItemMovePrevented = !this.fireEvent<TreeMoveEventDetail>(\"move-over\", {\n\t\t\t\tsource: {\n\t\t\t\t\telement: draggedElement,\n\t\t\t\t},\n\t\t\t\tdestination: {\n\t\t\t\t\telement: closestElement,\n\t\t\t\t\tplacement,\n\t\t\t\t},\n\t\t\t}, true);\n\n\t\t\tif (beforeItemMovePrevented) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.dropIndicatorDOM!.targetReference = closestElement;\n\t\t\t\tthis.dropIndicatorDOM!.placement = placement;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t});\n\n\t\tif (!placementAccepted) {\n\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t}\n\t}\n\n\t_ondrop(e: DragEvent) {\n\t\te.preventDefault();\n\n\t\tconst draggedElement = DragRegistry.getDraggedElement()!;\n\t\tthis.fireEvent<TreeMoveEventDetail>(\"move\", {\n\t\t\tsource: {\n\t\t\t\telement: draggedElement,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: this.dropIndicatorDOM!.targetReference!,\n\t\t\t\tplacement: this.dropIndicatorDOM!.placement,\n\t\t\t},\n\t\t});\n\t\tdraggedElement.focus();\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.fireEvent<TreeItemToggleEventDetail>(\"item-toggle\", { item: treeItem }, true);\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.fireEvent<TreeItemClickEventDetail>(\"item-click\", { item: treeItem }, true)) {\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.fireEvent<TreeItemDeleteEventDetail>(\"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.fireEvent<TreeItemFocusEventDetail>(\"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.fireEvent<TreeItemMouseoverEventDetail>(\"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.fireEvent<TreeItemMouseoutEventDetail>(\"item-mouseout\", { item: target });\n\t\t}\n\t}\n\n\t_onListSelectionChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\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.fireEvent<TreeSelectionChangeEventDetail>(\"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":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,YAAY,MAAM,+DAA+D,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sEAAsE,CAAC;AAC3G,OAAO,WAAW,MAAM,mDAAmD,CAAC;AAC5E,OAAO,aAAa,MAAM,qDAAqD,CAAC;AAChF,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,QAAQ,MAAM,eAAe,CAAC;AAErC,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAa/D,WAAW;AACX,OAAO,YAAY,MAAM,2CAA2C,CAAC;AAErE,SAAS;AACT,OAAO,OAAO,MAAM,gCAAgC,CAAC;AA4BrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAoJH,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,UAAU;IAA7B;;QACC;;;;;WAKG;QAEH,kBAAa,GAA4B,MAAM,CAAC;IAmUjD,CAAC;IAlQA,UAAU;QACT,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS;QACR,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACf,oKAAoK;QACpK,wEAAwE;QACxE,IAAI,CAAC,UAAW,CAAC,aAAa,CAAW,iBAAiB,CAAE,CAAC,iBAAiB,EAAE,CAAC;IAClF,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,SAAS,EAAc,CAAC;IACrC,CAAC;IAED,IAAI,KAAK;QACR,OAAO,kBAAkB,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,UAAU;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,YAAY,CAAC,CAAY;QACxB,CAAC,CAAC,cAAc,EAAE,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,CAAY;QACxB,IAAI,CAAC,CAAC,aAAa,YAAY,IAAI,IAAI,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;YACnF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;IAC/C,CAAC;IAED,WAAW,CAAC,CAAY;QACvB,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,mBAAmB,GAAuB,EAAE,CAAC,CAAC,mDAAmD;QACvG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3D,OAAO;QACR,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,IAAI,CAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,mBAAmB,CAC1C,mBAAmB,EACnB,CAAC,CAAC,OAAO,EACT,WAAW,CAAC,QAAQ,CACpB,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9C,OAAO;QACR,CAAC;QAED,IAAI,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;QAE5C,eAAe,CAAC,OAAO,GAA6B,eAAe,CAAC,OAAO,CAAC,WAAW,EAAG,CAAC,IAAI,CAAC;QAEhG,IAAI,cAAc,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAAC,OAAO;QAAC,CAAC;QAEjE,IAAI,eAAe,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YAChD,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACrD,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC;YAC/C,MAAM,uBAAuB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAsB,WAAW,EAAE;gBAC1F,MAAM,EAAE;oBACP,OAAO,EAAE,cAAc;iBACvB;gBACD,WAAW,EAAE;oBACZ,OAAO,EAAE,cAAc;oBACvB,SAAS;iBACT;aACD,CAAC,CAAC;YAEH,IAAI,uBAAuB,EAAE,CAAC;gBAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,cAAc,CAAC;gBACxD,IAAI,CAAC,gBAAiB,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACb,CAAC;YAED,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;QAC/C,CAAC;IACF,CAAC;IAED,OAAO,CAAC,CAAY;QACnB,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnB,MAAM,cAAc,GAAG,YAAY,CAAC,iBAAiB,EAAG,CAAC;QACzD,IAAI,CAAC,kBAAkB,CAAsB,MAAM,EAAE;YACpD,MAAM,EAAE;gBACP,OAAO,EAAE,cAAc;aACvB;YACD,WAAW,EAAE;gBACZ,OAAO,EAAE,IAAI,CAAC,gBAAiB,CAAC,eAAgB;gBAChD,SAAS,EAAE,IAAI,CAAC,gBAAiB,CAAC,SAAS;aAC3C;SACD,CAAC,CAAC;QACH,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;IAC/C,CAAC;IAED,iBAAiB,CAAC,CAA6C;QAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACpE,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC;IAED,kBAAkB,CAAC,CAA8C;QAChE,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAA6B,CAAC;YACtD,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC5D,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;IACF,CAAC;IAED,iBAAiB,CAAC,CAA6C;QAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/B,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAA4B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;IACF,CAAC;IAED,gBAAgB,CAAC,CAAwC;QACxD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAoB,CAAC;QAE/C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAA2B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC1F,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,iBAAiB,CAAC,CAAyC;QAC1D,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAoB,CAAC;QAC/C,IAAI,CAAC,kBAAkB,CAA4B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,gBAAgB,CAAC,CAAwC;QACxD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,IAAoB,CAAC;QAC/C,IAAI,CAAC,kBAAkB,CAA2B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,oBAAoB,CAAC,CAAa;QACjC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAExB,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,kBAAkB,CAA+B,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,CAAC;IACF,CAAC;IAED,mBAAmB,CAAC,CAAa;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;QAExB,IAAI,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,kBAAkB,CAA8B,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACzF,CAAC;IACF,CAAC;IAED,sBAAsB,CAAC,CAA8C;QACpE,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,uBAA8C,CAAC;QACxF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,aAAoC,CAAC;QACpE,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,UAA0B,CAAC;QAEvD,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAiC,kBAAkB,EAAE;YAC3E,uBAAuB;YACvB,aAAa;YACb,UAAU;SACV,CAAC,CAAC;IACJ,CAAC;IAED,iBAAiB;QAChB,0BAA0B;QAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/B,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAE5E,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE7C,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;YACjC,IAAI,CAAC,cAAc,GAAG,KAAK,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,IAAkB;QACzC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,KAAa;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,QAAsB;QAC1B,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,yBAAyB,CAAC,MAAW;QACpC,OAAO,YAAY,IAAI,MAAM,CAAC;IAC/B,CAAC;CACD,CAAA;AAnUA;IADC,QAAQ,EAAE;2CACqC;AAQhD;IADC,QAAQ,EAAE;wCACS;AAUpB;IADC,QAAQ,EAAE;wCACS;AAQpB;IADC,QAAQ,EAAE;wCACS;AASpB;IADC,QAAQ,EAAE;4CACa;AASxB;IADC,QAAQ,EAAE;+CACgB;AAS3B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;mCAChD;AAU5B;IADC,IAAI,EAAE;oCACqB;AAvEvB,IAAI;IAnJT,aAAa,CAAC;QACd,GAAG,EAAE,UAAU;QACf,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,OAAO;QACf,QAAQ,EAAE,YAAY;QACtB,YAAY,EAAE;YACb,QAAQ;YACR,QAAQ;YACR,cAAc;YACd,aAAa;SACb;KACD,CAAC;IACF;;;;;;;;OAQG;;IACF,KAAK,CAA4B,aAAa,EAAE;QAChD,MAAM,EAAE;YACP;;eAEG;YACH,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;QACD,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;IACF;;;;;OAKG;;IACF,KAAK,CAA+B,gBAAgB,EAAE;QACtD,MAAM,EAAE;YACP;;eAEG;YACH,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;QACD,OAAO,EAAE,IAAI;KACb,CAAC;IACF;;;;;OAKG;;IACF,KAAK,CAA8B,eAAe,EAAE;QACpD,MAAM,EAAE;YACP;;eAEG;YACH,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;QACD,OAAO,EAAE,IAAI;KACb,CAAC;IACF;;;;OAIG;;IACF,KAAK,CAA2B,YAAY,EAAE;QAC9C,MAAM,EAAE;YACP;;eAEG;YACH,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;QACD,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;IAEF;;;;;;;OAOG;;IACF,KAAK,CAA4B,aAAa,EAAE;QAChD,MAAM,EAAE;YACP;;eAEG;YACH,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;QACD,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;OAIG;;IACF,KAAK,CAA2B,YAAY,EAAE;QAC9C,MAAM,EAAE;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAC3B;QACD,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;;;;OAOG;;IACF,KAAK,CAAiC,kBAAkB,EAAE;QAC1D,MAAM,EAAE;YACP;;eAEG;YACH,aAAa,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YAC9B;;eAEG;YACH,uBAAuB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACxC;;eAEG;YACH,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SACjC;QACD,OAAO,EAAE,IAAI;KACb,CAAC;IACD,KAAK,CAAsB,MAAM,EAAE;QACnC,MAAM,EAAE;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACxB,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC7B;QACD,OAAO,EAAE,IAAI;KACb,CAAC;IACD,KAAK,CAAsB,WAAW,EAAE;QACxC,MAAM,EAAE;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACxB,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC7B;QACD,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;GACI,IAAI,CA2UT;AAED,MAAM,QAAQ,GAAG,CAAC,EAAuB,EAAE,KAAa,EAAE,QAAsB,EAAE,EAAE;IACnF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAClC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,IAAI,CAAC,MAAM,EAAE,CAAC;AAEd,eAAe,IAAI,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport DragRegistry from \"@ui5/webcomponents-base/dist/util/dragAndDrop/DragRegistry.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.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport DropIndicator from \"./DropIndicator.js\";\nimport TreeItem from \"./TreeItem.js\";\nimport type TreeItemBase from \"./TreeItemBase.js\";\nimport TreeItemCustom from \"./TreeItemCustom.js\";\nimport 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 \"./generated/templates/TreeTemplate.lit.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: litRender,\n\tstyles: TreeCss,\n\ttemplate: TreeTemplate,\n\tdependencies: [\n\t\tTreeList,\n\t\tTreeItem,\n\t\tTreeItemCustom,\n\t\tDropIndicator,\n\t],\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<TreeItemToggleEventDetail>(\"item-toggle\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\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<TreeItemMouseoverEventDetail>(\"item-mouseover\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\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<TreeItemMouseoutEventDetail>(\"item-mouseout\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\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<TreeItemClickEventDetail>(\"item-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\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<TreeItemDeleteEventDetail>(\"item-delete\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\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<TreeItemFocusEventDetail>(\"item-focus\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\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<TreeSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedItems: { type: Array },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tpreviouslySelectedItems: { type: Array },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttargetItem: { type: HTMLElement },\n\t},\n\tbubbles: true,\n})\n@event<TreeMoveEventDetail>(\"move\", {\n\tdetail: {\n\t\tsource: { type: Object },\n\t\tdestination: { type: Object },\n\t},\n\tbubbles: true,\n})\n@event<TreeMoveEventDetail>(\"move-over\", {\n\tdetail: {\n\t\tsource: { type: Object },\n\t\tdestination: { type: Object },\n\t},\n\tbubbles: true,\n\tcancelable: true,\n})\nclass Tree extends UI5Element {\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 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 _label() {\n\t\treturn getEffectiveAriaLabelText(this);\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\tlet placements = closestPosition.placements;\n\n\t\tclosestPosition.element = <HTMLElement>(<ShadowRoot>closestPosition.element.getRootNode()).host;\n\n\t\tif (draggedElement.contains(closestPosition.element)) { return; }\n\n\t\tif (closestPosition.element === draggedElement) {\n\t\t\tplacements = placements.filter(placement => placement !== MovePlacement.On);\n\t\t}\n\n\t\tconst placementAccepted = placements.some(placement => {\n\t\t\tconst closestElement = closestPosition.element;\n\t\t\tconst beforeItemMovePrevented = !this.fireDecoratorEvent<TreeMoveEventDetail>(\"move-over\", {\n\t\t\t\tsource: {\n\t\t\t\t\telement: draggedElement,\n\t\t\t\t},\n\t\t\t\tdestination: {\n\t\t\t\t\telement: closestElement,\n\t\t\t\t\tplacement,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (beforeItemMovePrevented) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.dropIndicatorDOM!.targetReference = closestElement;\n\t\t\t\tthis.dropIndicatorDOM!.placement = placement;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t});\n\n\t\tif (!placementAccepted) {\n\t\t\tthis.dropIndicatorDOM!.targetReference = null;\n\t\t}\n\t}\n\n\t_ondrop(e: DragEvent) {\n\t\te.preventDefault();\n\n\t\tconst draggedElement = DragRegistry.getDraggedElement()!;\n\t\tthis.fireDecoratorEvent<TreeMoveEventDetail>(\"move\", {\n\t\t\tsource: {\n\t\t\t\telement: draggedElement,\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\telement: this.dropIndicatorDOM!.targetReference!,\n\t\t\t\tplacement: this.dropIndicatorDOM!.placement,\n\t\t\t},\n\t\t});\n\t\tdraggedElement.focus();\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<TreeItemToggleEventDetail>(\"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<TreeItemClickEventDetail>(\"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<TreeItemDeleteEventDetail>(\"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<TreeItemFocusEventDetail>(\"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<TreeItemMouseoverEventDetail>(\"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<TreeItemMouseoutEventDetail>(\"item-mouseout\", { item: target });\n\t\t}\n\t}\n\n\t_onListSelectionChange(e: CustomEvent<ListSelectionChangeEventDetail>) {\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<TreeSelectionChangeEventDetail>(\"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"]}
@@ -155,24 +155,24 @@ let TreeItemBase = TreeItemBase_1 = class TreeItemBase extends ListItem {
155
155
  }
156
156
  _toggleClick(e) {
157
157
  e.stopPropagation();
158
- this.fireEvent("toggle", { item: this });
158
+ this.fireDecoratorEvent("toggle", { item: this });
159
159
  }
160
160
  async _onkeydown(e) {
161
161
  await super._onkeydown(e);
162
162
  if (!this._fixed && this.showToggleButton && isRight(e)) {
163
163
  if (!this.expanded) {
164
- this.fireEvent("toggle", { item: this });
164
+ this.fireDecoratorEvent("toggle", { item: this });
165
165
  }
166
166
  else {
167
- this.fireEvent("step-in", { item: this });
167
+ this.fireDecoratorEvent("step-in", { item: this });
168
168
  }
169
169
  }
170
170
  if (!this._fixed && isLeft(e)) {
171
171
  if (this.expanded) {
172
- this.fireEvent("toggle", { item: this });
172
+ this.fireDecoratorEvent("toggle", { item: this });
173
173
  }
174
174
  else if (this.hasParent) {
175
- this.fireEvent("step-out", { item: this });
175
+ this.fireDecoratorEvent("step-out", { item: this });
176
176
  }
177
177
  }
178
178
  }
@@ -252,6 +252,7 @@ TreeItemBase = TreeItemBase_1 = __decorate([
252
252
  detail: {
253
253
  item: { type: HTMLElement },
254
254
  },
255
+ bubbles: true,
255
256
  })
256
257
  /**
257
258
  * Fired when the user drills down into the tree hierarchy by pressing the right arrow on the tree node.
@@ -263,6 +264,7 @@ TreeItemBase = TreeItemBase_1 = __decorate([
263
264
  detail: {
264
265
  item: { type: HTMLElement },
265
266
  },
267
+ bubbles: true,
266
268
  })
267
269
  /**
268
270
  * Fired when the user goes up the tree hierarchy by pressing the left arrow on the tree node.
@@ -274,6 +276,7 @@ TreeItemBase = TreeItemBase_1 = __decorate([
274
276
  detail: {
275
277
  item: { type: HTMLElement },
276
278
  },
279
+ bubbles: true,
277
280
  })
278
281
  ], TreeItemBase);
279
282
  export default TreeItemBase;
@@ -1 +1 @@
1
- {"version":3,"file":"TreeItemBase.js","sourceRoot":"","sources":["../src/TreeItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { isLeft, isRight } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport ListItem from \"./ListItem.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport {\n\tTREE_ITEM_ARIA_LABEL,\n\tTREE_ITEM_EXPAND_NODE,\n\tTREE_ITEM_COLLAPSE_NODE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport TreeItemBaseTemplate from \"./generated/templates/TreeItemBaseTemplate.lit.js\";\n\n// Styles\nimport treeItemCss from \"./generated/themes/TreeItem.css.js\";\n\ntype TreeItemBaseEventDetail = {\n\titem: TreeItemBase,\n}\ntype TreeItemBaseToggleEventDetail = TreeItemBaseEventDetail;\ntype TreeItemBaseStepInEventDetail = TreeItemBaseEventDetail;\ntype TreeItemBaseStepOutEventDetail = TreeItemBaseEventDetail;\n\n/**\n * A class to serve as a foundation\n * for the `TreeItem` and `TreeItemCustom` classes.\n * @abstract\n * @constructor\n * @extends ListItem\n * @public\n */\n@customElement({\n\tlanguageAware: true,\n\ttemplate: TreeItemBaseTemplate,\n\tstyles: [\n\t\tListItem.styles,\n\t\ttreeItemCss,\n\t],\n\tdependencies: [\n\t\t...ListItem.dependencies,\n\t\tIcon,\n\t],\n})\n/**\n * Fired when the user interacts with the expand/collapse button of the tree list item.\n * @param {HTMLElement} item the toggled item.\n * @protected\n */\n@event<TreeItemBaseToggleEventDetail>(\"toggle\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the user drills down into the tree hierarchy by pressing the right arrow on the tree node.\n * @param {HTMLElement} item the item on which right arrow was pressed.\n * @protected\n */\n@event<TreeItemBaseStepInEventDetail>(\"step-in\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired when the user goes up the tree hierarchy by pressing the left arrow on the tree node.\n * @param {HTMLElement} item the item on which left arrow was pressed.\n * @protected\n */\n@event<TreeItemBaseStepOutEventDetail>(\"step-out\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\nclass TreeItemBase extends ListItem {\n\t/**\n\t * Defines the indentation of the tree list item. Use level 1 for tree list items, representing top-level tree nodes.\n\t * @protected\n\t * @default 1\n\t */\n\t@property({ type: Number })\n\tlevel = 1;\n\n\t/**\n\t * If set, an icon will be displayed before the text of the tree list item.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines whether the tree list item should display an expand/collapse button.\n\t * @default false\n\t * @protected\n\t */\n\t@property({ type: Boolean })\n\tshowToggleButton = false;\n\n\t/**\n\t * Defines whether the tree list item will show a collapse or expand icon inside its toggle button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\texpanded = false;\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t* Defines whether the selection of a tree node is displayed as partially selected.\n\t*\n\t* **Note:** The indeterminate state can be set only programmatically and can’t be achieved by user\n\t* interaction, meaning that the resulting visual state depends on the values of the `indeterminate`\n\t* and `selected` properties:\n\t*\n\t* - If a tree node has both `selected` and `indeterminate` set to `true`, it is displayed as partially selected.\n\t* - If a tree node has `selected` set to `true` and `indeterminate` set to `false`, it is displayed as selected.\n\t* - If a tree node has `selected` set to `false`, it is displayed as not selected regardless of the value of the `indeterminate` property.\n\t*\n\t* **Note:** This property takes effect only when the `ui5-tree` is in `Multiple` mode.\n\t* @default false\n\t* @public\n\t* @since 1.1.0\n\t*/\n\t@property({ type: Boolean })\n\tdeclare indeterminate: boolean;\n\n\t/**\n\t * Defines whether the tree node has children, even if currently no other tree nodes are slotted inside.\n\t *\n\t * **Note:** This property is useful for showing big tree structures where not all nodes are initially loaded due to performance reasons.\n\t * Set this to `true` for nodes you intend to load lazily, when the user clicks the expand button.\n\t * It is not necessary to set this property otherwise. If a tree item has children, the expand button will be displayed anyway.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thasChildren = false;\n\n\t/**\n\t * Defines the state of the `additionalText`.\n\t *\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalTextState: `${ValueState}` = \"None\";\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\tdeclare accessibleName?: string;\n\n\t/**\n\t * @private\n\t * @since 1.0.0-rc.11\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tforcedSetsize = 1;\n\n\t/**\n\t * @private\n\t * @since 1.0.0-rc.11\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tforcedPosinset = 1;\n\n\t/**\n\t * Defines if the item should be collapsible or not.\n\t * @private\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\t_fixed = false;\n\n\t/**\n\t * Defines the items of the component.\n\t *\n\t * **Note:** Use `ui5-tree-item` or `ui5-tree-item-custom`\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: false,\n\t\t\tslots: [\"default\"],\n\t\t},\n\t\t\"default\": true,\n\t})\n\titems!: Array<TreeItemBase>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tthis.showToggleButton = this.requiresToggleButton;\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst allClasses = super.classes;\n\t\tallClasses.main[\"ui5-li-root-tree\"] = true;\n\t\treturn allClasses;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpreContent: {\n\t\t\t\t\"padding-inline-start\": `calc(var(${getScopedVarName(\"--_ui5-tree-indent-step\")}) * ${this.effectiveLevel})`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget requiresToggleButton() {\n\t\treturn !this._fixed ? (this.hasChildren || this.items.length > 0) : false;\n\t}\n\n\tget effectiveLevel() {\n\t\treturn this.level - 1;\n\t}\n\n\tget hasParent() {\n\t\treturn this.level > 1;\n\t}\n\n\tget _toggleIconName() {\n\t\treturn this.expanded ? \"navigation-down-arrow\" : \"navigation-right-arrow\";\n\t}\n\n\tget _ariaLabel() {\n\t\treturn TreeItemBase.i18nBundle.getText(TREE_ITEM_ARIA_LABEL);\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings = {\n\t\t\trole: \"treeitem\",\n\t\t\tariaExpanded: this.showToggleButton ? this.expanded : undefined,\n\t\t\tariaLevel: this.level,\n\t\t\tposinset: this.forcedPosinset,\n\t\t\tsetsize: this.forcedSetsize,\n\t\t\tariaSelectedText: this.ariaSelectedText,\n\t\t\tlistItemAriaLabel: !this.accessibleName ? this._ariaLabel : undefined,\n\t\t\tariaOwns: this.expanded ? `${this._id}-subtree` : undefined,\n\t\t\tariaHaspopup: this.accessibilityAttributes.hasPopup,\n\t\t};\n\n\t\treturn { ...super._accInfo, ...accInfoSettings };\n\t}\n\n\t/**\n\t * Used to duck-type TreeItem elements without using instanceof\n\t * @default true\n\t * @protected\n\t */\n\tget isTreeItem(): boolean {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Call this method to manually switch the `expanded` state of a tree item.\n\t * @public\n\t */\n\ttoggle(): void {\n\t\tthis.expanded = !this.expanded;\n\t}\n\n\t_toggleClick(e: MouseEvent | KeyboardEvent) {\n\t\te.stopPropagation();\n\t\tthis.fireEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tawait super._onkeydown(e);\n\n\t\tif (!this._fixed && this.showToggleButton && isRight(e)) {\n\t\t\tif (!this.expanded) {\n\t\t\t\tthis.fireEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t\t\t} else {\n\t\t\t\tthis.fireEvent<TreeItemBaseStepInEventDetail>(\"step-in\", { item: this });\n\t\t\t}\n\t\t}\n\n\t\tif (!this._fixed && isLeft(e)) {\n\t\t\tif (this.expanded) {\n\t\t\t\tthis.fireEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t\t\t} else if (this.hasParent) {\n\t\t\t\tthis.fireEvent<TreeItemBaseStepOutEventDetail>(\"step-out\", { item: this });\n\t\t\t}\n\t\t}\n\t}\n\n\tget iconAccessibleName(): string {\n\t\treturn this.expanded ? TreeItemBase.i18nBundle.getText(TREE_ITEM_COLLAPSE_NODE) : TreeItemBase.i18nBundle.getText(TREE_ITEM_EXPAND_NODE);\n\t}\n}\n\nexport default TreeItemBase;\nexport type {\n\tTreeItemBaseToggleEventDetail,\n\tTreeItemBaseStepInEventDetail,\n\tTreeItemBaseStepOutEventDetail,\n};\n"]}
1
+ {"version":3,"file":"TreeItemBase.js","sourceRoot":"","sources":["../src/TreeItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport type { ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport { isLeft, isRight } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\nimport ListItem from \"./ListItem.js\";\nimport Icon from \"./Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport \"@ui5/webcomponents-icons/dist/navigation-down-arrow.js\";\nimport {\n\tTREE_ITEM_ARIA_LABEL,\n\tTREE_ITEM_EXPAND_NODE,\n\tTREE_ITEM_COLLAPSE_NODE,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport TreeItemBaseTemplate from \"./generated/templates/TreeItemBaseTemplate.lit.js\";\n\n// Styles\nimport treeItemCss from \"./generated/themes/TreeItem.css.js\";\n\ntype TreeItemBaseEventDetail = {\n\titem: TreeItemBase,\n}\ntype TreeItemBaseToggleEventDetail = TreeItemBaseEventDetail;\ntype TreeItemBaseStepInEventDetail = TreeItemBaseEventDetail;\ntype TreeItemBaseStepOutEventDetail = TreeItemBaseEventDetail;\n\n/**\n * A class to serve as a foundation\n * for the `TreeItem` and `TreeItemCustom` classes.\n * @abstract\n * @constructor\n * @extends ListItem\n * @public\n */\n@customElement({\n\tlanguageAware: true,\n\ttemplate: TreeItemBaseTemplate,\n\tstyles: [\n\t\tListItem.styles,\n\t\ttreeItemCss,\n\t],\n\tdependencies: [\n\t\t...ListItem.dependencies,\n\t\tIcon,\n\t],\n})\n/**\n * Fired when the user interacts with the expand/collapse button of the tree list item.\n * @param {HTMLElement} item the toggled item.\n * @protected\n */\n@event<TreeItemBaseToggleEventDetail>(\"toggle\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n\tbubbles: true,\n})\n\n/**\n * Fired when the user drills down into the tree hierarchy by pressing the right arrow on the tree node.\n * @param {HTMLElement} item the item on which right arrow was pressed.\n * @protected\n */\n@event<TreeItemBaseStepInEventDetail>(\"step-in\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n\tbubbles: true,\n})\n\n/**\n * Fired when the user goes up the tree hierarchy by pressing the left arrow on the tree node.\n * @param {HTMLElement} item the item on which left arrow was pressed.\n * @protected\n */\n@event<TreeItemBaseStepOutEventDetail>(\"step-out\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n\tbubbles: true,\n})\nclass TreeItemBase extends ListItem {\n\t/**\n\t * Defines the indentation of the tree list item. Use level 1 for tree list items, representing top-level tree nodes.\n\t * @protected\n\t * @default 1\n\t */\n\t@property({ type: Number })\n\tlevel = 1;\n\n\t/**\n\t * If set, an icon will be displayed before the text of the tree list item.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines whether the tree list item should display an expand/collapse button.\n\t * @default false\n\t * @protected\n\t */\n\t@property({ type: Boolean })\n\tshowToggleButton = false;\n\n\t/**\n\t * Defines whether the tree list item will show a collapse or expand icon inside its toggle button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\texpanded = false;\n\n\t/**\n\t * Defines whether the item is movable.\n\t * @default false\n\t * @public\n\t * @since 2.0.0\n\t */\n\t@property({ type: Boolean })\n\tmovable = false;\n\n\t/**\n\t* Defines whether the selection of a tree node is displayed as partially selected.\n\t*\n\t* **Note:** The indeterminate state can be set only programmatically and can’t be achieved by user\n\t* interaction, meaning that the resulting visual state depends on the values of the `indeterminate`\n\t* and `selected` properties:\n\t*\n\t* - If a tree node has both `selected` and `indeterminate` set to `true`, it is displayed as partially selected.\n\t* - If a tree node has `selected` set to `true` and `indeterminate` set to `false`, it is displayed as selected.\n\t* - If a tree node has `selected` set to `false`, it is displayed as not selected regardless of the value of the `indeterminate` property.\n\t*\n\t* **Note:** This property takes effect only when the `ui5-tree` is in `Multiple` mode.\n\t* @default false\n\t* @public\n\t* @since 1.1.0\n\t*/\n\t@property({ type: Boolean })\n\tdeclare indeterminate: boolean;\n\n\t/**\n\t * Defines whether the tree node has children, even if currently no other tree nodes are slotted inside.\n\t *\n\t * **Note:** This property is useful for showing big tree structures where not all nodes are initially loaded due to performance reasons.\n\t * Set this to `true` for nodes you intend to load lazily, when the user clicks the expand button.\n\t * It is not necessary to set this property otherwise. If a tree item has children, the expand button will be displayed anyway.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thasChildren = false;\n\n\t/**\n\t * Defines the state of the `additionalText`.\n\t *\n\t * Available options are: `\"None\"` (by default), `\"Positive\"`, `\"Critical\"`, `\"Information\"` and `\"Negative\"`.\n\t * @default \"None\"\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property()\n\tadditionalTextState: `${ValueState}` = \"None\";\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\tdeclare accessibleName?: string;\n\n\t/**\n\t * @private\n\t * @since 1.0.0-rc.11\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tforcedSetsize = 1;\n\n\t/**\n\t * @private\n\t * @since 1.0.0-rc.11\n\t */\n\t@property({ type: Number, noAttribute: true })\n\tforcedPosinset = 1;\n\n\t/**\n\t * Defines if the item should be collapsible or not.\n\t * @private\n\t * @default false\n\t * @since 1.10.0\n\t */\n\t@property({ type: Boolean })\n\t_fixed = false;\n\n\t/**\n\t * Defines the items of the component.\n\t *\n\t * **Note:** Use `ui5-tree-item` or `ui5-tree-item-custom`\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: false,\n\t\t\tslots: [\"default\"],\n\t\t},\n\t\t\"default\": true,\n\t})\n\titems!: Array<TreeItemBase>;\n\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\tonBeforeRendering() {\n\t\tthis.showToggleButton = this.requiresToggleButton;\n\t}\n\n\tget classes(): ClassMap {\n\t\tconst allClasses = super.classes;\n\t\tallClasses.main[\"ui5-li-root-tree\"] = true;\n\t\treturn allClasses;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tpreContent: {\n\t\t\t\t\"padding-inline-start\": `calc(var(${getScopedVarName(\"--_ui5-tree-indent-step\")}) * ${this.effectiveLevel})`,\n\t\t\t},\n\t\t};\n\t}\n\n\tget requiresToggleButton() {\n\t\treturn !this._fixed ? (this.hasChildren || this.items.length > 0) : false;\n\t}\n\n\tget effectiveLevel() {\n\t\treturn this.level - 1;\n\t}\n\n\tget hasParent() {\n\t\treturn this.level > 1;\n\t}\n\n\tget _toggleIconName() {\n\t\treturn this.expanded ? \"navigation-down-arrow\" : \"navigation-right-arrow\";\n\t}\n\n\tget _ariaLabel() {\n\t\treturn TreeItemBase.i18nBundle.getText(TREE_ITEM_ARIA_LABEL);\n\t}\n\n\tget _accInfo() {\n\t\tconst accInfoSettings = {\n\t\t\trole: \"treeitem\",\n\t\t\tariaExpanded: this.showToggleButton ? this.expanded : undefined,\n\t\t\tariaLevel: this.level,\n\t\t\tposinset: this.forcedPosinset,\n\t\t\tsetsize: this.forcedSetsize,\n\t\t\tariaSelectedText: this.ariaSelectedText,\n\t\t\tlistItemAriaLabel: !this.accessibleName ? this._ariaLabel : undefined,\n\t\t\tariaOwns: this.expanded ? `${this._id}-subtree` : undefined,\n\t\t\tariaHaspopup: this.accessibilityAttributes.hasPopup,\n\t\t};\n\n\t\treturn { ...super._accInfo, ...accInfoSettings };\n\t}\n\n\t/**\n\t * Used to duck-type TreeItem elements without using instanceof\n\t * @default true\n\t * @protected\n\t */\n\tget isTreeItem(): boolean {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Call this method to manually switch the `expanded` state of a tree item.\n\t * @public\n\t */\n\ttoggle(): void {\n\t\tthis.expanded = !this.expanded;\n\t}\n\n\t_toggleClick(e: MouseEvent | KeyboardEvent) {\n\t\te.stopPropagation();\n\t\tthis.fireDecoratorEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tawait super._onkeydown(e);\n\n\t\tif (!this._fixed && this.showToggleButton && isRight(e)) {\n\t\t\tif (!this.expanded) {\n\t\t\t\tthis.fireDecoratorEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t\t\t} else {\n\t\t\t\tthis.fireDecoratorEvent<TreeItemBaseStepInEventDetail>(\"step-in\", { item: this });\n\t\t\t}\n\t\t}\n\n\t\tif (!this._fixed && isLeft(e)) {\n\t\t\tif (this.expanded) {\n\t\t\t\tthis.fireDecoratorEvent<TreeItemBaseToggleEventDetail>(\"toggle\", { item: this });\n\t\t\t} else if (this.hasParent) {\n\t\t\t\tthis.fireDecoratorEvent<TreeItemBaseStepOutEventDetail>(\"step-out\", { item: this });\n\t\t\t}\n\t\t}\n\t}\n\n\tget iconAccessibleName(): string {\n\t\treturn this.expanded ? TreeItemBase.i18nBundle.getText(TREE_ITEM_COLLAPSE_NODE) : TreeItemBase.i18nBundle.getText(TREE_ITEM_EXPAND_NODE);\n\t}\n}\n\nexport default TreeItemBase;\nexport type {\n\tTreeItemBaseToggleEventDetail,\n\tTreeItemBaseStepInEventDetail,\n\tTreeItemBaseStepOutEventDetail,\n};\n"]}
@@ -270,7 +270,7 @@ let YearPicker = YearPicker_1 = class YearPicker extends CalendarPart {
270
270
  */
271
271
  _setTimestamp(value) {
272
272
  this._safelySetTimestamp(value);
273
- this.fireEvent("navigate", { timestamp: this.timestamp });
273
+ this.fireDecoratorEvent("navigate", { timestamp: this.timestamp });
274
274
  }
275
275
  /**
276
276
  * Modifies timestamp by a given amount of years and, if necessary, loads the prev/next page.
@@ -282,7 +282,7 @@ let YearPicker = YearPicker_1 = class YearPicker extends CalendarPart {
282
282
  this._safelyModifyTimestampBy(amount, "year");
283
283
  this._updateSecondTimestamp();
284
284
  // Notify the calendar to update its timestamp
285
- this.fireEvent("navigate", { timestamp: this.timestamp });
285
+ this.fireDecoratorEvent("navigate", { timestamp: this.timestamp });
286
286
  }
287
287
  _onkeyup(e) {
288
288
  if (isSpace(e)) {
@@ -304,7 +304,7 @@ let YearPicker = YearPicker_1 = class YearPicker extends CalendarPart {
304
304
  this._safelySetTimestamp(timestamp);
305
305
  this._updateSecondTimestamp();
306
306
  this._updateSelectedDates(timestamp);
307
- this.fireEvent("change", {
307
+ this.fireDecoratorEvent("change", {
308
308
  timestamp: this.timestamp,
309
309
  dates: this.selectedDates,
310
310
  });
@@ -376,13 +376,17 @@ YearPicker = YearPicker_1 = __decorate([
376
376
  * Fired when the user selects a year via "Space", "Enter" or click.
377
377
  */
378
378
  ,
379
- event("change")
379
+ event("change", {
380
+ bubbles: true,
381
+ })
380
382
  /**
381
383
  * Fired when the timestamp changes - the user navigates with the keyboard or clicks with the mouse.
382
384
  * @since 1.0.0-rc.9
383
385
  */
384
386
  ,
385
- event("navigate")
387
+ event("navigate", {
388
+ bubbles: true,
389
+ })
386
390
  ], YearPicker);
387
391
  YearPicker.define();
388
392
  export default YearPicker;
@@ -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.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 \"./generated/templates/YearPickerTemplate.lit.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: string;\n\tfocusRef: boolean;\n\tselected: boolean;\n\tariaSelected: string;\n\tyear: string;\n\tyearInSecType: string | undefined;\n\tdisabled: boolean;\n\tariaDisabled: string | 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/**\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\")\nclass YearPicker extends CalendarPart implements ICalendarPicker {\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_years: 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(), true)}`\n\t\t\t\t\t: `${oYearFormatInSecType.format(tempDateInSecType.firstDate.toLocalJSDate(), true)} - ${oYearFormatInSecType.format(tempDateInSecType.lastDate.toLocalJSDate(), true)}`;\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: String(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 ? \"true\" : undefined,\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._years = 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._years[0][0].timestamp)); // first year of first row\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tthis._setTimestamp(parseInt(this._years[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._years.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.fireEvent<YearPickerNavigateEventDetail>(\"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.fireEvent<YearPickerNavigateEventDetail>(\"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.fireEvent<YearPickerChangeEventDetail>(\"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.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 \"./generated/templates/YearPickerTemplate.lit.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: string;\n\tfocusRef: boolean;\n\tselected: boolean;\n\tariaSelected: string;\n\tyear: string;\n\tyearInSecType: string | undefined;\n\tdisabled: boolean;\n\tariaDisabled: string | 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\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_years: 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(), true)}`\n\t\t\t\t\t: `${oYearFormatInSecType.format(tempDateInSecType.firstDate.toLocalJSDate(), true)} - ${oYearFormatInSecType.format(tempDateInSecType.lastDate.toLocalJSDate(), true)}`;\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: String(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 ? \"true\" : undefined,\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._years = 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._years[0][0].timestamp)); // first year of first row\n\t\t} else if (isEndCtrl(e)) {\n\t\t\tthis._setTimestamp(parseInt(this._years[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._years.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<YearPickerNavigateEventDetail>(\"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<YearPickerNavigateEventDetail>(\"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<YearPickerChangeEventDetail>(\"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"]}