@ui5/webcomponents 1.22.0 → 1.23.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 (568) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Badge.d.ts +4 -4
  4. package/dist/Badge.js +1 -1
  5. package/dist/Badge.js.map +1 -1
  6. package/dist/Button.d.ts +2 -1
  7. package/dist/Button.js +3 -0
  8. package/dist/Button.js.map +1 -1
  9. package/dist/Calendar.d.ts +31 -1
  10. package/dist/Calendar.js +57 -0
  11. package/dist/Calendar.js.map +1 -1
  12. package/dist/CalendarLegend.d.ts +76 -0
  13. package/dist/CalendarLegend.js +152 -0
  14. package/dist/CalendarLegend.js.map +1 -0
  15. package/dist/CalendarLegendItem.d.ts +45 -0
  16. package/dist/CalendarLegendItem.js +73 -0
  17. package/dist/CalendarLegendItem.js.map +1 -0
  18. package/dist/DatePicker.d.ts +1 -2
  19. package/dist/DatePicker.js +1 -1
  20. package/dist/DatePicker.js.map +1 -1
  21. package/dist/DayPicker.d.ts +8 -2
  22. package/dist/DayPicker.js +15 -3
  23. package/dist/DayPicker.js.map +1 -1
  24. package/dist/Link.d.ts +2 -1
  25. package/dist/Link.js +3 -0
  26. package/dist/Link.js.map +1 -1
  27. package/dist/ListItem.d.ts +2 -3
  28. package/dist/ListItem.js +1 -1
  29. package/dist/ListItem.js.map +1 -1
  30. package/dist/ProgressIndicator.d.ts +2 -0
  31. package/dist/ProgressIndicator.js +2 -0
  32. package/dist/ProgressIndicator.js.map +1 -1
  33. package/dist/SelectMenuOption.d.ts +1 -1
  34. package/dist/SpecialCalendarDate.d.ts +26 -0
  35. package/dist/SpecialCalendarDate.js +35 -0
  36. package/dist/SpecialCalendarDate.js.map +1 -0
  37. package/dist/StepInput.d.ts +6 -0
  38. package/dist/StepInput.js +38 -3
  39. package/dist/StepInput.js.map +1 -1
  40. package/dist/Tab.js +3 -3
  41. package/dist/Tab.js.map +1 -1
  42. package/dist/TabContainer.d.ts +11 -4
  43. package/dist/TabContainer.js +109 -63
  44. package/dist/TabContainer.js.map +1 -1
  45. package/dist/Table.d.ts +1 -0
  46. package/dist/Table.js +7 -0
  47. package/dist/Table.js.map +1 -1
  48. package/dist/Toolbar.d.ts +1 -2
  49. package/dist/Toolbar.js +1 -1
  50. package/dist/Toolbar.js.map +1 -1
  51. package/dist/ToolbarButton.d.ts +1 -1
  52. package/dist/ToolbarButton.js.map +1 -1
  53. package/dist/TreeItemBase.d.ts +2 -2
  54. package/dist/TreeItemBase.js +1 -2
  55. package/dist/TreeItemBase.js.map +1 -1
  56. package/dist/bundle.esm.d.ts +0 -1
  57. package/dist/bundle.esm.js.map +1 -1
  58. package/dist/css/themes/Avatar.css +1 -1
  59. package/dist/css/themes/AvatarGroup.css +1 -1
  60. package/dist/css/themes/Badge.css +1 -1
  61. package/dist/css/themes/Breadcrumbs.css +1 -1
  62. package/dist/css/themes/BusyIndicator.css +1 -1
  63. package/dist/css/themes/Button.css +1 -1
  64. package/dist/css/themes/Calendar.css +1 -1
  65. package/dist/css/themes/CalendarHeader.css +1 -1
  66. package/dist/css/themes/CalendarLegend.css +1 -0
  67. package/dist/css/themes/CalendarLegendItem.css +1 -0
  68. package/dist/css/themes/Card.css +1 -1
  69. package/dist/css/themes/CardHeader.css +1 -1
  70. package/dist/css/themes/Carousel.css +1 -1
  71. package/dist/css/themes/CheckBox.css +1 -1
  72. package/dist/css/themes/ColorPalette.css +1 -1
  73. package/dist/css/themes/ColorPaletteItem.css +1 -1
  74. package/dist/css/themes/ColorPalettePopover.css +1 -1
  75. package/dist/css/themes/ColorPicker.css +1 -1
  76. package/dist/css/themes/ComboBox.css +1 -1
  77. package/dist/css/themes/CustomListItem.css +1 -1
  78. package/dist/css/themes/DatePicker.css +1 -1
  79. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  80. package/dist/css/themes/DayPicker.css +1 -1
  81. package/dist/css/themes/Dialog.css +1 -1
  82. package/dist/css/themes/FileUploader.css +1 -1
  83. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  84. package/dist/css/themes/GrowingButton.css +1 -1
  85. package/dist/css/themes/Icon.css +1 -1
  86. package/dist/css/themes/Input.css +1 -1
  87. package/dist/css/themes/InputIcon.css +1 -1
  88. package/dist/css/themes/InputSharedStyles.css +1 -1
  89. package/dist/css/themes/Link.css +1 -1
  90. package/dist/css/themes/List.css +1 -1
  91. package/dist/css/themes/ListItem.css +1 -1
  92. package/dist/css/themes/ListItemBase.css +1 -1
  93. package/dist/css/themes/Menu.css +1 -1
  94. package/dist/css/themes/MessageStrip.css +1 -1
  95. package/dist/css/themes/MonthPicker.css +1 -1
  96. package/dist/css/themes/MultiComboBox.css +1 -1
  97. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  98. package/dist/css/themes/MultiInput.css +1 -1
  99. package/dist/css/themes/NavigationMenu.css +1 -1
  100. package/dist/css/themes/Panel.css +1 -1
  101. package/dist/css/themes/Popover.css +1 -1
  102. package/dist/css/themes/PopupStaticAreaStyles.css +1 -1
  103. package/dist/css/themes/PopupsCommon.css +1 -1
  104. package/dist/css/themes/ProgressIndicator.css +1 -1
  105. package/dist/css/themes/RadioButton.css +1 -1
  106. package/dist/css/themes/RangeSlider.css +1 -1
  107. package/dist/css/themes/RatingIndicator.css +1 -1
  108. package/dist/css/themes/ResponsivePopover.css +1 -1
  109. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  110. package/dist/css/themes/SegmentedButton.css +1 -1
  111. package/dist/css/themes/Select.css +1 -1
  112. package/dist/css/themes/SelectMenu.css +1 -1
  113. package/dist/css/themes/SelectPopover.css +1 -1
  114. package/dist/css/themes/SliderBase.css +1 -1
  115. package/dist/css/themes/SplitButton.css +1 -1
  116. package/dist/css/themes/StepInput.css +1 -1
  117. package/dist/css/themes/Switch.css +1 -1
  118. package/dist/css/themes/TabContainer.css +1 -1
  119. package/dist/css/themes/TabInOverflow.css +1 -1
  120. package/dist/css/themes/TabInStrip.css +1 -1
  121. package/dist/css/themes/TabSemanticIcon.css +1 -1
  122. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  123. package/dist/css/themes/Table.css +1 -1
  124. package/dist/css/themes/TableCell.css +1 -1
  125. package/dist/css/themes/TableColumn.css +1 -1
  126. package/dist/css/themes/TableGroupRow.css +1 -1
  127. package/dist/css/themes/TableRow.css +1 -1
  128. package/dist/css/themes/TextArea.css +1 -1
  129. package/dist/css/themes/TimePicker.css +1 -1
  130. package/dist/css/themes/Toast.css +1 -1
  131. package/dist/css/themes/ToggleButton.css +1 -1
  132. package/dist/css/themes/Token.css +1 -1
  133. package/dist/css/themes/Tokenizer.css +1 -1
  134. package/dist/css/themes/TokenizerPopover.css +1 -1
  135. package/dist/css/themes/Toolbar.css +1 -1
  136. package/dist/css/themes/ToolbarPopover.css +1 -1
  137. package/dist/css/themes/TreeItem.css +1 -1
  138. package/dist/css/themes/ValueStateMessage.css +1 -1
  139. package/dist/css/themes/WheelSlider.css +1 -1
  140. package/dist/css/themes/YearPicker.css +1 -1
  141. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  142. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  143. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  144. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  145. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  146. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  147. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  148. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  149. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  150. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  151. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  152. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  153. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  154. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  155. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  156. package/dist/custom-elements-internal.json +566 -16
  157. package/dist/custom-elements.json +272 -11
  158. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  159. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  161. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  164. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  165. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  167. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  168. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  169. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  170. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  171. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  172. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  173. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  174. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  175. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  176. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  177. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  178. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  180. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  181. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  182. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  183. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  184. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  185. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  186. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  187. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  188. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  189. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  190. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  191. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  192. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  193. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  194. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  195. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  196. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  197. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  198. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  199. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  200. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  201. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  202. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  203. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  204. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  205. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  206. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  207. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  208. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  209. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  210. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  211. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  212. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  213. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  214. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  215. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  216. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  217. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  218. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  219. package/dist/generated/i18n/i18n-defaults.d.ts +5 -1
  220. package/dist/generated/i18n/i18n-defaults.js +5 -1
  221. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  222. package/dist/generated/templates/ButtonTemplate.lit.js +1 -1
  223. package/dist/generated/templates/ButtonTemplate.lit.js.map +1 -1
  224. package/dist/generated/templates/CalendarLegendItemTemplate.lit.d.ts +4 -0
  225. package/dist/generated/templates/CalendarLegendItemTemplate.lit.js +5 -0
  226. package/dist/generated/templates/CalendarLegendItemTemplate.lit.js.map +1 -0
  227. package/dist/generated/templates/CalendarLegendTemplate.lit.d.ts +4 -0
  228. package/dist/generated/templates/CalendarLegendTemplate.lit.js +8 -0
  229. package/dist/generated/templates/CalendarLegendTemplate.lit.js.map +1 -0
  230. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  231. package/dist/generated/templates/CalendarTemplate.lit.js.map +1 -1
  232. package/dist/generated/templates/ColorPickerTemplate.lit.js +1 -1
  233. package/dist/generated/templates/ColorPickerTemplate.lit.js.map +1 -1
  234. package/dist/generated/templates/DayPickerTemplate.lit.js +7 -6
  235. package/dist/generated/templates/DayPickerTemplate.lit.js.map +1 -1
  236. package/dist/generated/templates/LinkTemplate.lit.js +1 -1
  237. package/dist/generated/templates/LinkTemplate.lit.js.map +1 -1
  238. package/dist/generated/templates/NavigationMenuTemplate.lit.js +11 -10
  239. package/dist/generated/templates/NavigationMenuTemplate.lit.js.map +1 -1
  240. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +1 -1
  241. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js.map +1 -1
  242. package/dist/generated/templates/SplitButtonTemplate.lit.js +1 -1
  243. package/dist/generated/templates/SplitButtonTemplate.lit.js.map +1 -1
  244. package/dist/generated/templates/SwitchTemplate.lit.js +1 -1
  245. package/dist/generated/templates/SwitchTemplate.lit.js.map +1 -1
  246. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +1 -1
  247. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js.map +1 -1
  248. package/dist/generated/templates/TabInOverflowTemplate.lit.js +2 -3
  249. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +1 -1
  250. package/dist/generated/templates/ToggleButtonTemplate.lit.js +1 -1
  251. package/dist/generated/templates/ToggleButtonTemplate.lit.js.map +1 -1
  252. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js +1 -1
  253. package/dist/generated/templates/ToggleSpinButtonTemplate.lit.js.map +1 -1
  254. package/dist/generated/themes/Avatar.css.js +1 -1
  255. package/dist/generated/themes/Avatar.css.js.map +1 -1
  256. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  257. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  258. package/dist/generated/themes/Badge.css.js +1 -1
  259. package/dist/generated/themes/Badge.css.js.map +1 -1
  260. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  261. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  262. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  263. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  264. package/dist/generated/themes/Button.css.js +1 -1
  265. package/dist/generated/themes/Button.css.js.map +1 -1
  266. package/dist/generated/themes/Calendar.css.js +1 -1
  267. package/dist/generated/themes/Calendar.css.js.map +1 -1
  268. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  269. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  270. package/dist/generated/themes/CalendarLegend.css.d.ts +3 -0
  271. package/dist/generated/themes/CalendarLegend.css.js +9 -0
  272. package/dist/generated/themes/CalendarLegend.css.js.map +1 -0
  273. package/dist/generated/themes/CalendarLegendItem.css.d.ts +3 -0
  274. package/dist/generated/themes/CalendarLegendItem.css.js +9 -0
  275. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -0
  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/CustomListItem.css.js +1 -1
  295. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  296. package/dist/generated/themes/DatePicker.css.js +1 -1
  297. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  298. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  299. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  300. package/dist/generated/themes/DayPicker.css.js +1 -1
  301. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  302. package/dist/generated/themes/Dialog.css.js +1 -1
  303. package/dist/generated/themes/Dialog.css.js.map +1 -1
  304. package/dist/generated/themes/FileUploader.css.js +1 -1
  305. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  306. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  307. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  308. package/dist/generated/themes/GrowingButton.css.js +1 -1
  309. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  310. package/dist/generated/themes/Icon.css.js +1 -1
  311. package/dist/generated/themes/Icon.css.js.map +1 -1
  312. package/dist/generated/themes/Input.css.js +1 -1
  313. package/dist/generated/themes/Input.css.js.map +1 -1
  314. package/dist/generated/themes/InputIcon.css.js +1 -1
  315. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  316. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  317. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  318. package/dist/generated/themes/Link.css.js +1 -1
  319. package/dist/generated/themes/Link.css.js.map +1 -1
  320. package/dist/generated/themes/List.css.js +1 -1
  321. package/dist/generated/themes/List.css.js.map +1 -1
  322. package/dist/generated/themes/ListItem.css.js +1 -1
  323. package/dist/generated/themes/ListItem.css.js.map +1 -1
  324. package/dist/generated/themes/ListItemBase.css.js +1 -1
  325. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  326. package/dist/generated/themes/Menu.css.js +1 -1
  327. package/dist/generated/themes/Menu.css.js.map +1 -1
  328. package/dist/generated/themes/MessageStrip.css.js +1 -1
  329. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  330. package/dist/generated/themes/MonthPicker.css.js +1 -1
  331. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  332. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  333. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  334. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  335. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  336. package/dist/generated/themes/MultiInput.css.js +1 -1
  337. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  338. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  339. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  340. package/dist/generated/themes/Panel.css.js +1 -1
  341. package/dist/generated/themes/Panel.css.js.map +1 -1
  342. package/dist/generated/themes/Popover.css.js +1 -1
  343. package/dist/generated/themes/Popover.css.js.map +1 -1
  344. package/dist/generated/themes/PopupStaticAreaStyles.css.js +1 -1
  345. package/dist/generated/themes/PopupStaticAreaStyles.css.js.map +1 -1
  346. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  347. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  348. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  349. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  350. package/dist/generated/themes/RadioButton.css.js +1 -1
  351. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  352. package/dist/generated/themes/RangeSlider.css.js +1 -1
  353. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  354. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  355. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  356. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  357. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  358. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  359. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  360. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  361. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  362. package/dist/generated/themes/Select.css.js +1 -1
  363. package/dist/generated/themes/Select.css.js.map +1 -1
  364. package/dist/generated/themes/SelectMenu.css.js +1 -1
  365. package/dist/generated/themes/SelectMenu.css.js.map +1 -1
  366. package/dist/generated/themes/SelectPopover.css.js +1 -1
  367. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  368. package/dist/generated/themes/SliderBase.css.js +1 -1
  369. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  370. package/dist/generated/themes/SplitButton.css.js +1 -1
  371. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  372. package/dist/generated/themes/StepInput.css.js +1 -1
  373. package/dist/generated/themes/StepInput.css.js.map +1 -1
  374. package/dist/generated/themes/Switch.css.js +1 -1
  375. package/dist/generated/themes/Switch.css.js.map +1 -1
  376. package/dist/generated/themes/TabContainer.css.js +1 -1
  377. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  378. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  379. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  380. package/dist/generated/themes/TabInStrip.css.js +1 -1
  381. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  382. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  383. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  384. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  385. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  386. package/dist/generated/themes/Table.css.js +1 -1
  387. package/dist/generated/themes/Table.css.js.map +1 -1
  388. package/dist/generated/themes/TableCell.css.js +1 -1
  389. package/dist/generated/themes/TableCell.css.js.map +1 -1
  390. package/dist/generated/themes/TableColumn.css.js +1 -1
  391. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  392. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  393. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  394. package/dist/generated/themes/TableRow.css.js +1 -1
  395. package/dist/generated/themes/TableRow.css.js.map +1 -1
  396. package/dist/generated/themes/TextArea.css.js +1 -1
  397. package/dist/generated/themes/TextArea.css.js.map +1 -1
  398. package/dist/generated/themes/TimePicker.css.js +1 -1
  399. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  400. package/dist/generated/themes/Toast.css.js +1 -1
  401. package/dist/generated/themes/Toast.css.js.map +1 -1
  402. package/dist/generated/themes/ToggleButton.css.js +1 -1
  403. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  404. package/dist/generated/themes/Token.css.js +1 -1
  405. package/dist/generated/themes/Token.css.js.map +1 -1
  406. package/dist/generated/themes/Tokenizer.css.js +1 -1
  407. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  408. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  409. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  410. package/dist/generated/themes/Toolbar.css.js +1 -1
  411. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  412. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  413. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  414. package/dist/generated/themes/TreeItem.css.js +1 -1
  415. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  416. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  417. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  418. package/dist/generated/themes/WheelSlider.css.js +1 -1
  419. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  420. package/dist/generated/themes/YearPicker.css.js +1 -1
  421. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  422. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  423. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  424. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  425. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  426. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  427. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  428. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  429. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  430. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  431. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  432. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  433. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  434. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  435. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  436. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  437. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  438. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  439. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  440. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  441. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  442. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  443. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  444. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  445. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  446. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  447. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  448. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  449. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  450. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  451. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  452. package/dist/types/CalendarLegendItemType.d.ts +133 -0
  453. package/dist/types/CalendarLegendItemType.js +135 -0
  454. package/dist/types/CalendarLegendItemType.js.map +1 -0
  455. package/package.json +9 -9
  456. package/src/Button.hbs +1 -1
  457. package/src/Calendar.hbs +8 -0
  458. package/src/CalendarLegend.hbs +16 -0
  459. package/src/CalendarLegendItem.hbs +6 -0
  460. package/src/ColorPicker.hbs +1 -1
  461. package/src/DayPicker.hbs +4 -0
  462. package/src/Link.hbs +1 -1
  463. package/src/NavigationMenu.hbs +75 -83
  464. package/src/ProgressIndicator.hbs +1 -1
  465. package/src/SplitButton.hbs +0 -2
  466. package/src/Switch.hbs +0 -1
  467. package/src/TabContainerPopover.hbs +1 -1
  468. package/src/TabInOverflow.hbs +1 -4
  469. package/src/i18n/messagebundle.properties +12 -0
  470. package/src/i18n/messagebundle_ar.properties +6 -2
  471. package/src/i18n/messagebundle_bg.properties +8 -4
  472. package/src/i18n/messagebundle_ca.properties +7 -3
  473. package/src/i18n/messagebundle_cnr.properties +4 -0
  474. package/src/i18n/messagebundle_cs.properties +4 -0
  475. package/src/i18n/messagebundle_cy.properties +4 -0
  476. package/src/i18n/messagebundle_da.properties +4 -0
  477. package/src/i18n/messagebundle_de.properties +4 -0
  478. package/src/i18n/messagebundle_el.properties +4 -0
  479. package/src/i18n/messagebundle_en_GB.properties +4 -0
  480. package/src/i18n/messagebundle_es.properties +8 -4
  481. package/src/i18n/messagebundle_es_MX.properties +6 -2
  482. package/src/i18n/messagebundle_et.properties +4 -0
  483. package/src/i18n/messagebundle_fi.properties +5 -1
  484. package/src/i18n/messagebundle_fr.properties +4 -0
  485. package/src/i18n/messagebundle_fr_CA.properties +4 -0
  486. package/src/i18n/messagebundle_hi.properties +4 -0
  487. package/src/i18n/messagebundle_hr.properties +4 -0
  488. package/src/i18n/messagebundle_hu.properties +7 -3
  489. package/src/i18n/messagebundle_id.properties +5 -1
  490. package/src/i18n/messagebundle_it.properties +4 -0
  491. package/src/i18n/messagebundle_iw.properties +4 -0
  492. package/src/i18n/messagebundle_ja.properties +4 -0
  493. package/src/i18n/messagebundle_kk.properties +4 -0
  494. package/src/i18n/messagebundle_ko.properties +4 -0
  495. package/src/i18n/messagebundle_lt.properties +4 -0
  496. package/src/i18n/messagebundle_lv.properties +9 -5
  497. package/src/i18n/messagebundle_mk.properties +4 -0
  498. package/src/i18n/messagebundle_ms.properties +4 -0
  499. package/src/i18n/messagebundle_nl.properties +4 -0
  500. package/src/i18n/messagebundle_no.properties +4 -0
  501. package/src/i18n/messagebundle_pl.properties +4 -0
  502. package/src/i18n/messagebundle_pt.properties +6 -2
  503. package/src/i18n/messagebundle_pt_PT.properties +7 -3
  504. package/src/i18n/messagebundle_ro.properties +4 -0
  505. package/src/i18n/messagebundle_ru.properties +4 -0
  506. package/src/i18n/messagebundle_sh.properties +4 -0
  507. package/src/i18n/messagebundle_sk.properties +4 -0
  508. package/src/i18n/messagebundle_sl.properties +4 -0
  509. package/src/i18n/messagebundle_sr.properties +4 -0
  510. package/src/i18n/messagebundle_sv.properties +4 -0
  511. package/src/i18n/messagebundle_th.properties +4 -0
  512. package/src/i18n/messagebundle_tr.properties +4 -0
  513. package/src/i18n/messagebundle_uk.properties +4 -0
  514. package/src/i18n/messagebundle_vi.properties +4 -0
  515. package/src/i18n/messagebundle_zh_CN.properties +4 -0
  516. package/src/i18n/messagebundle_zh_TW.properties +4 -0
  517. package/src/themes/CalendarLegend.css +8 -0
  518. package/src/themes/CalendarLegendItem.css +158 -0
  519. package/src/themes/CardHeader.css +2 -0
  520. package/src/themes/ColorPicker.css +5 -5
  521. package/src/themes/DayPicker.css +214 -19
  522. package/src/themes/NavigationMenu.css +7 -1
  523. package/src/themes/SplitButton.css +1 -1
  524. package/src/themes/Switch.css +2 -2
  525. package/src/themes/TreeItem.css +2 -2
  526. package/src/themes/base/CalendarLegend-parameters.css +4 -0
  527. package/src/themes/base/CalendarLegendItem-parameters.css +7 -0
  528. package/src/themes/base/DayPicker-parameters.css +29 -0
  529. package/src/themes/base/sizes-parameters.css +36 -6
  530. package/src/themes/sap_belize/DayPicker-parameters.css +1 -1
  531. package/src/themes/sap_belize/parameters-bundle.css +2 -0
  532. package/src/themes/sap_belize_hcb/parameters-bundle.css +2 -0
  533. package/src/themes/sap_belize_hcw/parameters-bundle.css +2 -0
  534. package/src/themes/sap_fiori_3/DayPicker-parameters.css +1 -1
  535. package/src/themes/sap_fiori_3/parameters-bundle.css +2 -0
  536. package/src/themes/sap_fiori_3_dark/DayPicker-parameters.css +1 -1
  537. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +2 -0
  538. package/src/themes/sap_fiori_3_hcb/DayPicker-parameters.css +4 -2
  539. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +2 -0
  540. package/src/themes/sap_fiori_3_hcw/DayPicker-parameters.css +4 -2
  541. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +2 -0
  542. package/src/themes/sap_horizon/CalendarLegendItem-parameters.css +6 -0
  543. package/src/themes/sap_horizon/DayPicker-parameters.css +30 -8
  544. package/src/themes/sap_horizon/parameters-bundle.css +2 -0
  545. package/src/themes/sap_horizon/sizes-parameters.css +17 -0
  546. package/src/themes/sap_horizon_dark/CalendarLegendItem-parameters.css +6 -0
  547. package/src/themes/sap_horizon_dark/DayPicker-parameters.css +33 -9
  548. package/src/themes/sap_horizon_dark/parameters-bundle.css +2 -0
  549. package/src/themes/sap_horizon_dark/sizes-parameters.css +17 -3
  550. package/src/themes/sap_horizon_dark_exp/CalendarLegendItem-parameters.css +6 -0
  551. package/src/themes/sap_horizon_dark_exp/DayPicker-parameters.css +29 -8
  552. package/src/themes/sap_horizon_dark_exp/parameters-bundle.css +2 -0
  553. package/src/themes/sap_horizon_dark_exp/sizes-parameters.css +7 -0
  554. package/src/themes/sap_horizon_exp/DayPicker-parameters.css +29 -8
  555. package/src/themes/sap_horizon_exp/parameters-bundle.css +2 -0
  556. package/src/themes/sap_horizon_exp/sizes-parameters.css +7 -0
  557. package/src/themes/sap_horizon_hcb/DayPicker-parameters.css +50 -22
  558. package/src/themes/sap_horizon_hcb/parameters-bundle.css +2 -0
  559. package/src/themes/sap_horizon_hcb/sizes-parameters.css +7 -0
  560. package/src/themes/sap_horizon_hcb_exp/DayPicker-parameters.css +49 -22
  561. package/src/themes/sap_horizon_hcb_exp/parameters-bundle.css +2 -0
  562. package/src/themes/sap_horizon_hcb_exp/sizes-parameters.css +7 -0
  563. package/src/themes/sap_horizon_hcw/DayPicker-parameters.css +54 -29
  564. package/src/themes/sap_horizon_hcw/parameters-bundle.css +2 -0
  565. package/src/themes/sap_horizon_hcw/sizes-parameters.css +7 -0
  566. package/src/themes/sap_horizon_hcw_exp/DayPicker-parameters.css +53 -29
  567. package/src/themes/sap_horizon_hcw_exp/parameters-bundle.css +2 -0
  568. package/src/themes/sap_horizon_hcw_exp/sizes-parameters.css +7 -0
package/dist/Table.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.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 event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport {\n\tisTabNext,\n\tisTabPrevious,\n\tisSpace,\n\tisEnter,\n\tisCtrlA,\n\tisUpAlt,\n\tisDownAlt,\n\tisUpShift,\n\tisDownShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisHomeShift,\n\tisEndShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getNormalizedTarget from \"@ui5/webcomponents-base/dist/util/getNormalizedTarget.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getLastTabbableElement, getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport debounce from \"@ui5/webcomponents-base/dist/util/debounce.js\";\nimport isElementInView from \"@ui5/webcomponents-base/dist/util/isElementInView.js\";\nimport TableGrowingMode from \"./types/TableGrowingMode.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport type {\n\tTableRowClickEventDetail,\n\tTableRowSelectionRequestedEventDetail,\n\tTableRowF7PressEventDetail,\n\tTableRowForwardBeforeEventDetail,\n\tTableRowForwardAfterEventDetail,\n} from \"./TableRow.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type TableColumn from \"./TableColumn.js\";\nimport type TableColumnPopinDisplay from \"./types/TableColumnPopinDisplay.js\";\nimport TableMode from \"./types/TableMode.js\";\nimport CheckBox from \"./CheckBox.js\"; // Ensure the dependency as it is being used in the renderer\n\n// Texts\nimport {\n\tLOAD_MORE_TEXT,\n\tARIA_LABEL_SELECT_ALL_CHECKBOX,\n\tTABLE_HEADER_ROW_INFORMATION,\n\tTABLE_ROW_POSITION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport TableTemplate from \"./generated/templates/TableTemplate.lit.js\";\n\n// Styles\nimport tableStyles from \"./generated/themes/Table.css.js\";\n\n/**\n * Interface for components that may be slotted inside a <code>ui5-table</code> as rows\n *\n * @public\n */\ninterface ITableRow extends HTMLElement, ITabbable {\n\tmode: `${TableMode}`,\n\tselected: boolean,\n\tforcedBusy: boolean,\n\tforcedAriaPosition: string,\n\t_columnsInfoString: string,\n\t_columnsInfo: Array<TableColumnInfo>,\n\ttabbableElements: Array<HTMLElement>,\n}\n\nconst GROWING_WITH_SCROLL_DEBOUNCE_RATE = 250; // ms\n\nconst PAGE_UP_DOWN_SIZE = 20;\n\ntype TableColumnInfo = {\n\tcell?: TableCell,\n\tindex?: number,\n\ttext?: string | null,\n\tvisible?: boolean,\n\tdemandPopin?: boolean,\n\tpopinText?: string,\n\tpopinDisplay?: `${TableColumnPopinDisplay}`,\n\tpopinDisplayInline?: boolean,\n\tclasses?: string,\n\tminWidth?: number,\n}\n\ntype TableColumnHeaderInfo = ITabbable;\n\ntype TableSelectionChangeEventDetail = {\n\tselectedRows: Array<ITableRow>,\n\tpreviouslySelectedRows: Array<ITableRow>,\n}\n\ntype TablePopinChangeEventDetail = {\n\tpoppedColumns: Array<TableColumnInfo>;\n}\n\nenum TableFocusTargetElement {\n\tRow = \"tableRow\",\n\tGroupRow = \"tableGroupRow\",\n\tColumnHeader = \"columnHeader\",\n\tMoreButton = \"moreButton\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-table</code> component provides a set of sophisticated and convenient functions for responsive table design.\n * It provides a comprehensive set of features for displaying and dealing with vast amounts of data.\n * <br><br>\n * To render the <code>Table</code> properly, the order of the <code>columns</code> should match with the\n * order of the item <code>cells</code> in the <code>rows</code>.\n * <br><br>\n * Desktop and tablet devices are supported.\n * On tablets, special consideration should be given to the number of visible columns\n * and rows due to the limited performance of some devices.\n *\n * <h3>Selection</h3>\n * To benefit from the selection mechanism of <code>ui5-table</code> component, you can use the available selection modes:\n * <code>SingleSelect</code> and <code>MultiSelect</code>.\n * <br>\n * In additition to the used mode, you can also specify the <code>ui5-table-row</code> type choosing between\n * <code>Active</code> or <code>Inactive</code>.\n * <br><br>\n * In <code>SingleSelect</code> mode, you can select both an <code>Active</code> and <code>Inactive</code> row via mouse or\n * by pressing the <code>Space</code> or <code>Enter</code> keys.\n * <br>\n * In <code>MultiSelect</code> mode, you can select both an <code>Active</code> and <code>Inactive</code> row by pressing the\n * <code>Space</code> key when a row is on focus or via mouse click over the selection checkbox of the row.\n * In order to select all the available rows at once, you can use the selection checkbox presented in the table's header.\n * <br><br>\n * <b>Note:</b> Currently, when a column is shown as a pop-in, the visual indication for selection is not presented over it.\n *\n * <h3>Keyboard Handling</h3>\n *\n * <h4>Fast Navigation</h4>\n * This component provides a build in fast navigation group which can be used via <code>F6 / Shift + F6</code> or <code> Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up</code>.\n * In order to use this functionality, you need to import the following module:\n * <code>import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"</code>\n * <br><br>\n * Furthermore, you can interact with <code>ui5-table</code> via the following keys.\n * <br>\n *\n * <ul>\n * <li>[F7] - If focus is on an interactive control inside an item, moves focus to the corresponding item.</li>\n * <li>[CTRL]+[A] - Selects all items, if MultiSelect mode is enabled.</li>\n * <li>[HOME]/[END] - Focuses the first/last item.</li>\n * <li>[PAGEUP]/[PAGEDOWN] - Moves focus up/down by page size (20 items by default).</li>\n * <li>[ALT]+[DOWN]/[UP] - Switches focus between header, last focused item, and More button (if applies) in either direction.</li>\n * <li>[SHIFT]+[DOWN]/[UP] - Selects the next/previous item in a MultiSelect table, if the current item is selected (Range selection). Otherwise, deselects them (Range deselection).</li>\n * <li>[SHIFT]+[HOME]/[END] - Range selection to the first/last item of the List.</li>\n * <li>[CTRL]+[HOME]/[END] - Same behavior as HOME & END.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Table.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/TableColumn.js\";</code> (for <code>ui5-table-column</code>)\n * <br>\n * <code>import \"@ui5/webcomponents/dist/TableRow.js\";</code> (for <code>ui5-table-row</code>)\n * <br>\n * <code>import \"@ui5/webcomponents/dist/TableCell.js\";</code> (for <code>ui5-table-cell</code>)\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n\ttag: \"ui5-table\",\n\tfastNavigation: true,\n\tstyles: tableStyles,\n\trenderer: litRender,\n\ttemplate: TableTemplate,\n\tdependencies: [BusyIndicator, CheckBox],\n})\n/** Fired when a row in <code>Active</code> mode is clicked or <code>Enter</code> key is pressed.\n*\n* @param {HTMLElement} row the activated row.\n* @public\n*/\n@event<TableRowClickEventDetail>(\"row-click\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\trow: { type: HTMLElement },\n\t},\n})\n\n/**\n* Fired when <code>ui5-table-column</code> is shown as a pop-in instead of hiding it.\n*\n* @param {Array} poppedColumns popped-in columns.\n* @since 1.0.0-rc.6\n* @public\n*/\n@event<TablePopinChangeEventDetail>(\"popin-change\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\tpoppedColumns: {\n\t\t\ttype: Array,\n\t\t},\n\t},\n})\n\n/**\n* Fired when the user presses the <code>More</code> button or scrolls to the table's end.\n* <br><br>\n*\n* <b>Note:</b> The event will be fired if <code>growing</code> is set to <code>Button</code> or <code>Scroll</code>.\n* @public\n* @since 1.0.0-rc.11\n*/\n@event(\"load-more\")\n\n/**\n* Fired when selection is changed by user interaction\n* in <code>SingleSelect</code> and <code>MultiSelect</code> modes.\n*\n* @param {Array} selectedRows An array of the selected rows.\n* @param {Array} previouslySelectedRows An array of the previously selected rows.\n* @public\n* @since 1.0.0-rc.15\n*/\n@event<TableSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedRows: { type: Array },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tpreviouslySelectedRows: { type: Array },\n\t},\n})\nclass Table extends UI5Element {\n\t/**\n\t * Defines the text that will be displayed when there is no data and <code>hideNoData</code> is not present.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tnoDataText!: string;\n\n\t/**\n\t * Defines the text that will be displayed inside the growing button at the bottom of the table,\n\t * meant for loading more rows upon press.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> If not specified a built-in text will be displayed.\n\t * <br>\n\t * <b>Note:</b> This property takes effect if <code>growing</code> is set to <code>Button</code>.\n\t *\n\t * @default \"\"\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\t@property()\n\tgrowingButtonText!: string;\n\n\t/**\n\t * Defines the subtext that will be displayed under the <code>growingButtonText</code>.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> This property takes effect if <code>growing</code> is set to <code>Button</code>.\n\t *\n\t * @default \"\"\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\t@property()\n\tgrowingButtonSubtext!: string;\n\n\t/**\n\t * Defines if the value of <code>noDataText</code> will be diplayed when there is no rows present in the table.\n\t *\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\thideNoData!: boolean;\n\n\t/**\n\t * Defines whether the table will have growing capability either by pressing a <code>More</code> button,\n\t * or via user scroll. In both cases <code>load-more</code> event is fired.\n\t * <br><br>\n\t *\n\t * Available options:\n\t * <br><br>\n\t * <code>Button</code> - Shows a <code>More</code> button at the bottom of the table, pressing of which triggers the <code>load-more</code> event.\n\t * <br>\n\t * <code>Scroll</code> - The <code>load-more</code> event is triggered when the user scrolls to the bottom of the table;\n\t * <br>\n\t * <code>None</code> (default) - The growing is off.\n\t * <br><br>\n\t *\n\t * <b>Restrictions:</b> <code>growing=\"Scroll\"</code> is not supported for Internet Explorer,\n\t * and the component will fallback to <code>growing=\"Button\"</code>.\n\t *\n\t * @default \"None\"\n\t * @since 1.0.0-rc.12\n\t * @public\n\t */\n\t@property({ type: TableGrowingMode, defaultValue: TableGrowingMode.None })\n\tgrowing!: `${TableGrowingMode}`;\n\n\t/**\n\t * Defines if the table is in busy state.\n\t * <b>\n\t *\n\t * In this state the component's opacity is reduced\n\t * and busy indicator is displayed at the bottom of the table.\n\t *\n\t * @default false\n\t * @since 1.0.0-rc.12\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tbusy!: boolean;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n\t *\n\t * @default 1000\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1000 })\n\tbusyDelay!: number;\n\n\t/**\n\t * Determines whether the column headers remain fixed at the top of the page during\n\t * vertical scrolling as long as the Web Component is in the viewport.\n\t * <br><br>\n\t * <b>Restrictions:</b>\n\t * <ul>\n\t * <li>Browsers that do not support this feature:\n\t * <ul>\n\t * <li>Internet Explorer</li>\n\t * <li>Microsoft Edge lower than version 41 (EdgeHTML 16)</li>\n\t * <li>Mozilla Firefox lower than version 59</li>\n\t * </ul>\n\t * </li>\n\t * <li>Scrolling behavior:\n\t * <ul>\n\t * <li>If the Web Component is placed in layout containers that have the <code>overflow: hidden</code>\n\t * or <code>overflow: auto</code> style definition, this can\n\t * prevent the sticky elements of the Web Component from becoming fixed at the top of the viewport.</li>\n\t * </ul>\n\t * </li>\n\t * </ul>\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tstickyColumnHeader!: boolean;\n\n\t/**\n\t * Defines the mode of the component.\n\t *\n\t * @default \"None\"\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\t@property({ type: TableMode, defaultValue: TableMode.None })\n\tmode!: `${TableMode}`;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t * @since 1.3.0\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t * @since 1.3.0\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t@property({ type: Object, multiple: true })\n\t_hiddenColumns!: Array<TableColumnInfo>;\n\n\t@property({ type: Boolean })\n\t_noDataDisplayed!: boolean;\n\n\t/**\n\t * Defines the active state of the <code>More</code> button.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_loadMoreActive!: boolean;\n\n\t/**\n\t * Used to represent the table column header for the purpose of the item navigation as it does not work with DOM objects directly\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_columnHeader: TableColumnHeaderInfo;\n\n\t/**\n\t * Defines if the entire table is in view port.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_inViewport!: boolean;\n\n\t/**\n\t * Defines whether all rows are selected or not when table is in MultiSelect mode.\n\t *\n\t * @default false\n\t * @since 1.0.0-rc.15\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_allRowsSelected!: boolean;\n\n\t/**\n\t * Defines the component rows.\n\t * <br><br>\n\t * <b>Note:</b> Use <code>ui5-table-row</code> for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\trows!: Array<ITableRow>;\n\n\t/**\n\t * Defines the configuration for the columns of the component.\n\t * <br><br>\n\t * <b>Note:</b> Use <code>ui5-table-column</code> for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: false,\n\t\t},\n\t})\n\tcolumns!: Array<TableColumn>;\n\n\tstatic async onDefine() {\n\t\tTable.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tstatic i18nBundle: I18nBundle;\n\n\tfnHandleF7: (e: CustomEvent) => void;\n\tfnOnRowFocused: (e: CustomEvent) => void;\n\t_handleResize: ResizeObserverCallback;\n\n\tmoreDataText?: string;\n\ttableEndObserved: boolean;\n\tvisibleColumns: Array<TableColumn>;\n\tvisibleColumnsCount?: number;\n\tlastFocusedElement: HTMLElement | null;\n\tgrowingIntersectionObserver?: IntersectionObserver | null;\n\n\t_forwardingFocus: boolean;\n\t_prevNestedElementIndex: number;\n\t_itemNavigation: ItemNavigation;\n\t_prevFocusedRow?: ITableRow;\n\n\t_afterElement?: HTMLElement;\n\t_beforeElement?: HTMLElement;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.visibleColumns = []; // template loop should always have a defined array\n\t\t// The ItemNavigation requires each item to 1) have a \"forcedTabIndex\" property and 2) be either a UI5Element, or have an id property (to find it in the component's shadow DOM by)\n\t\tthis._columnHeader = {\n\t\t\tid: `${this._id}-columnHeader`,\n\t\t\tforcedTabIndex: \"0\",\n\t\t};\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\taffectedPropertiesNames: [\"_columnHeader\"],\n\t\t\tgetItemsCallback: () => [this._columnHeader, ...this.rows],\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE,\n\t\t});\n\n\t\tthis._handleResize = this.popinContent.bind(this);\n\t\tthis.fnOnRowFocused = this.onRowFocused.bind(this);\n\t\tthis.fnHandleF7 = this._handleF7.bind(this);\n\n\t\tthis.tableEndObserved = false;\n\n\t\t// Stores the last focused element within the table.\n\t\tthis.lastFocusedElement = null;\n\n\t\t// Indicates whether the table is forwarding focus before or after the current table row.\n\t\tthis._forwardingFocus = false;\n\n\t\t// Stores the last focused nested element index (within a table row) for F7 navigation.\n\t\tthis._prevNestedElementIndex = 0;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst columnSettings = this.getColumnPropagationSettings();\n\t\tconst columnSettingsString = JSON.stringify(columnSettings);\n\t\tconst rowsCount = this.rows.length + 1;\n\t\tconst selectedRows = this.selectedRows;\n\n\t\tthis.rows.forEach((row, index) => {\n\t\t\tif (row._columnsInfoString !== columnSettingsString) {\n\t\t\t\trow._columnsInfo = columnSettings;\n\t\t\t\trow._columnsInfoString = JSON.stringify(row._columnsInfo);\n\t\t\t}\n\n\t\t\trow.forcedAriaPosition = Table.i18nBundle.getText(TABLE_ROW_POSITION, index + 2, rowsCount);\n\t\t\trow.forcedBusy = this.busy;\n\t\t\trow.removeEventListener(\"ui5-_focused\", this.fnOnRowFocused as EventListener);\n\t\t\trow.addEventListener(\"ui5-_focused\", this.fnOnRowFocused as EventListener);\n\t\t\trow.removeEventListener(\"ui5-f7-pressed\", this.fnHandleF7 as EventListener);\n\t\t\trow.addEventListener(\"ui5-f7-pressed\", this.fnHandleF7 as EventListener);\n\t\t\trow.mode = this.mode;\n\t\t});\n\n\t\tthis.visibleColumns = this.columns.filter((column, index) => {\n\t\t\treturn !this._hiddenColumns[index];\n\t\t});\n\n\t\tthis._noDataDisplayed = !this.rows.length && !this.hideNoData;\n\t\tthis.visibleColumnsCount = this.visibleColumns.length;\n\n\t\tif (this.isMultiSelect) {\n\t\t\t// we have to count the selection column as well\n\t\t\tthis.visibleColumnsCount += 1;\n\t\t}\n\n\t\tthis._allRowsSelected = selectedRows.length === this.rows.length;\n\n\t\tthis._prevFocusedRow = this._prevFocusedRow || this.rows[0];\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.growsOnScroll) {\n\t\t\tthis.observeTableEnd();\n\t\t}\n\n\t\tthis.checkTableInViewport();\n\t}\n\n\tonEnterDOM() {\n\t\tthis.growingIntersectionObserver = this.getIntersectionObserver();\n\n\t\tResizeHandler.register(this.getDomRef()!, this._handleResize);\n\n\t\tthis._itemNavigation.setCurrentItem(this.rows.length ? this.rows[0] : this._columnHeader);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this.getDomRef()!, this._handleResize);\n\n\t\tthis.growingIntersectionObserver!.disconnect();\n\t\tthis.growingIntersectionObserver = null;\n\t\tthis.tableEndObserved = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tthis._handleTab(e);\n\t\t}\n\n\t\tif (isCtrlA(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.isMultiSelect && this._selectAll();\n\t\t}\n\n\t\tif (isUpAlt(e) || isDownAlt(e)) {\n\t\t\tthis._handleArrowAlt(e);\n\t\t}\n\n\t\tif ((isUpShift(e) || isDownShift(e)) && this.isMultiSelect) {\n\t\t\tthis._handleArrowNav(e);\n\t\t}\n\n\t\tif (isHomeCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._itemNavigation._handleHome();\n\t\t\tthis._itemNavigation._applyTabIndex();\n\t\t\tthis._itemNavigation._focusCurrentItem();\n\t\t}\n\n\t\tif (isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._itemNavigation._handleEnd();\n\t\t\tthis._itemNavigation._applyTabIndex();\n\t\t\tthis._itemNavigation._focusCurrentItem();\n\t\t}\n\n\t\tif ((isHomeShift(e) || isEndShift(e)) && this.isMultiSelect) {\n\t\t\tthis._handleHomeEndSelection(e);\n\t\t}\n\t}\n\n\t_handleTab(e: KeyboardEvent) {\n\t\tconst isNext = isTabNext(e);\n\t\tconst target = getNormalizedTarget(e.target as HTMLElement);\n\t\tconst targetType: TableFocusTargetElement | undefined = this.getFocusedElementType(e.target as HTMLElement);\n\n\t\tif (this.columnHeaderTabbables.includes(target)) {\n\t\t\tif (isNext && this.columnHeaderLastElement === target) {\n\t\t\t\treturn this._focusNextElement();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (isNext && targetType === TableFocusTargetElement.ColumnHeader && !this.columnHeaderTabbables.length) {\n\t\t\treturn this._focusNextElement();\n\t\t}\n\n\t\tif (targetType === TableFocusTargetElement.Row || !targetType) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (targetType) {\n\t\tcase TableFocusTargetElement.GroupRow:\n\t\t\treturn isNext ? this._focusNextElement() : this._focusForwardElement(false);\n\t\tcase TableFocusTargetElement.ColumnHeader:\n\t\t\treturn !isNext && this._focusForwardElement(false);\n\t\tcase TableFocusTargetElement.MoreButton:\n\t\t\tif (isNext) {\n\t\t\t\tthis._focusForwardElement(true);\n\t\t\t} else {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.currentElement?.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_focusNextElement() {\n\t\tif (!this.growsWithButton) {\n\t\t\tthis._focusForwardElement(true);\n\t\t} else {\n\t\t\tthis.morеBtn!.focus();\n\t\t}\n\t}\n\n\t_handleArrowNav(e: KeyboardEvent) {\n\t\tconst isRowFocused = this.currentElement!.localName === \"tr\";\n\n\t\tif (!isRowFocused) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previouslySelectedRows: Array<ITableRow> = this.selectedRows;\n\t\tconst currentItem: ITableRow = this.currentItem;\n\t\tconst currentItemIdx: number = this.currentItemIdx;\n\n\t\tconst prevItemIdx = currentItemIdx - 1;\n\t\tconst nextItemIdx = currentItemIdx + 1;\n\n\t\tconst prevItem: ITableRow = this.rows[prevItemIdx];\n\t\tconst nextItem: ITableRow = this.rows[nextItemIdx];\n\t\tconst wasSelected = !!currentItem.selected;\n\n\t\tif ((isUpShift(e) && !prevItem) || (isDownShift(e) && !nextItem)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isUpShift(e)) {\n\t\t\tcurrentItem.selected = currentItem.selected && !prevItem.selected;\n\t\t\tprevItem.selected = currentItem.selected || (wasSelected && !currentItem.selected);\n\t\t\tprevItem.focus();\n\t\t}\n\n\t\tif (isDownShift(e)) {\n\t\t\tcurrentItem.selected = currentItem.selected && !nextItem.selected;\n\t\t\tnextItem.selected = currentItem.selected || (wasSelected && !currentItem.selected);\n\t\t\tnextItem.focus();\n\t\t}\n\n\t\tconst selectedRows = this.selectedRows;\n\n\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedRows,\n\t\t\tpreviouslySelectedRows,\n\t\t});\n\t}\n\n\t_handleHomeEndSelection(e: KeyboardEvent) {\n\t\tconst isRowFocused = this.currentElement!.localName === \"tr\";\n\n\t\tif (!isRowFocused) {\n\t\t\treturn;\n\t\t}\n\t\tconst rows = this.rows;\n\t\tconst previouslySelectedRows: Array<ITableRow> = this.selectedRows;\n\t\tconst currentItemIdx = this.currentItemIdx;\n\n\t\tif (isHomeShift(e)) {\n\t\t\trows.slice(0, currentItemIdx + 1).forEach(item => {\n\t\t\t\titem.selected = true;\n\t\t\t});\n\t\t\trows[0].focus();\n\t\t}\n\n\t\tif (isEndShift(e)) {\n\t\t\trows.slice(currentItemIdx).forEach(item => {\n\t\t\t\titem.selected = true;\n\t\t\t});\n\t\t\trows[rows.length - 1].focus();\n\t\t}\n\n\t\tconst selectedRows: Array<ITableRow> = this.selectedRows;\n\n\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedRows,\n\t\t\tpreviouslySelectedRows,\n\t\t});\n\t}\n\n\t/**\n\t * Handles Alt + Up/Down.\n\t * Switches focus between column header, last focused item, and \"More\" button (if applicable).\n\t * @private\n\t */\n\t_handleArrowAlt(e: KeyboardEvent) {\n\t\tconst shouldMoveUp: boolean = isUpAlt(e);\n\t\tconst target = e.target as ITableRow;\n\t\tconst focusedElementType = this.getFocusedElementType(target);\n\n\t\tif (shouldMoveUp) {\n\t\t\tswitch (focusedElementType) {\n\t\t\tcase TableFocusTargetElement.Row:\n\t\t\tcase TableFocusTargetElement.GroupRow:\n\t\t\t\tthis._prevFocusedRow = target;\n\t\t\t\treturn this._onColumnHeaderClick(e);\n\t\t\tcase TableFocusTargetElement.ColumnHeader:\n\t\t\t\treturn this.morеBtn ? this.morеBtn.focus() : this._prevFocusedRow?.focus();\n\t\t\tcase TableFocusTargetElement.MoreButton:\n\t\t\t\treturn this._prevFocusedRow ? this._prevFocusedRow.focus() : this._onColumnHeaderClick(e);\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (focusedElementType) {\n\t\t\tcase TableFocusTargetElement.Row:\n\t\t\tcase TableFocusTargetElement.GroupRow:\n\t\t\t\tthis._prevFocusedRow = target;\n\t\t\t\treturn this.morеBtn ? this.morеBtn.focus() : this._onColumnHeaderClick(e);\n\t\t\tcase TableFocusTargetElement.ColumnHeader:\n\t\t\t\tif (this._prevFocusedRow) {\n\t\t\t\t\tthis._prevFocusedRow.focus();\n\t\t\t\t} else if (this.morеBtn) {\n\t\t\t\t\tthis.morеBtn.focus();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\tcase TableFocusTargetElement.MoreButton:\n\t\t\t\treturn this._onColumnHeaderClick(e);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Determines the type of the currently focused element.\n\t * @private\n\t */\n\tgetFocusedElementType(element: HTMLElement): TableFocusTargetElement | undefined {\n\t\tif (element === this.columnHeader) {\n\t\t\treturn TableFocusTargetElement.ColumnHeader;\n\t\t}\n\n\t\tif (element === this.morеBtn) {\n\t\t\treturn TableFocusTargetElement.MoreButton;\n\t\t}\n\n\t\tif (this.rows.includes(element as ITableRow)) {\n\t\t\tconst isGroupRow = element.hasAttribute(\"ui5-table-group-row\");\n\t\t\treturn isGroupRow ? TableFocusTargetElement.GroupRow : TableFocusTargetElement.Row;\n\t\t}\n\t}\n\n\t/**\n\t * Toggles focus between the table row's root and the last focused nested element.\n\t * @private\n\t */\n\t_handleF7(e: CustomEvent<TableRowF7PressEventDetail>) {\n\t\tconst row = e.detail.row;\n\t\trow.tabbableElements = getTabbableElements(row);\n\t\tconst activeElement = getActiveElement();\n\t\tconst lastFocusedElement = row.tabbableElements[this._prevNestedElementIndex] || row.tabbableElements[0];\n\t\tconst targetIndex = row.tabbableElements.indexOf(activeElement as HTMLElement);\n\n\t\tif (!row.tabbableElements.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (activeElement === row.root) {\n\t\t\tlastFocusedElement.focus();\n\t\t} else if (targetIndex > -1) {\n\t\t\tthis._prevNestedElementIndex = targetIndex;\n\t\t\trow.root.focus();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = getNormalizedTarget(e.target as HTMLElement);\n\n\t\tif (!this._isForwardElement(target)) {\n\t\t\tthis.lastFocusedElement = target;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._forwardingFocus) {\n\t\t\tif (this.lastFocusedElement) {\n\t\t\t\tthis.lastFocusedElement.focus();\n\t\t\t} else {\n\t\t\t\tthis.currentElement!.focus();\n\t\t\t}\n\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis._forwardingFocus = false;\n\t}\n\n\t_onForwardBefore(e: CustomEvent<TableRowForwardBeforeEventDetail>) {\n\t\tthis.lastFocusedElement = e.detail.target;\n\t\tthis._focusForwardElement(false);\n\t\te.stopImmediatePropagation();\n\t}\n\n\t_onForwardAfter(e: CustomEvent<TableRowForwardAfterEventDetail>) {\n\t\tthis.lastFocusedElement = e.detail.target;\n\n\t\tif (!this.growsWithButton) {\n\t\t\tthis._focusForwardElement(true);\n\t\t} else {\n\t\t\tthis.morеBtn!.focus();\n\t\t}\n\t}\n\n\t_focusForwardElement(isAfter: boolean) {\n\t\tthis._forwardingFocus = true;\n\t\tthis.shadowRoot!.querySelector<HTMLElement>(`#${this._id}-${isAfter ? \"after\" : \"before\"}`)!.focus();\n\t}\n\n\t_isForwardElement(element: HTMLElement): boolean {\n\t\tconst elementId = element.id;\n\t\tconst afterElement = this._getForwardElement(true);\n\t\tconst beforeElement = this._getForwardElement(false);\n\n\t\tif (this._id === elementId || (beforeElement && beforeElement.id === elementId)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !!(afterElement && afterElement.id === elementId);\n\t}\n\n\t_getForwardElement(isAfter: boolean): HTMLElement | null {\n\t\tif (isAfter) {\n\t\t\treturn this._getAfterForwardElement();\n\t\t}\n\n\t\treturn this._getBeforeForwardElement();\n\t}\n\n\t_getAfterForwardElement(): HTMLElement {\n\t\tif (!this._afterElement) {\n\t\t\tthis._afterElement = this.shadowRoot!.querySelector(`[id=\"${this._id}-after\"]`)!;\n\t\t}\n\n\t\treturn this._afterElement;\n\t}\n\n\t_getBeforeForwardElement(): HTMLElement {\n\t\tif (!this._beforeElement) {\n\t\t\tthis._beforeElement = this.shadowRoot!.querySelector(`[id=\"${this._id}-before\"]`)!;\n\t\t}\n\n\t\treturn this._beforeElement;\n\t}\n\n\tonRowFocused(e: CustomEvent) {\n\t\tthis._itemNavigation.setCurrentItem(e.target as ITableRow);\n\t}\n\n\t_onColumnHeaderFocused() {\n\t\tthis._itemNavigation.setCurrentItem(this._columnHeader);\n\t}\n\n\t_onColumnHeaderClick(e: MouseEvent | KeyboardEvent) {\n\t\tif (!e.target) {\n\t\t\tthis.columnHeader!.focus();\n\t\t}\n\n\t\tconst target = getNormalizedTarget(e.target as HTMLElement);\n\t\tconst isNestedElement = this.columnHeaderTabbables.includes(target);\n\n\t\tif (!isNestedElement) {\n\t\t\tthis.columnHeader!.focus();\n\t\t}\n\t}\n\n\t_onColumnHeaderKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.isMultiSelect && this._selectAll();\n\t\t}\n\t}\n\n\t_onLoadMoreKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\t}\n\n\t_onLoadMoreKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t}\n\t\tthis._loadMoreActive = false;\n\t}\n\n\t_onLoadMoreClick() {\n\t\tthis.fireEvent(\"load-more\");\n\t}\n\n\tobserveTableEnd() {\n\t\tif (!this.tableEndObserved) {\n\t\t\tthis.getIntersectionObserver().observe(this.tableEndDOM);\n\t\t\tthis.tableEndObserved = true;\n\t\t}\n\t}\n\n\tonInteresection(entries: Array<IntersectionObserverEntry>) {\n\t\tif (entries.some(entry => entry.isIntersecting)) {\n\t\t\tdebounce(this.loadMore.bind(this), GROWING_WITH_SCROLL_DEBOUNCE_RATE);\n\t\t}\n\t}\n\n\tloadMore() {\n\t\tthis.fireEvent(\"load-more\");\n\t}\n\n\t_handleSingleSelect(e: CustomEvent<TableRowSelectionRequestedEventDetail>) {\n\t\tconst row: ITableRow | undefined = this.getRowParent(e.target as HTMLElement);\n\n\t\tif (!row) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!row.selected) {\n\t\t\tconst previouslySelectedRows = this.selectedRows;\n\t\t\tthis.rows.forEach(item => {\n\t\t\t\tif (item.selected) {\n\t\t\t\t\titem.selected = false;\n\t\t\t\t}\n\t\t\t});\n\t\t\trow.selected = true;\n\t\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedRows: [row],\n\t\t\t\tpreviouslySelectedRows,\n\t\t\t});\n\t\t}\n\t}\n\n\t_handleMultiSelect(e: CustomEvent<TableRowSelectionRequestedEventDetail>) {\n\t\tconst row: ITableRow | undefined = this.getRowParent(e.target as HTMLElement);\n\t\tconst previouslySelectedRows: Array<ITableRow> = this.selectedRows;\n\n\t\tif (!row) {\n\t\t\treturn;\n\t\t}\n\n\t\trow.selected = !row.selected;\n\n\t\tconst selectedRows = this.selectedRows;\n\n\t\tif (selectedRows.length === this.rows.length) {\n\t\t\tthis._allRowsSelected = true;\n\t\t} else {\n\t\t\tthis._allRowsSelected = false;\n\t\t}\n\n\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedRows,\n\t\t\tpreviouslySelectedRows,\n\t\t});\n\t}\n\n\t_handleSelect(e: CustomEvent<TableRowSelectionRequestedEventDetail>) {\n\t\tif (this.isSingleSelect) {\n\t\t\tthis._handleSingleSelect(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isMultiSelect) {\n\t\t\tthis._handleMultiSelect(e);\n\t\t}\n\t}\n\n\t_selectAll() {\n\t\tconst bAllSelected = !this._allRowsSelected;\n\t\tconst previouslySelectedRows: Array<ITableRow> = this.rows.filter(row => row.selected);\n\n\t\tthis._allRowsSelected = bAllSelected;\n\n\t\tthis.rows.forEach(row => {\n\t\t\trow.selected = bAllSelected;\n\t\t});\n\n\t\tconst selectedRows = bAllSelected ? this.rows : [];\n\n\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedRows,\n\t\t\tpreviouslySelectedRows,\n\t\t});\n\t}\n\n\tgetRowParent(child: HTMLElement): ITableRow | undefined {\n\t\tif (child.hasAttribute(\"ui5-table-row\")) {\n\t\t\treturn child as ITableRow;\n\t\t}\n\n\t\tconst parent = child.parentElement;\n\n\t\tif (!parent) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (parent.hasAttribute(\"ui5-table-row\")) {\n\t\t\treturn parent as ITableRow;\n\t\t}\n\n\t\treturn this.getRowParent(parent);\n\t}\n\n\tget columnHeader(): HTMLElement | null {\n\t\tconst domRef = this.getDomRef();\n\t\treturn domRef ? domRef.querySelector<HTMLElement>(`#${this._id}-columnHeader`) : null;\n\t}\n\n\tget morеBtn(): HTMLElement | null {\n\t\tconst domRef = this.getDomRef();\n\n\t\tif (this.growsWithButton && domRef) {\n\t\t\treturn domRef.querySelector<HTMLElement>(`#${this._id}-growingButton`);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\thandleResize() {\n\t\tthis.checkTableInViewport();\n\t\tthis.popinContent();\n\t}\n\n\tcheckTableInViewport() {\n\t\tthis._inViewport = isElementInView(this.getDomRef()!);\n\t}\n\tpopinContent() {\n\t\tconst clientRect: DOMRect = this.getDomRef()!.getBoundingClientRect();\n\t\tconst tableWidth: number = clientRect.width;\n\t\tconst hiddenColumns: Array<TableColumnInfo> = [];\n\t\tconst visibleColumnsIndexes: Array<number> = [];\n\n\t\t// store the hidden columns\n\t\tthis.columns.forEach((column, index) => {\n\t\t\tif (tableWidth < column.minWidth && column.minWidth !== Infinity) {\n\t\t\t\thiddenColumns[index] = {\n\t\t\t\t\tindex,\n\t\t\t\t\tpopinText: column.popinText,\n\t\t\t\t\tdemandPopin: column.demandPopin,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvisibleColumnsIndexes.push(index);\n\t\t\t}\n\t\t});\n\n\t\tif (visibleColumnsIndexes.length) {\n\t\t\tif (!this.isMultiSelect) {\n\t\t\t\tthis.columns[visibleColumnsIndexes[0]].first = true;\n\t\t\t}\n\t\t\tthis.columns[visibleColumnsIndexes[visibleColumnsIndexes.length - 1]].last = true;\n\t\t}\n\n\t\tconst hiddenColumnsChange = (this._hiddenColumns.length !== hiddenColumns.length) || this._hiddenColumns.some((column, index) => column !== hiddenColumns[index]);\n\t\tconst shownColumnsChange = hiddenColumns.length === 0;\n\n\t\t// invalidate if hidden columns count has changed or columns are shown\n\t\tif (hiddenColumnsChange || shownColumnsChange) {\n\t\t\tthis._hiddenColumns = hiddenColumns;\n\t\t\tthis.fireEvent<TablePopinChangeEventDetail>(\"popin-change\", {\n\t\t\t\tpoppedColumns: this._hiddenColumns,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Gets settings to be propagated from columns to rows.\n\t */\n\tgetColumnPropagationSettings(): Array<TableColumnInfo> {\n\t\treturn this.columns.map((column, index) => {\n\t\t\treturn {\n\t\t\t\tindex,\n\t\t\t\tminWidth: column.minWidth,\n\t\t\t\tdemandPopin: column.demandPopin,\n\t\t\t\ttext: column.textContent,\n\t\t\t\tpopinText: column.popinText,\n\t\t\t\tpopinDisplay: column.popinDisplay,\n\t\t\t\tvisible: !this._hiddenColumns[index],\n\t\t\t};\n\t\t}, this);\n\t}\n\n\tgetIntersectionObserver(): IntersectionObserver {\n\t\tif (!this.growingIntersectionObserver) {\n\t\t\tthis.growingIntersectionObserver = new IntersectionObserver(this.onInteresection.bind(this), {\n\t\t\t\troot: document,\n\t\t\t\trootMargin: \"0px\",\n\t\t\t\tthreshold: 1.0,\n\t\t\t});\n\t\t}\n\n\t\treturn this.growingIntersectionObserver;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tbusy: {\n\t\t\t\tposition: this.busyIndPosition,\n\t\t\t},\n\t\t};\n\t}\n\n\tget growsWithButton(): boolean {\n\t\treturn this.growing === TableGrowingMode.Button;\n\t}\n\n\tget growsOnScroll(): boolean {\n\t\treturn this.growing === TableGrowingMode.Scroll;\n\t}\n\n\tget _growingButtonText(): string {\n\t\treturn this.growingButtonText || Table.i18nBundle.getText(LOAD_MORE_TEXT);\n\t}\n\n\tget ariaLabelText(): string {\n\t\tconst rowsCount = this.rows.length + 1;\n\t\tconst headerRowText = Table.i18nBundle.getText(TABLE_HEADER_ROW_INFORMATION, rowsCount);\n\t\tconst columnsTitle = this.columns.map(column => {\n\t\t\treturn column.textContent!.trim();\n\t\t}).join(\" \");\n\n\t\treturn `${headerRowText} ${columnsTitle}`;\n\t}\n\n\tget tableAriaLabelText(): string | undefined {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget ariaLabelSelectAllText(): string {\n\t\treturn Table.i18nBundle.getText(ARIA_LABEL_SELECT_ALL_CHECKBOX);\n\t}\n\n\tget loadMoreAriaLabelledBy(): string {\n\t\tif (this.moreDataText) {\n\t\t\treturn `${this._id}-growingButton-text ${this._id}-growingButton-subtext`;\n\t\t}\n\n\t\treturn `${this._id}-growingButton-text`;\n\t}\n\n\tget tableEndDOM(): Element {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-table-end-marker\")!;\n\t}\n\n\tget busyIndPosition(): string {\n\t\treturn this._inViewport ? \"absolute\" : \"sticky\";\n\t}\n\n\tget isMultiSelect(): boolean {\n\t\treturn this.mode === TableMode.MultiSelect;\n\t}\n\n\tget isSingleSelect(): boolean {\n\t\treturn this.mode === TableMode.SingleSelect;\n\t}\n\n\tget selectedRows(): Array<ITableRow> {\n\t\treturn this.rows.filter(row => row.selected);\n\t}\n\n\tget currentItemIdx(): number {\n\t\treturn this.rows.indexOf(this.currentItem);\n\t}\n\n\tget currentItem(): ITableRow {\n\t\treturn (this.getRootNode() as Document).activeElement as ITableRow;\n\t}\n\n\tget currentElement(): HTMLElement | undefined {\n\t\treturn this._itemNavigation._getCurrentItem();\n\t}\n\n\tget columnHeaderTabbables(): Array<HTMLElement> {\n\t\treturn this.columnHeader ? getTabbableElements(this.columnHeader) : [];\n\t}\n\n\tget columnHeaderLastElement(): HTMLElement | null {\n\t\treturn this.columnHeader && getLastTabbableElement(this.columnHeader);\n\t}\n}\n\nTable.define();\n\nexport default Table;\n\nexport type {\n\tITableRow,\n\tTableColumnInfo,\n\tTableRowClickEventDetail,\n\tTableSelectionChangeEventDetail,\n\tTablePopinChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.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 event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport {\n\tisTabNext,\n\tisTabPrevious,\n\tisSpace,\n\tisEnter,\n\tisCtrlA,\n\tisUpAlt,\n\tisDownAlt,\n\tisUpShift,\n\tisDownShift,\n\tisHomeCtrl,\n\tisEndCtrl,\n\tisHomeShift,\n\tisEndShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getNormalizedTarget from \"@ui5/webcomponents-base/dist/util/getNormalizedTarget.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport { getLastTabbableElement, getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport debounce from \"@ui5/webcomponents-base/dist/util/debounce.js\";\nimport isElementInView from \"@ui5/webcomponents-base/dist/util/isElementInView.js\";\nimport TableGrowingMode from \"./types/TableGrowingMode.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\nimport type {\n\tTableRowClickEventDetail,\n\tTableRowSelectionRequestedEventDetail,\n\tTableRowF7PressEventDetail,\n\tTableRowForwardBeforeEventDetail,\n\tTableRowForwardAfterEventDetail,\n} from \"./TableRow.js\";\nimport type TableCell from \"./TableCell.js\";\nimport type TableColumn from \"./TableColumn.js\";\nimport type TableColumnPopinDisplay from \"./types/TableColumnPopinDisplay.js\";\nimport TableMode from \"./types/TableMode.js\";\nimport CheckBox from \"./CheckBox.js\"; // Ensure the dependency as it is being used in the renderer\n\n// Texts\nimport {\n\tLOAD_MORE_TEXT,\n\tARIA_LABEL_SELECT_ALL_CHECKBOX,\n\tTABLE_HEADER_ROW_INFORMATION,\n\tTABLE_ROW_POSITION,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport TableTemplate from \"./generated/templates/TableTemplate.lit.js\";\n\n// Styles\nimport tableStyles from \"./generated/themes/Table.css.js\";\n\n/**\n * Interface for components that may be slotted inside a <code>ui5-table</code> as rows\n *\n * @public\n */\ninterface ITableRow extends HTMLElement, ITabbable {\n\tmode: `${TableMode}`,\n\tselected: boolean,\n\tforcedBusy: boolean,\n\tforcedAriaPosition: string,\n\t_columnsInfoString: string,\n\t_columnsInfo: Array<TableColumnInfo>,\n\ttabbableElements: Array<HTMLElement>,\n}\n\nconst GROWING_WITH_SCROLL_DEBOUNCE_RATE = 250; // ms\n\nconst PAGE_UP_DOWN_SIZE = 20;\n\ntype TableColumnInfo = {\n\tcell?: TableCell,\n\tindex?: number,\n\ttext?: string | null,\n\tvisible?: boolean,\n\tdemandPopin?: boolean,\n\tpopinText?: string,\n\tpopinDisplay?: `${TableColumnPopinDisplay}`,\n\tpopinDisplayInline?: boolean,\n\tclasses?: string,\n\tminWidth?: number,\n}\n\ntype TableColumnHeaderInfo = ITabbable;\n\ntype TableSelectionChangeEventDetail = {\n\tselectedRows: Array<ITableRow>,\n\tpreviouslySelectedRows: Array<ITableRow>,\n}\n\ntype TablePopinChangeEventDetail = {\n\tpoppedColumns: Array<TableColumnInfo>;\n}\n\nenum TableFocusTargetElement {\n\tRow = \"tableRow\",\n\tGroupRow = \"tableGroupRow\",\n\tColumnHeader = \"columnHeader\",\n\tMoreButton = \"moreButton\",\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-table</code> component provides a set of sophisticated and convenient functions for responsive table design.\n * It provides a comprehensive set of features for displaying and dealing with vast amounts of data.\n * <br><br>\n * To render the <code>Table</code> properly, the order of the <code>columns</code> should match with the\n * order of the item <code>cells</code> in the <code>rows</code>.\n * <br><br>\n * Desktop and tablet devices are supported.\n * On tablets, special consideration should be given to the number of visible columns\n * and rows due to the limited performance of some devices.\n *\n * <h3>Selection</h3>\n * To benefit from the selection mechanism of <code>ui5-table</code> component, you can use the available selection modes:\n * <code>SingleSelect</code> and <code>MultiSelect</code>.\n * <br>\n * In additition to the used mode, you can also specify the <code>ui5-table-row</code> type choosing between\n * <code>Active</code> or <code>Inactive</code>.\n * <br><br>\n * In <code>SingleSelect</code> mode, you can select both an <code>Active</code> and <code>Inactive</code> row via mouse or\n * by pressing the <code>Space</code> or <code>Enter</code> keys.\n * <br>\n * In <code>MultiSelect</code> mode, you can select both an <code>Active</code> and <code>Inactive</code> row by pressing the\n * <code>Space</code> key when a row is on focus or via mouse click over the selection checkbox of the row.\n * In order to select all the available rows at once, you can use the selection checkbox presented in the table's header.\n * <br><br>\n * <b>Note:</b> Currently, when a column is shown as a pop-in, the visual indication for selection is not presented over it.\n *\n * <h3>Keyboard Handling</h3>\n *\n * <h4>Fast Navigation</h4>\n * This component provides a build in fast navigation group which can be used via <code>F6 / Shift + F6</code> or <code> Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up</code>.\n * In order to use this functionality, you need to import the following module:\n * <code>import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"</code>\n * <br><br>\n * Furthermore, you can interact with <code>ui5-table</code> via the following keys.\n * <br>\n *\n * <ul>\n * <li>[F7] - If focus is on an interactive control inside an item, moves focus to the corresponding item.</li>\n * <li>[CTRL]+[A] - Selects all items, if MultiSelect mode is enabled.</li>\n * <li>[HOME]/[END] - Focuses the first/last item.</li>\n * <li>[PAGEUP]/[PAGEDOWN] - Moves focus up/down by page size (20 items by default).</li>\n * <li>[ALT]+[DOWN]/[UP] - Switches focus between header, last focused item, and More button (if applies) in either direction.</li>\n * <li>[SHIFT]+[DOWN]/[UP] - Selects the next/previous item in a MultiSelect table, if the current item is selected (Range selection). Otherwise, deselects them (Range deselection).</li>\n * <li>[SHIFT]+[HOME]/[END] - Range selection to the first/last item of the List.</li>\n * <li>[CTRL]+[HOME]/[END] - Same behavior as HOME & END.</li>\n * </ul>\n *\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@ui5/webcomponents/dist/Table.js\";</code>\n * <br>\n * <code>import \"@ui5/webcomponents/dist/TableColumn.js\";</code> (for <code>ui5-table-column</code>)\n * <br>\n * <code>import \"@ui5/webcomponents/dist/TableRow.js\";</code> (for <code>ui5-table-row</code>)\n * <br>\n * <code>import \"@ui5/webcomponents/dist/TableCell.js\";</code> (for <code>ui5-table-cell</code>)\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n\ttag: \"ui5-table\",\n\tfastNavigation: true,\n\tstyles: tableStyles,\n\trenderer: litRender,\n\ttemplate: TableTemplate,\n\tdependencies: [BusyIndicator, CheckBox],\n})\n/** Fired when a row in <code>Active</code> mode is clicked or <code>Enter</code> key is pressed.\n*\n* @param {HTMLElement} row the activated row.\n* @public\n*/\n@event<TableRowClickEventDetail>(\"row-click\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\trow: { type: HTMLElement },\n\t},\n})\n\n/**\n* Fired when <code>ui5-table-column</code> is shown as a pop-in instead of hiding it.\n*\n* @param {Array} poppedColumns popped-in columns.\n* @since 1.0.0-rc.6\n* @public\n*/\n@event<TablePopinChangeEventDetail>(\"popin-change\", {\n\tdetail: {\n\t\t/**\n\t\t* @public\n\t\t*/\n\t\tpoppedColumns: {\n\t\t\ttype: Array,\n\t\t},\n\t},\n})\n\n/**\n* Fired when the user presses the <code>More</code> button or scrolls to the table's end.\n* <br><br>\n*\n* <b>Note:</b> The event will be fired if <code>growing</code> is set to <code>Button</code> or <code>Scroll</code>.\n* @public\n* @since 1.0.0-rc.11\n*/\n@event(\"load-more\")\n\n/**\n* Fired when selection is changed by user interaction\n* in <code>SingleSelect</code> and <code>MultiSelect</code> modes.\n*\n* @param {Array} selectedRows An array of the selected rows.\n* @param {Array} previouslySelectedRows An array of the previously selected rows.\n* @public\n* @since 1.0.0-rc.15\n*/\n@event<TableSelectionChangeEventDetail>(\"selection-change\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tselectedRows: { type: Array },\n\t\t/**\n\t\t * @public\n\t\t */\n\t\tpreviouslySelectedRows: { type: Array },\n\t},\n})\nclass Table extends UI5Element {\n\t/**\n\t * Defines the text that will be displayed when there is no data and <code>hideNoData</code> is not present.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tnoDataText!: string;\n\n\t/**\n\t * Defines the text that will be displayed inside the growing button at the bottom of the table,\n\t * meant for loading more rows upon press.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> If not specified a built-in text will be displayed.\n\t * <br>\n\t * <b>Note:</b> This property takes effect if <code>growing</code> is set to <code>Button</code>.\n\t *\n\t * @default \"\"\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\t@property()\n\tgrowingButtonText!: string;\n\n\t/**\n\t * Defines the subtext that will be displayed under the <code>growingButtonText</code>.\n\t *\n\t * <br><br>\n\t * <b>Note:</b> This property takes effect if <code>growing</code> is set to <code>Button</code>.\n\t *\n\t * @default \"\"\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\t@property()\n\tgrowingButtonSubtext!: string;\n\n\t/**\n\t * Defines if the value of <code>noDataText</code> will be diplayed when there is no rows present in the table.\n\t *\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.15\n\t */\n\t@property({ type: Boolean })\n\thideNoData!: boolean;\n\n\t/**\n\t * Defines whether the table will have growing capability either by pressing a <code>More</code> button,\n\t * or via user scroll. In both cases <code>load-more</code> event is fired.\n\t * <br><br>\n\t *\n\t * Available options:\n\t * <br><br>\n\t * <code>Button</code> - Shows a <code>More</code> button at the bottom of the table, pressing of which triggers the <code>load-more</code> event.\n\t * <br>\n\t * <code>Scroll</code> - The <code>load-more</code> event is triggered when the user scrolls to the bottom of the table;\n\t * <br>\n\t * <code>None</code> (default) - The growing is off.\n\t * <br><br>\n\t *\n\t * <b>Restrictions:</b> <code>growing=\"Scroll\"</code> is not supported for Internet Explorer,\n\t * and the component will fallback to <code>growing=\"Button\"</code>.\n\t *\n\t * @default \"None\"\n\t * @since 1.0.0-rc.12\n\t * @public\n\t */\n\t@property({ type: TableGrowingMode, defaultValue: TableGrowingMode.None })\n\tgrowing!: `${TableGrowingMode}`;\n\n\t/**\n\t * Defines if the table is in busy state.\n\t * <b>\n\t *\n\t * In this state the component's opacity is reduced\n\t * and busy indicator is displayed at the bottom of the table.\n\t *\n\t * @default false\n\t * @since 1.0.0-rc.12\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tbusy!: boolean;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n\t *\n\t * @default 1000\n\t * @public\n\t */\n\t@property({ validator: Integer, defaultValue: 1000 })\n\tbusyDelay!: number;\n\n\t/**\n\t * Determines whether the column headers remain fixed at the top of the page during\n\t * vertical scrolling as long as the Web Component is in the viewport.\n\t * <br><br>\n\t * <b>Restrictions:</b>\n\t * <ul>\n\t * <li>Browsers that do not support this feature:\n\t * <ul>\n\t * <li>Internet Explorer</li>\n\t * <li>Microsoft Edge lower than version 41 (EdgeHTML 16)</li>\n\t * <li>Mozilla Firefox lower than version 59</li>\n\t * </ul>\n\t * </li>\n\t * <li>Scrolling behavior:\n\t * <ul>\n\t * <li>If the Web Component is placed in layout containers that have the <code>overflow: hidden</code>\n\t * or <code>overflow: auto</code> style definition, this can\n\t * prevent the sticky elements of the Web Component from becoming fixed at the top of the viewport.</li>\n\t * </ul>\n\t * </li>\n\t * </ul>\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tstickyColumnHeader!: boolean;\n\n\t/**\n\t * Defines the mode of the component.\n\t *\n\t * @default \"None\"\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\t@property({ type: TableMode, defaultValue: TableMode.None })\n\tmode!: `${TableMode}`;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t * @since 1.3.0\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t * @since 1.3.0\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t@property({ type: Object, multiple: true })\n\t_hiddenColumns!: Array<TableColumnInfo>;\n\n\t@property({ type: Boolean })\n\t_noDataDisplayed!: boolean;\n\n\t/**\n\t * Defines the active state of the <code>More</code> button.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_loadMoreActive!: boolean;\n\n\t/**\n\t * Used to represent the table column header for the purpose of the item navigation as it does not work with DOM objects directly\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_columnHeader: TableColumnHeaderInfo;\n\n\t/**\n\t * Defines if the entire table is in view port.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_inViewport!: boolean;\n\n\t/**\n\t * Defines whether all rows are selected or not when table is in MultiSelect mode.\n\t *\n\t * @default false\n\t * @since 1.0.0-rc.15\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_allRowsSelected!: boolean;\n\n\t/**\n\t * Defines the component rows.\n\t * <br><br>\n\t * <b>Note:</b> Use <code>ui5-table-row</code> for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\trows!: Array<ITableRow>;\n\n\t/**\n\t * Defines the configuration for the columns of the component.\n\t * <br><br>\n\t * <b>Note:</b> Use <code>ui5-table-column</code> for the intended design.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\tindividualSlots: true,\n\t\tinvalidateOnChildChange: {\n\t\t\tproperties: true,\n\t\t\tslots: false,\n\t\t},\n\t})\n\tcolumns!: Array<TableColumn>;\n\n\tstatic async onDefine() {\n\t\tTable.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tstatic i18nBundle: I18nBundle;\n\n\tfnHandleF7: (e: CustomEvent) => void;\n\tfnOnRowFocused: (e: CustomEvent) => void;\n\t_handleResize: ResizeObserverCallback;\n\n\tmoreDataText?: string;\n\ttableEndObserved: boolean;\n\tvisibleColumns: Array<TableColumn>;\n\tvisibleColumnsCount?: number;\n\tlastFocusedElement: HTMLElement | null;\n\tgrowingIntersectionObserver?: IntersectionObserver | null;\n\tinitialIntersection: boolean;\n\n\t_forwardingFocus: boolean;\n\t_prevNestedElementIndex: number;\n\t_itemNavigation: ItemNavigation;\n\t_prevFocusedRow?: ITableRow;\n\n\t_afterElement?: HTMLElement;\n\t_beforeElement?: HTMLElement;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.visibleColumns = []; // template loop should always have a defined array\n\t\t// The ItemNavigation requires each item to 1) have a \"forcedTabIndex\" property and 2) be either a UI5Element, or have an id property (to find it in the component's shadow DOM by)\n\t\tthis._columnHeader = {\n\t\t\tid: `${this._id}-columnHeader`,\n\t\t\tforcedTabIndex: \"0\",\n\t\t};\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t\taffectedPropertiesNames: [\"_columnHeader\"],\n\t\t\tgetItemsCallback: () => [this._columnHeader, ...this.rows],\n\t\t\tskipItemsSize: PAGE_UP_DOWN_SIZE,\n\t\t});\n\n\t\tthis._handleResize = this.popinContent.bind(this);\n\t\tthis.fnOnRowFocused = this.onRowFocused.bind(this);\n\t\tthis.fnHandleF7 = this._handleF7.bind(this);\n\n\t\tthis.tableEndObserved = false;\n\n\t\t// Stores the last focused element within the table.\n\t\tthis.lastFocusedElement = null;\n\n\t\t// Indicates whether the table is forwarding focus before or after the current table row.\n\t\tthis._forwardingFocus = false;\n\n\t\t// Stores the last focused nested element index (within a table row) for F7 navigation.\n\t\tthis._prevNestedElementIndex = 0;\n\n\t\t// Indicates the Table bottom most part has been detected by the IntersectionObserver\n\t\t// for the first time.\n\t\tthis.initialIntersection = true;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst columnSettings = this.getColumnPropagationSettings();\n\t\tconst columnSettingsString = JSON.stringify(columnSettings);\n\t\tconst rowsCount = this.rows.length + 1;\n\t\tconst selectedRows = this.selectedRows;\n\n\t\tthis.rows.forEach((row, index) => {\n\t\t\tif (row._columnsInfoString !== columnSettingsString) {\n\t\t\t\trow._columnsInfo = columnSettings;\n\t\t\t\trow._columnsInfoString = JSON.stringify(row._columnsInfo);\n\t\t\t}\n\n\t\t\trow.forcedAriaPosition = Table.i18nBundle.getText(TABLE_ROW_POSITION, index + 2, rowsCount);\n\t\t\trow.forcedBusy = this.busy;\n\t\t\trow.removeEventListener(\"ui5-_focused\", this.fnOnRowFocused as EventListener);\n\t\t\trow.addEventListener(\"ui5-_focused\", this.fnOnRowFocused as EventListener);\n\t\t\trow.removeEventListener(\"ui5-f7-pressed\", this.fnHandleF7 as EventListener);\n\t\t\trow.addEventListener(\"ui5-f7-pressed\", this.fnHandleF7 as EventListener);\n\t\t\trow.mode = this.mode;\n\t\t});\n\n\t\tthis.visibleColumns = this.columns.filter((column, index) => {\n\t\t\treturn !this._hiddenColumns[index];\n\t\t});\n\n\t\tthis._noDataDisplayed = !this.rows.length && !this.hideNoData;\n\t\tthis.visibleColumnsCount = this.visibleColumns.length;\n\n\t\tif (this.isMultiSelect) {\n\t\t\t// we have to count the selection column as well\n\t\t\tthis.visibleColumnsCount += 1;\n\t\t}\n\n\t\tthis._allRowsSelected = selectedRows.length === this.rows.length;\n\n\t\tthis._prevFocusedRow = this._prevFocusedRow || this.rows[0];\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.growsOnScroll) {\n\t\t\tthis.observeTableEnd();\n\t\t}\n\n\t\tthis.checkTableInViewport();\n\t}\n\n\tonEnterDOM() {\n\t\tthis.growingIntersectionObserver = this.getIntersectionObserver();\n\n\t\tResizeHandler.register(this.getDomRef()!, this._handleResize);\n\n\t\tthis._itemNavigation.setCurrentItem(this.rows.length ? this.rows[0] : this._columnHeader);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this.getDomRef()!, this._handleResize);\n\n\t\tthis.growingIntersectionObserver!.disconnect();\n\t\tthis.growingIntersectionObserver = null;\n\t\tthis.tableEndObserved = false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tthis._handleTab(e);\n\t\t}\n\n\t\tif (isCtrlA(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.isMultiSelect && this._selectAll();\n\t\t}\n\n\t\tif (isUpAlt(e) || isDownAlt(e)) {\n\t\t\tthis._handleArrowAlt(e);\n\t\t}\n\n\t\tif ((isUpShift(e) || isDownShift(e)) && this.isMultiSelect) {\n\t\t\tthis._handleArrowNav(e);\n\t\t}\n\n\t\tif (isHomeCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._itemNavigation._handleHome();\n\t\t\tthis._itemNavigation._applyTabIndex();\n\t\t\tthis._itemNavigation._focusCurrentItem();\n\t\t}\n\n\t\tif (isEndCtrl(e)) {\n\t\t\te.preventDefault();\n\n\t\t\tthis._itemNavigation._handleEnd();\n\t\t\tthis._itemNavigation._applyTabIndex();\n\t\t\tthis._itemNavigation._focusCurrentItem();\n\t\t}\n\n\t\tif ((isHomeShift(e) || isEndShift(e)) && this.isMultiSelect) {\n\t\t\tthis._handleHomeEndSelection(e);\n\t\t}\n\t}\n\n\t_handleTab(e: KeyboardEvent) {\n\t\tconst isNext = isTabNext(e);\n\t\tconst target = getNormalizedTarget(e.target as HTMLElement);\n\t\tconst targetType: TableFocusTargetElement | undefined = this.getFocusedElementType(e.target as HTMLElement);\n\n\t\tif (this.columnHeaderTabbables.includes(target)) {\n\t\t\tif (isNext && this.columnHeaderLastElement === target) {\n\t\t\t\treturn this._focusNextElement();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (isNext && targetType === TableFocusTargetElement.ColumnHeader && !this.columnHeaderTabbables.length) {\n\t\t\treturn this._focusNextElement();\n\t\t}\n\n\t\tif (targetType === TableFocusTargetElement.Row || !targetType) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (targetType) {\n\t\tcase TableFocusTargetElement.GroupRow:\n\t\t\treturn isNext ? this._focusNextElement() : this._focusForwardElement(false);\n\t\tcase TableFocusTargetElement.ColumnHeader:\n\t\t\treturn !isNext && this._focusForwardElement(false);\n\t\tcase TableFocusTargetElement.MoreButton:\n\t\t\tif (isNext) {\n\t\t\t\tthis._focusForwardElement(true);\n\t\t\t} else {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.currentElement?.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_focusNextElement() {\n\t\tif (!this.growsWithButton) {\n\t\t\tthis._focusForwardElement(true);\n\t\t} else {\n\t\t\tthis.morеBtn!.focus();\n\t\t}\n\t}\n\n\t_handleArrowNav(e: KeyboardEvent) {\n\t\tconst isRowFocused = this.currentElement!.localName === \"tr\";\n\n\t\tif (!isRowFocused) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previouslySelectedRows: Array<ITableRow> = this.selectedRows;\n\t\tconst currentItem: ITableRow = this.currentItem;\n\t\tconst currentItemIdx: number = this.currentItemIdx;\n\n\t\tconst prevItemIdx = currentItemIdx - 1;\n\t\tconst nextItemIdx = currentItemIdx + 1;\n\n\t\tconst prevItem: ITableRow = this.rows[prevItemIdx];\n\t\tconst nextItem: ITableRow = this.rows[nextItemIdx];\n\t\tconst wasSelected = !!currentItem.selected;\n\n\t\tif ((isUpShift(e) && !prevItem) || (isDownShift(e) && !nextItem)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isUpShift(e)) {\n\t\t\tcurrentItem.selected = currentItem.selected && !prevItem.selected;\n\t\t\tprevItem.selected = currentItem.selected || (wasSelected && !currentItem.selected);\n\t\t\tprevItem.focus();\n\t\t}\n\n\t\tif (isDownShift(e)) {\n\t\t\tcurrentItem.selected = currentItem.selected && !nextItem.selected;\n\t\t\tnextItem.selected = currentItem.selected || (wasSelected && !currentItem.selected);\n\t\t\tnextItem.focus();\n\t\t}\n\n\t\tconst selectedRows = this.selectedRows;\n\n\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedRows,\n\t\t\tpreviouslySelectedRows,\n\t\t});\n\t}\n\n\t_handleHomeEndSelection(e: KeyboardEvent) {\n\t\tconst isRowFocused = this.currentElement!.localName === \"tr\";\n\n\t\tif (!isRowFocused) {\n\t\t\treturn;\n\t\t}\n\t\tconst rows = this.rows;\n\t\tconst previouslySelectedRows: Array<ITableRow> = this.selectedRows;\n\t\tconst currentItemIdx = this.currentItemIdx;\n\n\t\tif (isHomeShift(e)) {\n\t\t\trows.slice(0, currentItemIdx + 1).forEach(item => {\n\t\t\t\titem.selected = true;\n\t\t\t});\n\t\t\trows[0].focus();\n\t\t}\n\n\t\tif (isEndShift(e)) {\n\t\t\trows.slice(currentItemIdx).forEach(item => {\n\t\t\t\titem.selected = true;\n\t\t\t});\n\t\t\trows[rows.length - 1].focus();\n\t\t}\n\n\t\tconst selectedRows: Array<ITableRow> = this.selectedRows;\n\n\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedRows,\n\t\t\tpreviouslySelectedRows,\n\t\t});\n\t}\n\n\t/**\n\t * Handles Alt + Up/Down.\n\t * Switches focus between column header, last focused item, and \"More\" button (if applicable).\n\t * @private\n\t */\n\t_handleArrowAlt(e: KeyboardEvent) {\n\t\tconst shouldMoveUp: boolean = isUpAlt(e);\n\t\tconst target = e.target as ITableRow;\n\t\tconst focusedElementType = this.getFocusedElementType(target);\n\n\t\tif (shouldMoveUp) {\n\t\t\tswitch (focusedElementType) {\n\t\t\tcase TableFocusTargetElement.Row:\n\t\t\tcase TableFocusTargetElement.GroupRow:\n\t\t\t\tthis._prevFocusedRow = target;\n\t\t\t\treturn this._onColumnHeaderClick(e);\n\t\t\tcase TableFocusTargetElement.ColumnHeader:\n\t\t\t\treturn this.morеBtn ? this.morеBtn.focus() : this._prevFocusedRow?.focus();\n\t\t\tcase TableFocusTargetElement.MoreButton:\n\t\t\t\treturn this._prevFocusedRow ? this._prevFocusedRow.focus() : this._onColumnHeaderClick(e);\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (focusedElementType) {\n\t\t\tcase TableFocusTargetElement.Row:\n\t\t\tcase TableFocusTargetElement.GroupRow:\n\t\t\t\tthis._prevFocusedRow = target;\n\t\t\t\treturn this.morеBtn ? this.morеBtn.focus() : this._onColumnHeaderClick(e);\n\t\t\tcase TableFocusTargetElement.ColumnHeader:\n\t\t\t\tif (this._prevFocusedRow) {\n\t\t\t\t\tthis._prevFocusedRow.focus();\n\t\t\t\t} else if (this.morеBtn) {\n\t\t\t\t\tthis.morеBtn.focus();\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\tcase TableFocusTargetElement.MoreButton:\n\t\t\t\treturn this._onColumnHeaderClick(e);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Determines the type of the currently focused element.\n\t * @private\n\t */\n\tgetFocusedElementType(element: HTMLElement): TableFocusTargetElement | undefined {\n\t\tif (element === this.columnHeader) {\n\t\t\treturn TableFocusTargetElement.ColumnHeader;\n\t\t}\n\n\t\tif (element === this.morеBtn) {\n\t\t\treturn TableFocusTargetElement.MoreButton;\n\t\t}\n\n\t\tif (this.rows.includes(element as ITableRow)) {\n\t\t\tconst isGroupRow = element.hasAttribute(\"ui5-table-group-row\");\n\t\t\treturn isGroupRow ? TableFocusTargetElement.GroupRow : TableFocusTargetElement.Row;\n\t\t}\n\t}\n\n\t/**\n\t * Toggles focus between the table row's root and the last focused nested element.\n\t * @private\n\t */\n\t_handleF7(e: CustomEvent<TableRowF7PressEventDetail>) {\n\t\tconst row = e.detail.row;\n\t\trow.tabbableElements = getTabbableElements(row);\n\t\tconst activeElement = getActiveElement();\n\t\tconst lastFocusedElement = row.tabbableElements[this._prevNestedElementIndex] || row.tabbableElements[0];\n\t\tconst targetIndex = row.tabbableElements.indexOf(activeElement as HTMLElement);\n\n\t\tif (!row.tabbableElements.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (activeElement === row.root) {\n\t\t\tlastFocusedElement.focus();\n\t\t} else if (targetIndex > -1) {\n\t\t\tthis._prevNestedElementIndex = targetIndex;\n\t\t\trow.root.focus();\n\t\t}\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst target = getNormalizedTarget(e.target as HTMLElement);\n\n\t\tif (!this._isForwardElement(target)) {\n\t\t\tthis.lastFocusedElement = target;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._forwardingFocus) {\n\t\t\tif (this.lastFocusedElement) {\n\t\t\t\tthis.lastFocusedElement.focus();\n\t\t\t} else {\n\t\t\t\tthis.currentElement!.focus();\n\t\t\t}\n\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis._forwardingFocus = false;\n\t}\n\n\t_onForwardBefore(e: CustomEvent<TableRowForwardBeforeEventDetail>) {\n\t\tthis.lastFocusedElement = e.detail.target;\n\t\tthis._focusForwardElement(false);\n\t\te.stopImmediatePropagation();\n\t}\n\n\t_onForwardAfter(e: CustomEvent<TableRowForwardAfterEventDetail>) {\n\t\tthis.lastFocusedElement = e.detail.target;\n\n\t\tif (!this.growsWithButton) {\n\t\t\tthis._focusForwardElement(true);\n\t\t} else {\n\t\t\tthis.morеBtn!.focus();\n\t\t}\n\t}\n\n\t_focusForwardElement(isAfter: boolean) {\n\t\tthis._forwardingFocus = true;\n\t\tthis.shadowRoot!.querySelector<HTMLElement>(`#${this._id}-${isAfter ? \"after\" : \"before\"}`)!.focus();\n\t}\n\n\t_isForwardElement(element: HTMLElement): boolean {\n\t\tconst elementId = element.id;\n\t\tconst afterElement = this._getForwardElement(true);\n\t\tconst beforeElement = this._getForwardElement(false);\n\n\t\tif (this._id === elementId || (beforeElement && beforeElement.id === elementId)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn !!(afterElement && afterElement.id === elementId);\n\t}\n\n\t_getForwardElement(isAfter: boolean): HTMLElement | null {\n\t\tif (isAfter) {\n\t\t\treturn this._getAfterForwardElement();\n\t\t}\n\n\t\treturn this._getBeforeForwardElement();\n\t}\n\n\t_getAfterForwardElement(): HTMLElement {\n\t\tif (!this._afterElement) {\n\t\t\tthis._afterElement = this.shadowRoot!.querySelector(`[id=\"${this._id}-after\"]`)!;\n\t\t}\n\n\t\treturn this._afterElement;\n\t}\n\n\t_getBeforeForwardElement(): HTMLElement {\n\t\tif (!this._beforeElement) {\n\t\t\tthis._beforeElement = this.shadowRoot!.querySelector(`[id=\"${this._id}-before\"]`)!;\n\t\t}\n\n\t\treturn this._beforeElement;\n\t}\n\n\tonRowFocused(e: CustomEvent) {\n\t\tthis._itemNavigation.setCurrentItem(e.target as ITableRow);\n\t}\n\n\t_onColumnHeaderFocused() {\n\t\tthis._itemNavigation.setCurrentItem(this._columnHeader);\n\t}\n\n\t_onColumnHeaderClick(e: MouseEvent | KeyboardEvent) {\n\t\tif (!e.target) {\n\t\t\tthis.columnHeader!.focus();\n\t\t}\n\n\t\tconst target = getNormalizedTarget(e.target as HTMLElement);\n\t\tconst isNestedElement = this.columnHeaderTabbables.includes(target);\n\n\t\tif (!isNestedElement) {\n\t\t\tthis.columnHeader!.focus();\n\t\t}\n\t}\n\n\t_onColumnHeaderKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis.isMultiSelect && this._selectAll();\n\t\t}\n\t}\n\n\t_onLoadMoreKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\t}\n\n\t_onLoadMoreKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t}\n\t\tthis._loadMoreActive = false;\n\t}\n\n\t_onLoadMoreClick() {\n\t\tthis.fireEvent(\"load-more\");\n\t}\n\n\tobserveTableEnd() {\n\t\tif (!this.tableEndObserved) {\n\t\t\tthis.getIntersectionObserver().observe(this.tableEndDOM);\n\t\t\tthis.tableEndObserved = true;\n\t\t}\n\t}\n\n\tonInteresection(entries: Array<IntersectionObserverEntry>) {\n\t\tif (this.initialIntersection) {\n\t\t\tthis.initialIntersection = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (entries.some(entry => entry.isIntersecting)) {\n\t\t\tdebounce(this.loadMore.bind(this), GROWING_WITH_SCROLL_DEBOUNCE_RATE);\n\t\t}\n\t}\n\n\tloadMore() {\n\t\tthis.fireEvent(\"load-more\");\n\t}\n\n\t_handleSingleSelect(e: CustomEvent<TableRowSelectionRequestedEventDetail>) {\n\t\tconst row: ITableRow | undefined = this.getRowParent(e.target as HTMLElement);\n\n\t\tif (!row) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!row.selected) {\n\t\t\tconst previouslySelectedRows = this.selectedRows;\n\t\t\tthis.rows.forEach(item => {\n\t\t\t\tif (item.selected) {\n\t\t\t\t\titem.selected = false;\n\t\t\t\t}\n\t\t\t});\n\t\t\trow.selected = true;\n\t\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\t\tselectedRows: [row],\n\t\t\t\tpreviouslySelectedRows,\n\t\t\t});\n\t\t}\n\t}\n\n\t_handleMultiSelect(e: CustomEvent<TableRowSelectionRequestedEventDetail>) {\n\t\tconst row: ITableRow | undefined = this.getRowParent(e.target as HTMLElement);\n\t\tconst previouslySelectedRows: Array<ITableRow> = this.selectedRows;\n\n\t\tif (!row) {\n\t\t\treturn;\n\t\t}\n\n\t\trow.selected = !row.selected;\n\n\t\tconst selectedRows = this.selectedRows;\n\n\t\tif (selectedRows.length === this.rows.length) {\n\t\t\tthis._allRowsSelected = true;\n\t\t} else {\n\t\t\tthis._allRowsSelected = false;\n\t\t}\n\n\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedRows,\n\t\t\tpreviouslySelectedRows,\n\t\t});\n\t}\n\n\t_handleSelect(e: CustomEvent<TableRowSelectionRequestedEventDetail>) {\n\t\tif (this.isSingleSelect) {\n\t\t\tthis._handleSingleSelect(e);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.isMultiSelect) {\n\t\t\tthis._handleMultiSelect(e);\n\t\t}\n\t}\n\n\t_selectAll() {\n\t\tconst bAllSelected = !this._allRowsSelected;\n\t\tconst previouslySelectedRows: Array<ITableRow> = this.rows.filter(row => row.selected);\n\n\t\tthis._allRowsSelected = bAllSelected;\n\n\t\tthis.rows.forEach(row => {\n\t\t\trow.selected = bAllSelected;\n\t\t});\n\n\t\tconst selectedRows = bAllSelected ? this.rows : [];\n\n\t\tthis.fireEvent<TableSelectionChangeEventDetail>(\"selection-change\", {\n\t\t\tselectedRows,\n\t\t\tpreviouslySelectedRows,\n\t\t});\n\t}\n\n\tgetRowParent(child: HTMLElement): ITableRow | undefined {\n\t\tif (child.hasAttribute(\"ui5-table-row\")) {\n\t\t\treturn child as ITableRow;\n\t\t}\n\n\t\tconst parent = child.parentElement;\n\n\t\tif (!parent) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (parent.hasAttribute(\"ui5-table-row\")) {\n\t\t\treturn parent as ITableRow;\n\t\t}\n\n\t\treturn this.getRowParent(parent);\n\t}\n\n\tget columnHeader(): HTMLElement | null {\n\t\tconst domRef = this.getDomRef();\n\t\treturn domRef ? domRef.querySelector<HTMLElement>(`#${this._id}-columnHeader`) : null;\n\t}\n\n\tget morеBtn(): HTMLElement | null {\n\t\tconst domRef = this.getDomRef();\n\n\t\tif (this.growsWithButton && domRef) {\n\t\t\treturn domRef.querySelector<HTMLElement>(`#${this._id}-growingButton`);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\thandleResize() {\n\t\tthis.checkTableInViewport();\n\t\tthis.popinContent();\n\t}\n\n\tcheckTableInViewport() {\n\t\tthis._inViewport = isElementInView(this.getDomRef()!);\n\t}\n\tpopinContent() {\n\t\tconst clientRect: DOMRect = this.getDomRef()!.getBoundingClientRect();\n\t\tconst tableWidth: number = clientRect.width;\n\t\tconst hiddenColumns: Array<TableColumnInfo> = [];\n\t\tconst visibleColumnsIndexes: Array<number> = [];\n\n\t\t// store the hidden columns\n\t\tthis.columns.forEach((column, index) => {\n\t\t\tif (tableWidth < column.minWidth && column.minWidth !== Infinity) {\n\t\t\t\thiddenColumns[index] = {\n\t\t\t\t\tindex,\n\t\t\t\t\tpopinText: column.popinText,\n\t\t\t\t\tdemandPopin: column.demandPopin,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvisibleColumnsIndexes.push(index);\n\t\t\t}\n\t\t});\n\n\t\tif (visibleColumnsIndexes.length) {\n\t\t\tif (!this.isMultiSelect) {\n\t\t\t\tthis.columns[visibleColumnsIndexes[0]].first = true;\n\t\t\t}\n\t\t\tthis.columns[visibleColumnsIndexes[visibleColumnsIndexes.length - 1]].last = true;\n\t\t}\n\n\t\tconst hiddenColumnsChange = (this._hiddenColumns.length !== hiddenColumns.length) || this._hiddenColumns.some((column, index) => column !== hiddenColumns[index]);\n\t\tconst shownColumnsChange = hiddenColumns.length === 0;\n\n\t\t// invalidate if hidden columns count has changed or columns are shown\n\t\tif (hiddenColumnsChange || shownColumnsChange) {\n\t\t\tthis._hiddenColumns = hiddenColumns;\n\t\t\tthis.fireEvent<TablePopinChangeEventDetail>(\"popin-change\", {\n\t\t\t\tpoppedColumns: this._hiddenColumns,\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Gets settings to be propagated from columns to rows.\n\t */\n\tgetColumnPropagationSettings(): Array<TableColumnInfo> {\n\t\treturn this.columns.map((column, index) => {\n\t\t\treturn {\n\t\t\t\tindex,\n\t\t\t\tminWidth: column.minWidth,\n\t\t\t\tdemandPopin: column.demandPopin,\n\t\t\t\ttext: column.textContent,\n\t\t\t\tpopinText: column.popinText,\n\t\t\t\tpopinDisplay: column.popinDisplay,\n\t\t\t\tvisible: !this._hiddenColumns[index],\n\t\t\t};\n\t\t}, this);\n\t}\n\n\tgetIntersectionObserver(): IntersectionObserver {\n\t\tif (!this.growingIntersectionObserver) {\n\t\t\tthis.growingIntersectionObserver = new IntersectionObserver(this.onInteresection.bind(this), {\n\t\t\t\troot: document,\n\t\t\t\trootMargin: \"0px\",\n\t\t\t\tthreshold: 1.0,\n\t\t\t});\n\t\t}\n\n\t\treturn this.growingIntersectionObserver;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tbusy: {\n\t\t\t\tposition: this.busyIndPosition,\n\t\t\t},\n\t\t};\n\t}\n\n\tget growsWithButton(): boolean {\n\t\treturn this.growing === TableGrowingMode.Button;\n\t}\n\n\tget growsOnScroll(): boolean {\n\t\treturn this.growing === TableGrowingMode.Scroll;\n\t}\n\n\tget _growingButtonText(): string {\n\t\treturn this.growingButtonText || Table.i18nBundle.getText(LOAD_MORE_TEXT);\n\t}\n\n\tget ariaLabelText(): string {\n\t\tconst rowsCount = this.rows.length + 1;\n\t\tconst headerRowText = Table.i18nBundle.getText(TABLE_HEADER_ROW_INFORMATION, rowsCount);\n\t\tconst columnsTitle = this.columns.map(column => {\n\t\t\treturn column.textContent!.trim();\n\t\t}).join(\" \");\n\n\t\treturn `${headerRowText} ${columnsTitle}`;\n\t}\n\n\tget tableAriaLabelText(): string | undefined {\n\t\treturn getEffectiveAriaLabelText(this);\n\t}\n\n\tget ariaLabelSelectAllText(): string {\n\t\treturn Table.i18nBundle.getText(ARIA_LABEL_SELECT_ALL_CHECKBOX);\n\t}\n\n\tget loadMoreAriaLabelledBy(): string {\n\t\tif (this.moreDataText) {\n\t\t\treturn `${this._id}-growingButton-text ${this._id}-growingButton-subtext`;\n\t\t}\n\n\t\treturn `${this._id}-growingButton-text`;\n\t}\n\n\tget tableEndDOM(): Element {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-table-end-marker\")!;\n\t}\n\n\tget busyIndPosition(): string {\n\t\treturn this._inViewport ? \"absolute\" : \"sticky\";\n\t}\n\n\tget isMultiSelect(): boolean {\n\t\treturn this.mode === TableMode.MultiSelect;\n\t}\n\n\tget isSingleSelect(): boolean {\n\t\treturn this.mode === TableMode.SingleSelect;\n\t}\n\n\tget selectedRows(): Array<ITableRow> {\n\t\treturn this.rows.filter(row => row.selected);\n\t}\n\n\tget currentItemIdx(): number {\n\t\treturn this.rows.indexOf(this.currentItem);\n\t}\n\n\tget currentItem(): ITableRow {\n\t\treturn (this.getRootNode() as Document).activeElement as ITableRow;\n\t}\n\n\tget currentElement(): HTMLElement | undefined {\n\t\treturn this._itemNavigation._getCurrentItem();\n\t}\n\n\tget columnHeaderTabbables(): Array<HTMLElement> {\n\t\treturn this.columnHeader ? getTabbableElements(this.columnHeader) : [];\n\t}\n\n\tget columnHeaderLastElement(): HTMLElement | null {\n\t\treturn this.columnHeader && getLastTabbableElement(this.columnHeader);\n\t}\n}\n\nTable.define();\n\nexport default Table;\n\nexport type {\n\tITableRow,\n\tTableColumnInfo,\n\tTableRowClickEventDetail,\n\tTableSelectionChangeEventDetail,\n\tTablePopinChangeEventDetail,\n};\n"]}
package/dist/Toolbar.d.ts CHANGED
@@ -3,7 +3,6 @@ import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delega
3
3
  import "@ui5/webcomponents-icons/dist/overflow.js";
4
4
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
5
5
  import ToolbarAlign from "./types/ToolbarAlign.js";
6
- import HasPopup from "./types/HasPopup.js";
7
6
  import ToolbarItem from "./ToolbarItem.js";
8
7
  import Button from "./Button.js";
9
8
  import Popover from "./Popover.js";
@@ -139,7 +138,7 @@ declare class Toolbar extends UI5Element {
139
138
  tooltip: string;
140
139
  accessibilityAttributes: {
141
140
  expanded: boolean | "true" | "false" | undefined;
142
- hasPopup: HasPopup;
141
+ hasPopup: string;
143
142
  };
144
143
  };
145
144
  };
package/dist/Toolbar.js CHANGED
@@ -173,7 +173,7 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
173
173
  tooltip: Toolbar_1.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),
174
174
  accessibilityAttributes: {
175
175
  expanded: this.overflowButtonDOM?.accessibilityAttributes.expanded,
176
- hasPopup: HasPopup.Menu,
176
+ hasPopup: HasPopup.Menu.toLowerCase(),
177
177
  },
178
178
  },
179
179
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../src/Toolbar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element, { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\n\nimport {\n\tTOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport ToolbarTemplate from \"./generated/templates/ToolbarTemplate.lit.js\";\nimport ToolbarCss from \"./generated/themes/Toolbar.css.js\";\n\nimport ToolbarPopoverTemplate from \"./generated/templates/ToolbarPopoverTemplate.lit.js\";\nimport ToolbarPopoverCss from \"./generated/themes/ToolbarPopover.css.js\";\n\nimport ToolbarAlign from \"./types/ToolbarAlign.js\";\nimport ToolbarItemOverflowBehavior from \"./types/ToolbarItemOverflowBehavior.js\";\nimport HasPopup from \"./types/HasPopup.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\nimport type ToolbarSeparator from \"./ToolbarSeparator.js\";\n\nimport {\n\tgetRegisteredToolbarItem,\n\tgetRegisteredStyles,\n\tgetRegisteredStaticAreaStyles,\n\tgetRegisteredDependencies,\n} from \"./ToolbarRegistry.js\";\n\nimport Button from \"./Button.js\";\nimport Popover from \"./Popover.js\";\n\nfunction calculateCSSREMValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"rem\", \"\")) * parseInt(getComputedStyle(document.body).getPropertyValue(\"font-size\"));\n}\n\nfunction parsePxValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"px\", \"\"));\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-toolbar</code> component is used to create a horizontal layout with items.\n * The items can be overflowing in a popover, when the space is not enough to show all of them.\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-toolbar</code> provides advanced keyboard handling.\n * <br>\n * <ul>\n * <li>The control is not interactive, but can contain of interactive elements </li>\n * <li>[TAB] - iterates through elements</li>\n * </ul>\n * <br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/Toolbar\";</code>\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: ToolbarTemplate,\n\tstaticAreaTemplate: ToolbarPopoverTemplate,\n})\nclass Toolbar extends UI5Element {\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Indicated the direction in which the Toolbar items will be aligned.\n\t *\n\t * @public\n\t * @default \"End\"\n\t */\n\t@property({ type: ToolbarAlign, defaultValue: ToolbarAlign.End })\n\talignContent!: `${ToolbarAlign}`;\n\n\t/**\n\t * Calculated width of the whole toolbar.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ validator: Integer })\n\twidth?: number;\n\n\t/**\n\t * Calculated width of the toolbar content.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ validator: Integer })\n\tcontentWidth?: number;\n\n\t/**\n\t * Notifies the toolbar if it should show the items in a reverse way if Toolbar Popover needs to be placed on \"Top\" position.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\treverseOverflow!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t/**\n\t * Defines the items of the component.\n *\n * <b>Note:</b> Currently only <code>ui5-toolbar-button</code>, <code>ui5-toolbar-select</code>, <code>ui5-toolbar-separator</code> and <code>ui5-toolbar-spacer</code> are allowed here.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<ToolbarItem>\n\n\t_onResize!: ResizeObserverCallback;\n\t_onInteract!: EventListener;\n\titemsToOverflow: Array<ToolbarItem> = [];\n\titemsWidth = 0;\n\tpopoverOpen = false;\n\titemsWidthMeasured = false;\n\n\tITEMS_WIDTH_MAP: Map<string, number> = new Map();\n\n\tstatic get styles() {\n\t\tconst styles = getRegisteredStyles();\n\t\treturn [\n\t\t\tToolbarCss,\n\t\t\t...styles,\n\t\t];\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\tconst styles = getRegisteredStaticAreaStyles();\n\t\treturn [\n\t\t\tToolbarPopoverCss,\n\t\t\t...styles,\n\t\t];\n\t}\n\n\tstatic get dependencies() {\n\t\tconst deps = getRegisteredDependencies();\n\t\treturn [\n\t\t\tPopover,\n\t\t\tButton,\n\t\t\t...deps,\n\t\t];\n\t}\n\n\tstatic async onDefine() {\n\t\tToolbar.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._onResize = this.onResize.bind(this);\n\t\tthis._onInteract = (e: Event) => this.onInteract(e as CustomEvent);\n\t}\n\n\t/**\n\t * Read-only members\n\t */\n\n\tget overflowButtonSize(): number {\n\t\treturn this.overflowButtonDOM?.getBoundingClientRect().width || 0;\n\t}\n\n\tget padding(): number {\n\t\tconst toolbarComputedStyle = getComputedStyle(this.getDomRef()!);\n\t\treturn calculateCSSREMValue(toolbarComputedStyle, getScopedVarName(\"--_ui5-toolbar-padding-left\"))\n\t\t\t+ calculateCSSREMValue(toolbarComputedStyle, getScopedVarName(\"--_ui5-toolbar-padding-right\"));\n\t}\n\n\tget subscribedEvents() {\n\t\treturn this.items\n\t\t\t.map((item: ToolbarItem) => Array.from(item.subscribedEvents.keys()))\n\t\t\t.flat()\n\t\t\t// remove duplicates\n\t\t\t.filter((value, index, self) => self.indexOf(value) === index);\n\t}\n\n\tget alwaysOverflowItems() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.overflowPriority === ToolbarItemOverflowBehavior.AlwaysOverflow);\n\t}\n\n\tget movableItems() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.overflowPriority !== ToolbarItemOverflowBehavior.AlwaysOverflow && item.overflowPriority !== ToolbarItemOverflowBehavior.NeverOverflow);\n\t}\n\n\tget overflowItems() {\n\t\t// spacers are ignored\n\t\tconst overflowItems = this.getItemsInfo(this.itemsToOverflow.filter(item => !item.ignoreSpace));\n\t\treturn this.reverseOverflow ? overflowItems.reverse() : overflowItems;\n\t}\n\n\tget standardItems() {\n\t\treturn this.getItemsInfo(this.items.filter(item => this.itemsToOverflow.indexOf(item) === -1));\n\t}\n\n\tget hideOverflowButton() {\n\t\treturn this.itemsToOverflow.filter(item => !(item.ignoreSpace || item.isSeparator)).length === 0;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\titems: {\n\t\t\t\t\"ui5-tb-items\": true,\n\t\t\t\t\"ui5-tb-items-full-width\": this.hasFlexibleSpacers,\n\t\t\t},\n\t\t\toverflow: {\n\t\t\t\t\"ui5-overflow-list--alignleft\": this.hasItemWithText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\t\"ui5-tb-item\": true,\n\t\t\t\t\"ui5-tb-overflow-btn\": true,\n\t\t\t\t\"ui5-tb-overflow-btn-hidden\": this.hideOverflowButton,\n\t\t\t},\n\t\t};\n\t}\n\n\tget interactiveItemsCount() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.isInteractive).length;\n\t}\n\n\t/**\n\t * Accessibility\n\t */\n\n\tget hasAriaSemantics() {\n\t\treturn this.interactiveItemsCount > 1;\n\t}\n\n\tget accessibleRole() {\n\t\treturn this.hasAriaSemantics ? \"toolbar\" : undefined;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn this.hasAriaSemantics ? getEffectiveAriaLabelText(this) : undefined;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\trole: this.accessibleRole,\n\t\t\t\taccessibleName: this.ariaLabelText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\taccessibleName: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\ttooltip: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\taccessibilityAttributes: {\n\t\t\t\t\texpanded: this.overflowButtonDOM?.accessibilityAttributes.expanded,\n\t\t\t\t\thasPopup: HasPopup.Menu,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Toolbar Overflow Popover\n\t */\n\n\tget overflowButtonDOM(): Button | null {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-overflow-btn\");\n\t}\n\n\tget itemsDOM() {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-items\");\n\t}\n\n\tget hasItemWithText(): boolean {\n\t\treturn this.itemsToOverflow.some((item: ToolbarItem) => item.containsText);\n\t}\n\n\tget hasFlexibleSpacers() {\n\t\treturn this.items.some((item: ToolbarItem) => item.hasFlexibleWidth);\n\t}\n\n\t/**\n\t * Lifecycle methods\n\t */\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResize);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResize);\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\" && changeInfo.child === this.itemsToOverflow[0]) {\n\t\t\tthis.onToolbarItemChange();\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.detachListeners();\n\t\tthis.attachListeners();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\n\t\tthis.storeItemsWidth();\n\t\tthis.processOverflowLayout();\n\t}\n\n\t/**\n\t * Returns if the overflow popup is open.\n\t *\n\t * @public\n\t */\n\tasync isOverflowOpen(): Promise<boolean> {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\treturn overflowPopover!.isOpen();\n\t}\n\n\tasync openOverflow(): Promise<void> {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\toverflowPopover!.showAt(this.overflowButtonDOM!);\n\t\tthis.reverseOverflow = overflowPopover!.actualPlacementType === \"Top\";\n\t}\n\n\tasync closeOverflow() {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\toverflowPopover!.close();\n\t}\n\n\ttoggleOverflow() {\n\t\tif (this.popoverOpen) {\n\t\t\tthis.closeOverflow();\n\t\t} else {\n\t\t\tthis.openOverflow();\n\t\t}\n\t}\n\n\tasync getOverflowPopover(): Promise<Popover | null> {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-overflow-popover\");\n\t}\n\n\t/**\n\t * Layout management\n\t */\n\n\tprocessOverflowLayout() {\n\t\tconst containerWidth = this.offsetWidth - this.padding;\n\t\tconst contentWidth = this.itemsWidth;\n\t\tconst overflowSpace = contentWidth - containerWidth + this.overflowButtonSize;\n\n\t\t// skip calculation if the width has not been changed or if the items width has not been changed\n\t\tif (this.width === containerWidth && this.contentWidth === contentWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.distributeItems(overflowSpace);\n\t\tthis.width = containerWidth;\n\t\tthis.contentWidth = contentWidth;\n\t}\n\n\tstoreItemsWidth() {\n\t\tlet totalWidth = 0;\n\n\t\tthis.items.forEach((item: ToolbarItem) => {\n\t\t\tconst itemWidth = this.getItemWidth(item);\n\t\t\ttotalWidth += itemWidth;\n\t\t\tthis.ITEMS_WIDTH_MAP.set(item._id, itemWidth);\n\t\t});\n\n\t\tthis.itemsWidth = totalWidth;\n\t}\n\n\tdistributeItems(overflowSpace = 0) {\n\t\tconst movableItems = this.movableItems.reverse();\n\t\tlet index = 0;\n\t\tlet currentItem = movableItems[index];\n\n\t\tthis.itemsToOverflow = [];\n\n\t\t// distribute items that always overflow\n\t\tthis.distributeItemsThatAlwaysOverflow();\n\n\t\twhile (overflowSpace > 0 && currentItem) {\n\t\t\tthis.itemsToOverflow.unshift(currentItem);\n\t\t\toverflowSpace -= this.getCachedItemWidth(currentItem?._id) || 0;\n\t\t\tindex++;\n\t\t\tcurrentItem = movableItems[index];\n\t\t}\n\n\t\t// If the last bar item is a spacer, force it to the overflow even if there is enough space for it\n\t\tif (index < movableItems.length) {\n\t\t\tlet lastItem = movableItems[index];\n\t\t\twhile (index <= movableItems.length - 1 && lastItem.isSeparator) {\n\t\t\t\tthis.itemsToOverflow.unshift(lastItem);\n\t\t\t\tindex++;\n\t\t\t\tlastItem = movableItems[index];\n\t\t\t}\n\t\t}\n\n\t\tthis.setSeperatorsVisibilityInOverflow();\n\t}\n\n\tdistributeItemsThatAlwaysOverflow() {\n\t\tthis.alwaysOverflowItems.forEach((item: ToolbarItem) => {\n\t\t\tthis.itemsToOverflow.push(item);\n\t\t});\n\t}\n\n\tsetSeperatorsVisibilityInOverflow() {\n\t\tthis.itemsToOverflow.forEach((item, idx, items) => {\n\t\t\tif (item.isSeparator) {\n\t\t\t\t(item as ToolbarSeparator).visible = this.shouldShowSeparatorInOverflow(idx, items);\n\t\t\t}\n\t\t});\n\t}\n\n\tshouldShowSeparatorInOverflow(separatorIdx: number, overflowItems: Array<ToolbarItem>) {\n\t\tlet foundPrevNonSeparatorItem = false;\n\t\tlet foundNextNonSeperatorItem = false;\n\n\t\t// search for non-separator item before and after the seperator\n\t\toverflowItems.forEach((item, idx) => {\n\t\t\tif (idx < separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundPrevNonSeparatorItem = true;\n\t\t\t}\n\t\t\tif (idx > separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundNextNonSeperatorItem = true;\n\t\t\t}\n\t\t});\n\n\t\treturn foundPrevNonSeparatorItem && foundNextNonSeperatorItem;\n\t}\n\n\t/**\n\t * Event Handlers\n\t */\n\n\tonOverflowPopoverClosed() {\n\t\tthis.popoverOpen = false;\n\t\tif (this.overflowButtonDOM) {\n\t\t\tthis.overflowButtonDOM.accessibilityAttributes.expanded = false;\n\t\t}\n\t}\n\n\tonOverflowPopoverOpened() {\n\t\tthis.popoverOpen = true;\n\t\tif (this.overflowButtonDOM) {\n\t\t\tthis.overflowButtonDOM.accessibilityAttributes.expanded = true;\n\t\t}\n\t}\n\n\tonResize() {\n\t\tif (!this.itemsWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.closeOverflow();\n\t\tthis.processOverflowLayout();\n\t}\n\n\tonInteract(e: CustomEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target.closest<ToolbarItem>(\".ui5-tb-item\") || target.closest<ToolbarItem>(\".ui5-tb-popover-item\");\n\n\t\tif (target === this.overflowButtonDOM) {\n\t\t\tthis.toggleOverflow();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst refItemId = target.getAttribute(\"data-ui5-external-action-item-id\");\n\n\t\tif (refItemId) {\n\t\t\tconst abstractItem = this.getItemByID(refItemId);\n\t\t\tconst eventType: string = e.type.replace(\"ui5-\", \"\");\n\t\t\tconst prevented = !abstractItem?.fireEvent(eventType, e.detail, true);\n\t\t\tconst eventOptions = abstractItem?.subscribedEvents.get(eventType);\n\n\t\t\tif (prevented || abstractItem?.preventOverflowClosing || eventOptions?.preventClosing) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.closeOverflow();\n\t\t}\n\t}\n\n\t/**\n\t * Private members\n\t */\n\n\tasync attachListeners() {\n\t\tconst popover = await this.getOverflowPopover();\n\n\t\tthis.subscribedEvents.forEach((e: string) => {\n\t\t\tthis.itemsDOM?.addEventListener(e, this._onInteract);\n\t\t\tpopover?.addEventListener(e, this._onInteract);\n\t\t});\n\t}\n\n\tasync detachListeners() {\n\t\tconst popover = await this.getOverflowPopover();\n\n\t\tthis.subscribedEvents.forEach((e: string) => {\n\t\t\tthis.itemsDOM?.removeEventListener(e, this._onInteract);\n\t\t\tpopover?.removeEventListener(e, this._onInteract);\n\t\t});\n\t}\n\n\tonToolbarItemChange() {\n\t\t// some items were updated reset the cache and trigger a re-render\n\t\tthis.itemsToOverflow = [];\n\t\tthis.contentWidth = 0; // re-render\n\t}\n\n\tgetItemsInfo(items: Array<ToolbarItem>) {\n\t\treturn items.map((item: ToolbarItem) => {\n\t\t\tconst ElementClass = getRegisteredToolbarItem(item.constructor.name);\n\n\t\t\tif (!ElementClass) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst toolbarItem = {\n\t\t\t\ttoolbarTemplate: executeTemplate(ElementClass.toolbarTemplate, item),\n\t\t\t\ttoolbarPopoverTemplate: executeTemplate(ElementClass.toolbarPopoverTemplate, item),\n\t\t\t};\n\n\t\t\treturn toolbarItem;\n\t\t});\n\t}\n\n\tgetItemWidth(item: ToolbarItem): number {\n\t\t// Spacer width - always 0 for flexible spacers, so that they shrink, otherwise - measure the width normally\n\t\tif (item.ignoreSpace || item.isSeparator) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst id: string = item._id;\n\t\t// Measure rendered width for spacers with width, and for normal items\n\t\tconst renderedItem = this.getRegisteredToolbarItemByID(id);\n\n\t\tlet itemWidth = 0;\n\n\t\tif (renderedItem) {\n\t\t\tconst ItemCSSStyleSet = getComputedStyle(renderedItem);\n\t\t\titemWidth = renderedItem.offsetWidth + parsePxValue(ItemCSSStyleSet, \"margin-inline-end\")\n\t\t\t\t+ parsePxValue(ItemCSSStyleSet, \"margin-inline-start\");\n\t\t} else {\n\t\t\titemWidth = this.getCachedItemWidth(id) || 0;\n\t\t}\n\n\t\treturn Math.ceil(itemWidth);\n\t}\n\n\tgetCachedItemWidth(id: string) {\n\t\treturn this.ITEMS_WIDTH_MAP.get(id);\n\t}\n\n\tgetItemByID(id: string) {\n\t\treturn this.items.find(item => item._id === id);\n\t}\n\n\tgetRegisteredToolbarItemByID(id: string): HTMLElement | null {\n\t\treturn this.itemsDOM!.querySelector(`[data-ui5-external-action-item-id=\"${id}\"]`);\n\t}\n}\n\nToolbar.define();\n\nexport default Toolbar;\n"]}
1
+ {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../src/Toolbar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element, { ChangeInfo } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport executeTemplate from \"@ui5/webcomponents-base/dist/renderer/executeTemplate.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AriaLabelHelper.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getScopedVarName } from \"@ui5/webcomponents-base/dist/CustomElementsScope.js\";\n\nimport {\n\tTOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport ToolbarTemplate from \"./generated/templates/ToolbarTemplate.lit.js\";\nimport ToolbarCss from \"./generated/themes/Toolbar.css.js\";\n\nimport ToolbarPopoverTemplate from \"./generated/templates/ToolbarPopoverTemplate.lit.js\";\nimport ToolbarPopoverCss from \"./generated/themes/ToolbarPopover.css.js\";\n\nimport ToolbarAlign from \"./types/ToolbarAlign.js\";\nimport ToolbarItemOverflowBehavior from \"./types/ToolbarItemOverflowBehavior.js\";\nimport HasPopup from \"./types/HasPopup.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\nimport type ToolbarSeparator from \"./ToolbarSeparator.js\";\n\nimport {\n\tgetRegisteredToolbarItem,\n\tgetRegisteredStyles,\n\tgetRegisteredStaticAreaStyles,\n\tgetRegisteredDependencies,\n} from \"./ToolbarRegistry.js\";\n\nimport Button from \"./Button.js\";\nimport Popover from \"./Popover.js\";\n\nfunction calculateCSSREMValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"rem\", \"\")) * parseInt(getComputedStyle(document.body).getPropertyValue(\"font-size\"));\n}\n\nfunction parsePxValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"px\", \"\"));\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-toolbar</code> component is used to create a horizontal layout with items.\n * The items can be overflowing in a popover, when the space is not enough to show all of them.\n *\n * <h3>Keyboard Handling</h3>\n * The <code>ui5-toolbar</code> provides advanced keyboard handling.\n * <br>\n * <ul>\n * <li>The control is not interactive, but can contain of interactive elements </li>\n * <li>[TAB] - iterates through elements</li>\n * </ul>\n * <br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/Toolbar\";</code>\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar\",\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: ToolbarTemplate,\n\tstaticAreaTemplate: ToolbarPopoverTemplate,\n})\nclass Toolbar extends UI5Element {\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Indicated the direction in which the Toolbar items will be aligned.\n\t *\n\t * @public\n\t * @default \"End\"\n\t */\n\t@property({ type: ToolbarAlign, defaultValue: ToolbarAlign.End })\n\talignContent!: `${ToolbarAlign}`;\n\n\t/**\n\t * Calculated width of the whole toolbar.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ validator: Integer })\n\twidth?: number;\n\n\t/**\n\t * Calculated width of the toolbar content.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ validator: Integer })\n\tcontentWidth?: number;\n\n\t/**\n\t * Notifies the toolbar if it should show the items in a reverse way if Toolbar Popover needs to be placed on \"Top\" position.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\treverseOverflow!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\taccessibleName!: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t/**\n\t * Defines the items of the component.\n *\n * <b>Note:</b> Currently only <code>ui5-toolbar-button</code>, <code>ui5-toolbar-select</code>, <code>ui5-toolbar-separator</code> and <code>ui5-toolbar-spacer</code> are allowed here.\n\t *\n\t * @public\n\t */\n\t@slot({ \"default\": true, type: HTMLElement, invalidateOnChildChange: true })\n\titems!: Array<ToolbarItem>\n\n\t_onResize!: ResizeObserverCallback;\n\t_onInteract!: EventListener;\n\titemsToOverflow: Array<ToolbarItem> = [];\n\titemsWidth = 0;\n\tpopoverOpen = false;\n\titemsWidthMeasured = false;\n\n\tITEMS_WIDTH_MAP: Map<string, number> = new Map();\n\n\tstatic get styles() {\n\t\tconst styles = getRegisteredStyles();\n\t\treturn [\n\t\t\tToolbarCss,\n\t\t\t...styles,\n\t\t];\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\tconst styles = getRegisteredStaticAreaStyles();\n\t\treturn [\n\t\t\tToolbarPopoverCss,\n\t\t\t...styles,\n\t\t];\n\t}\n\n\tstatic get dependencies() {\n\t\tconst deps = getRegisteredDependencies();\n\t\treturn [\n\t\t\tPopover,\n\t\t\tButton,\n\t\t\t...deps,\n\t\t];\n\t}\n\n\tstatic async onDefine() {\n\t\tToolbar.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._onResize = this.onResize.bind(this);\n\t\tthis._onInteract = (e: Event) => this.onInteract(e as CustomEvent);\n\t}\n\n\t/**\n\t * Read-only members\n\t */\n\n\tget overflowButtonSize(): number {\n\t\treturn this.overflowButtonDOM?.getBoundingClientRect().width || 0;\n\t}\n\n\tget padding(): number {\n\t\tconst toolbarComputedStyle = getComputedStyle(this.getDomRef()!);\n\t\treturn calculateCSSREMValue(toolbarComputedStyle, getScopedVarName(\"--_ui5-toolbar-padding-left\"))\n\t\t\t+ calculateCSSREMValue(toolbarComputedStyle, getScopedVarName(\"--_ui5-toolbar-padding-right\"));\n\t}\n\n\tget subscribedEvents() {\n\t\treturn this.items\n\t\t\t.map((item: ToolbarItem) => Array.from(item.subscribedEvents.keys()))\n\t\t\t.flat()\n\t\t\t// remove duplicates\n\t\t\t.filter((value, index, self) => self.indexOf(value) === index);\n\t}\n\n\tget alwaysOverflowItems() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.overflowPriority === ToolbarItemOverflowBehavior.AlwaysOverflow);\n\t}\n\n\tget movableItems() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.overflowPriority !== ToolbarItemOverflowBehavior.AlwaysOverflow && item.overflowPriority !== ToolbarItemOverflowBehavior.NeverOverflow);\n\t}\n\n\tget overflowItems() {\n\t\t// spacers are ignored\n\t\tconst overflowItems = this.getItemsInfo(this.itemsToOverflow.filter(item => !item.ignoreSpace));\n\t\treturn this.reverseOverflow ? overflowItems.reverse() : overflowItems;\n\t}\n\n\tget standardItems() {\n\t\treturn this.getItemsInfo(this.items.filter(item => this.itemsToOverflow.indexOf(item) === -1));\n\t}\n\n\tget hideOverflowButton() {\n\t\treturn this.itemsToOverflow.filter(item => !(item.ignoreSpace || item.isSeparator)).length === 0;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\titems: {\n\t\t\t\t\"ui5-tb-items\": true,\n\t\t\t\t\"ui5-tb-items-full-width\": this.hasFlexibleSpacers,\n\t\t\t},\n\t\t\toverflow: {\n\t\t\t\t\"ui5-overflow-list--alignleft\": this.hasItemWithText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\t\"ui5-tb-item\": true,\n\t\t\t\t\"ui5-tb-overflow-btn\": true,\n\t\t\t\t\"ui5-tb-overflow-btn-hidden\": this.hideOverflowButton,\n\t\t\t},\n\t\t};\n\t}\n\n\tget interactiveItemsCount() {\n\t\treturn this.items.filter((item: ToolbarItem) => item.isInteractive).length;\n\t}\n\n\t/**\n\t * Accessibility\n\t */\n\n\tget hasAriaSemantics() {\n\t\treturn this.interactiveItemsCount > 1;\n\t}\n\n\tget accessibleRole() {\n\t\treturn this.hasAriaSemantics ? \"toolbar\" : undefined;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn this.hasAriaSemantics ? getEffectiveAriaLabelText(this) : undefined;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\trole: this.accessibleRole,\n\t\t\t\taccessibleName: this.ariaLabelText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\taccessibleName: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\ttooltip: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\taccessibilityAttributes: {\n\t\t\t\t\texpanded: this.overflowButtonDOM?.accessibilityAttributes.expanded,\n\t\t\t\t\thasPopup: HasPopup.Menu.toLowerCase(),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Toolbar Overflow Popover\n\t */\n\n\tget overflowButtonDOM(): Button | null {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-overflow-btn\");\n\t}\n\n\tget itemsDOM() {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-items\");\n\t}\n\n\tget hasItemWithText(): boolean {\n\t\treturn this.itemsToOverflow.some((item: ToolbarItem) => item.containsText);\n\t}\n\n\tget hasFlexibleSpacers() {\n\t\treturn this.items.some((item: ToolbarItem) => item.hasFlexibleWidth);\n\t}\n\n\t/**\n\t * Lifecycle methods\n\t */\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResize);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResize);\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\" && changeInfo.child === this.itemsToOverflow[0]) {\n\t\t\tthis.onToolbarItemChange();\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.detachListeners();\n\t\tthis.attachListeners();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\n\t\tthis.storeItemsWidth();\n\t\tthis.processOverflowLayout();\n\t}\n\n\t/**\n\t * Returns if the overflow popup is open.\n\t *\n\t * @public\n\t */\n\tasync isOverflowOpen(): Promise<boolean> {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\treturn overflowPopover!.isOpen();\n\t}\n\n\tasync openOverflow(): Promise<void> {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\toverflowPopover!.showAt(this.overflowButtonDOM!);\n\t\tthis.reverseOverflow = overflowPopover!.actualPlacementType === \"Top\";\n\t}\n\n\tasync closeOverflow() {\n\t\tconst overflowPopover = await this.getOverflowPopover();\n\t\toverflowPopover!.close();\n\t}\n\n\ttoggleOverflow() {\n\t\tif (this.popoverOpen) {\n\t\t\tthis.closeOverflow();\n\t\t} else {\n\t\t\tthis.openOverflow();\n\t\t}\n\t}\n\n\tasync getOverflowPopover(): Promise<Popover | null> {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-overflow-popover\");\n\t}\n\n\t/**\n\t * Layout management\n\t */\n\n\tprocessOverflowLayout() {\n\t\tconst containerWidth = this.offsetWidth - this.padding;\n\t\tconst contentWidth = this.itemsWidth;\n\t\tconst overflowSpace = contentWidth - containerWidth + this.overflowButtonSize;\n\n\t\t// skip calculation if the width has not been changed or if the items width has not been changed\n\t\tif (this.width === containerWidth && this.contentWidth === contentWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.distributeItems(overflowSpace);\n\t\tthis.width = containerWidth;\n\t\tthis.contentWidth = contentWidth;\n\t}\n\n\tstoreItemsWidth() {\n\t\tlet totalWidth = 0;\n\n\t\tthis.items.forEach((item: ToolbarItem) => {\n\t\t\tconst itemWidth = this.getItemWidth(item);\n\t\t\ttotalWidth += itemWidth;\n\t\t\tthis.ITEMS_WIDTH_MAP.set(item._id, itemWidth);\n\t\t});\n\n\t\tthis.itemsWidth = totalWidth;\n\t}\n\n\tdistributeItems(overflowSpace = 0) {\n\t\tconst movableItems = this.movableItems.reverse();\n\t\tlet index = 0;\n\t\tlet currentItem = movableItems[index];\n\n\t\tthis.itemsToOverflow = [];\n\n\t\t// distribute items that always overflow\n\t\tthis.distributeItemsThatAlwaysOverflow();\n\n\t\twhile (overflowSpace > 0 && currentItem) {\n\t\t\tthis.itemsToOverflow.unshift(currentItem);\n\t\t\toverflowSpace -= this.getCachedItemWidth(currentItem?._id) || 0;\n\t\t\tindex++;\n\t\t\tcurrentItem = movableItems[index];\n\t\t}\n\n\t\t// If the last bar item is a spacer, force it to the overflow even if there is enough space for it\n\t\tif (index < movableItems.length) {\n\t\t\tlet lastItem = movableItems[index];\n\t\t\twhile (index <= movableItems.length - 1 && lastItem.isSeparator) {\n\t\t\t\tthis.itemsToOverflow.unshift(lastItem);\n\t\t\t\tindex++;\n\t\t\t\tlastItem = movableItems[index];\n\t\t\t}\n\t\t}\n\n\t\tthis.setSeperatorsVisibilityInOverflow();\n\t}\n\n\tdistributeItemsThatAlwaysOverflow() {\n\t\tthis.alwaysOverflowItems.forEach((item: ToolbarItem) => {\n\t\t\tthis.itemsToOverflow.push(item);\n\t\t});\n\t}\n\n\tsetSeperatorsVisibilityInOverflow() {\n\t\tthis.itemsToOverflow.forEach((item, idx, items) => {\n\t\t\tif (item.isSeparator) {\n\t\t\t\t(item as ToolbarSeparator).visible = this.shouldShowSeparatorInOverflow(idx, items);\n\t\t\t}\n\t\t});\n\t}\n\n\tshouldShowSeparatorInOverflow(separatorIdx: number, overflowItems: Array<ToolbarItem>) {\n\t\tlet foundPrevNonSeparatorItem = false;\n\t\tlet foundNextNonSeperatorItem = false;\n\n\t\t// search for non-separator item before and after the seperator\n\t\toverflowItems.forEach((item, idx) => {\n\t\t\tif (idx < separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundPrevNonSeparatorItem = true;\n\t\t\t}\n\t\t\tif (idx > separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundNextNonSeperatorItem = true;\n\t\t\t}\n\t\t});\n\n\t\treturn foundPrevNonSeparatorItem && foundNextNonSeperatorItem;\n\t}\n\n\t/**\n\t * Event Handlers\n\t */\n\n\tonOverflowPopoverClosed() {\n\t\tthis.popoverOpen = false;\n\t\tif (this.overflowButtonDOM) {\n\t\t\tthis.overflowButtonDOM.accessibilityAttributes.expanded = false;\n\t\t}\n\t}\n\n\tonOverflowPopoverOpened() {\n\t\tthis.popoverOpen = true;\n\t\tif (this.overflowButtonDOM) {\n\t\t\tthis.overflowButtonDOM.accessibilityAttributes.expanded = true;\n\t\t}\n\t}\n\n\tonResize() {\n\t\tif (!this.itemsWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.closeOverflow();\n\t\tthis.processOverflowLayout();\n\t}\n\n\tonInteract(e: CustomEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target.closest<ToolbarItem>(\".ui5-tb-item\") || target.closest<ToolbarItem>(\".ui5-tb-popover-item\");\n\n\t\tif (target === this.overflowButtonDOM) {\n\t\t\tthis.toggleOverflow();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!item) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst refItemId = target.getAttribute(\"data-ui5-external-action-item-id\");\n\n\t\tif (refItemId) {\n\t\t\tconst abstractItem = this.getItemByID(refItemId);\n\t\t\tconst eventType: string = e.type.replace(\"ui5-\", \"\");\n\t\t\tconst prevented = !abstractItem?.fireEvent(eventType, e.detail, true);\n\t\t\tconst eventOptions = abstractItem?.subscribedEvents.get(eventType);\n\n\t\t\tif (prevented || abstractItem?.preventOverflowClosing || eventOptions?.preventClosing) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.closeOverflow();\n\t\t}\n\t}\n\n\t/**\n\t * Private members\n\t */\n\n\tasync attachListeners() {\n\t\tconst popover = await this.getOverflowPopover();\n\n\t\tthis.subscribedEvents.forEach((e: string) => {\n\t\t\tthis.itemsDOM?.addEventListener(e, this._onInteract);\n\t\t\tpopover?.addEventListener(e, this._onInteract);\n\t\t});\n\t}\n\n\tasync detachListeners() {\n\t\tconst popover = await this.getOverflowPopover();\n\n\t\tthis.subscribedEvents.forEach((e: string) => {\n\t\t\tthis.itemsDOM?.removeEventListener(e, this._onInteract);\n\t\t\tpopover?.removeEventListener(e, this._onInteract);\n\t\t});\n\t}\n\n\tonToolbarItemChange() {\n\t\t// some items were updated reset the cache and trigger a re-render\n\t\tthis.itemsToOverflow = [];\n\t\tthis.contentWidth = 0; // re-render\n\t}\n\n\tgetItemsInfo(items: Array<ToolbarItem>) {\n\t\treturn items.map((item: ToolbarItem) => {\n\t\t\tconst ElementClass = getRegisteredToolbarItem(item.constructor.name);\n\n\t\t\tif (!ElementClass) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst toolbarItem = {\n\t\t\t\ttoolbarTemplate: executeTemplate(ElementClass.toolbarTemplate, item),\n\t\t\t\ttoolbarPopoverTemplate: executeTemplate(ElementClass.toolbarPopoverTemplate, item),\n\t\t\t};\n\n\t\t\treturn toolbarItem;\n\t\t});\n\t}\n\n\tgetItemWidth(item: ToolbarItem): number {\n\t\t// Spacer width - always 0 for flexible spacers, so that they shrink, otherwise - measure the width normally\n\t\tif (item.ignoreSpace || item.isSeparator) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst id: string = item._id;\n\t\t// Measure rendered width for spacers with width, and for normal items\n\t\tconst renderedItem = this.getRegisteredToolbarItemByID(id);\n\n\t\tlet itemWidth = 0;\n\n\t\tif (renderedItem) {\n\t\t\tconst ItemCSSStyleSet = getComputedStyle(renderedItem);\n\t\t\titemWidth = renderedItem.offsetWidth + parsePxValue(ItemCSSStyleSet, \"margin-inline-end\")\n\t\t\t\t+ parsePxValue(ItemCSSStyleSet, \"margin-inline-start\");\n\t\t} else {\n\t\t\titemWidth = this.getCachedItemWidth(id) || 0;\n\t\t}\n\n\t\treturn Math.ceil(itemWidth);\n\t}\n\n\tgetCachedItemWidth(id: string) {\n\t\treturn this.ITEMS_WIDTH_MAP.get(id);\n\t}\n\n\tgetItemByID(id: string) {\n\t\treturn this.items.find(item => item._id === id);\n\t}\n\n\tgetRegisteredToolbarItemByID(id: string): HTMLElement | null {\n\t\treturn this.itemsDOM!.querySelector(`[data-ui5-external-action-item-id=\"${id}\"]`);\n\t}\n}\n\nToolbar.define();\n\nexport default Toolbar;\n"]}
@@ -105,7 +105,7 @@ declare class ToolbarButton extends ToolbarItem {
105
105
  * <ul>
106
106
  * <li><code>Dialog</code></li>
107
107
  * <li><code>Grid</code></li>
108
- * <li><code>Listbox</code></li>
108
+ * <li><code>ListBox</code></li>
109
109
  * <li><code>Menu</code></li>
110
110
  * <li><code>Tree</code></li>
111
111
  * </ul>
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarButton.js","sourceRoot":"","sources":["../src/ToolbarButton.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,OAAO,MAAM,+CAA+C,CAAC;AACpE,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAEnD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,OAAO,qBAAqB,MAAM,oDAAoD,CAAC;AACvF,OAAO,4BAA4B,MAAM,2DAA2D,CAAC;AAErG,OAAO,uBAAuB,MAAM,gDAAgD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;;;;;;;;GAeG;AAgBH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,WAAW;IAmItC,MAAM,KAAK,gBAAgB;QAC1B,OAAO,uBAAuB,CAAC;IAChC,CAAC;IAED,IAAI,MAAM;QACT,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;SAC9C,CAAC;IACH,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,KAAK,eAAe;QACzB,OAAO,qBAAqB,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,sBAAsB;QAChC,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,IAAI,gBAAgB;QACnB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,OAAO,GAAG,CAAC;IACZ,CAAC;CACD,CAAA;AArJA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACT;AAmBnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;6CAC1C;AAa3B;IADC,QAAQ,EAAE;2CACG;AASd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACV;AAUlB;IADC,QAAQ,EAAE;8CACM;AASjB;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;qDACd;AASxB;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;wDACJ;AA8B3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACuB;AAQlD;IADC,QAAQ,EAAE;2CACG;AAYd;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;4CAClB;AAjIV,aAAa;IAflB,aAAa,CAAC;QACd,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,CAAC,MAAM,CAAC;KACtB,CAAC;IAEF;;;;;;;;OAQG;;IACF,KAAK,CAAC,OAAO,CAAC;GACT,aAAa,CA+JlB;AAED,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAEnC,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","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 CSSSize from \"@ui5/webcomponents-base/dist/types/CSSSize.js\";\nimport Button from \"./Button.js\";\nimport type { AccessibilityAttributes as ButtonAccessibilityAttributes } from \"./Button.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\nimport type { IEventOptions } from \"./ToolbarItem.js\";\nimport ToolbarButtonTemplate from \"./generated/templates/ToolbarButtonTemplate.lit.js\";\nimport ToolbarPopoverButtonTemplate from \"./generated/templates/ToolbarPopoverButtonTemplate.lit.js\";\n\nimport ToolbarButtonPopoverCss from \"./generated/themes/ToolbarButtonPopover.css.js\";\n\nimport { registerToolbarItem } from \"./ToolbarRegistry.js\";\n\ntype AccessibilityAttributes = ButtonAccessibilityAttributes;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-toolbar-button</code> represents an abstract action,\n * used in the <code>ui5-toolbar</code>.\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/ToolbarButton\";</code>\n *\n * @constructor\n * @abstract\n * @extends ToolbarItem\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar-button\",\n\tdependencies: [Button],\n})\n\n/**\n * Fired when the component is activated either with a\n * mouse/tap or by using the Enter or Space key.\n * <br><br>\n * <b>Note:</b> The event will not be fired if the <code>disabled</code>\n * property is set to <code>true</code>.\n *\n * @public\n */\n@event(\"click\")\nclass ToolbarButton extends ToolbarItem {\n\t/**\n\t * Defines if the action is disabled.\n\t * <br><br>\n\t * <b>Note:</b> a disabled action can't be pressed or focused, and it is not in the tab chain.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the action design.\n\t * <b>The available values are:</b>\n\t *\n\t * <ul>\n\t * <li><code>Default</code></li>\n\t * <li><code>Emphasized</code></li>\n\t * <li><code>Positive</code></li>\n\t * <li><code>Negative</code></li>\n\t * <li><code>Transparent</code></li>\n\t * <li><code>Attention</code></li>\n\t * </ul>\n\t *\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property({ type: ButtonDesign, defaultValue: ButtonDesign.Default })\n\tdesign!: `${ButtonDesign}`;\n\n\t/**\n\t * Defines the <code>icon</code> source URI.\n\t * <br><br>\n\t * <b>Note:</b>\n\t * SAP-icons font provides numerous buil-in icons. To find all the available icons, see the\n\t * <ui5-link target=\"_blank\" href=\"https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html\" class=\"api-table-content-cell-link\">Icon Explorer</ui5-link>.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ticon!: string;\n\n\t/**\n\t * Defines whether the icon should be displayed after the component text.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\ticonEnd!: boolean;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t * <br>\n\t * <b>Note:</b> A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ttooltip!: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t/**\n\t * An object of strings that defines several additional accessibility attribute values\n\t * for customization depending on the use case.\n\t *\n\t * It supports the following fields:\n\t *\n\t * <ul>\n\t * \t\t<li><code>expanded</code>: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed. Accepts the following string values:\n\t *\t\t\t<ul>\n\t *\t\t\t\t<li><code>true</code></li>\n\t *\t\t\t\t<li><code>false</code></li>\n\t *\t\t\t</ul>\n\t * \t\t</li>\n\t * \t\t<li><code>hasPopup</code>: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button. Accepts the following string values:\n\t * \t\t\t<ul>\n\t *\t\t\t\t<li><code>Dialog</code></li>\n\t *\t\t\t\t<li><code>Grid</code></li>\n\t *\t\t\t\t<li><code>Listbox</code></li>\n\t *\t\t\t\t<li><code>Menu</code></li>\n\t *\t\t\t\t<li><code>Tree</code></li>\n\t * \t\t\t</ul>\n\t * \t\t</li>\n\t * \t\t<li><code>controls</code>: Identifies the element (or elements) whose contents or presence are controlled by the button element. Accepts a string value.</li>\n\t * </ul>\n\t * @default {}\n\t * @public\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes!: AccessibilityAttributes;\n\n\t/**\n\t * Button text\n\t * @public\n\t * @default \"\"\n\t */\n\t@property()\n\ttext!: string;\n\n\t/**\n\t * Defines the width of the button.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ validator: CSSSize })\n\twidth?: string;\n\n\tstatic get staticAreaStyles() {\n\t\treturn ToolbarButtonPopoverCss;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twidth: this.width,\n\t\t\tdisplay: this.hidden ? \"none\" : \"inline-block\",\n\t\t};\n\t}\n\n\tget containsText() {\n\t\treturn true;\n\t}\n\n\tstatic get toolbarTemplate() {\n\t\treturn ToolbarButtonTemplate;\n\t}\n\n\tstatic get toolbarPopoverTemplate() {\n\t\treturn ToolbarPopoverButtonTemplate;\n\t}\n\n\tget subscribedEvents(): Map<string, IEventOptions> {\n\t\tconst map = new Map();\n\t\tmap.set(\"click\", { preventClosing: false });\n\t\treturn map;\n\t}\n}\n\nregisterToolbarItem(ToolbarButton);\n\nToolbarButton.define();\n\nexport default ToolbarButton;\n\nexport type {\n\tAccessibilityAttributes,\n};\n"]}
1
+ {"version":3,"file":"ToolbarButton.js","sourceRoot":"","sources":["../src/ToolbarButton.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,OAAO,MAAM,+CAA+C,CAAC;AACpE,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAEnD,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,OAAO,qBAAqB,MAAM,oDAAoD,CAAC;AACvF,OAAO,4BAA4B,MAAM,2DAA2D,CAAC;AAErG,OAAO,uBAAuB,MAAM,gDAAgD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;;;;;;;;GAeG;AAgBH,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,WAAW;IAmItC,MAAM,KAAK,gBAAgB;QAC1B,OAAO,uBAAuB,CAAC;IAChC,CAAC;IAED,IAAI,MAAM;QACT,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;SAC9C,CAAC;IACH,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,KAAK,eAAe;QACzB,OAAO,qBAAqB,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,sBAAsB;QAChC,OAAO,4BAA4B,CAAC;IACrC,CAAC;IAED,IAAI,gBAAgB;QACnB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5C,OAAO,GAAG,CAAC;IACZ,CAAC;CACD,CAAA;AArJA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACT;AAmBnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC;6CAC1C;AAa3B;IADC,QAAQ,EAAE;2CACG;AASd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CACV;AAUlB;IADC,QAAQ,EAAE;8CACM;AASjB;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;qDACd;AASxB;IADC,QAAQ,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;wDACJ;AA8B3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACuB;AAQlD;IADC,QAAQ,EAAE;2CACG;AAYd;IADC,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;4CAClB;AAjIV,aAAa;IAflB,aAAa,CAAC;QACd,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,CAAC,MAAM,CAAC;KACtB,CAAC;IAEF;;;;;;;;OAQG;;IACF,KAAK,CAAC,OAAO,CAAC;GACT,aAAa,CA+JlB;AAED,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAEnC,aAAa,CAAC,MAAM,EAAE,CAAC;AAEvB,eAAe,aAAa,CAAC","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 CSSSize from \"@ui5/webcomponents-base/dist/types/CSSSize.js\";\nimport Button from \"./Button.js\";\nimport type { AccessibilityAttributes as ButtonAccessibilityAttributes } from \"./Button.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\n\nimport ToolbarItem from \"./ToolbarItem.js\";\nimport type { IEventOptions } from \"./ToolbarItem.js\";\nimport ToolbarButtonTemplate from \"./generated/templates/ToolbarButtonTemplate.lit.js\";\nimport ToolbarPopoverButtonTemplate from \"./generated/templates/ToolbarPopoverButtonTemplate.lit.js\";\n\nimport ToolbarButtonPopoverCss from \"./generated/themes/ToolbarButtonPopover.css.js\";\n\nimport { registerToolbarItem } from \"./ToolbarRegistry.js\";\n\ntype AccessibilityAttributes = ButtonAccessibilityAttributes;\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n * The <code>ui5-toolbar-button</code> represents an abstract action,\n * used in the <code>ui5-toolbar</code>.\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents/dist/ToolbarButton\";</code>\n *\n * @constructor\n * @abstract\n * @extends ToolbarItem\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar-button\",\n\tdependencies: [Button],\n})\n\n/**\n * Fired when the component is activated either with a\n * mouse/tap or by using the Enter or Space key.\n * <br><br>\n * <b>Note:</b> The event will not be fired if the <code>disabled</code>\n * property is set to <code>true</code>.\n *\n * @public\n */\n@event(\"click\")\nclass ToolbarButton extends ToolbarItem {\n\t/**\n\t * Defines if the action is disabled.\n\t * <br><br>\n\t * <b>Note:</b> a disabled action can't be pressed or focused, and it is not in the tab chain.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the action design.\n\t * <b>The available values are:</b>\n\t *\n\t * <ul>\n\t * <li><code>Default</code></li>\n\t * <li><code>Emphasized</code></li>\n\t * <li><code>Positive</code></li>\n\t * <li><code>Negative</code></li>\n\t * <li><code>Transparent</code></li>\n\t * <li><code>Attention</code></li>\n\t * </ul>\n\t *\n\t * @default \"Default\"\n\t * @public\n\t */\n\t@property({ type: ButtonDesign, defaultValue: ButtonDesign.Default })\n\tdesign!: `${ButtonDesign}`;\n\n\t/**\n\t * Defines the <code>icon</code> source URI.\n\t * <br><br>\n\t * <b>Note:</b>\n\t * SAP-icons font provides numerous buil-in icons. To find all the available icons, see the\n\t * <ui5-link target=\"_blank\" href=\"https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html\" class=\"api-table-content-cell-link\">Icon Explorer</ui5-link>.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ticon!: string;\n\n\t/**\n\t * Defines whether the icon should be displayed after the component text.\n\t *\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\ticonEnd!: boolean;\n\n\t/**\n\t * Defines the tooltip of the component.\n\t * <br>\n\t * <b>Note:</b> A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ttooltip!: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the component.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property({ defaultValue: \"\" })\n\taccessibleNameRef!: string;\n\n\t/**\n\t * An object of strings that defines several additional accessibility attribute values\n\t * for customization depending on the use case.\n\t *\n\t * It supports the following fields:\n\t *\n\t * <ul>\n\t * \t\t<li><code>expanded</code>: Indicates whether the button, or another grouping element it controls, is currently expanded or collapsed. Accepts the following string values:\n\t *\t\t\t<ul>\n\t *\t\t\t\t<li><code>true</code></li>\n\t *\t\t\t\t<li><code>false</code></li>\n\t *\t\t\t</ul>\n\t * \t\t</li>\n\t * \t\t<li><code>hasPopup</code>: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the button. Accepts the following string values:\n\t * \t\t\t<ul>\n\t *\t\t\t\t<li><code>Dialog</code></li>\n\t *\t\t\t\t<li><code>Grid</code></li>\n\t *\t\t\t\t<li><code>ListBox</code></li>\n\t *\t\t\t\t<li><code>Menu</code></li>\n\t *\t\t\t\t<li><code>Tree</code></li>\n\t * \t\t\t</ul>\n\t * \t\t</li>\n\t * \t\t<li><code>controls</code>: Identifies the element (or elements) whose contents or presence are controlled by the button element. Accepts a string value.</li>\n\t * </ul>\n\t * @default {}\n\t * @public\n\t */\n\t@property({ type: Object })\n\taccessibilityAttributes!: AccessibilityAttributes;\n\n\t/**\n\t * Button text\n\t * @public\n\t * @default \"\"\n\t */\n\t@property()\n\ttext!: string;\n\n\t/**\n\t * Defines the width of the button.\n\t * <br><br>\n\t *\n\t * <b>Note:</b> all CSS sizes are supported - 'percentage', 'px', 'rem', 'auto', etc.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ validator: CSSSize })\n\twidth?: string;\n\n\tstatic get staticAreaStyles() {\n\t\treturn ToolbarButtonPopoverCss;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\twidth: this.width,\n\t\t\tdisplay: this.hidden ? \"none\" : \"inline-block\",\n\t\t};\n\t}\n\n\tget containsText() {\n\t\treturn true;\n\t}\n\n\tstatic get toolbarTemplate() {\n\t\treturn ToolbarButtonTemplate;\n\t}\n\n\tstatic get toolbarPopoverTemplate() {\n\t\treturn ToolbarPopoverButtonTemplate;\n\t}\n\n\tget subscribedEvents(): Map<string, IEventOptions> {\n\t\tconst map = new Map();\n\t\tmap.set(\"click\", { preventClosing: false });\n\t\treturn map;\n\t}\n}\n\nregisterToolbarItem(ToolbarButton);\n\nToolbarButton.define();\n\nexport default ToolbarButton;\n\nexport type {\n\tAccessibilityAttributes,\n};\n"]}
@@ -140,10 +140,10 @@ declare class TreeItemBase extends ListItem {
140
140
  ariaSelectedText: string | undefined;
141
141
  listItemAriaLabel: string | undefined;
142
142
  ariaOwns: string | undefined;
143
- ariaHaspopup: "Dialog" | "Grid" | "ListBox" | "Menu" | "Tree" | undefined;
144
- ariaSelected: boolean;
143
+ ariaHaspopup: "dialog" | "menu" | "grid" | "listbox" | "tree";
145
144
  ariaLabel: string;
146
145
  ariaLabelRadioButton: string;
146
+ ariaSelected?: boolean | undefined;
147
147
  ariaChecked?: boolean | undefined;
148
148
  };
149
149
  /**
@@ -74,8 +74,7 @@ let TreeItemBase = TreeItemBase_1 = class TreeItemBase extends ListItem {
74
74
  ariaSelectedText: this.ariaSelectedText,
75
75
  listItemAriaLabel: !this.accessibleName ? this._ariaLabel : undefined,
76
76
  ariaOwns: this.expanded ? `${this._id}-subtree` : undefined,
77
- ariaHaspopup: this.ariaHaspopup || undefined,
78
- ariaSelected: this.selected,
77
+ ariaHaspopup: this.ariaHaspopup?.toLowerCase() || undefined,
79
78
  };
80
79
  return { ...super._accInfo, ...accInfoSettings };
81
80
  }