@ui5/webcomponents 1.24.8 → 1.24.9

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 (369) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Button.d.ts +1 -0
  4. package/dist/Button.js +9 -2
  5. package/dist/Button.js.map +1 -1
  6. package/dist/Calendar.js +10 -5
  7. package/dist/Calendar.js.map +1 -1
  8. package/dist/DayPicker.js +3 -3
  9. package/dist/DayPicker.js.map +1 -1
  10. package/dist/MonthPicker.d.ts +1 -0
  11. package/dist/MonthPicker.js +1 -0
  12. package/dist/MonthPicker.js.map +1 -1
  13. package/dist/RatingIndicator.d.ts +1 -1
  14. package/dist/RatingIndicator.js +5 -1
  15. package/dist/RatingIndicator.js.map +1 -1
  16. package/dist/SegmentedButtonItem.js.map +1 -1
  17. package/dist/SplitButton.d.ts +13 -5
  18. package/dist/SplitButton.js +17 -8
  19. package/dist/SplitButton.js.map +1 -1
  20. package/dist/Table.d.ts +5 -17
  21. package/dist/Table.js +6 -25
  22. package/dist/Table.js.map +1 -1
  23. package/dist/Toolbar.js +2 -1
  24. package/dist/Toolbar.js.map +1 -1
  25. package/dist/ToolbarRegistry.js +1 -1
  26. package/dist/ToolbarRegistry.js.map +1 -1
  27. package/dist/YearPicker.d.ts +1 -0
  28. package/dist/YearPicker.js +1 -0
  29. package/dist/YearPicker.js.map +1 -1
  30. package/dist/css/themes/Avatar.css +1 -1
  31. package/dist/css/themes/AvatarGroup.css +1 -1
  32. package/dist/css/themes/Badge.css +1 -1
  33. package/dist/css/themes/Breadcrumbs.css +1 -1
  34. package/dist/css/themes/BusyIndicator.css +1 -1
  35. package/dist/css/themes/Button.css +1 -1
  36. package/dist/css/themes/Calendar.css +1 -1
  37. package/dist/css/themes/CalendarHeader.css +1 -1
  38. package/dist/css/themes/CalendarLegend.css +1 -1
  39. package/dist/css/themes/CalendarLegendItem.css +1 -1
  40. package/dist/css/themes/Card.css +1 -1
  41. package/dist/css/themes/CardHeader.css +1 -1
  42. package/dist/css/themes/Carousel.css +1 -1
  43. package/dist/css/themes/CheckBox.css +1 -1
  44. package/dist/css/themes/ColorPalette.css +1 -1
  45. package/dist/css/themes/ColorPaletteItem.css +1 -1
  46. package/dist/css/themes/ColorPalettePopover.css +1 -1
  47. package/dist/css/themes/ColorPicker.css +1 -1
  48. package/dist/css/themes/ComboBox.css +1 -1
  49. package/dist/css/themes/CustomListItem.css +1 -1
  50. package/dist/css/themes/DatePicker.css +1 -1
  51. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  52. package/dist/css/themes/DayPicker.css +1 -1
  53. package/dist/css/themes/Dialog.css +1 -1
  54. package/dist/css/themes/FileUploader.css +1 -1
  55. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  56. package/dist/css/themes/GrowingButton.css +1 -1
  57. package/dist/css/themes/Icon.css +1 -1
  58. package/dist/css/themes/Input.css +1 -1
  59. package/dist/css/themes/InputIcon.css +1 -1
  60. package/dist/css/themes/InputSharedStyles.css +1 -1
  61. package/dist/css/themes/Link.css +1 -1
  62. package/dist/css/themes/List.css +1 -1
  63. package/dist/css/themes/ListItem.css +1 -1
  64. package/dist/css/themes/ListItemBase.css +1 -1
  65. package/dist/css/themes/Menu.css +1 -1
  66. package/dist/css/themes/MenuListItem.css +1 -1
  67. package/dist/css/themes/MessageStrip.css +1 -1
  68. package/dist/css/themes/MonthPicker.css +1 -1
  69. package/dist/css/themes/MultiComboBox.css +1 -1
  70. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  71. package/dist/css/themes/MultiInput.css +1 -1
  72. package/dist/css/themes/NavigationMenu.css +1 -1
  73. package/dist/css/themes/Panel.css +1 -1
  74. package/dist/css/themes/Popover.css +1 -1
  75. package/dist/css/themes/PopupStaticAreaStyles.css +1 -1
  76. package/dist/css/themes/PopupsCommon.css +1 -1
  77. package/dist/css/themes/ProgressIndicator.css +1 -1
  78. package/dist/css/themes/RadioButton.css +1 -1
  79. package/dist/css/themes/RangeSlider.css +1 -1
  80. package/dist/css/themes/RatingIndicator.css +1 -1
  81. package/dist/css/themes/ResponsivePopover.css +1 -1
  82. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  83. package/dist/css/themes/SegmentedButton.css +1 -1
  84. package/dist/css/themes/Select.css +1 -1
  85. package/dist/css/themes/SelectMenu.css +1 -1
  86. package/dist/css/themes/SelectPopover.css +1 -1
  87. package/dist/css/themes/SliderBase.css +1 -1
  88. package/dist/css/themes/SplitButton.css +1 -1
  89. package/dist/css/themes/StepInput.css +1 -1
  90. package/dist/css/themes/Switch.css +1 -1
  91. package/dist/css/themes/TabContainer.css +1 -1
  92. package/dist/css/themes/TabInOverflow.css +1 -1
  93. package/dist/css/themes/TabInStrip.css +1 -1
  94. package/dist/css/themes/TabSemanticIcon.css +1 -1
  95. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  96. package/dist/css/themes/Table.css +1 -1
  97. package/dist/css/themes/TableCell.css +1 -1
  98. package/dist/css/themes/TableColumn.css +1 -1
  99. package/dist/css/themes/TableGroupRow.css +1 -1
  100. package/dist/css/themes/TableRow.css +1 -1
  101. package/dist/css/themes/TextArea.css +1 -1
  102. package/dist/css/themes/TimePicker.css +1 -1
  103. package/dist/css/themes/Toast.css +1 -1
  104. package/dist/css/themes/ToggleButton.css +1 -1
  105. package/dist/css/themes/Token.css +1 -1
  106. package/dist/css/themes/Tokenizer.css +1 -1
  107. package/dist/css/themes/TokenizerPopover.css +1 -1
  108. package/dist/css/themes/Toolbar.css +1 -1
  109. package/dist/css/themes/ToolbarPopover.css +1 -1
  110. package/dist/css/themes/TreeItem.css +1 -1
  111. package/dist/css/themes/ValueStateMessage.css +1 -1
  112. package/dist/css/themes/WheelSlider.css +1 -1
  113. package/dist/css/themes/YearPicker.css +1 -1
  114. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  115. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  116. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  117. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  118. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  119. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  120. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  121. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  122. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  123. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  124. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  125. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  126. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  127. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  128. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  129. package/dist/custom-elements-internal.json +1 -1
  130. package/dist/custom-elements.json +1 -1
  131. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  132. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  133. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  134. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  135. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  136. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  137. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  138. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  139. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  140. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  141. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  142. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  143. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  144. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  145. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  146. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  147. package/dist/generated/i18n/i18n-defaults.js +2 -1
  148. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  149. package/dist/generated/templates/MonthPickerTemplate.lit.js +1 -1
  150. package/dist/generated/templates/MonthPickerTemplate.lit.js.map +1 -1
  151. package/dist/generated/templates/SplitButtonTemplate.lit.js +1 -1
  152. package/dist/generated/templates/SplitButtonTemplate.lit.js.map +1 -1
  153. package/dist/generated/templates/TableTemplate.lit.js +10 -11
  154. package/dist/generated/templates/TableTemplate.lit.js.map +1 -1
  155. package/dist/generated/templates/YearPickerTemplate.lit.js +1 -1
  156. package/dist/generated/templates/YearPickerTemplate.lit.js.map +1 -1
  157. package/dist/generated/themes/Avatar.css.js +1 -1
  158. package/dist/generated/themes/Avatar.css.js.map +1 -1
  159. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  160. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  161. package/dist/generated/themes/Badge.css.js +1 -1
  162. package/dist/generated/themes/Badge.css.js.map +1 -1
  163. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  164. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  165. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  166. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  167. package/dist/generated/themes/Button.css.js +1 -1
  168. package/dist/generated/themes/Button.css.js.map +1 -1
  169. package/dist/generated/themes/Calendar.css.js +1 -1
  170. package/dist/generated/themes/Calendar.css.js.map +1 -1
  171. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  172. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  173. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  174. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  175. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  176. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  177. package/dist/generated/themes/Card.css.js +1 -1
  178. package/dist/generated/themes/Card.css.js.map +1 -1
  179. package/dist/generated/themes/CardHeader.css.js +1 -1
  180. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  181. package/dist/generated/themes/Carousel.css.js +1 -1
  182. package/dist/generated/themes/Carousel.css.js.map +1 -1
  183. package/dist/generated/themes/CheckBox.css.js +1 -1
  184. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  185. package/dist/generated/themes/ColorPalette.css.js +1 -1
  186. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  187. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  188. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  189. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  190. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  191. package/dist/generated/themes/ColorPicker.css.js +1 -1
  192. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  193. package/dist/generated/themes/ComboBox.css.js +1 -1
  194. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  195. package/dist/generated/themes/CustomListItem.css.js +1 -1
  196. package/dist/generated/themes/CustomListItem.css.js.map +1 -1
  197. package/dist/generated/themes/DatePicker.css.js +1 -1
  198. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  199. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  200. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  201. package/dist/generated/themes/DayPicker.css.js +1 -1
  202. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  203. package/dist/generated/themes/Dialog.css.js +1 -1
  204. package/dist/generated/themes/Dialog.css.js.map +1 -1
  205. package/dist/generated/themes/FileUploader.css.js +1 -1
  206. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  207. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  208. package/dist/generated/themes/GroupHeaderListItem.css.js.map +1 -1
  209. package/dist/generated/themes/GrowingButton.css.js +1 -1
  210. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  211. package/dist/generated/themes/Icon.css.js +1 -1
  212. package/dist/generated/themes/Icon.css.js.map +1 -1
  213. package/dist/generated/themes/Input.css.js +1 -1
  214. package/dist/generated/themes/Input.css.js.map +1 -1
  215. package/dist/generated/themes/InputIcon.css.js +1 -1
  216. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  217. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  218. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  219. package/dist/generated/themes/Link.css.js +1 -1
  220. package/dist/generated/themes/Link.css.js.map +1 -1
  221. package/dist/generated/themes/List.css.js +1 -1
  222. package/dist/generated/themes/List.css.js.map +1 -1
  223. package/dist/generated/themes/ListItem.css.js +1 -1
  224. package/dist/generated/themes/ListItem.css.js.map +1 -1
  225. package/dist/generated/themes/ListItemBase.css.js +1 -1
  226. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  227. package/dist/generated/themes/Menu.css.js +1 -1
  228. package/dist/generated/themes/Menu.css.js.map +1 -1
  229. package/dist/generated/themes/MenuListItem.css.js +1 -1
  230. package/dist/generated/themes/MenuListItem.css.js.map +1 -1
  231. package/dist/generated/themes/MessageStrip.css.js +1 -1
  232. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  233. package/dist/generated/themes/MonthPicker.css.js +1 -1
  234. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  235. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  236. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  237. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  238. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  239. package/dist/generated/themes/MultiInput.css.js +1 -1
  240. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  241. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  242. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  243. package/dist/generated/themes/Panel.css.js +1 -1
  244. package/dist/generated/themes/Panel.css.js.map +1 -1
  245. package/dist/generated/themes/Popover.css.js +1 -1
  246. package/dist/generated/themes/Popover.css.js.map +1 -1
  247. package/dist/generated/themes/PopupStaticAreaStyles.css.js +1 -1
  248. package/dist/generated/themes/PopupStaticAreaStyles.css.js.map +1 -1
  249. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  250. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  251. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  252. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  253. package/dist/generated/themes/RadioButton.css.js +1 -1
  254. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  255. package/dist/generated/themes/RangeSlider.css.js +1 -1
  256. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  257. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  258. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  259. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  260. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  261. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  262. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  263. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  264. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  265. package/dist/generated/themes/Select.css.js +1 -1
  266. package/dist/generated/themes/Select.css.js.map +1 -1
  267. package/dist/generated/themes/SelectMenu.css.js +1 -1
  268. package/dist/generated/themes/SelectMenu.css.js.map +1 -1
  269. package/dist/generated/themes/SelectPopover.css.js +1 -1
  270. package/dist/generated/themes/SelectPopover.css.js.map +1 -1
  271. package/dist/generated/themes/SliderBase.css.js +1 -1
  272. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  273. package/dist/generated/themes/SplitButton.css.js +1 -1
  274. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  275. package/dist/generated/themes/StepInput.css.js +1 -1
  276. package/dist/generated/themes/StepInput.css.js.map +1 -1
  277. package/dist/generated/themes/Switch.css.js +1 -1
  278. package/dist/generated/themes/Switch.css.js.map +1 -1
  279. package/dist/generated/themes/TabContainer.css.js +1 -1
  280. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  281. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  282. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  283. package/dist/generated/themes/TabInStrip.css.js +1 -1
  284. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  285. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  286. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  287. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  288. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  289. package/dist/generated/themes/Table.css.js +1 -1
  290. package/dist/generated/themes/Table.css.js.map +1 -1
  291. package/dist/generated/themes/TableCell.css.js +1 -1
  292. package/dist/generated/themes/TableCell.css.js.map +1 -1
  293. package/dist/generated/themes/TableColumn.css.js +1 -1
  294. package/dist/generated/themes/TableColumn.css.js.map +1 -1
  295. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  296. package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
  297. package/dist/generated/themes/TableRow.css.js +1 -1
  298. package/dist/generated/themes/TableRow.css.js.map +1 -1
  299. package/dist/generated/themes/TextArea.css.js +1 -1
  300. package/dist/generated/themes/TextArea.css.js.map +1 -1
  301. package/dist/generated/themes/TimePicker.css.js +1 -1
  302. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  303. package/dist/generated/themes/Toast.css.js +1 -1
  304. package/dist/generated/themes/Toast.css.js.map +1 -1
  305. package/dist/generated/themes/ToggleButton.css.js +1 -1
  306. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  307. package/dist/generated/themes/Token.css.js +1 -1
  308. package/dist/generated/themes/Token.css.js.map +1 -1
  309. package/dist/generated/themes/Tokenizer.css.js +1 -1
  310. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  311. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  312. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  313. package/dist/generated/themes/Toolbar.css.js +1 -1
  314. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  315. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  316. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  317. package/dist/generated/themes/TreeItem.css.js +1 -1
  318. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  319. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  320. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  321. package/dist/generated/themes/WheelSlider.css.js +1 -1
  322. package/dist/generated/themes/WheelSlider.css.js.map +1 -1
  323. package/dist/generated/themes/YearPicker.css.js +1 -1
  324. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  325. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  326. package/dist/generated/themes/sap_belize/parameters-bundle.css.js.map +1 -1
  327. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  328. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js.map +1 -1
  329. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  330. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js.map +1 -1
  331. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  332. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  333. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  334. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  335. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  336. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  337. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  338. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  339. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  340. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  341. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  342. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  343. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  344. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  345. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  346. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  347. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  348. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  349. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  350. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  351. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  352. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  353. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  354. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  355. package/dist/vscode.html-custom-data.json +1 -1
  356. package/dist/web-types.json +2 -2
  357. package/package.json +10 -10
  358. package/src/MonthPicker.hbs +1 -0
  359. package/src/SplitButton.hbs +3 -3
  360. package/src/Table.hbs +8 -18
  361. package/src/YearPicker.hbs +1 -0
  362. package/src/i18n/messagebundle.properties +3 -0
  363. package/src/themes/DayPicker.css +8 -3
  364. package/src/themes/SplitButton.css +0 -1
  365. package/src/themes/Table.css +8 -19
  366. package/src/themes/base/Table-parameters.css +1 -0
  367. package/src/themes/base/sizes-parameters.css +0 -1
  368. package/src/themes/sap_horizon_hcb/Table-parameters.css +1 -1
  369. package/src/themes/sap_horizon_hcw/Table-parameters.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SplitButton.js","sourceRoot":"","sources":["../src/SplitButton.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 event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport {\n\tisEscape,\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisUp,\n\tisDownAlt,\n\tisUpAlt,\n\tisF4,\n\tisShift,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEventMark } from \"@ui5/webcomponents-base/dist/MarkedEvents.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport Button from \"./Button.js\";\n\nimport {\n\tSPLIT_BUTTON_DESCRIPTION,\n\tSPLIT_BUTTON_KEYBOARD_HINT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport SplitButtonTemplate from \"./generated/templates/SplitButtonTemplate.lit.js\";\n\n// Styles\nimport SplitButtonCss from \"./generated/themes/SplitButton.css.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-split-button` enables users to trigger actions. It is constructed of two separate actions -\n * default action and arrow action that can be activated by clicking or tapping, or by\n * pressing certain keyboard keys - `Space` or `Enter` for default action,\n * and `Arrow Down` or `Arrow Up` for arrow action.\n *\n * ### Usage\n *\n * `ui5-split-button` consists two separate buttons:\n *\n * - for the first one (default action) you can define some `text` or an `icon`, or both.\n * Also, it is possible to define different icon for active state of this button - `activeIcon`.\n * - the second one (arrow action) contains only `slim-arrow-down` icon.\n *\n * You can choose a `design` from a set of predefined types (the same as for ui5-button) that offer\n * different styling to correspond to the triggered action. Both text and arrow actions have the same design.\n *\n * You can set the `ui5-split-button` as enabled or disabled. Both parts of an enabled\n * `ui5-split-button` can be pressed by clicking or tapping it, or by certain keys, which changes\n * the style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-split-button` appears inactive and any of the two buttons\n * cannot be pressed.\n *\n * ### Keyboard Handling\n *\n * - `Space` or `Enter` - triggers the default action\n * - `Shift` or `Escape` - if `Space` is pressed, releases the default action button without triggering the click event.\n * - `Arrow Down`, `Arrow Up`, `Alt`+`Arrow Down`, `Alt`+`Arrow Up`, or `F4` - triggers the arrow action\n * There are separate events that are fired on activating of `ui5-split-button` parts:\n *\n * - `click` for the first button (default action)\n * - `arrow-click` for the second button (arrow action)\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/SplitButton.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.1.0\n */\n@customElement({\n\ttag: \"ui5-split-button\",\n\trenderer: litRender,\n\tstyles: SplitButtonCss,\n\ttemplate: SplitButtonTemplate,\n\tdependencies: [Button],\n})\n/**\n * Fired when the user clicks on the default action.\n * @public\n */\n@event(\"click\")\n\n/**\n * Fired when the user clicks on the arrow action.\n * @public\n */\n@event(\"arrow-click\")\nclass SplitButton extends UI5Element {\n\t/**\n\t * Defines the icon to be displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t *\n\t * See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ticon!: string;\n\n\t/**\n\t * Defines the icon to be displayed in active state as graphical element within the component.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tactiveIcon!: string;\n\n\t/**\n\t * Defines whether the arrow button should have the active state styles or not.\n\t * @default false\n\t * @public\n\t * @since 1.21.0\n\t */\n\t@property({ type: Boolean })\n\tactiveArrowButton!: boolean;\n\n\t/**\n\t * Defines the component design.\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 whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Indicates if the elements is on focus\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t/**\n\t * Accessibility-related properties for inner elements of the Split Button\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_splitButtonAccInfo!: Record<string, boolean>;\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @default \"0\"\n\t * @private\n\t */\n\t@property({ defaultValue: \"0\", noAttribute: true })\n\t_tabIndex!: string;\n\n\t/**\n\t * Indicates if there is Space key pressed\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_spacePressed!: boolean;\n\n\t/**\n\t * Indicates if there is SHIFT or ESCAPE key pressed\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_shiftOrEscapePressed!: boolean;\n\n\t/**\n\t * Defines the active state of the text button\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_textButtonActive!: boolean;\n\n\t/**\n\t * Defines the icon of the text button\n\t * @default \"\"\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_textButtonIcon!: string;\n\n\t/**\n\t * Defines the state of the internal Button used for the Arrow button of the SplitButton.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_activeArrowButton!: boolean;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: Array<Node>;\n\n\t_textButtonPress: { handleEvent: () => void, passive: boolean };\n\t_isDefaultActionPressed = false;\n\t_isKeyDownOperation = false;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic async onDefine() {\n\t\tSplitButton.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tconst handleTouchStartEvent = () => {\n\t\t\tthis._textButtonActive = true;\n\t\t\tthis.focused = false;\n\t\t\tthis._tabIndex = \"-1\";\n\t\t};\n\n\t\tthis._textButtonPress = {\n\t\t\thandleEvent: handleTouchStartEvent,\n\t\t\tpassive: true,\n\t\t};\n\t}\n\n\t/**\n\t * Function that makes sure the focus is properly managed.\n\t * @private\n\t */\n\t_manageFocus(button?: Button | SplitButton) {\n\t\tconst buttons: Array<Button | SplitButton> = [this.textButton!, this.arrowButton!, this];\n\n\t\tbuttons.forEach(btn => {\n\t\t\tbtn.focused = btn === button;\n\t\t});\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._textButtonIcon = this.textButton && this.activeIcon !== \"\" && (this._textButtonActive) && !this._shiftOrEscapePressed ? this.activeIcon : this.icon;\n\t\tif (this.disabled) {\n\t\t\tthis._tabIndex = \"-1\";\n\t\t}\n\t}\n\n\t_handleMouseClick(e: MouseEvent) {\n\t\tconst target = e.target as Button;\n\n\t\tthis._manageFocus(target);\n\t\tthis._fireClick(e);\n\t}\n\n\t_onFocusOut(e: FocusEvent) {\n\t\tif (this.disabled || getEventMark(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shiftOrEscapePressed = false;\n\t\tthis._setTabIndexValue();\n\t\tthis._manageFocus();\n\t}\n\n\t_onFocusIn(e: FocusEvent) {\n\t\tif (this.disabled || getEventMark(e)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shiftOrEscapePressed = false;\n\t\tthis._manageFocus(this);\n\t}\n\n\t_textButtonFocusIn(e?: FocusEvent) {\n\t\te?.stopPropagation();\n\t\tthis._manageFocus(this.textButton!);\n\n\t\tthis._setTabIndexValue();\n\t}\n\n\t_onKeyDown(e: KeyboardEvent) {\n\t\tthis._isKeyDownOperation = true;\n\t\tif (this._isArrowKeyAction(e)) {\n\t\t\tthis._handleArrowButtonAction(e);\n\t\t\tthis._activeArrowButton = true;\n\t\t} else if (this._isDefaultAction(e)) {\n\t\t\tthis._handleDefaultAction(e);\n\t\t\tthis._isDefaultActionPressed = true;\n\t\t}\n\n\t\tif (this._spacePressed && this._isShiftOrEscape(e)) {\n\t\t\tthis._handleShiftOrEscapePressed();\n\t\t}\n\n\t\t// Handles button freeze issue when pressing Enter/Space and navigating with Tab/Shift+Tab simultaneously.\n\t\tif (this._isDefaultActionPressed && (isTabNext(e) || isTabPrevious(e))) {\n\t\t\tthis._activeArrowButton = false;\n\t\t\tthis._textButtonActive = false;\n\t\t}\n\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_onKeyUp(e: KeyboardEvent) {\n\t\tthis._isKeyDownOperation = false;\n\t\tif (this._isArrowKeyAction(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._activeArrowButton = false;\n\t\t\tthis._textButtonActive = false;\n\t\t} else if (this._isDefaultAction(e)) {\n\t\t\tthis._isDefaultActionPressed = false;\n\t\t\tthis._textButtonActive = false;\n\t\t\tif (isSpace(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tthis._fireClick();\n\t\t\t\tthis._spacePressed = false;\n\t\t\t\tthis._textButtonActive = false;\n\t\t\t}\n\t\t}\n\n\t\tif (this._isShiftOrEscape(e)) {\n\t\t\tthis._handleShiftOrEscapePressed();\n\t\t}\n\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_fireClick(e?: Event) {\n\t\te?.stopPropagation();\n\t\tif (!this._shiftOrEscapePressed) {\n\t\t\tthis.fireEvent(\"click\");\n\t\t}\n\t\tthis._shiftOrEscapePressed = false;\n\t}\n\n\t_fireArrowClick(e?: Event) {\n\t\te?.stopPropagation();\n\n\t\tthis.fireEvent(\"arrow-click\");\n\t}\n\n\t_textButtonRelease() {\n\t\tthis._textButtonActive = false;\n\t\tthis._textButtonIcon = this.textButton && this.activeIcon !== \"\" && (this._textButtonActive) && !this._shiftOrEscapePressed ? this.activeIcon : this.icon;\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_arrowButtonPress(e: MouseEvent) {\n\t\te.preventDefault();\n\t\tthis.arrowButton!.focus();\n\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_arrowButtonRelease(e: MouseEvent) {\n\t\te.preventDefault();\n\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_setTabIndexValue() {\n\t\tthis._tabIndex = this.disabled ? \"-1\" : \"0\";\n\n\t\tif (this._tabIndex === \"-1\" && (this.textButton?.focused || this.arrowButton?.focused)) {\n\t\t\tthis._tabIndex = \"0\";\n\t\t}\n\t}\n\n\t_onArrowButtonActiveStateChange(e: CustomEvent) {\n\t\tif (this.activeArrowButton) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the pressed key is an arrow key.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isArrowKeyAction(e: KeyboardEvent): boolean {\n\t\treturn isDown(e) || isUp(e) || isDownAlt(e) || isUpAlt(e) || isF4(e);\n\t}\n\n\t/**\n\t * Checks if the pressed key is a default action key (Space or Enter).\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isDefaultAction(e: KeyboardEvent): boolean {\n\t\treturn isSpace(e) || isEnter(e);\n\t}\n\n\t/**\n\t * Checks if the pressed key is an escape key or shift key.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isShiftOrEscape(e: KeyboardEvent): boolean {\n\t\treturn isEscape(e) || isShift(e);\n\t}\n\n\t/**\n\t * Handles the click event and the focus on the arrow button.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_handleArrowButtonAction(e: KeyboardEvent | MouseEvent) {\n\t\te.preventDefault();\n\n\t\tthis._fireArrowClick(e);\n\n\t\tif (isSpace((e as KeyboardEvent))) {\n\t\t\tthis._spacePressed = true;\n\t\t}\n\t}\n\n\t/**\n\t * Handles the default action and the active state of the respective button.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_handleDefaultAction(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tconst wasSpacePressed = isSpace(e);\n\n\t\tif (this.focused || this.textButton?.focused) {\n\t\t\tthis._textButtonActive = true;\n\t\t\tthis._fireClick();\n\t\t\tif (wasSpacePressed) {\n\t\t\t\tthis._spacePressed = true;\n\t\t\t}\n\t\t} else if (this.arrowButton && this.arrowButton.focused) {\n\t\t\tthis._activeArrowButton = true;\n\t\t\tthis._fireArrowClick();\n\t\t\tif (wasSpacePressed) {\n\t\t\t\tthis._spacePressed = true;\n\t\t\t\tthis._textButtonActive = false;\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleShiftOrEscapePressed() {\n\t\tthis._shiftOrEscapePressed = true;\n\t\tthis._textButtonActive = false;\n\t\tthis._isKeyDownOperation = false;\n\t}\n\n\tget effectiveActiveArrowButton() {\n\t\treturn this.activeArrowButton || this._activeArrowButton;\n\t}\n\n\tget textButtonAccText() {\n\t\treturn this.textContent;\n\t}\n\n\tget isTextButton() {\n\t\treturn !!this.textContent;\n\t}\n\n\tget textButton() {\n\t\treturn this.getDomRef()?.querySelector<Button>(\".ui5-split-text-button\");\n\t}\n\n\tget arrowButton() {\n\t\treturn this.getDomRef()?.querySelector<Button>(\".ui5-split-arrow-button\");\n\t}\n\n\tget accessibilityInfo() {\n\t\treturn {\n\t\t\t// affects arrow button\n\t\t\tariaExpanded: this._splitButtonAccInfo && this._splitButtonAccInfo.ariaExpanded,\n\t\t\tariaHaspopup: this._splitButtonAccInfo && this._splitButtonAccInfo.ariaHaspopup,\n\t\t\t// affects root element\n\t\t\tdescription: SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION),\n\t\t\tkeyboardHint: SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT),\n\t\t};\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION), SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT)].join(\" \");\n\t}\n}\n\nSplitButton.define();\n\nexport default SplitButton;\n"]}
1
+ {"version":3,"file":"SplitButton.js","sourceRoot":"","sources":["../src/SplitButton.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 event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport {\n\tisEscape,\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisUp,\n\tisDownAlt,\n\tisUpAlt,\n\tisF4,\n\tisShift,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getEventMark } from \"@ui5/webcomponents-base/dist/MarkedEvents.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport Button from \"./Button.js\";\nimport HasPopup from \"./types/HasPopup.js\";\n\nimport {\n\tSPLIT_BUTTON_DESCRIPTION,\n\tSPLIT_BUTTON_KEYBOARD_HINT,\n\tSPLIT_BUTTON_ARROW_BUTTON_TOOLTIP,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport SplitButtonTemplate from \"./generated/templates/SplitButtonTemplate.lit.js\";\n\n// Styles\nimport SplitButtonCss from \"./generated/themes/SplitButton.css.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * `ui5-split-button` enables users to trigger actions. It is constructed of two separate actions -\n * default action and arrow action that can be activated by clicking or tapping, or by\n * pressing certain keyboard keys - `Space` or `Enter` for default action,\n * and `Arrow Down` or `Arrow Up` for arrow action.\n *\n * ### Usage\n *\n * `ui5-split-button` consists two separate buttons:\n *\n * - for the first one (default action) you can define some `text` or an `icon`, or both.\n * Also, it is possible to define different icon for active state of this button - `activeIcon`.\n * - the second one (arrow action) contains only `slim-arrow-down` icon.\n *\n * You can choose a `design` from a set of predefined types (the same as for ui5-button) that offer\n * different styling to correspond to the triggered action. Both text and arrow actions have the same design.\n *\n * You can set the `ui5-split-button` as enabled or disabled. Both parts of an enabled\n * `ui5-split-button` can be pressed by clicking or tapping it, or by certain keys, which changes\n * the style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled `ui5-split-button` appears inactive and any of the two buttons\n * cannot be pressed.\n *\n * ### Keyboard Handling\n *\n * - `Space` or `Enter` - triggers the default action\n * - `Shift` or `Escape` - if `Space` is pressed, releases the default action button without triggering the click event.\n * - `Arrow Down`, `Arrow Up`, `Alt`+`Arrow Down`, `Alt`+`Arrow Up`, or `F4` - triggers the arrow action\n * There are separate events that are fired on activating of `ui5-split-button` parts:\n *\n * - `click` for the first button (default action)\n * - `arrow-click` for the second button (arrow action)\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/SplitButton.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.1.0\n */\n@customElement({\n\ttag: \"ui5-split-button\",\n\trenderer: litRender,\n\tstyles: SplitButtonCss,\n\ttemplate: SplitButtonTemplate,\n\tdependencies: [Button],\n})\n/**\n * Fired when the user clicks on the default action.\n * @public\n */\n@event(\"click\")\n\n/**\n * Fired when the user clicks on the arrow action.\n * @public\n */\n@event(\"arrow-click\")\nclass SplitButton extends UI5Element {\n\t/**\n\t * Defines the icon to be displayed as graphical element within the component.\n\t * The SAP-icons font provides numerous options.\n\t *\n\t * Example:\n\t *\n\t * See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ticon!: string;\n\n\t/**\n\t * Defines the icon to be displayed in active state as graphical element within the component.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tactiveIcon!: string;\n\n\t/**\n\t * Defines whether the arrow button should have the active state styles or not.\n\t * @default false\n\t * @public\n\t * @since 1.21.0\n\t */\n\t@property({ type: Boolean })\n\tactiveArrowButton!: boolean;\n\n\t/**\n\t * Defines the component design.\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 whether the component is disabled.\n\t * A disabled component can't be pressed or\n\t * focused, and it is not in the tab chain.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisabled!: boolean;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property({ defaultValue: undefined })\n\taccessibleName?: string;\n\n\t/**\n\t * Indicates if the elements is on focus\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfocused!: boolean;\n\n\t/**\n\t * Accessibility-related properties for inner elements of the Split Button\n\t * @private\n\t */\n\t@property({ type: Object })\n\t_splitButtonAccInfo!: Record<string, boolean>;\n\n\t/**\n\t * Defines the tabIndex of the component.\n\t * @default \"0\"\n\t * @private\n\t */\n\t@property({ defaultValue: \"0\", noAttribute: true })\n\t_tabIndex!: string;\n\n\t/**\n\t * Indicates if there is Space key pressed\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_spacePressed!: boolean;\n\n\t/**\n\t * Indicates if there is SHIFT or ESCAPE key pressed\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_shiftOrEscapePressed!: boolean;\n\n\t/**\n\t * Defines the active state of the text button\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_textButtonActive!: boolean;\n\n\t/**\n\t * Defines the icon of the text button\n\t * @default \"\"\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_textButtonIcon!: string;\n\n\t/**\n\t * Defines the state of the internal Button used for the Arrow button of the SplitButton.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean, noAttribute: true })\n\t_activeArrowButton!: boolean;\n\n\t/**\n\t * Defines the text of the component.\n\t *\n\t * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t * @public\n\t */\n\t@slot({ type: Node, \"default\": true })\n\ttext!: Array<Node>;\n\n\t_textButtonPress: { handleEvent: () => void, passive: boolean };\n\t_isDefaultActionPressed = false;\n\t_isKeyDownOperation = false;\n\n\tstatic i18nBundle: I18nBundle;\n\n\tstatic async onDefine() {\n\t\tSplitButton.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tconst handleTouchStartEvent = () => {\n\t\t\tthis._textButtonActive = true;\n\t\t\tthis.focused = false;\n\t\t\tthis._tabIndex = \"-1\";\n\t\t};\n\n\t\tthis._textButtonPress = {\n\t\t\thandleEvent: handleTouchStartEvent,\n\t\t\tpassive: true,\n\t\t};\n\t}\n\n\t/**\n\t * Function that makes sure the focus is properly managed.\n\t * @private\n\t */\n\t_manageFocus(button?: Button | SplitButton) {\n\t\tconst buttons: Array<Button | SplitButton> = [this.textButton!, this.arrowButton!, this];\n\n\t\tbuttons.forEach(btn => {\n\t\t\tbtn.focused = btn === button;\n\t\t});\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._textButtonIcon = this.textButton && this.activeIcon !== \"\" && (this._textButtonActive) && !this._shiftOrEscapePressed ? this.activeIcon : this.icon;\n\t\tif (this.disabled) {\n\t\t\tthis._tabIndex = \"-1\";\n\t\t}\n\t}\n\n\t_handleMouseClick(e: MouseEvent) {\n\t\tconst target = e.target as Button;\n\n\t\tthis._manageFocus(target);\n\t\tthis._fireClick(e);\n\t}\n\n\t_onFocusOut(e: FocusEvent) {\n\t\tif (this.disabled || getEventMark(e)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shiftOrEscapePressed = false;\n\t\tthis._setTabIndexValue();\n\t\tthis._manageFocus();\n\t}\n\n\t_onFocusIn(e: FocusEvent) {\n\t\tif (this.disabled || getEventMark(e)) {\n\t\t\treturn;\n\t\t}\n\t\tthis._shiftOrEscapePressed = false;\n\t\tthis._manageFocus(this);\n\t}\n\n\t_textButtonFocusIn(e?: FocusEvent) {\n\t\te?.stopPropagation();\n\t\tthis._manageFocus(this.textButton!);\n\n\t\tthis._setTabIndexValue();\n\t}\n\n\t_onKeyDown(e: KeyboardEvent) {\n\t\tthis._isKeyDownOperation = true;\n\t\tif (this._isArrowKeyAction(e)) {\n\t\t\tthis._handleArrowButtonAction(e);\n\t\t\tthis._activeArrowButton = true;\n\t\t} else if (this._isDefaultAction(e)) {\n\t\t\tthis._handleDefaultAction(e);\n\t\t\tthis._isDefaultActionPressed = true;\n\t\t}\n\n\t\tif (this._spacePressed && this._isShiftOrEscape(e)) {\n\t\t\tthis._handleShiftOrEscapePressed();\n\t\t}\n\n\t\t// Handles button freeze issue when pressing Enter/Space and navigating with Tab/Shift+Tab simultaneously.\n\t\tif (this._isDefaultActionPressed && (isTabNext(e) || isTabPrevious(e))) {\n\t\t\tthis._activeArrowButton = false;\n\t\t\tthis._textButtonActive = false;\n\t\t}\n\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_onKeyUp(e: KeyboardEvent) {\n\t\tthis._isKeyDownOperation = false;\n\t\tif (this._isArrowKeyAction(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._activeArrowButton = false;\n\t\t\tthis._textButtonActive = false;\n\t\t} else if (this._isDefaultAction(e)) {\n\t\t\tthis._isDefaultActionPressed = false;\n\t\t\tthis._textButtonActive = false;\n\t\t\tif (isSpace(e)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tthis._fireClick();\n\t\t\t\tthis._spacePressed = false;\n\t\t\t\tthis._textButtonActive = false;\n\t\t\t}\n\t\t}\n\n\t\tif (this._isShiftOrEscape(e)) {\n\t\t\tthis._handleShiftOrEscapePressed();\n\t\t}\n\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_fireClick(e?: Event) {\n\t\te?.stopPropagation();\n\t\tif (!this._shiftOrEscapePressed) {\n\t\t\tthis.fireEvent(\"click\");\n\t\t}\n\t\tthis._shiftOrEscapePressed = false;\n\t}\n\n\t_fireArrowClick(e?: Event) {\n\t\te?.stopPropagation();\n\n\t\tthis.fireEvent(\"arrow-click\");\n\t}\n\n\t_textButtonRelease() {\n\t\tthis._textButtonActive = false;\n\t\tthis._textButtonIcon = this.textButton && this.activeIcon !== \"\" && (this._textButtonActive) && !this._shiftOrEscapePressed ? this.activeIcon : this.icon;\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_arrowButtonPress(e: MouseEvent) {\n\t\te.preventDefault();\n\t\tthis.arrowButton!.focus();\n\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_arrowButtonRelease(e: MouseEvent) {\n\t\te.preventDefault();\n\n\t\tthis._tabIndex = \"-1\";\n\t}\n\n\t_setTabIndexValue() {\n\t\tthis._tabIndex = this.disabled ? \"-1\" : \"0\";\n\n\t\tif (this._tabIndex === \"-1\" && (this.textButton?.focused || this.arrowButton?.focused)) {\n\t\t\tthis._tabIndex = \"0\";\n\t\t}\n\t}\n\n\t_onArrowButtonActiveStateChange(e: CustomEvent) {\n\t\tif (this.activeArrowButton) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the pressed key is an arrow key.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isArrowKeyAction(e: KeyboardEvent): boolean {\n\t\treturn isDown(e) || isUp(e) || isDownAlt(e) || isUpAlt(e) || isF4(e);\n\t}\n\n\t/**\n\t * Checks if the pressed key is a default action key (Space or Enter).\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isDefaultAction(e: KeyboardEvent): boolean {\n\t\treturn isSpace(e) || isEnter(e);\n\t}\n\n\t/**\n\t * Checks if the pressed key is an escape key or shift key.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_isShiftOrEscape(e: KeyboardEvent): boolean {\n\t\treturn isEscape(e) || isShift(e);\n\t}\n\n\t/**\n\t * Handles the click event and the focus on the arrow button.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_handleArrowButtonAction(e: KeyboardEvent | MouseEvent) {\n\t\te.preventDefault();\n\n\t\tthis._fireArrowClick(e);\n\n\t\tif (isSpace((e as KeyboardEvent))) {\n\t\t\tthis._spacePressed = true;\n\t\t}\n\t}\n\n\t/**\n\t * Handles the default action and the active state of the respective button.\n\t * @param e - keyboard event\n\t * @private\n\t */\n\t_handleDefaultAction(e: KeyboardEvent) {\n\t\te.preventDefault();\n\t\tconst wasSpacePressed = isSpace(e);\n\n\t\tif (this.focused || this.textButton?.focused) {\n\t\t\tthis._textButtonActive = true;\n\t\t\tthis._fireClick();\n\t\t\tif (wasSpacePressed) {\n\t\t\t\tthis._spacePressed = true;\n\t\t\t}\n\t\t} else if (this.arrowButton && this.arrowButton.focused) {\n\t\t\tthis._activeArrowButton = true;\n\t\t\tthis._fireArrowClick();\n\t\t\tif (wasSpacePressed) {\n\t\t\t\tthis._spacePressed = true;\n\t\t\t\tthis._textButtonActive = false;\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleShiftOrEscapePressed() {\n\t\tthis._shiftOrEscapePressed = true;\n\t\tthis._textButtonActive = false;\n\t\tthis._isKeyDownOperation = false;\n\t}\n\n\tget effectiveActiveArrowButton() {\n\t\treturn this.activeArrowButton || this._activeArrowButton;\n\t}\n\n\tget textButtonAccText() {\n\t\treturn this.textContent;\n\t}\n\n\tget isTextButton() {\n\t\treturn !!this.textContent;\n\t}\n\n\tget textButton() {\n\t\treturn this.getDomRef()?.querySelector<Button>(\".ui5-split-text-button\");\n\t}\n\n\tget arrowButton() {\n\t\treturn this.getDomRef()?.querySelector<Button>(\".ui5-split-arrow-button\");\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"description\": SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION),\n\t\t\t\t\"keyboardHint\": SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT),\n\t\t\t},\n\t\t\tarrowButton: {\n\t\t\t\t\"title\": this.arrowButtonTooltip,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\t\"hasPopup\": (this._splitButtonAccInfo && this._splitButtonAccInfo.ariaHaspopup) || HasPopup.Menu.toLocaleLowerCase(),\n\t\t\t\t\t\"expanded\": this._splitButtonAccInfo && this._splitButtonAccInfo.ariaExpanded,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tget arrowButtonTooltip() {\n\t\treturn SplitButton.i18nBundle.getText(SPLIT_BUTTON_ARROW_BUTTON_TOOLTIP);\n\t}\n\n\tget ariaLabelText() {\n\t\treturn [SplitButton.i18nBundle.getText(SPLIT_BUTTON_DESCRIPTION), SplitButton.i18nBundle.getText(SPLIT_BUTTON_KEYBOARD_HINT)].join(\" \");\n\t}\n}\n\nSplitButton.define();\n\nexport default SplitButton;\n"]}
package/dist/Table.d.ts CHANGED
@@ -100,11 +100,11 @@ declare enum TableFocusTargetElement {
100
100
  *
101
101
  * ### ES6 Module Import
102
102
  *
103
- * `import "@ui5/webcomponents/dist/Table.js";`
104
- * `import "@ui5/webcomponents/dist/TableColumn.js";` (`ui5-table-column`)
105
- * `import "@ui5/webcomponents/dist/TableRow.js";` (`ui5-table-row`)
106
- * `import "@ui5/webcomponents/dist/TableGroupRow.js";` (`ui5-table-group-row`)
107
- * `import "@ui5/webcomponents/dist/TableCell.js";` (`ui5-table-cell`)
103
+ * - `import "@ui5/webcomponents/dist/Table.js";`
104
+ * - `import "@ui5/webcomponents/dist/TableColumn.js";` (`ui5-table-column`)
105
+ * - `import "@ui5/webcomponents/dist/TableRow.js";` (`ui5-table-row`)
106
+ * - `import "@ui5/webcomponents/dist/TableGroupRow.js";` (`ui5-table-group-row`)
107
+ * - `import "@ui5/webcomponents/dist/TableCell.js";` (`ui5-table-cell`)
108
108
  * @constructor
109
109
  * @extends UI5Element
110
110
  * @public
@@ -233,11 +233,6 @@ declare class Table extends UI5Element {
233
233
  * @private
234
234
  */
235
235
  _columnHeader: TableColumnHeaderInfo;
236
- /**
237
- * Defines if the entire table is in view port.
238
- * @private
239
- */
240
- _inViewport: boolean;
241
236
  /**
242
237
  * Defines whether all rows are selected or not when table is in MultiSelect mode.
243
238
  * @default false
@@ -330,18 +325,12 @@ declare class Table extends UI5Element {
330
325
  get columnHeader(): HTMLElement | null;
331
326
  get morеBtn(): HTMLElement | null;
332
327
  handleResize(): void;
333
- checkTableInViewport(): void;
334
328
  popinContent(): void;
335
329
  /**
336
330
  * Gets settings to be propagated from columns to rows.
337
331
  */
338
332
  getColumnPropagationSettings(): Array<TableColumnInfo>;
339
333
  getIntersectionObserver(): IntersectionObserver;
340
- get styles(): {
341
- busy: {
342
- position: string;
343
- };
344
- };
345
334
  get growsWithButton(): boolean;
346
335
  get growsOnScroll(): boolean;
347
336
  get _growingButtonText(): string;
@@ -350,7 +339,6 @@ declare class Table extends UI5Element {
350
339
  get ariaLabelSelectAllText(): string;
351
340
  get loadMoreAriaLabelledBy(): string;
352
341
  get tableEndDOM(): Element;
353
- get busyIndPosition(): string;
354
342
  get isMultiSelect(): boolean;
355
343
  get isSingleSelect(): boolean;
356
344
  get selectedRows(): Array<ITableRow>;
package/dist/Table.js CHANGED
@@ -22,7 +22,6 @@ import { getLastTabbableElement, getTabbableElements } from "@ui5/webcomponents-
22
22
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
23
23
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
24
24
  import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
25
- import isElementInView from "@ui5/webcomponents-base/dist/util/isElementInView.js";
26
25
  import TableGrowingMode from "./types/TableGrowingMode.js";
27
26
  import BusyIndicator from "./BusyIndicator.js";
28
27
  import TableMode from "./types/TableMode.js";
@@ -93,11 +92,11 @@ var TableFocusTargetElement;
93
92
  *
94
93
  * ### ES6 Module Import
95
94
  *
96
- * `import "@ui5/webcomponents/dist/Table.js";`
97
- * `import "@ui5/webcomponents/dist/TableColumn.js";` (`ui5-table-column`)
98
- * `import "@ui5/webcomponents/dist/TableRow.js";` (`ui5-table-row`)
99
- * `import "@ui5/webcomponents/dist/TableGroupRow.js";` (`ui5-table-group-row`)
100
- * `import "@ui5/webcomponents/dist/TableCell.js";` (`ui5-table-cell`)
95
+ * - `import "@ui5/webcomponents/dist/Table.js";`
96
+ * - `import "@ui5/webcomponents/dist/TableColumn.js";` (`ui5-table-column`)
97
+ * - `import "@ui5/webcomponents/dist/TableRow.js";` (`ui5-table-row`)
98
+ * - `import "@ui5/webcomponents/dist/TableGroupRow.js";` (`ui5-table-group-row`)
99
+ * - `import "@ui5/webcomponents/dist/TableCell.js";` (`ui5-table-cell`)
101
100
  * @constructor
102
101
  * @extends UI5Element
103
102
  * @public
@@ -168,7 +167,6 @@ let Table = Table_1 = class Table extends UI5Element {
168
167
  if (this.growsOnScroll) {
169
168
  this.observeTableEnd();
170
169
  }
171
- this.checkTableInViewport();
172
170
  }
173
171
  onEnterDOM() {
174
172
  this.growingIntersectionObserver = this.getIntersectionObserver();
@@ -597,12 +595,8 @@ let Table = Table_1 = class Table extends UI5Element {
597
595
  return null;
598
596
  }
599
597
  handleResize() {
600
- this.checkTableInViewport();
601
598
  this.popinContent();
602
599
  }
603
- checkTableInViewport() {
604
- this._inViewport = isElementInView(this.getDomRef());
605
- }
606
600
  popinContent() {
607
601
  const clientRect = this.getDomRef().getBoundingClientRect();
608
602
  const tableWidth = clientRect.width;
@@ -627,7 +621,7 @@ let Table = Table_1 = class Table extends UI5Element {
627
621
  }
628
622
  this.columns[visibleColumnsIndexes[visibleColumnsIndexes.length - 1]].last = true;
629
623
  }
630
- const hiddenColumnsChange = (this._hiddenColumns.length !== hiddenColumns.length) || this._hiddenColumns.some((column, index) => column !== hiddenColumns[index]);
624
+ const hiddenColumnsChange = (this._hiddenColumns.length !== hiddenColumns.length) || this._hiddenColumns?.some((column, index) => column !== hiddenColumns[index]);
631
625
  const shownColumnsChange = hiddenColumns.length === 0;
632
626
  // invalidate if hidden columns count has changed or columns are shown
633
627
  if (hiddenColumnsChange || shownColumnsChange) {
@@ -663,13 +657,6 @@ let Table = Table_1 = class Table extends UI5Element {
663
657
  }
664
658
  return this.growingIntersectionObserver;
665
659
  }
666
- get styles() {
667
- return {
668
- busy: {
669
- position: this.busyIndPosition,
670
- },
671
- };
672
- }
673
660
  get growsWithButton() {
674
661
  return this.growing === TableGrowingMode.Button;
675
662
  }
@@ -702,9 +689,6 @@ let Table = Table_1 = class Table extends UI5Element {
702
689
  get tableEndDOM() {
703
690
  return this.shadowRoot.querySelector(".ui5-table-end-marker");
704
691
  }
705
- get busyIndPosition() {
706
- return this._inViewport ? "absolute" : "sticky";
707
- }
708
692
  get isMultiSelect() {
709
693
  return this.mode === TableMode.MultiSelect;
710
694
  }
@@ -775,9 +759,6 @@ __decorate([
775
759
  __decorate([
776
760
  property({ type: Object })
777
761
  ], Table.prototype, "_columnHeader", void 0);
778
- __decorate([
779
- property({ type: Boolean })
780
- ], Table.prototype, "_inViewport", void 0);
781
762
  __decorate([
782
763
  property({ type: Boolean })
783
764
  ], Table.prototype, "_allRowsSelected", void 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 type { ChangeInfo } 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 `ui5-table` as rows\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 * ### Overview\n *\n * The `ui5-table` 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 *\n * To render the `Table` properly, the order of the `columns` should match with the\n * order of the item `cells` in the `rows`.\n *\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 * ### Selection\n * To benefit from the selection mechanism of `ui5-table` component, you can use the available selection modes:\n * `SingleSelect` and `MultiSelect`.\n *\n * In additition to the used mode, you can also specify the `ui5-table-row` type choosing between\n * `Active` or `Inactive`.\n *\n * In `SingleSelect` mode, you can select both an `Active` and `Inactive` row via mouse or\n * by pressing the `Space` or `Enter` keys.\n *\n * In `MultiSelect` mode, you can select both an `Active` and `Inactive` row by pressing the\n * `Space` 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 *\n * **Note:** Currently, when a column is shown as a pop-in, the visual indication for selection is not presented over it.\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * Furthermore, you can interact with `ui5-table` via the following keys.\n *\n * - [F7] - If focus is on an interactive control inside an item, moves focus to the corresponding item.\n * - [Ctrl]+[A] - Selects all items, if MultiSelect mode is enabled.\n * - [Home]/[End] - Focuses the first/last item.\n * - [Page Up]/[Page Down] - Moves focus up/down by page size (20 items by default).\n * - [Alt]+[Down]/[Up] - Switches focus between header, last focused item, and More button (if applies) in either direction.\n * - [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).\n * - [Shift]+[Home]/[End] - Range selection to the first/last item of the List.\n * - [Ctrl]+[Home]/[End] - Same behavior as HOME & END.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/Table.js\";`\n * `import \"@ui5/webcomponents/dist/TableColumn.js\";` (`ui5-table-column`)\n * `import \"@ui5/webcomponents/dist/TableRow.js\";` (`ui5-table-row`)\n * `import \"@ui5/webcomponents/dist/TableGroupRow.js\";` (`ui5-table-group-row`)\n * `import \"@ui5/webcomponents/dist/TableCell.js\";` (`ui5-table-cell`)\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 `Active` mode is clicked or `Enter` key is pressed.\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 `ui5-table-column` is shown as a pop-in instead of hiding it.\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 `More` button or scrolls to the table's end.\n *\n * **Note:** The event will be fired if `growing` is set to `Button` or `Scroll`.\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 `SingleSelect` and `MultiSelect` modes.\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 `hideNoData` is not present.\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 * **Note:** If not specified a built-in text will be displayed.\n\t *\n\t * **Note:** This property takes effect if `growing` is set to `Button`.\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 `growingButtonText`.\n\t *\n\t * **Note:** This property takes effect if `growing` is set to `Button`.\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 `noDataText` will be diplayed when there is no rows present in the table.\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 `More` button,\n\t * or via user scroll. In both cases `load-more` event is fired.\n\t *\n\t * Available options:\n\t *\n\t * `Button` - Shows a `More` button at the bottom of the table, pressing of which triggers the `load-more` event.\n\t *\n\t * `Scroll` - The `load-more` event is triggered when the user scrolls to the bottom of the table;\n\t *\n\t * `None` (default) - The growing is off.\n\t *\n\t * **Restrictions:** `growing=\"Scroll\"` is not supported for Internet Explorer,\n\t * and the component will fallback to `growing=\"Button\"`.\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 *\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 * @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 * @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 *\n\t * **Restrictions:**\n\t *\n\t * - Browsers that do not support this feature:\n\t *\n\t * - Internet Explorer\n\t * - Microsoft Edge lower than version 41 (EdgeHTML 16)\n\t * - Mozilla Firefox lower than version 59\n\t *\n\t * - Scrolling behavior:\n\t *\n\t * - If the Web Component is placed in layout containers that have the `overflow: hidden`\n\t * or `overflow: auto` style definition, this can\n\t * prevent the sticky elements of the Web Component from becoming fixed at the top of the viewport.\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 * @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 * @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 * @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 `More` 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 * @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 *\n\t * **Note:** Use `ui5-table-row` for the intended design.\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 *\n\t * **Note:** Use `ui5-table-column` for the intended design.\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\tonInvalidation(change: ChangeInfo) {\n\t\tif (change.type === \"property\" && change.name === \"growing\") {\n\t\t\tthis.tableEndObserved = false;\n\t\t\tthis.getIntersectionObserver().disconnect();\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"]}
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 type { ChangeInfo } 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 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 `ui5-table` as rows\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 * ### Overview\n *\n * The `ui5-table` 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 *\n * To render the `Table` properly, the order of the `columns` should match with the\n * order of the item `cells` in the `rows`.\n *\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 * ### Selection\n * To benefit from the selection mechanism of `ui5-table` component, you can use the available selection modes:\n * `SingleSelect` and `MultiSelect`.\n *\n * In additition to the used mode, you can also specify the `ui5-table-row` type choosing between\n * `Active` or `Inactive`.\n *\n * In `SingleSelect` mode, you can select both an `Active` and `Inactive` row via mouse or\n * by pressing the `Space` or `Enter` keys.\n *\n * In `MultiSelect` mode, you can select both an `Active` and `Inactive` row by pressing the\n * `Space` 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 *\n * **Note:** Currently, when a column is shown as a pop-in, the visual indication for selection is not presented over it.\n *\n * ### Keyboard Handling\n *\n * #### Fast Navigation\n * This component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\n * In order to use this functionality, you need to import the following module:\n * `import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n *\n * Furthermore, you can interact with `ui5-table` via the following keys.\n *\n * - [F7] - If focus is on an interactive control inside an item, moves focus to the corresponding item.\n * - [Ctrl]+[A] - Selects all items, if MultiSelect mode is enabled.\n * - [Home]/[End] - Focuses the first/last item.\n * - [Page Up]/[Page Down] - Moves focus up/down by page size (20 items by default).\n * - [Alt]+[Down]/[Up] - Switches focus between header, last focused item, and More button (if applies) in either direction.\n * - [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).\n * - [Shift]+[Home]/[End] - Range selection to the first/last item of the List.\n * - [Ctrl]+[Home]/[End] - Same behavior as HOME & END.\n *\n * ### ES6 Module Import\n *\n * - `import \"@ui5/webcomponents/dist/Table.js\";`\n * - `import \"@ui5/webcomponents/dist/TableColumn.js\";` (`ui5-table-column`)\n * - `import \"@ui5/webcomponents/dist/TableRow.js\";` (`ui5-table-row`)\n * - `import \"@ui5/webcomponents/dist/TableGroupRow.js\";` (`ui5-table-group-row`)\n * - `import \"@ui5/webcomponents/dist/TableCell.js\";` (`ui5-table-cell`)\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 `Active` mode is clicked or `Enter` key is pressed.\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 `ui5-table-column` is shown as a pop-in instead of hiding it.\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 `More` button or scrolls to the table's end.\n *\n * **Note:** The event will be fired if `growing` is set to `Button` or `Scroll`.\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 `SingleSelect` and `MultiSelect` modes.\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 `hideNoData` is not present.\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 * **Note:** If not specified a built-in text will be displayed.\n\t *\n\t * **Note:** This property takes effect if `growing` is set to `Button`.\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 `growingButtonText`.\n\t *\n\t * **Note:** This property takes effect if `growing` is set to `Button`.\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 `noDataText` will be diplayed when there is no rows present in the table.\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 `More` button,\n\t * or via user scroll. In both cases `load-more` event is fired.\n\t *\n\t * Available options:\n\t *\n\t * `Button` - Shows a `More` button at the bottom of the table, pressing of which triggers the `load-more` event.\n\t *\n\t * `Scroll` - The `load-more` event is triggered when the user scrolls to the bottom of the table;\n\t *\n\t * `None` (default) - The growing is off.\n\t *\n\t * **Restrictions:** `growing=\"Scroll\"` is not supported for Internet Explorer,\n\t * and the component will fallback to `growing=\"Button\"`.\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 *\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 * @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 * @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 *\n\t * **Restrictions:**\n\t *\n\t * - Browsers that do not support this feature:\n\t *\n\t * - Internet Explorer\n\t * - Microsoft Edge lower than version 41 (EdgeHTML 16)\n\t * - Mozilla Firefox lower than version 59\n\t *\n\t * - Scrolling behavior:\n\t *\n\t * - If the Web Component is placed in layout containers that have the `overflow: hidden`\n\t * or `overflow: auto` style definition, this can\n\t * prevent the sticky elements of the Web Component from becoming fixed at the top of the viewport.\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 * @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 * @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 * @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 `More` 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 whether all rows are selected or not when table is in MultiSelect mode.\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 *\n\t * **Note:** Use `ui5-table-row` for the intended design.\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 *\n\t * **Note:** Use `ui5-table-column` for the intended design.\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\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\tonInvalidation(change: ChangeInfo) {\n\t\tif (change.type === \"property\" && change.name === \"growing\") {\n\t\t\tthis.tableEndObserved = false;\n\t\t\tthis.getIntersectionObserver().disconnect();\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.popinContent();\n\t}\n\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 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 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.js CHANGED
@@ -385,7 +385,8 @@ let Toolbar = Toolbar_1 = class Toolbar extends UI5Element {
385
385
  }
386
386
  getItemsInfo(items) {
387
387
  return items.map((item) => {
388
- const ElementClass = getRegisteredToolbarItem(item.constructor.name);
388
+ const ctor = item.constructor;
389
+ const ElementClass = getRegisteredToolbarItem(ctor.getMetadata().getPureTag());
389
390
  if (!ElementClass) {
390
391
  return null;
391
392
  }