@ui5/webcomponents 2.0.0-rc.6 → 2.0.1

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 (906) hide show
  1. package/CHANGELOG.md +161 -0
  2. package/README.md +1 -4
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/Avatar.d.ts +13 -18
  5. package/dist/Avatar.js +77 -17
  6. package/dist/Avatar.js.map +1 -1
  7. package/dist/AvatarGroup.d.ts +1 -1
  8. package/dist/AvatarGroup.js +21 -3
  9. package/dist/AvatarGroup.js.map +1 -1
  10. package/dist/Bar.d.ts +1 -1
  11. package/dist/Bar.js +7 -2
  12. package/dist/Bar.js.map +1 -1
  13. package/dist/Breadcrumbs.d.ts +1 -1
  14. package/dist/Breadcrumbs.js +25 -5
  15. package/dist/Breadcrumbs.js.map +1 -1
  16. package/dist/BreadcrumbsItem.d.ts +3 -3
  17. package/dist/BreadcrumbsItem.js +1 -1
  18. package/dist/BreadcrumbsItem.js.map +1 -1
  19. package/dist/BusyIndicator.d.ts +5 -5
  20. package/dist/BusyIndicator.js +33 -5
  21. package/dist/BusyIndicator.js.map +1 -1
  22. package/dist/Button.d.ts +9 -9
  23. package/dist/Button.js +107 -7
  24. package/dist/Button.js.map +1 -1
  25. package/dist/Calendar.d.ts +46 -7
  26. package/dist/Calendar.js +143 -16
  27. package/dist/Calendar.js.map +1 -1
  28. package/dist/CalendarDate.d.ts +1 -0
  29. package/dist/CalendarDate.js +11 -0
  30. package/dist/CalendarDate.js.map +1 -1
  31. package/dist/CalendarDateRange.d.ts +1 -0
  32. package/dist/CalendarDateRange.js +18 -0
  33. package/dist/CalendarDateRange.js.map +1 -1
  34. package/dist/CalendarLegend.js +24 -0
  35. package/dist/CalendarLegend.js.map +1 -1
  36. package/dist/CalendarLegendItem.d.ts +2 -2
  37. package/dist/CalendarLegendItem.js +16 -2
  38. package/dist/CalendarLegendItem.js.map +1 -1
  39. package/dist/CalendarPart.js +1 -2
  40. package/dist/CalendarPart.js.map +1 -1
  41. package/dist/Card.d.ts +4 -4
  42. package/dist/Card.js.map +1 -1
  43. package/dist/CardHeader.d.ts +6 -6
  44. package/dist/CardHeader.js +20 -2
  45. package/dist/CardHeader.js.map +1 -1
  46. package/dist/Carousel.d.ts +9 -9
  47. package/dist/Carousel.js +104 -14
  48. package/dist/Carousel.js.map +1 -1
  49. package/dist/CheckBox.d.ts +9 -9
  50. package/dist/CheckBox.js +85 -3
  51. package/dist/CheckBox.js.map +1 -1
  52. package/dist/ColorPalette.d.ts +2 -4
  53. package/dist/ColorPalette.js +34 -17
  54. package/dist/ColorPalette.js.map +1 -1
  55. package/dist/ColorPaletteItem.d.ts +3 -3
  56. package/dist/ColorPaletteItem.js +37 -5
  57. package/dist/ColorPaletteItem.js.map +1 -1
  58. package/dist/ColorPalettePopover.js +30 -4
  59. package/dist/ColorPalettePopover.js.map +1 -1
  60. package/dist/ColorPicker.d.ts +3 -3
  61. package/dist/ColorPicker.js +49 -8
  62. package/dist/ColorPicker.js.map +1 -1
  63. package/dist/ComboBox.d.ts +12 -11
  64. package/dist/ComboBox.js +108 -12
  65. package/dist/ComboBox.js.map +1 -1
  66. package/dist/ComboBoxItem.d.ts +4 -4
  67. package/dist/ComboBoxItem.js +18 -0
  68. package/dist/ComboBoxItem.js.map +1 -1
  69. package/dist/ComboBoxItemGroup.d.ts +2 -2
  70. package/dist/ComboBoxItemGroup.js +9 -1
  71. package/dist/ComboBoxItemGroup.js.map +1 -1
  72. package/dist/DateComponentBase.d.ts +3 -3
  73. package/dist/DateComponentBase.js +20 -3
  74. package/dist/DateComponentBase.js.map +1 -1
  75. package/dist/DatePicker.d.ts +7 -7
  76. package/dist/DatePicker.js +58 -4
  77. package/dist/DatePicker.js.map +1 -1
  78. package/dist/DateRangePicker.d.ts +2 -2
  79. package/dist/DateRangePicker.js +11 -4
  80. package/dist/DateRangePicker.js.map +1 -1
  81. package/dist/DateTimePicker.js +25 -2
  82. package/dist/DateTimePicker.js.map +1 -1
  83. package/dist/DayPicker.js +52 -18
  84. package/dist/DayPicker.js.map +1 -1
  85. package/dist/Dialog.d.ts +2 -2
  86. package/dist/Dialog.js +48 -2
  87. package/dist/Dialog.js.map +1 -1
  88. package/dist/DropIndicator.js +31 -4
  89. package/dist/DropIndicator.js.map +1 -1
  90. package/dist/FileUploader.d.ts +5 -5
  91. package/dist/FileUploader.js +43 -2
  92. package/dist/FileUploader.js.map +1 -1
  93. package/dist/Filters.js +2 -2
  94. package/dist/Filters.js.map +1 -1
  95. package/dist/Form.d.ts +5 -3
  96. package/dist/Form.js +65 -15
  97. package/dist/Form.js.map +1 -1
  98. package/dist/FormGroup.d.ts +4 -3
  99. package/dist/FormGroup.js +19 -11
  100. package/dist/FormGroup.js.map +1 -1
  101. package/dist/FormItem.d.ts +2 -1
  102. package/dist/FormItem.js +15 -5
  103. package/dist/FormItem.js.map +1 -1
  104. package/dist/Icon.d.ts +5 -5
  105. package/dist/Icon.js +38 -6
  106. package/dist/Icon.js.map +1 -1
  107. package/dist/Input.d.ts +34 -39
  108. package/dist/Input.js +197 -78
  109. package/dist/Input.js.map +1 -1
  110. package/dist/Label.d.ts +3 -3
  111. package/dist/Label.js +30 -2
  112. package/dist/Label.js.map +1 -1
  113. package/dist/Link.d.ts +19 -19
  114. package/dist/Link.js +59 -8
  115. package/dist/Link.js.map +1 -1
  116. package/dist/List.d.ts +17 -17
  117. package/dist/List.js +73 -12
  118. package/dist/List.js.map +1 -1
  119. package/dist/ListItem.d.ts +10 -4
  120. package/dist/ListItem.js +63 -6
  121. package/dist/ListItem.js.map +1 -1
  122. package/dist/ListItemBase.d.ts +3 -3
  123. package/dist/ListItemBase.js +41 -1
  124. package/dist/ListItemBase.js.map +1 -1
  125. package/dist/ListItemCustom.d.ts +2 -2
  126. package/dist/ListItemCustom.js +10 -0
  127. package/dist/ListItemCustom.js.map +1 -1
  128. package/dist/ListItemGroup.d.ts +4 -4
  129. package/dist/ListItemGroup.js +9 -1
  130. package/dist/ListItemGroup.js.map +1 -1
  131. package/dist/ListItemGroupHeader.d.ts +2 -2
  132. package/dist/ListItemGroupHeader.js.map +1 -1
  133. package/dist/ListItemStandard.d.ts +14 -24
  134. package/dist/ListItemStandard.js +48 -15
  135. package/dist/ListItemStandard.js.map +1 -1
  136. package/dist/Menu.d.ts +23 -9
  137. package/dist/Menu.js +49 -18
  138. package/dist/Menu.js.map +1 -1
  139. package/dist/MenuItem.d.ts +20 -20
  140. package/dist/MenuItem.js +46 -9
  141. package/dist/MenuItem.js.map +1 -1
  142. package/dist/MenuSeparator.d.ts +25 -0
  143. package/dist/MenuSeparator.js +59 -0
  144. package/dist/MenuSeparator.js.map +1 -0
  145. package/dist/MessageStrip.d.ts +6 -4
  146. package/dist/MessageStrip.js +51 -10
  147. package/dist/MessageStrip.js.map +1 -1
  148. package/dist/MonthPicker.js +14 -7
  149. package/dist/MonthPicker.js.map +1 -1
  150. package/dist/MultiComboBox.d.ts +30 -23
  151. package/dist/MultiComboBox.js +206 -109
  152. package/dist/MultiComboBox.js.map +1 -1
  153. package/dist/MultiComboBoxItem.js +8 -0
  154. package/dist/MultiComboBoxItem.js.map +1 -1
  155. package/dist/MultiComboBoxItemGroup.d.ts +2 -2
  156. package/dist/MultiComboBoxItemGroup.js +1 -1
  157. package/dist/MultiComboBoxItemGroup.js.map +1 -1
  158. package/dist/MultiInput.d.ts +4 -4
  159. package/dist/MultiInput.js +18 -2
  160. package/dist/MultiInput.js.map +1 -1
  161. package/dist/NavigationMenuItem.d.ts +5 -5
  162. package/dist/NavigationMenuItem.js.map +1 -1
  163. package/dist/Option.d.ts +16 -10
  164. package/dist/Option.js +4 -1
  165. package/dist/Option.js.map +1 -1
  166. package/dist/OptionCustom.d.ts +13 -7
  167. package/dist/OptionCustom.js +4 -1
  168. package/dist/OptionCustom.js.map +1 -1
  169. package/dist/Panel.d.ts +7 -7
  170. package/dist/Panel.js +64 -4
  171. package/dist/Panel.js.map +1 -1
  172. package/dist/Popover.d.ts +2 -2
  173. package/dist/Popover.js +71 -11
  174. package/dist/Popover.js.map +1 -1
  175. package/dist/Popup.d.ts +5 -5
  176. package/dist/Popup.js +46 -4
  177. package/dist/Popup.js.map +1 -1
  178. package/dist/ProgressIndicator.d.ts +4 -4
  179. package/dist/ProgressIndicator.js +24 -4
  180. package/dist/ProgressIndicator.js.map +1 -1
  181. package/dist/RadioButton.d.ts +11 -11
  182. package/dist/RadioButton.js +78 -5
  183. package/dist/RadioButton.js.map +1 -1
  184. package/dist/RangeSlider.js +22 -3
  185. package/dist/RangeSlider.js.map +1 -1
  186. package/dist/RatingIndicator.d.ts +6 -6
  187. package/dist/RatingIndicator.js +55 -6
  188. package/dist/RatingIndicator.js.map +1 -1
  189. package/dist/ResponsivePopover.js +19 -0
  190. package/dist/ResponsivePopover.js.map +1 -1
  191. package/dist/SegmentedButton.d.ts +2 -0
  192. package/dist/SegmentedButton.js +15 -3
  193. package/dist/SegmentedButton.js.map +1 -1
  194. package/dist/SegmentedButtonItem.d.ts +9 -9
  195. package/dist/SegmentedButtonItem.js +49 -7
  196. package/dist/SegmentedButtonItem.js.map +1 -1
  197. package/dist/Select.d.ts +8 -9
  198. package/dist/Select.js +60 -11
  199. package/dist/Select.js.map +1 -1
  200. package/dist/Slider.js +9 -2
  201. package/dist/Slider.js.map +1 -1
  202. package/dist/SliderBase.d.ts +4 -4
  203. package/dist/SliderBase.js +61 -7
  204. package/dist/SliderBase.js.map +1 -1
  205. package/dist/SpecialCalendarDate.d.ts +11 -4
  206. package/dist/SpecialCalendarDate.js +23 -5
  207. package/dist/SpecialCalendarDate.js.map +1 -1
  208. package/dist/SplitButton.d.ts +3 -3
  209. package/dist/SplitButton.js +54 -4
  210. package/dist/SplitButton.js.map +1 -1
  211. package/dist/StepInput.d.ts +8 -8
  212. package/dist/StepInput.js +70 -19
  213. package/dist/StepInput.js.map +1 -1
  214. package/dist/SuggestionItem.d.ts +16 -60
  215. package/dist/SuggestionItem.js +26 -27
  216. package/dist/SuggestionItem.js.map +1 -1
  217. package/dist/SuggestionItemCustom.d.ts +31 -0
  218. package/dist/SuggestionItemCustom.js +48 -0
  219. package/dist/SuggestionItemCustom.js.map +1 -0
  220. package/dist/SuggestionItemGroup.d.ts +19 -0
  221. package/dist/SuggestionItemGroup.js +35 -0
  222. package/dist/SuggestionItemGroup.js.map +1 -0
  223. package/dist/SuggestionListItem.d.ts +1 -1
  224. package/dist/Switch.d.ts +17 -17
  225. package/dist/Switch.js +40 -2
  226. package/dist/Switch.js.map +1 -1
  227. package/dist/Tab.d.ts +10 -10
  228. package/dist/Tab.js +41 -2
  229. package/dist/Tab.js.map +1 -1
  230. package/dist/TabContainer.d.ts +6 -6
  231. package/dist/TabContainer.js +81 -16
  232. package/dist/TabContainer.js.map +1 -1
  233. package/dist/Table.d.ts +26 -9
  234. package/dist/Table.js +74 -10
  235. package/dist/Table.js.map +1 -1
  236. package/dist/TableCell.d.ts +1 -0
  237. package/dist/TableCell.js +1 -0
  238. package/dist/TableCell.js.map +1 -1
  239. package/dist/TableCellBase.d.ts +2 -0
  240. package/dist/TableCellBase.js +7 -0
  241. package/dist/TableCellBase.js.map +1 -1
  242. package/dist/TableGrowing.d.ts +7 -5
  243. package/dist/TableGrowing.js +28 -1
  244. package/dist/TableGrowing.js.map +1 -1
  245. package/dist/TableHeaderCell.d.ts +1 -0
  246. package/dist/TableHeaderCell.js +42 -5
  247. package/dist/TableHeaderCell.js.map +1 -1
  248. package/dist/TableHeaderRow.d.ts +1 -0
  249. package/dist/TableHeaderRow.js +11 -0
  250. package/dist/TableHeaderRow.js.map +1 -1
  251. package/dist/TableNavigation.d.ts +3 -1
  252. package/dist/TableNavigation.js +25 -9
  253. package/dist/TableNavigation.js.map +1 -1
  254. package/dist/TableRow.d.ts +11 -2
  255. package/dist/TableRow.js +39 -1
  256. package/dist/TableRow.js.map +1 -1
  257. package/dist/TableRowBase.d.ts +3 -2
  258. package/dist/TableRowBase.js +16 -9
  259. package/dist/TableRowBase.js.map +1 -1
  260. package/dist/TableSelection.d.ts +29 -1
  261. package/dist/TableSelection.js +163 -8
  262. package/dist/TableSelection.js.map +1 -1
  263. package/dist/TableUtils.d.ts +8 -0
  264. package/dist/TableUtils.js +17 -0
  265. package/dist/TableUtils.js.map +1 -0
  266. package/dist/Tag.d.ts +2 -2
  267. package/dist/Tag.js +64 -6
  268. package/dist/Tag.js.map +1 -1
  269. package/dist/Text.js +10 -2
  270. package/dist/Text.js.map +1 -1
  271. package/dist/TextArea.d.ts +10 -10
  272. package/dist/TextArea.js +97 -7
  273. package/dist/TextArea.js.map +1 -1
  274. package/dist/TimePicker.d.ts +9 -9
  275. package/dist/TimePicker.js +41 -4
  276. package/dist/TimePicker.js.map +1 -1
  277. package/dist/TimePickerClock.d.ts +1 -1
  278. package/dist/TimePickerClock.js +121 -14
  279. package/dist/TimePickerClock.js.map +1 -1
  280. package/dist/TimePickerInternals.d.ts +4 -4
  281. package/dist/TimePickerInternals.js +33 -11
  282. package/dist/TimePickerInternals.js.map +1 -1
  283. package/dist/TimeSelectionClocks.js +15 -0
  284. package/dist/TimeSelectionClocks.js.map +1 -1
  285. package/dist/TimeSelectionInputs.d.ts +2 -2
  286. package/dist/TimeSelectionInputs.js +6 -3
  287. package/dist/TimeSelectionInputs.js.map +1 -1
  288. package/dist/Title.d.ts +1 -1
  289. package/dist/Title.js +20 -3
  290. package/dist/Title.js.map +1 -1
  291. package/dist/Toast.d.ts +1 -7
  292. package/dist/Toast.js +52 -23
  293. package/dist/Toast.js.map +1 -1
  294. package/dist/ToggleButton.js +9 -0
  295. package/dist/ToggleButton.js.map +1 -1
  296. package/dist/ToggleSpinButton.d.ts +1 -1
  297. package/dist/ToggleSpinButton.js +22 -4
  298. package/dist/ToggleSpinButton.js.map +1 -1
  299. package/dist/Token.d.ts +2 -2
  300. package/dist/Token.js +49 -1
  301. package/dist/Token.js.map +1 -1
  302. package/dist/Tokenizer.d.ts +2 -1
  303. package/dist/Tokenizer.js +73 -10
  304. package/dist/Tokenizer.js.map +1 -1
  305. package/dist/Toolbar.d.ts +6 -6
  306. package/dist/Toolbar.js +23 -8
  307. package/dist/Toolbar.js.map +1 -1
  308. package/dist/ToolbarButton.d.ts +11 -11
  309. package/dist/ToolbarButton.js +39 -6
  310. package/dist/ToolbarButton.js.map +1 -1
  311. package/dist/ToolbarItem.d.ts +1 -1
  312. package/dist/ToolbarItem.js +18 -2
  313. package/dist/ToolbarItem.js.map +1 -1
  314. package/dist/ToolbarSelect.d.ts +5 -5
  315. package/dist/ToolbarSelect.js +16 -4
  316. package/dist/ToolbarSelect.js.map +1 -1
  317. package/dist/ToolbarSelectOption.js +9 -0
  318. package/dist/ToolbarSelectOption.js.map +1 -1
  319. package/dist/ToolbarSeparator.js +4 -0
  320. package/dist/ToolbarSeparator.js.map +1 -1
  321. package/dist/ToolbarSpacer.js +1 -2
  322. package/dist/ToolbarSpacer.js.map +1 -1
  323. package/dist/Tree.d.ts +12 -12
  324. package/dist/Tree.js +11 -2
  325. package/dist/Tree.js.map +1 -1
  326. package/dist/TreeItem.d.ts +5 -5
  327. package/dist/TreeItem.js +1 -1
  328. package/dist/TreeItem.js.map +1 -1
  329. package/dist/TreeItemBase.d.ts +5 -5
  330. package/dist/TreeItemBase.js +61 -6
  331. package/dist/TreeItemBase.js.map +1 -1
  332. package/dist/TreeItemCustom.js +9 -0
  333. package/dist/TreeItemCustom.js.map +1 -1
  334. package/dist/YearPicker.js +14 -7
  335. package/dist/YearPicker.js.map +1 -1
  336. package/dist/bundle.common.bootstrap.d.ts +1 -1
  337. package/dist/bundle.esm.d.ts +3 -1
  338. package/dist/bundle.esm.js +5 -0
  339. package/dist/bundle.esm.js.map +1 -1
  340. package/dist/css/themes/Avatar.css +1 -1
  341. package/dist/css/themes/AvatarGroup.css +1 -1
  342. package/dist/css/themes/Bar.css +1 -1
  343. package/dist/css/themes/Breadcrumbs.css +1 -1
  344. package/dist/css/themes/BusyIndicator.css +1 -1
  345. package/dist/css/themes/Button.css +1 -1
  346. package/dist/css/themes/Calendar.css +1 -1
  347. package/dist/css/themes/CalendarHeader.css +1 -1
  348. package/dist/css/themes/CalendarLegend.css +1 -1
  349. package/dist/css/themes/CalendarLegendItem.css +1 -1
  350. package/dist/css/themes/Card.css +1 -1
  351. package/dist/css/themes/CardHeader.css +1 -1
  352. package/dist/css/themes/Carousel.css +1 -1
  353. package/dist/css/themes/CheckBox.css +1 -1
  354. package/dist/css/themes/ColorPalette.css +1 -1
  355. package/dist/css/themes/ColorPaletteItem.css +1 -1
  356. package/dist/css/themes/ColorPalettePopover.css +1 -1
  357. package/dist/css/themes/ColorPicker.css +1 -1
  358. package/dist/css/themes/ComboBox.css +1 -1
  359. package/dist/css/themes/DatePicker.css +1 -1
  360. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  361. package/dist/css/themes/DayPicker.css +1 -1
  362. package/dist/css/themes/Dialog.css +1 -1
  363. package/dist/css/themes/FileUploader.css +1 -1
  364. package/dist/css/themes/Form.css +1 -1
  365. package/dist/css/themes/FormItem.css +1 -1
  366. package/dist/css/themes/FormLabelSpan.css +1 -1
  367. package/dist/css/themes/GrowingButton.css +1 -1
  368. package/dist/css/themes/Icon.css +1 -1
  369. package/dist/css/themes/Input.css +1 -1
  370. package/dist/css/themes/InputIcon.css +1 -1
  371. package/dist/css/themes/InputSharedStyles.css +1 -1
  372. package/dist/css/themes/Link.css +1 -1
  373. package/dist/css/themes/List.css +1 -1
  374. package/dist/css/themes/ListItem.css +1 -1
  375. package/dist/css/themes/ListItemBase.css +1 -1
  376. package/dist/css/themes/ListItemCustom.css +1 -1
  377. package/dist/css/themes/ListItemGroup.css +1 -1
  378. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  379. package/dist/css/themes/ListItemIcon.css +1 -1
  380. package/dist/css/themes/Menu.css +1 -1
  381. package/dist/css/themes/MenuItem.css +1 -1
  382. package/dist/css/themes/MenuSeparator.css +1 -0
  383. package/dist/css/themes/MessageStrip.css +1 -1
  384. package/dist/css/themes/MonthPicker.css +1 -1
  385. package/dist/css/themes/MultiComboBox.css +1 -1
  386. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  387. package/dist/css/themes/MultiInput.css +1 -1
  388. package/dist/css/themes/NavigationMenu.css +1 -1
  389. package/dist/css/themes/NavigationMenuItem.css +1 -1
  390. package/dist/css/themes/OptionBase.css +1 -1
  391. package/dist/css/themes/Panel.css +1 -1
  392. package/dist/css/themes/Popover.css +1 -1
  393. package/dist/css/themes/PopupsCommon.css +1 -1
  394. package/dist/css/themes/ProgressIndicator.css +1 -1
  395. package/dist/css/themes/RadioButton.css +1 -1
  396. package/dist/css/themes/RangeSlider.css +1 -1
  397. package/dist/css/themes/RatingIndicator.css +1 -1
  398. package/dist/css/themes/ResponsivePopover.css +1 -1
  399. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  400. package/dist/css/themes/SegmentedButton.css +1 -1
  401. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  402. package/dist/css/themes/Select.css +1 -1
  403. package/dist/css/themes/SliderBase.css +1 -1
  404. package/dist/css/themes/SplitButton.css +1 -1
  405. package/dist/css/themes/StepInput.css +1 -1
  406. package/dist/css/themes/SuggestionItem.css +1 -0
  407. package/dist/css/themes/SuggestionItemCustom.css +1 -0
  408. package/dist/css/themes/Suggestions.css +1 -1
  409. package/dist/css/themes/Switch.css +1 -1
  410. package/dist/css/themes/TabContainer.css +1 -1
  411. package/dist/css/themes/TabInOverflow.css +1 -1
  412. package/dist/css/themes/TabInStrip.css +1 -1
  413. package/dist/css/themes/TabSemanticIcon.css +1 -1
  414. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  415. package/dist/css/themes/Table.css +1 -1
  416. package/dist/css/themes/TableCellBase.css +1 -1
  417. package/dist/css/themes/TableHeaderRow.css +1 -1
  418. package/dist/css/themes/TableRow.css +1 -1
  419. package/dist/css/themes/TableRowBase.css +1 -1
  420. package/dist/css/themes/Tag.css +1 -1
  421. package/dist/css/themes/Text.css +1 -1
  422. package/dist/css/themes/TextArea.css +1 -1
  423. package/dist/css/themes/TimePicker.css +1 -1
  424. package/dist/css/themes/Toast.css +1 -1
  425. package/dist/css/themes/ToggleButton.css +1 -1
  426. package/dist/css/themes/Token.css +1 -1
  427. package/dist/css/themes/Tokenizer.css +1 -1
  428. package/dist/css/themes/TokenizerPopover.css +1 -1
  429. package/dist/css/themes/Toolbar.css +1 -1
  430. package/dist/css/themes/ToolbarPopover.css +1 -1
  431. package/dist/css/themes/TreeItem.css +1 -1
  432. package/dist/css/themes/ValueStateMessage.css +1 -1
  433. package/dist/css/themes/YearPicker.css +1 -1
  434. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  435. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  436. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  437. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  438. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  439. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  440. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  441. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  442. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  443. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  444. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  445. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  446. package/dist/custom-elements-internal.json +1769 -1783
  447. package/dist/custom-elements.json +1498 -1551
  448. package/dist/features/InputSuggestions.d.ts +22 -48
  449. package/dist/features/InputSuggestions.js +63 -106
  450. package/dist/features/InputSuggestions.js.map +1 -1
  451. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  452. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  453. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  454. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  455. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  456. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  457. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  458. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  459. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  460. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  461. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  462. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  463. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  464. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  465. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  466. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  467. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  468. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  469. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  470. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  471. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  472. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  473. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  474. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  475. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  476. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  477. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  478. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  479. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  480. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  481. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  482. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  483. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  484. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  485. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  486. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  487. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  488. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  489. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  490. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  491. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  492. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  493. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  494. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  495. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  496. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  497. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  498. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  499. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  500. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  501. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  502. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  503. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  504. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  505. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  506. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  507. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  508. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  509. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  510. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  511. package/dist/generated/templates/AvatarTemplate.lit.js +1 -1
  512. package/dist/generated/templates/AvatarTemplate.lit.js.map +1 -1
  513. package/dist/generated/templates/CalendarHeaderTemplate.lit.d.ts +1 -1
  514. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +3 -3
  515. package/dist/generated/templates/CalendarHeaderTemplate.lit.js.map +1 -1
  516. package/dist/generated/templates/CalendarTemplate.lit.js +4 -2
  517. package/dist/generated/templates/CalendarTemplate.lit.js.map +1 -1
  518. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +1 -1
  519. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
  520. package/dist/generated/templates/ComboBoxTemplate.lit.js +1 -1
  521. package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
  522. package/dist/generated/templates/InputPopoverTemplate.lit.js +8 -12
  523. package/dist/generated/templates/InputPopoverTemplate.lit.js.map +1 -1
  524. package/dist/generated/templates/InputTemplate.lit.js +8 -12
  525. package/dist/generated/templates/InputTemplate.lit.js.map +1 -1
  526. package/dist/generated/templates/ListItemStandardTemplate.lit.js +18 -20
  527. package/dist/generated/templates/ListItemStandardTemplate.lit.js.map +1 -1
  528. package/dist/generated/templates/MenuSeparatorTemplate.lit.d.ts +4 -0
  529. package/dist/generated/templates/MenuSeparatorTemplate.lit.js +5 -0
  530. package/dist/generated/templates/MenuSeparatorTemplate.lit.js.map +1 -0
  531. package/dist/generated/templates/MenuTemplate.lit.js +1 -1
  532. package/dist/generated/templates/MenuTemplate.lit.js.map +1 -1
  533. package/dist/generated/templates/MessageStripTemplate.lit.js +1 -1
  534. package/dist/generated/templates/MessageStripTemplate.lit.js.map +1 -1
  535. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +11 -11
  536. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
  537. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +11 -11
  538. package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
  539. package/dist/generated/templates/MultiInputTemplate.lit.js +7 -11
  540. package/dist/generated/templates/MultiInputTemplate.lit.js.map +1 -1
  541. package/dist/generated/templates/SuggestionItemCustomTemplate.lit.d.ts +4 -0
  542. package/dist/generated/templates/SuggestionItemCustomTemplate.lit.js +5 -0
  543. package/dist/generated/templates/SuggestionItemCustomTemplate.lit.js.map +1 -0
  544. package/dist/generated/templates/SuggestionItemGroupTemplate.lit.d.ts +4 -0
  545. package/dist/generated/templates/SuggestionItemGroupTemplate.lit.js +8 -0
  546. package/dist/generated/templates/SuggestionItemGroupTemplate.lit.js.map +1 -0
  547. package/dist/generated/templates/SuggestionItemTemplate.lit.d.ts +4 -0
  548. package/dist/generated/templates/SuggestionItemTemplate.lit.js +6 -0
  549. package/dist/generated/templates/SuggestionItemTemplate.lit.js.map +1 -0
  550. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +21 -23
  551. package/dist/generated/templates/SuggestionListItemTemplate.lit.js.map +1 -1
  552. package/dist/generated/templates/TabContainerTemplate.lit.js +2 -2
  553. package/dist/generated/templates/TabContainerTemplate.lit.js.map +1 -1
  554. package/dist/generated/templates/TableHeaderRowTemplate.lit.js +2 -2
  555. package/dist/generated/templates/TableHeaderRowTemplate.lit.js.map +1 -1
  556. package/dist/generated/templates/TableRowTemplate.lit.js +6 -5
  557. package/dist/generated/templates/TableRowTemplate.lit.js.map +1 -1
  558. package/dist/generated/templates/TableTemplate.lit.js +6 -6
  559. package/dist/generated/templates/TableTemplate.lit.js.map +1 -1
  560. package/dist/generated/templates/ToastTemplate.lit.js +1 -1
  561. package/dist/generated/templates/ToastTemplate.lit.js.map +1 -1
  562. package/dist/generated/themes/Avatar.css.js +1 -1
  563. package/dist/generated/themes/Avatar.css.js.map +1 -1
  564. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  565. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  566. package/dist/generated/themes/Bar.css.js +1 -1
  567. package/dist/generated/themes/Bar.css.js.map +1 -1
  568. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  569. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  570. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  571. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  572. package/dist/generated/themes/Button.css.js +1 -1
  573. package/dist/generated/themes/Button.css.js.map +1 -1
  574. package/dist/generated/themes/Calendar.css.js +1 -1
  575. package/dist/generated/themes/Calendar.css.js.map +1 -1
  576. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  577. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  578. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  579. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  580. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  581. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  582. package/dist/generated/themes/Card.css.js +1 -1
  583. package/dist/generated/themes/Card.css.js.map +1 -1
  584. package/dist/generated/themes/CardHeader.css.js +1 -1
  585. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  586. package/dist/generated/themes/Carousel.css.js +1 -1
  587. package/dist/generated/themes/Carousel.css.js.map +1 -1
  588. package/dist/generated/themes/CheckBox.css.js +1 -1
  589. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  590. package/dist/generated/themes/ColorPalette.css.js +1 -1
  591. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  592. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  593. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  594. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  595. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  596. package/dist/generated/themes/ColorPicker.css.js +1 -1
  597. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  598. package/dist/generated/themes/ComboBox.css.js +1 -1
  599. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  600. package/dist/generated/themes/DatePicker.css.js +1 -1
  601. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  602. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  603. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  604. package/dist/generated/themes/DayPicker.css.js +1 -1
  605. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  606. package/dist/generated/themes/Dialog.css.js +1 -1
  607. package/dist/generated/themes/Dialog.css.js.map +1 -1
  608. package/dist/generated/themes/FileUploader.css.js +1 -1
  609. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  610. package/dist/generated/themes/Form.css.js +1 -1
  611. package/dist/generated/themes/Form.css.js.map +1 -1
  612. package/dist/generated/themes/FormItem.css.js +1 -1
  613. package/dist/generated/themes/FormItem.css.js.map +1 -1
  614. package/dist/generated/themes/FormLabelSpan.css.js +1 -1
  615. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -1
  616. package/dist/generated/themes/GrowingButton.css.js +1 -1
  617. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  618. package/dist/generated/themes/Icon.css.js +1 -1
  619. package/dist/generated/themes/Icon.css.js.map +1 -1
  620. package/dist/generated/themes/Input.css.js +1 -1
  621. package/dist/generated/themes/Input.css.js.map +1 -1
  622. package/dist/generated/themes/InputIcon.css.js +1 -1
  623. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  624. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  625. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  626. package/dist/generated/themes/Link.css.js +1 -1
  627. package/dist/generated/themes/Link.css.js.map +1 -1
  628. package/dist/generated/themes/List.css.js +1 -1
  629. package/dist/generated/themes/List.css.js.map +1 -1
  630. package/dist/generated/themes/ListItem.css.js +1 -1
  631. package/dist/generated/themes/ListItem.css.js.map +1 -1
  632. package/dist/generated/themes/ListItemBase.css.js +1 -1
  633. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  634. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  635. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  636. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  637. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  638. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  639. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  640. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  641. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  642. package/dist/generated/themes/Menu.css.js +1 -1
  643. package/dist/generated/themes/Menu.css.js.map +1 -1
  644. package/dist/generated/themes/MenuItem.css.js +1 -1
  645. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  646. package/dist/generated/themes/MenuSeparator.css.d.ts +3 -0
  647. package/dist/generated/themes/MenuSeparator.css.js +9 -0
  648. package/dist/generated/themes/MenuSeparator.css.js.map +1 -0
  649. package/dist/generated/themes/MessageStrip.css.js +1 -1
  650. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  651. package/dist/generated/themes/MonthPicker.css.js +1 -1
  652. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  653. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  654. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  655. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  656. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  657. package/dist/generated/themes/MultiInput.css.js +1 -1
  658. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  659. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  660. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  661. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  662. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  663. package/dist/generated/themes/OptionBase.css.js +1 -1
  664. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  665. package/dist/generated/themes/Panel.css.js +1 -1
  666. package/dist/generated/themes/Panel.css.js.map +1 -1
  667. package/dist/generated/themes/Popover.css.js +1 -1
  668. package/dist/generated/themes/Popover.css.js.map +1 -1
  669. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  670. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  671. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  672. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  673. package/dist/generated/themes/RadioButton.css.js +1 -1
  674. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  675. package/dist/generated/themes/RangeSlider.css.js +1 -1
  676. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  677. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  678. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  679. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  680. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  681. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  682. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  683. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  684. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  685. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  686. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  687. package/dist/generated/themes/Select.css.js +1 -1
  688. package/dist/generated/themes/Select.css.js.map +1 -1
  689. package/dist/generated/themes/SliderBase.css.js +1 -1
  690. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  691. package/dist/generated/themes/SplitButton.css.js +1 -1
  692. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  693. package/dist/generated/themes/StepInput.css.js +1 -1
  694. package/dist/generated/themes/StepInput.css.js.map +1 -1
  695. package/dist/generated/themes/SuggestionItem.css.d.ts +3 -0
  696. package/dist/generated/themes/SuggestionItem.css.js +9 -0
  697. package/dist/generated/themes/SuggestionItem.css.js.map +1 -0
  698. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +3 -0
  699. package/dist/generated/themes/SuggestionItemCustom.css.js +9 -0
  700. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -0
  701. package/dist/generated/themes/Suggestions.css.js +1 -1
  702. package/dist/generated/themes/Suggestions.css.js.map +1 -1
  703. package/dist/generated/themes/Switch.css.js +1 -1
  704. package/dist/generated/themes/Switch.css.js.map +1 -1
  705. package/dist/generated/themes/TabContainer.css.js +1 -1
  706. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  707. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  708. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  709. package/dist/generated/themes/TabInStrip.css.js +1 -1
  710. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  711. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  712. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  713. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  714. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  715. package/dist/generated/themes/Table.css.js +1 -1
  716. package/dist/generated/themes/Table.css.js.map +1 -1
  717. package/dist/generated/themes/TableCellBase.css.js +1 -1
  718. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  719. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  720. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  721. package/dist/generated/themes/TableRow.css.js +1 -1
  722. package/dist/generated/themes/TableRow.css.js.map +1 -1
  723. package/dist/generated/themes/TableRowBase.css.js +1 -1
  724. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  725. package/dist/generated/themes/Tag.css.js +1 -1
  726. package/dist/generated/themes/Tag.css.js.map +1 -1
  727. package/dist/generated/themes/Text.css.js +1 -1
  728. package/dist/generated/themes/Text.css.js.map +1 -1
  729. package/dist/generated/themes/TextArea.css.js +1 -1
  730. package/dist/generated/themes/TextArea.css.js.map +1 -1
  731. package/dist/generated/themes/TimePicker.css.js +1 -1
  732. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  733. package/dist/generated/themes/Toast.css.js +1 -1
  734. package/dist/generated/themes/Toast.css.js.map +1 -1
  735. package/dist/generated/themes/ToggleButton.css.js +1 -1
  736. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  737. package/dist/generated/themes/Token.css.js +1 -1
  738. package/dist/generated/themes/Token.css.js.map +1 -1
  739. package/dist/generated/themes/Tokenizer.css.js +1 -1
  740. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  741. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  742. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  743. package/dist/generated/themes/Toolbar.css.js +1 -1
  744. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  745. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  746. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  747. package/dist/generated/themes/TreeItem.css.js +1 -1
  748. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  749. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  750. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  751. package/dist/generated/themes/YearPicker.css.js +1 -1
  752. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  753. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  754. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  755. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  756. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  757. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  758. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  759. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  760. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  761. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  762. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  763. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  764. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  765. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  766. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  767. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  768. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  769. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  770. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  771. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  772. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  773. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  774. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  775. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  776. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  777. package/dist/types/IconMode.d.ts +4 -4
  778. package/dist/types/IconMode.js +4 -4
  779. package/dist/types/IconMode.js.map +1 -1
  780. package/dist/types/{ListSeparators.d.ts → ListSeparator.d.ts} +3 -2
  781. package/dist/types/{ListSeparators.js → ListSeparator.js} +9 -8
  782. package/dist/types/ListSeparator.js.map +1 -0
  783. package/dist/vscode.html-custom-data.json +73 -89
  784. package/dist/web-types.json +526 -533
  785. package/package.json +11 -9
  786. package/src/Avatar.hbs +1 -1
  787. package/src/Calendar.hbs +3 -19
  788. package/src/CalendarHeader.hbs +10 -10
  789. package/src/ComboBoxPopover.hbs +1 -1
  790. package/src/InputPopover.hbs +1 -22
  791. package/src/ListItemStandard.hbs +3 -9
  792. package/src/Menu.hbs +0 -1
  793. package/src/MenuSeparator.hbs +6 -0
  794. package/src/MessageStrip.hbs +1 -1
  795. package/src/MultiComboBox.hbs +1 -0
  796. package/src/MultiComboBoxPopover.hbs +14 -7
  797. package/src/SuggestionItem.hbs +14 -0
  798. package/src/SuggestionItemCustom.hbs +5 -0
  799. package/src/SuggestionItemGroup.hbs +1 -0
  800. package/src/TabContainer.hbs +2 -2
  801. package/src/Table.hbs +6 -12
  802. package/src/TableHeaderRow.hbs +2 -1
  803. package/src/TableRow.hbs +6 -2
  804. package/src/Toast.hbs +1 -1
  805. package/src/i18n/messagebundle_ar.properties +15 -2
  806. package/src/i18n/messagebundle_bg.properties +15 -2
  807. package/src/i18n/messagebundle_ca.properties +31 -18
  808. package/src/i18n/messagebundle_cnr.properties +15 -2
  809. package/src/i18n/messagebundle_cs.properties +15 -2
  810. package/src/i18n/messagebundle_cy.properties +25 -12
  811. package/src/i18n/messagebundle_da.properties +15 -2
  812. package/src/i18n/messagebundle_de.properties +18 -5
  813. package/src/i18n/messagebundle_el.properties +15 -2
  814. package/src/i18n/messagebundle_en.properties +15 -2
  815. package/src/i18n/messagebundle_en_GB.properties +15 -2
  816. package/src/i18n/messagebundle_en_US_saprigi.properties +15 -2
  817. package/src/i18n/messagebundle_es.properties +15 -2
  818. package/src/i18n/messagebundle_es_MX.properties +18 -5
  819. package/src/i18n/messagebundle_et.properties +15 -2
  820. package/src/i18n/messagebundle_fi.properties +15 -2
  821. package/src/i18n/messagebundle_fr.properties +33 -20
  822. package/src/i18n/messagebundle_fr_CA.properties +33 -20
  823. package/src/i18n/messagebundle_hi.properties +15 -2
  824. package/src/i18n/messagebundle_hr.properties +15 -2
  825. package/src/i18n/messagebundle_hu.properties +15 -2
  826. package/src/i18n/messagebundle_id.properties +15 -2
  827. package/src/i18n/messagebundle_it.properties +19 -6
  828. package/src/i18n/messagebundle_iw.properties +17 -4
  829. package/src/i18n/messagebundle_ja.properties +15 -2
  830. package/src/i18n/messagebundle_kk.properties +19 -6
  831. package/src/i18n/messagebundle_ko.properties +18 -5
  832. package/src/i18n/messagebundle_lt.properties +15 -2
  833. package/src/i18n/messagebundle_lv.properties +15 -2
  834. package/src/i18n/messagebundle_mk.properties +15 -2
  835. package/src/i18n/messagebundle_ms.properties +15 -2
  836. package/src/i18n/messagebundle_nl.properties +15 -2
  837. package/src/i18n/messagebundle_no.properties +15 -2
  838. package/src/i18n/messagebundle_pl.properties +15 -2
  839. package/src/i18n/messagebundle_pt.properties +15 -2
  840. package/src/i18n/messagebundle_pt_PT.properties +15 -2
  841. package/src/i18n/messagebundle_ro.properties +15 -2
  842. package/src/i18n/messagebundle_ru.properties +15 -2
  843. package/src/i18n/messagebundle_sh.properties +15 -2
  844. package/src/i18n/messagebundle_sk.properties +15 -2
  845. package/src/i18n/messagebundle_sl.properties +15 -2
  846. package/src/i18n/messagebundle_sr.properties +15 -2
  847. package/src/i18n/messagebundle_sv.properties +16 -3
  848. package/src/i18n/messagebundle_th.properties +16 -3
  849. package/src/i18n/messagebundle_tr.properties +16 -3
  850. package/src/i18n/messagebundle_uk.properties +16 -3
  851. package/src/i18n/messagebundle_vi.properties +15 -2
  852. package/src/i18n/messagebundle_zh_CN.properties +15 -2
  853. package/src/i18n/messagebundle_zh_TW.properties +15 -2
  854. package/src/themes/Calendar.css +6 -5
  855. package/src/themes/CheckBox.css +3 -8
  856. package/src/themes/Input.css +7 -0
  857. package/src/themes/Link.css +2 -2
  858. package/src/themes/ListItem.css +9 -13
  859. package/src/themes/MenuItem.css +0 -4
  860. package/src/themes/MenuSeparator.css +11 -0
  861. package/src/themes/SegmentedButtonItem.css +2 -1
  862. package/src/themes/SuggestionItem.css +14 -0
  863. package/src/themes/SuggestionItemCustom.css +3 -0
  864. package/src/themes/Suggestions.css +0 -5
  865. package/src/themes/TabContainer.css +1 -1
  866. package/src/themes/Table.css +3 -2
  867. package/src/themes/TableRow.css +15 -1
  868. package/src/themes/Tag.css +5 -75
  869. package/src/themes/TextArea.css +2 -2
  870. package/src/themes/base/CheckBox-parameters.css +2 -4
  871. package/src/themes/base/Table-parameters.css +1 -0
  872. package/src/themes/base/Tag-parameters.css +2 -1
  873. package/src/themes/base/sizes-parameters.css +1 -2
  874. package/src/themes/sap_fiori_3/CheckBox-parameters.css +0 -3
  875. package/src/themes/sap_fiori_3/Tag-parameters.css +5 -0
  876. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -1
  877. package/src/themes/sap_fiori_3_dark/CheckBox-parameters.css +0 -3
  878. package/src/themes/sap_fiori_3_hcb/CheckBox-parameters.css +1 -0
  879. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  880. package/src/themes/sap_fiori_3_hcb/sizes-parameters.css +4 -0
  881. package/src/themes/sap_fiori_3_hcw/CheckBox-parameters.css +1 -0
  882. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  883. package/src/themes/sap_fiori_3_hcw/sizes-parameters.css +4 -0
  884. package/src/themes/sap_horizon/CheckBox-parameters.css +0 -1
  885. package/src/themes/sap_horizon/RatingIndicator-parameters.css +5 -3
  886. package/src/themes/sap_horizon/sizes-parameters.css +3 -0
  887. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +0 -1
  888. package/src/themes/sap_horizon_dark/RatingIndicator-parameters.css +5 -3
  889. package/src/themes/sap_horizon_dark/sizes-parameters.css +3 -0
  890. package/src/themes/sap_horizon_exp/CheckBox-parameters.css +0 -1
  891. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +1 -1
  892. package/src/themes/sap_horizon_hcb/RatingIndicator-parameters.css +5 -3
  893. package/src/themes/sap_horizon_hcb/sizes-parameters.css +4 -0
  894. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +1 -1
  895. package/src/themes/sap_horizon_hcw/RatingIndicator-parameters.css +5 -3
  896. package/src/themes/sap_horizon_hcw/sizes-parameters.css +4 -0
  897. package/dist/CalendarHeader.d.ts +0 -80
  898. package/dist/CalendarHeader.js +0 -160
  899. package/dist/CalendarHeader.js.map +0 -1
  900. package/dist/SuggestionGroupItem.d.ts +0 -28
  901. package/dist/SuggestionGroupItem.js +0 -43
  902. package/dist/SuggestionGroupItem.js.map +0 -1
  903. package/dist/styles/Icon.css +0 -33
  904. package/dist/styles/Icon.module.css +0 -33
  905. package/dist/types/ListSeparators.js.map +0 -1
  906. package/src/styles/Icon.module.css +0 -1
@@ -6,15 +6,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  var TableRowBase_1;
8
8
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
9
+ import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
9
10
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
10
11
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
12
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
12
- import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
13
13
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
14
- import { isEnter, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
15
14
  import TableRowBaseCss from "./generated/themes/TableRowBase.css.js";
16
- import Table from "./Table.js";
17
15
  import CheckBox from "./CheckBox.js";
16
+ import { isInstanceOfTable } from "./TableUtils.js";
18
17
  import { TABLE_ROW_SELECTOR, } from "./generated/i18n/i18n-defaults.js";
19
18
  /**
20
19
  * @class
@@ -26,11 +25,16 @@ import { TABLE_ROW_SELECTOR, } from "./generated/i18n/i18n-defaults.js";
26
25
  * @public
27
26
  */
28
27
  let TableRowBase = TableRowBase_1 = class TableRowBase extends UI5Element {
28
+ constructor() {
29
+ super(...arguments);
30
+ this._invalidate = 0;
31
+ }
29
32
  static async onDefine() {
30
33
  TableRowBase_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
31
34
  }
32
35
  onEnterDOM() {
33
36
  this.setAttribute("role", "row");
37
+ this.toggleAttribute("ui5-table-row-base", true);
34
38
  }
35
39
  onBeforeRendering() {
36
40
  if (this._isSelectable) {
@@ -43,12 +47,12 @@ let TableRowBase = TableRowBase_1 = class TableRowBase extends UI5Element {
43
47
  getFocusDomRef() {
44
48
  return this;
45
49
  }
46
- isHeaderRow() {
47
- return false;
48
- }
49
50
  _informSelectionChange() {
50
51
  this._tableSelection?.informSelectionChange(this);
51
52
  }
53
+ isHeaderRow() {
54
+ return false;
55
+ }
52
56
  _onkeydown(e, eventOrigin) {
53
57
  if ((eventOrigin === this && this._isSelectable && isSpace(e)) || (eventOrigin === this._selectionCell && (isSpace(e) || isEnter(e)))) {
54
58
  this._informSelectionChange();
@@ -56,8 +60,8 @@ let TableRowBase = TableRowBase_1 = class TableRowBase extends UI5Element {
56
60
  }
57
61
  }
58
62
  get _table() {
59
- const table = this.parentElement;
60
- return table instanceof Table ? table : undefined;
63
+ const element = this.parentElement;
64
+ return isInstanceOfTable(element) ? element : undefined;
61
65
  }
62
66
  get _tableId() {
63
67
  return this._table?._id;
@@ -89,9 +93,12 @@ let TableRowBase = TableRowBase_1 = class TableRowBase extends UI5Element {
89
93
  get _i18nRowSelector() {
90
94
  return TableRowBase_1.i18nBundle.getText(TABLE_ROW_SELECTOR);
91
95
  }
96
+ get isTableRowBase() {
97
+ return true;
98
+ }
92
99
  };
93
100
  __decorate([
94
- property({ type: Integer, defaultValue: 0, noAttribute: true })
101
+ property({ type: Number, noAttribute: true })
95
102
  ], TableRowBase.prototype, "_invalidate", void 0);
96
103
  TableRowBase = TableRowBase_1 = __decorate([
97
104
  customElement({
@@ -1 +1 @@
1
- {"version":3,"file":"TableRowBase.js","sourceRoot":"","sources":["../src/TableRowBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type TableCellBase from \"./TableCellBase.js\";\nimport TableRowBaseCss from \"./generated/themes/TableRowBase.css.js\";\nimport Table from \"./Table.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport {\n\tTABLE_ROW_SELECTOR,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * A class to serve as a foundation for the `TableRow` and `TableHeaderRow` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.0\n * @public\n */\n@customElement({\n\trenderer: litRender,\n\tstyles: TableRowBaseCss,\n\tdependencies: [CheckBox],\n})\nabstract class TableRowBase extends UI5Element {\n\tcells!: Array<TableCellBase>;\n\n\t@property({ type: Integer, defaultValue: 0, noAttribute: true })\n\t_invalidate!: number;\n\n\tstatic i18nBundle: I18nBundle;\n\tstatic async onDefine() {\n\t\tTableRowBase.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"role\", \"row\");\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this._isSelectable) {\n\t\t\tthis.setAttribute(\"aria-selected\", `${this._isSelected}`);\n\t\t} else {\n\t\t\tthis.removeAttribute(\"aria-selected\");\n\t\t}\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this;\n\t}\n\n\tisHeaderRow() {\n\t\treturn false;\n\t}\n\n\t_informSelectionChange() {\n\t\tthis._tableSelection?.informSelectionChange(this);\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif ((eventOrigin === this && this._isSelectable && isSpace(e)) || (eventOrigin === this._selectionCell && (isSpace(e) || isEnter(e)))) {\n\t\t\tthis._informSelectionChange();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tget _table(): Table | undefined {\n\t\tconst table = this.parentElement;\n\t\treturn table instanceof Table ? table : undefined;\n\t}\n\n\tget _tableId() {\n\t\treturn this._table?._id;\n\t}\n\n\tget _tableSelection() {\n\t\treturn this._table?._getSelection();\n\t}\n\n\tget _isSelected() {\n\t\treturn this._tableSelection?.isSelected(this);\n\t}\n\n\tget _isSelectable() {\n\t\treturn this._tableSelection?.isSelectable();\n\t}\n\n\tget _isMultiSelect() {\n\t\treturn this._tableSelection?.isMultiSelect();\n\t}\n\n\tget _hasRowSelector() {\n\t\treturn this._tableSelection?.hasRowSelector();\n\t}\n\n\tget _selectionCell() {\n\t\treturn this.shadowRoot!.getElementById(\"selection-cell\");\n\t}\n\n\tget _visibleCells() {\n\t\treturn this.cells.filter(c => !c._popin);\n\t}\n\n\tget _popinCells() {\n\t\treturn this.cells.filter(c => c._popin);\n\t}\n\n\tget _i18nRowSelector(): string {\n\t\treturn TableRowBase.i18nBundle.getText(TABLE_ROW_SELECTOR);\n\t}\n}\n\nexport default TableRowBase;\n"]}
1
+ {"version":3,"file":"TableRowBase.js","sourceRoot":"","sources":["../src/TableRowBase.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,SAAS,MAAM,sDAAsD,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,eAAe,MAAM,wCAAwC,CAAC;AAErE,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACN,kBAAkB,GAClB,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;GAQG;AAMH,IAAe,YAAY,oBAA3B,MAAe,YAAa,SAAQ,UAAU;IAA9C;;QAIC,gBAAW,GAAG,CAAC,CAAC;IAuFjB,CAAC;IApFA,MAAM,CAAC,KAAK,CAAC,QAAQ;QACpB,cAAY,CAAC,UAAU,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACrE,CAAC;IAED,UAAU;QACT,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB;QAChB,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC1D;aAAM;YACN,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;SACtC;IACF,CAAC;IAED,cAAc;QACb,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sBAAsB;QACrB,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,WAAW;QACV,OAAO,KAAK,CAAC;IACd,CAAC;IAED,UAAU,CAAC,CAAgB,EAAE,WAAwB;QACpD,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACtI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;SACnB;IACF,CAAC;IAED,IAAI,MAAM;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,eAAe,EAAE,cAAc,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,UAAW,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,cAAY,CAAC,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;CACD,CAAA;AAvFA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;iDAC9B;AAJF,YAAY;IAL1B,aAAa,CAAC;QACd,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,eAAe;QACvB,YAAY,EAAE,CAAC,QAAQ,CAAC;KACxB,CAAC;GACa,YAAY,CA2F1B;AAED,eAAe,YAAY,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type TableCellBase from \"./TableCellBase.js\";\nimport TableRowBaseCss from \"./generated/themes/TableRowBase.css.js\";\nimport type Table from \"./Table.js\";\nimport CheckBox from \"./CheckBox.js\";\nimport { isInstanceOfTable } from \"./TableUtils.js\";\nimport {\n\tTABLE_ROW_SELECTOR,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * A class to serve as a foundation for the `TableRow` and `TableHeaderRow` classes.\n * @constructor\n * @abstract\n * @extends UI5Element\n * @since 2.0\n * @public\n */\n@customElement({\n\trenderer: litRender,\n\tstyles: TableRowBaseCss,\n\tdependencies: [CheckBox],\n})\nabstract class TableRowBase extends UI5Element {\n\tcells!: Array<TableCellBase>;\n\n\t@property({ type: Number, noAttribute: true })\n\t_invalidate = 0;\n\n\tstatic i18nBundle: I18nBundle;\n\tstatic async onDefine() {\n\t\tTableRowBase.i18nBundle = await getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonEnterDOM() {\n\t\tthis.setAttribute(\"role\", \"row\");\n\t\tthis.toggleAttribute(\"ui5-table-row-base\", true);\n\t}\n\n\tonBeforeRendering() {\n\t\tif (this._isSelectable) {\n\t\t\tthis.setAttribute(\"aria-selected\", `${this._isSelected}`);\n\t\t} else {\n\t\t\tthis.removeAttribute(\"aria-selected\");\n\t\t}\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this;\n\t}\n\n\t_informSelectionChange() {\n\t\tthis._tableSelection?.informSelectionChange(this);\n\t}\n\n\tisHeaderRow(): boolean {\n\t\treturn false;\n\t}\n\n\t_onkeydown(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif ((eventOrigin === this && this._isSelectable && isSpace(e)) || (eventOrigin === this._selectionCell && (isSpace(e) || isEnter(e)))) {\n\t\t\tthis._informSelectionChange();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tget _table(): Table | undefined {\n\t\tconst element = this.parentElement;\n\t\treturn isInstanceOfTable(element) ? element : undefined;\n\t}\n\n\tget _tableId() {\n\t\treturn this._table?._id;\n\t}\n\n\tget _tableSelection() {\n\t\treturn this._table?._getSelection();\n\t}\n\n\tget _isSelected() {\n\t\treturn this._tableSelection?.isSelected(this);\n\t}\n\n\tget _isSelectable() {\n\t\treturn this._tableSelection?.isSelectable();\n\t}\n\n\tget _isMultiSelect() {\n\t\treturn this._tableSelection?.isMultiSelect();\n\t}\n\n\tget _hasRowSelector() {\n\t\treturn this._tableSelection?.hasRowSelector();\n\t}\n\n\tget _selectionCell() {\n\t\treturn this.shadowRoot!.getElementById(\"selection-cell\");\n\t}\n\n\tget _visibleCells() {\n\t\treturn this.cells.filter(c => !c._popin);\n\t}\n\n\tget _popinCells() {\n\t\treturn this.cells.filter(c => c._popin);\n\t}\n\n\tget _i18nRowSelector(): string {\n\t\treturn TableRowBase.i18nBundle.getText(TABLE_ROW_SELECTOR);\n\t}\n\n\tget isTableRowBase() {\n\t\treturn true;\n\t}\n}\n\nexport default TableRowBase;\n"]}
@@ -16,7 +16,7 @@ import type TableRowBase from "./TableRowBase.js";
16
16
  * * Multiple - select multiple rows.
17
17
  * * None - no selection active.
18
18
  *
19
- * As the selection is key-based, `ui5-table-row` components need to define a unique `key` property.
19
+ * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property.
20
20
  *
21
21
  * ### Usage
22
22
  *
@@ -38,6 +38,7 @@ import type TableRowBase from "./TableRowBase.js";
38
38
  * @extends UI5Element
39
39
  * @since 2.0
40
40
  * @public
41
+ * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.
41
42
  */
42
43
  declare class TableSelection extends UI5Element implements ITableFeature {
43
44
  /**
@@ -54,7 +55,15 @@ declare class TableSelection extends UI5Element implements ITableFeature {
54
55
  * @public
55
56
  */
56
57
  selected: string;
58
+ readonly identifier = "TableSelection";
57
59
  _table?: Table;
60
+ _rangeSelection?: {
61
+ selected: boolean;
62
+ isUp: boolean | null;
63
+ rows: TableRow[];
64
+ isMouse: boolean;
65
+ shiftPressed: boolean;
66
+ } | null;
58
67
  onTableActivate(table: Table): void;
59
68
  onExitDOM(): void;
60
69
  onBeforeRendering(): void;
@@ -70,8 +79,27 @@ declare class TableSelection extends UI5Element implements ITableFeature {
70
79
  set selectedAsArray(selectedArray: string[]);
71
80
  get selectedAsSet(): Set<string>;
72
81
  set selectedAsSet(selectedSet: Set<string>);
82
+ _selectRow(row: TableRow, selected: boolean): void;
73
83
  _informRowSelectionChange(row: TableRow): void;
74
84
  _informHeaderRowSelectionChange(): void;
75
85
  _invalidateTableAndRows(): void;
86
+ _onkeydown(e: KeyboardEvent): void;
87
+ _onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement): void;
88
+ _onclick(e: MouseEvent): void;
89
+ /**
90
+ * Start the range selection and initialises the range selection state
91
+ * @param row starting row
92
+ * @private
93
+ */
94
+ _startRangeSelection(row: TableRow, isMouse?: boolean): void;
95
+ /**
96
+ * Handles the range selection
97
+ * @param targetRow row that is currently focused
98
+ * @param change indicates direction
99
+ * @private
100
+ */
101
+ _handleRangeSelection(targetRow: TableRow, change: number): void;
102
+ _stopRangeSelection(): void;
103
+ _reverseRangeSelection(): void;
76
104
  }
77
105
  export default TableSelection;
@@ -4,11 +4,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
+ import { isUpShift, isShift, } from "@ui5/webcomponents-base/dist/Keys.js";
8
+ import getActiveElement from "@ui5/webcomponents-base/dist/util/getActiveElement.js";
7
9
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
10
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
11
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
12
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
11
13
  import TableSelectionMode from "./types/TableSelectionMode.js";
14
+ import { isSelectionCheckbox, isHeaderSelector, findRowInPath } from "./TableUtils.js";
12
15
  /**
13
16
  * @class
14
17
  *
@@ -21,7 +24,7 @@ import TableSelectionMode from "./types/TableSelectionMode.js";
21
24
  * * Multiple - select multiple rows.
22
25
  * * None - no selection active.
23
26
  *
24
- * As the selection is key-based, `ui5-table-row` components need to define a unique `key` property.
27
+ * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property.
25
28
  *
26
29
  * ### Usage
27
30
  *
@@ -43,8 +46,27 @@ import TableSelectionMode from "./types/TableSelectionMode.js";
43
46
  * @extends UI5Element
44
47
  * @since 2.0
45
48
  * @public
49
+ * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.
46
50
  */
47
51
  let TableSelection = class TableSelection extends UI5Element {
52
+ constructor() {
53
+ super(...arguments);
54
+ /**
55
+ * Defines the selection mode.
56
+ *
57
+ * @default "Multiple"
58
+ * @public
59
+ */
60
+ this.mode = "Multiple";
61
+ /**
62
+ * Defines the selected rows separated by a space.
63
+ *
64
+ * @default ""
65
+ * @public
66
+ */
67
+ this.selected = "";
68
+ this.identifier = "TableSelection";
69
+ }
48
70
  onTableActivate(table) {
49
71
  this._table = table;
50
72
  this._invalidateTableAndRows();
@@ -67,7 +89,7 @@ let TableSelection = class TableSelection extends UI5Element {
67
89
  return this.mode !== TableSelectionMode.None;
68
90
  }
69
91
  getRowIdentifier(row) {
70
- return row.key;
92
+ return row.rowKey;
71
93
  }
72
94
  isSelected(row) {
73
95
  if (!this._table || !this.isSelectable()) {
@@ -100,6 +122,9 @@ let TableSelection = class TableSelection extends UI5Element {
100
122
  });
101
123
  }
102
124
  informSelectionChange(row) {
125
+ if (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {
126
+ return;
127
+ }
103
128
  if (row.isHeaderRow()) {
104
129
  this._informHeaderRowSelectionChange();
105
130
  }
@@ -119,17 +144,20 @@ let TableSelection = class TableSelection extends UI5Element {
119
144
  set selectedAsSet(selectedSet) {
120
145
  this.selectedAsArray = [...selectedSet];
121
146
  }
122
- _informRowSelectionChange(row) {
123
- const isRowSelected = this.isMultiSelect() ? this.isSelected(row) : true;
147
+ _selectRow(row, selected) {
124
148
  const rowIdentifier = this.getRowIdentifier(row);
125
- if (this.selected && this.mode === TableSelectionMode.Multiple) {
149
+ if (this.mode === TableSelectionMode.Multiple) {
126
150
  const selectedSet = this.selectedAsSet;
127
- selectedSet[isRowSelected ? "delete" : "add"](rowIdentifier);
151
+ selectedSet[selected ? "add" : "delete"](rowIdentifier);
128
152
  this.selectedAsSet = selectedSet;
129
153
  }
130
154
  else {
131
- this.selected = rowIdentifier;
155
+ this.selected = selected ? rowIdentifier : "";
132
156
  }
157
+ }
158
+ _informRowSelectionChange(row) {
159
+ const isRowSelected = this.isMultiSelect() ? !this.isSelected(row) : true;
160
+ this._selectRow(row, isRowSelected);
133
161
  this.fireEvent("change");
134
162
  }
135
163
  _informHeaderRowSelectionChange() {
@@ -156,9 +184,136 @@ let TableSelection = class TableSelection extends UI5Element {
156
184
  this._table.headerRow[0]._invalidate++;
157
185
  this._table.rows.forEach(row => row._invalidate++);
158
186
  }
187
+ _onkeydown(e) {
188
+ if (!this.isMultiSelect() || !this._table || !e.shiftKey) {
189
+ return;
190
+ }
191
+ const focusedElement = getActiveElement(); // Assumption: The focused element is always the "next" row after navigation.
192
+ if (!(focusedElement?.hasAttribute("ui5-table-row") || this._rangeSelection?.isMouse || focusedElement?.hasAttribute("ui5-growing-row"))) {
193
+ this._stopRangeSelection();
194
+ return;
195
+ }
196
+ if (!this._rangeSelection) {
197
+ // If no range selection is active, start one
198
+ this._startRangeSelection(focusedElement);
199
+ }
200
+ else if (e.key === "ArrowUp" || e.key === "ArrowDown") {
201
+ const change = isUpShift(e) ? -1 : 1;
202
+ this._handleRangeSelection(focusedElement, change);
203
+ }
204
+ if (this._rangeSelection) {
205
+ this._rangeSelection.shiftPressed = e.shiftKey;
206
+ }
207
+ }
208
+ _onkeyup(e, eventOrigin) {
209
+ if (!this._table) {
210
+ return;
211
+ }
212
+ if (!eventOrigin.hasAttribute("ui5-table-row") || !this._rangeSelection || isShift(e) || !isSelectionCheckbox(e)) {
213
+ // Stop range selection if a) Shift is relased or b) the event target is not a row or c) the event is not from the selection checkbox
214
+ this._stopRangeSelection();
215
+ }
216
+ if (this._rangeSelection) {
217
+ this._rangeSelection.shiftPressed = e.shiftKey;
218
+ }
219
+ }
220
+ _onclick(e) {
221
+ if (!this._table) {
222
+ return;
223
+ }
224
+ if (isHeaderSelector(e)) {
225
+ this._stopRangeSelection();
226
+ return;
227
+ }
228
+ if (!isSelectionCheckbox(e)) {
229
+ this._stopRangeSelection();
230
+ return;
231
+ }
232
+ const row = findRowInPath(e.composedPath());
233
+ if (e.shiftKey && this._rangeSelection?.isMouse) {
234
+ const startRow = this._rangeSelection.rows[0];
235
+ const startIndex = this._table.rows.indexOf(startRow);
236
+ const endIndex = this._table.rows.indexOf(row);
237
+ // When doing a range selection and clicking on an already selected row, the checked status should not change
238
+ // Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to
239
+ // a visual inconsistency.
240
+ row.shadowRoot?.querySelector("#selection-component")?.toggleAttribute("checked", true);
241
+ if (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {
242
+ return;
243
+ }
244
+ const change = endIndex - startIndex;
245
+ this._handleRangeSelection(row, change);
246
+ }
247
+ else if (row) {
248
+ this._startRangeSelection(row, true);
249
+ }
250
+ }
251
+ /**
252
+ * Start the range selection and initialises the range selection state
253
+ * @param row starting row
254
+ * @private
255
+ */
256
+ _startRangeSelection(row, isMouse = false) {
257
+ const selected = this.isSelected(row);
258
+ if (isMouse && !selected) {
259
+ // Do not initiate range selection if the row is not selected
260
+ return;
261
+ }
262
+ this._rangeSelection = {
263
+ selected,
264
+ isUp: null,
265
+ rows: [row],
266
+ isMouse,
267
+ shiftPressed: false,
268
+ };
269
+ }
270
+ /**
271
+ * Handles the range selection
272
+ * @param targetRow row that is currently focused
273
+ * @param change indicates direction
274
+ * @private
275
+ */
276
+ _handleRangeSelection(targetRow, change) {
277
+ if (!this._rangeSelection) {
278
+ return;
279
+ }
280
+ const isUp = change > 0;
281
+ this._rangeSelection.isUp ??= isUp;
282
+ const shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;
283
+ let selectionChanged = shouldReverseSelection && this.isSelected(targetRow);
284
+ if (shouldReverseSelection) {
285
+ this._reverseRangeSelection();
286
+ }
287
+ else {
288
+ const rowIndex = this._table.rows.indexOf(targetRow);
289
+ const [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);
290
+ selectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {
291
+ const isRowNotInSelection = !this._rangeSelection?.rows.includes(row);
292
+ const isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection.selected;
293
+ if (isRowNotInSelection) {
294
+ this._rangeSelection?.rows.push(row);
295
+ }
296
+ this._selectRow(row, this._rangeSelection.selected);
297
+ return changed || isRowSelectionDifferent;
298
+ }, selectionChanged) || false;
299
+ }
300
+ selectionChanged && this._fireEvent("change");
301
+ }
302
+ _stopRangeSelection() {
303
+ this._rangeSelection = null;
304
+ }
305
+ _reverseRangeSelection() {
306
+ const row = this._rangeSelection?.rows.pop();
307
+ if (row) {
308
+ this._selectRow(row, false);
309
+ }
310
+ if (this._rangeSelection?.rows.length === 1) {
311
+ this._rangeSelection.isUp = null;
312
+ }
313
+ }
159
314
  };
160
315
  __decorate([
161
- property({ type: TableSelectionMode, defaultValue: TableSelectionMode.Multiple })
316
+ property()
162
317
  ], TableSelection.prototype, "mode", void 0);
163
318
  __decorate([
164
319
  property()
@@ -1 +1 @@
1
- {"version":3,"file":"TableSelection.js","sourceRoot":"","sources":["../src/TableSelection.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,kBAAkB,MAAM,+BAA+B,CAAC;AAM/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAUH,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAqBtC,eAAe,CAAC,KAAY;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChC,CAAC;IAED,SAAS;QACR,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IAChC,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,QAAQ,CAAC;IAClD,CAAC;IAED,cAAc;QACb,OAAO,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,gBAAgB,CAAC,GAAa;QAC7B,OAAO,GAAG,CAAC,GAAG,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,GAAiB;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACzC,OAAO,KAAK,CAAC;SACb;QAED,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE;YACtB,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;SACjC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAe,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,cAAc;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACzC,OAAO,KAAK,CAAC;SACb;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACjD,OAAO,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,QAAQ,EAAE;YAC1F,OAAO,KAAK,CAAC;SACb;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACnC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACjD,OAAO,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,GAAiB;QACtC,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,CAAC,+BAA+B,EAAE,CAAC;SACvC;aAAM;YACN,IAAI,CAAC,yBAAyB,CAAC,GAAe,CAAC,CAAC;SAChD;IACF,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,eAAe,CAAC,aAAuB;QAC1C,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,aAAa,CAAC,WAAwB;QACzC,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,yBAAyB,CAAC,GAAa;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,CAAC,QAAQ,EAAE;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;YACvC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;SACjC;aAAM;YACN,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;SAC9B;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,+BAA+B;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC;QACvC,IAAI,CAAC,MAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACjD,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,uBAAuB;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACjB,OAAO;SACP;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACzB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACnB;aAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;SACnD;QAED,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC;CACD,CAAA;AAhJA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE,CAAC;4CACnD;AAS/B;IADC,QAAQ,EAAE;gDACO;AAjBb,cAAc;IATnB,aAAa,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC;IAE9C;;;;OAIG;;IACF,KAAK,CAAC,QAAQ,CAAC;GAEV,cAAc,CAwJnB;AAED,cAAc,CAAC,MAAM,EAAE,CAAC;AAExB,eAAe,cAAc,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport TableSelectionMode from \"./types/TableSelectionMode.js\";\nimport type Table from \"./Table.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection` component is used inside the `ui5-table` ti add key-based selection capabilities to the `ui5-table`.\n *\n * The component offers three selection modes:\n * * Single - select a single row.\n * * Multiple - select multiple rows.\n * * None - no selection active.\n *\n * As the selection is key-based, `ui5-table-row` components need to define a unique `key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection` component is only used inside the `ui5-table` component as a feature.\n * It has to be slotted inside the `ui5-table` in the `features` slot.\n * The component is not intended to be used as a standalone component.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection mode=\"Multiple\" slot=\"features\"></ui5-table-selection>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelection.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0\n * @public\n */\n@customElement({ tag: \"ui5-table-selection\" })\n\n/**\n * Fired when selection is changed by user interaction.\n *\n * @public\n */\n@event(\"change\")\n\nclass TableSelection extends UI5Element implements ITableFeature {\n\t/**\n\t * Defines the selection mode.\n\t *\n\t * @default \"Multiple\"\n\t * @public\n\t */\n\t@property({ type: TableSelectionMode, defaultValue: TableSelectionMode.Multiple })\n\tmode!: `${TableSelectionMode}`;\n\n\t/**\n\t * Defines the selected rows separated by a space.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tselected!: string;\n\n\t_table?: Table;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis.mode = TableSelectionMode.None;\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tisSelectable(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tisMultiSelect(): boolean {\n\t\treturn this.mode === TableSelectionMode.Multiple;\n\t}\n\n\thasRowSelector(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tgetRowIdentifier(row: TableRow): string {\n\t\treturn row.key;\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\treturn this.areAllRowsSelected();\n\t\t}\n\n\t\tconst rowIdentifier = this.getRowIdentifier(row as TableRow);\n\t\treturn this.selectedAsArray.includes(rowIdentifier);\n\t}\n\n\thasSelectedRow(): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.some(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.every(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tinformSelectionChange(row: TableRowBase) {\n\t\tif (row.isHeaderRow()) {\n\t\t\tthis._informHeaderRowSelectionChange();\n\t\t} else {\n\t\t\tthis._informRowSelectionChange(row as TableRow);\n\t\t}\n\t}\n\n\tget selectedAsArray(): string[] {\n\t\treturn this.selected.split(\" \").filter(String);\n\t}\n\n\tset selectedAsArray(selectedArray: string[]) {\n\t\tthis.selected = selectedArray.filter(String).join(\" \");\n\t}\n\n\tget selectedAsSet(): Set<string> {\n\t\treturn new Set(this.selectedAsArray);\n\t}\n\n\tset selectedAsSet(selectedSet: Set<string>) {\n\t\tthis.selectedAsArray = [...selectedSet];\n\t}\n\n\t_informRowSelectionChange(row: TableRow) {\n\t\tconst isRowSelected = this.isMultiSelect() ? this.isSelected(row) : true;\n\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\tif (this.selected && this.mode === TableSelectionMode.Multiple) {\n\t\t\tconst selectedSet = this.selectedAsSet;\n\t\t\tselectedSet[isRowSelected ? \"delete\" : \"add\"](rowIdentifier);\n\t\t\tthis.selectedAsSet = selectedSet;\n\t\t} else {\n\t\t\tthis.selected = rowIdentifier;\n\t\t}\n\t\tthis.fireEvent(\"change\");\n\t}\n\n\t_informHeaderRowSelectionChange() {\n\t\tconst isRowSelected = this.areAllRowsSelected();\n\t\tconst selectedSet = this.selectedAsSet;\n\t\tthis._table!.rows.forEach(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\tselectedSet[isRowSelected ? \"delete\" : \"add\"](rowIdentifier);\n\t\t});\n\t\tthis.selectedAsSet = selectedSet;\n\t\tthis.fireEvent(\"change\");\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isSelectable()) {\n\t\t\tthis.selected = \"\";\n\t\t} else if (!this.isMultiSelect()) {\n\t\t\tthis.selected = this.selectedAsArray.shift() || \"\";\n\t\t}\n\n\t\tthis._table._invalidate++;\n\t\tthis._table.headerRow[0]._invalidate++;\n\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t}\n}\n\nTableSelection.define();\n\nexport default TableSelection;\n"]}
1
+ {"version":3,"file":"TableSelection.js","sourceRoot":"","sources":["../src/TableSelection.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisUpShift,\n\tisShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport TableSelectionMode from \"./types/TableSelectionMode.js\";\nimport type Table from \"./Table.js\";\nimport type { ITableFeature } from \"./Table.js\";\nimport type TableRow from \"./TableRow.js\";\nimport type TableRowBase from \"./TableRowBase.js\";\nimport { isSelectionCheckbox, isHeaderSelector, findRowInPath } from \"./TableUtils.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-table-selection` component is used inside the `ui5-table` ti add key-based selection capabilities to the `ui5-table`.\n *\n * The component offers three selection modes:\n * * Single - select a single row.\n * * Multiple - select multiple rows.\n * * None - no selection active.\n *\n * As the selection is key-based, `ui5-table-row` components need to define a unique `row-key` property.\n *\n * ### Usage\n *\n * The `ui5-table-selection` component is only used inside the `ui5-table` component as a feature.\n * It has to be slotted inside the `ui5-table` in the `features` slot.\n * The component is not intended to be used as a standalone component.\n *\n * ```html\n * <ui5-table>\n * \t<ui5-table-selection mode=\"Multiple\" slot=\"features\"></ui5-table-selection>\n * </ui5-table>\n * ```\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents/dist/TableSelection.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @since 2.0\n * @public\n * @experimental This web component is available since 2.0 with an experimental flag and its API and behavior are subject to change.\n */\n@customElement({ tag: \"ui5-table-selection\" })\n\n/**\n * Fired when selection is changed by user interaction.\n *\n * @public\n */\n@event(\"change\")\n\nclass TableSelection extends UI5Element implements ITableFeature {\n\t/**\n\t * Defines the selection mode.\n\t *\n\t * @default \"Multiple\"\n\t * @public\n\t */\n\t@property()\n\tmode: `${TableSelectionMode}` = \"Multiple\";\n\n\t/**\n\t * Defines the selected rows separated by a space.\n\t *\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tselected = \"\";\n\n\treadonly identifier = \"TableSelection\";\n\t_table?: Table;\n\t_rangeSelection?: {selected: boolean, isUp: boolean | null, rows: TableRow[], isMouse: boolean, shiftPressed: boolean} | null;\n\n\tonTableActivate(table: Table) {\n\t\tthis._table = table;\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tonExitDOM() {\n\t\tthis.mode = TableSelectionMode.None;\n\t\tthis._invalidateTableAndRows();\n\t\tthis._table = undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._invalidateTableAndRows();\n\t}\n\n\tisSelectable(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tisMultiSelect(): boolean {\n\t\treturn this.mode === TableSelectionMode.Multiple;\n\t}\n\n\thasRowSelector(): boolean {\n\t\treturn this.mode !== TableSelectionMode.None;\n\t}\n\n\tgetRowIdentifier(row: TableRow): string {\n\t\treturn row.rowKey;\n\t}\n\n\tisSelected(row: TableRowBase): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\treturn this.areAllRowsSelected();\n\t\t}\n\n\t\tconst rowIdentifier = this.getRowIdentifier(row as TableRow);\n\t\treturn this.selectedAsArray.includes(rowIdentifier);\n\t}\n\n\thasSelectedRow(): boolean {\n\t\tif (!this._table || !this.isSelectable()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.some(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tareAllRowsSelected(): boolean {\n\t\tif (!this._table || !this._table.rows.length || this.mode !== TableSelectionMode.Multiple) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst selectedArray = this.selectedAsArray;\n\t\treturn this._table.rows.every(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\treturn selectedArray.includes(rowIdentifier);\n\t\t});\n\t}\n\n\tinformSelectionChange(row: TableRowBase) {\n\t\tif (this._rangeSelection?.isMouse && this._rangeSelection.shiftPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (row.isHeaderRow()) {\n\t\t\tthis._informHeaderRowSelectionChange();\n\t\t} else {\n\t\t\tthis._informRowSelectionChange(row as TableRow);\n\t\t}\n\t}\n\n\tget selectedAsArray(): string[] {\n\t\treturn this.selected.split(\" \").filter(String);\n\t}\n\n\tset selectedAsArray(selectedArray: string[]) {\n\t\tthis.selected = selectedArray.filter(String).join(\" \");\n\t}\n\n\tget selectedAsSet(): Set<string> {\n\t\treturn new Set(this.selectedAsArray);\n\t}\n\n\tset selectedAsSet(selectedSet: Set<string>) {\n\t\tthis.selectedAsArray = [...selectedSet];\n\t}\n\n\t_selectRow(row: TableRow, selected: boolean) {\n\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\tif (this.mode === TableSelectionMode.Multiple) {\n\t\t\tconst selectedSet = this.selectedAsSet;\n\t\t\tselectedSet[selected ? \"add\" : \"delete\"](rowIdentifier);\n\t\t\tthis.selectedAsSet = selectedSet;\n\t\t} else {\n\t\t\tthis.selected = selected ? rowIdentifier : \"\";\n\t\t}\n\t}\n\n\t_informRowSelectionChange(row: TableRow) {\n\t\tconst isRowSelected = this.isMultiSelect() ? !this.isSelected(row) : true;\n\t\tthis._selectRow(row, isRowSelected);\n\t\tthis.fireEvent(\"change\");\n\t}\n\n\t_informHeaderRowSelectionChange() {\n\t\tconst isRowSelected = this.areAllRowsSelected();\n\t\tconst selectedSet = this.selectedAsSet;\n\t\tthis._table!.rows.forEach(row => {\n\t\t\tconst rowIdentifier = this.getRowIdentifier(row);\n\t\t\tselectedSet[isRowSelected ? \"delete\" : \"add\"](rowIdentifier);\n\t\t});\n\t\tthis.selectedAsSet = selectedSet;\n\t\tthis.fireEvent(\"change\");\n\t}\n\n\t_invalidateTableAndRows() {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.isSelectable()) {\n\t\t\tthis.selected = \"\";\n\t\t} else if (!this.isMultiSelect()) {\n\t\t\tthis.selected = this.selectedAsArray.shift() || \"\";\n\t\t}\n\n\t\tthis._table._invalidate++;\n\t\tthis._table.headerRow[0]._invalidate++;\n\t\tthis._table.rows.forEach(row => row._invalidate++);\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (!this.isMultiSelect() || !this._table || !e.shiftKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusedElement = getActiveElement(); // Assumption: The focused element is always the \"next\" row after navigation.\n\n\t\tif (!(focusedElement?.hasAttribute(\"ui5-table-row\") || this._rangeSelection?.isMouse || focusedElement?.hasAttribute(\"ui5-growing-row\"))) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._rangeSelection) {\n\t\t\t// If no range selection is active, start one\n\t\t\tthis._startRangeSelection(focusedElement as TableRow);\n\t\t} else if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n\t\t\tconst change = isUpShift(e) ? -1 : 1;\n\t\t\tthis._handleRangeSelection(focusedElement as TableRow, change);\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent, eventOrigin: HTMLElement) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!eventOrigin.hasAttribute(\"ui5-table-row\") || !this._rangeSelection || isShift(e) || !isSelectionCheckbox(e)) {\n\t\t\t// Stop range selection if a) Shift is relased or b) the event target is not a row or c) the event is not from the selection checkbox\n\t\t\tthis._stopRangeSelection();\n\t\t}\n\n\t\tif (this._rangeSelection) {\n\t\t\tthis._rangeSelection.shiftPressed = e.shiftKey;\n\t\t}\n\t}\n\n\t_onclick(e: MouseEvent) {\n\t\tif (!this._table) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHeaderSelector(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tif (!isSelectionCheckbox(e)) {\n\t\t\tthis._stopRangeSelection();\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = findRowInPath(e.composedPath());\n\n\t\tif (e.shiftKey && this._rangeSelection?.isMouse) {\n\t\t\tconst startRow = this._rangeSelection.rows[0];\n\t\t\tconst startIndex = this._table.rows.indexOf(startRow);\n\t\t\tconst endIndex = this._table.rows.indexOf(row);\n\n\t\t\t// When doing a range selection and clicking on an already selected row, the checked status should not change\n\t\t\t// Therefore, we need to manually set the checked attribute again, as clicking it would deselect it and leads to\n\t\t\t// a visual inconsistency.\n\t\t\trow.shadowRoot?.querySelector(\"#selection-component\")?.toggleAttribute(\"checked\", true);\n\n\t\t\tif (startIndex === -1 || endIndex === -1 || row.rowKey === startRow.rowKey || row.rowKey === this._rangeSelection.rows[this._rangeSelection.rows.length - 1].rowKey) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst change = endIndex - startIndex;\n\t\t\tthis._handleRangeSelection(row, change);\n\t\t} else if (row) {\n\t\t\tthis._startRangeSelection(row, true);\n\t\t}\n\t}\n\n\t/**\n\t * Start the range selection and initialises the range selection state\n\t * @param row starting row\n\t * @private\n\t */\n\t_startRangeSelection(row: TableRow, isMouse = false) {\n\t\tconst selected = this.isSelected(row);\n\t\tif (isMouse && !selected) {\n\t\t\t// Do not initiate range selection if the row is not selected\n\t\t\treturn;\n\t\t}\n\n\t\tthis._rangeSelection = {\n\t\t\tselected,\n\t\t\tisUp: null,\n\t\t\trows: [row],\n\t\t\tisMouse,\n\t\t\tshiftPressed: false,\n\t\t};\n\t}\n\n\t/**\n\t * Handles the range selection\n\t * @param targetRow row that is currently focused\n\t * @param change indicates direction\n\t * @private\n\t */\n\t_handleRangeSelection(targetRow: TableRow, change: number) {\n\t\tif (!this._rangeSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isUp = change > 0;\n\t\tthis._rangeSelection.isUp ??= isUp;\n\n\t\tconst shouldReverseSelection = isUp !== this._rangeSelection.isUp && !this._rangeSelection.isMouse;\n\t\tlet selectionChanged = shouldReverseSelection && this.isSelected(targetRow);\n\n\t\tif (shouldReverseSelection) {\n\t\t\tthis._reverseRangeSelection();\n\t\t} else {\n\t\t\tconst rowIndex = this._table!.rows.indexOf(targetRow);\n\t\t\tconst [startIndex, endIndex] = [rowIndex, rowIndex - change].sort((a, b) => a - b);\n\n\t\t\tselectionChanged = this._table?.rows.slice(startIndex, endIndex + 1).reduce((changed, row) => {\n\t\t\t\tconst isRowNotInSelection = !this._rangeSelection?.rows.includes(row);\n\t\t\t\tconst isRowSelectionDifferent = this.isSelected(row) !== this._rangeSelection!.selected;\n\n\t\t\t\tif (isRowNotInSelection) {\n\t\t\t\t\tthis._rangeSelection?.rows.push(row);\n\t\t\t\t}\n\n\t\t\t\tthis._selectRow(row, this._rangeSelection!.selected);\n\n\t\t\t\treturn changed || isRowSelectionDifferent;\n\t\t\t}, selectionChanged) || false;\n\t\t}\n\n\t\tselectionChanged && this._fireEvent(\"change\");\n\t}\n\n\t_stopRangeSelection() {\n\t\tthis._rangeSelection = null;\n\t}\n\n\t_reverseRangeSelection() {\n\t\tconst row = this._rangeSelection?.rows.pop();\n\t\tif (row) {\n\t\t\tthis._selectRow(row, false);\n\t\t}\n\n\t\tif (this._rangeSelection?.rows.length === 1) {\n\t\t\tthis._rangeSelection.isUp = null;\n\t\t}\n\t}\n}\n\nTableSelection.define();\n\nexport default TableSelection;\n"]}
@@ -0,0 +1,8 @@
1
+ import type Table from "./Table";
2
+ import type TableRow from "./TableRow";
3
+ declare const isInstanceOfTable: (obj: any) => obj is Table;
4
+ declare const isSelectionCheckbox: (e: Event) => boolean;
5
+ declare const isHeaderSelector: (e: Event) => boolean;
6
+ declare const findRowInPath: (composedPath: Array<EventTarget>) => TableRow;
7
+ declare const isFeature: <T>(element: any, identifier: string) => element is T;
8
+ export { isInstanceOfTable, isSelectionCheckbox, isHeaderSelector, findRowInPath, isFeature, };
@@ -0,0 +1,17 @@
1
+ const isInstanceOfTable = (obj) => {
2
+ return "isTable" in obj && !!obj.isTable;
3
+ };
4
+ const isSelectionCheckbox = (e) => {
5
+ return e.composedPath().some((el) => el.hasAttribute?.("ui5-table-selection-component"));
6
+ };
7
+ const isHeaderSelector = (e) => {
8
+ return isSelectionCheckbox(e) && e.composedPath().some((el) => el instanceof HTMLElement && el.hasAttribute("ui5-table-header-row"));
9
+ };
10
+ const findRowInPath = (composedPath) => {
11
+ return composedPath.find((el) => el instanceof HTMLElement && el.hasAttribute("ui5-table-row"));
12
+ };
13
+ const isFeature = (element, identifier) => {
14
+ return element.identifier === identifier;
15
+ };
16
+ export { isInstanceOfTable, isSelectionCheckbox, isHeaderSelector, findRowInPath, isFeature, };
17
+ //# sourceMappingURL=TableUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableUtils.js","sourceRoot":"","sources":["../src/TableUtils.ts"],"names":[],"mappings":"AAGA,MAAM,iBAAiB,GAAG,CAAC,GAAQ,EAAgB,EAAE;IACpD,OAAO,SAAS,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAQ,EAAE,EAAE;IACxC,OAAO,CAAC,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,EAAe,EAAE,EAAE,CAAE,EAAkB,CAAC,YAAY,EAAE,CAAC,+BAA+B,CAAC,CAAC,CAAC;AACxH,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAQ,EAAE,EAAE;IACrC,OAAO,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,EAAe,EAAE,EAAE,CAAC,EAAE,YAAY,WAAW,IAAI,EAAE,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACnJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,YAAgC,EAAE,EAAE;IAC1D,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,EAAe,EAAE,EAAE,CAAC,EAAE,YAAY,WAAW,IAAI,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAa,CAAC;AAC1H,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAI,OAAY,EAAE,UAAkB,EAAgB,EAAE;IACvE,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC;AAC1C,CAAC,CAAC;AAEF,OAAO,EACN,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,SAAS,GACT,CAAC","sourcesContent":["import type Table from \"./Table\";\nimport type TableRow from \"./TableRow\";\n\nconst isInstanceOfTable = (obj: any): obj is Table => {\n\treturn \"isTable\" in obj && !!obj.isTable;\n};\n\nconst isSelectionCheckbox = (e: Event) => {\n\treturn e.composedPath().some((el: EventTarget) => (el as HTMLElement).hasAttribute?.(\"ui5-table-selection-component\"));\n};\n\nconst isHeaderSelector = (e: Event) => {\n\treturn isSelectionCheckbox(e) && e.composedPath().some((el: EventTarget) => el instanceof HTMLElement && el.hasAttribute(\"ui5-table-header-row\"));\n};\n\nconst findRowInPath = (composedPath: Array<EventTarget>) => {\n\treturn composedPath.find((el: EventTarget) => el instanceof HTMLElement && el.hasAttribute(\"ui5-table-row\")) as TableRow;\n};\n\nconst isFeature = <T>(element: any, identifier: string): element is T => {\n\treturn element.identifier === identifier;\n};\n\nexport {\n\tisInstanceOfTable,\n\tisSelectionCheckbox,\n\tisHeaderSelector,\n\tfindRowInPath,\n\tisFeature,\n};\n"]}
package/dist/Tag.d.ts CHANGED
@@ -6,9 +6,9 @@ import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
6
6
  import "@ui5/webcomponents-icons/dist/error.js";
7
7
  import "@ui5/webcomponents-icons/dist/alert.js";
8
8
  import "@ui5/webcomponents-icons/dist/information.js";
9
- import WrappingType from "./types/WrappingType.js";
9
+ import type WrappingType from "./types/WrappingType.js";
10
10
  import TagDesign from "./types/TagDesign.js";
11
- import TagSize from "./types/TagSize.js";
11
+ import type TagSize from "./types/TagSize.js";
12
12
  /**
13
13
  * @class
14
14
  * ### Overview
package/dist/Tag.js CHANGED
@@ -20,9 +20,7 @@ import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
20
20
  import "@ui5/webcomponents-icons/dist/error.js";
21
21
  import "@ui5/webcomponents-icons/dist/alert.js";
22
22
  import "@ui5/webcomponents-icons/dist/information.js";
23
- import WrappingType from "./types/WrappingType.js";
24
23
  import TagDesign from "./types/TagDesign.js";
25
- import TagSize from "./types/TagSize.js";
26
24
  // Template
27
25
  import TagTemplate from "./generated/templates/TagTemplate.lit.js";
28
26
  import { TAG_DESCRIPTION_TAG, TAG_ROLE_DESCRIPTION, TAG_ERROR, TAG_WARNING, TAG_SUCCESS, TAG_INFORMATION, } from "./generated/i18n/i18n-defaults.js";
@@ -51,6 +49,66 @@ import tagCss from "./generated/themes/Tag.css.js";
51
49
  * @public
52
50
  */
53
51
  let Tag = Tag_1 = class Tag extends UI5Element {
52
+ constructor() {
53
+ super(...arguments);
54
+ /**
55
+ * Defines the design type of the component.
56
+ * @default "Neutral"
57
+ * @public
58
+ * @since 1.22.0
59
+ */
60
+ this.design = "Neutral";
61
+ /**
62
+ * Defines the color scheme of the component.
63
+ * There are 10 predefined schemes.
64
+ * To use one you can set a number from `"1"` to `"10"`. The `colorScheme` `"1"` will be set by default.
65
+ * @default "1"
66
+ * @public
67
+ */
68
+ this.colorScheme = "1";
69
+ /**
70
+ * Defines if the default state icon is shown.
71
+ * @default false
72
+ * @public
73
+ * @since 1.22.0
74
+ */
75
+ this.hideStateIcon = false;
76
+ /**
77
+ * Defines if the component is interactive (focusable and pressable).
78
+ *
79
+ * @default false
80
+ * @public
81
+ * @since 1.22.0
82
+ */
83
+ this.interactive = false;
84
+ /**
85
+ * Defines how the text of a component will be displayed when there is not enough space.
86
+ *
87
+ * **Note:** For option "Normal" the text will wrap and the
88
+ * words will not be broken based on hyphenation.
89
+ * @default "Normal"
90
+ * @public
91
+ * @since 1.22.0
92
+ */
93
+ this.wrappingType = "Normal";
94
+ /**
95
+ * Defines predefined size of the component.
96
+ * @default "S"
97
+ * @public
98
+ * @since 2.0.0
99
+ */
100
+ this.size = "S";
101
+ /**
102
+ * Defines if the tag has an icon.
103
+ * @private
104
+ */
105
+ this._hasIcon = false;
106
+ /**
107
+ * Defines if the tag has only an icon (and no text).
108
+ * @private
109
+ */
110
+ this._iconOnly = false;
111
+ }
54
112
  static async onDefine() {
55
113
  Tag_1.i18nBundle = await getI18nBundle("@ui5/webcomponents");
56
114
  }
@@ -126,10 +184,10 @@ let Tag = Tag_1 = class Tag extends UI5Element {
126
184
  }
127
185
  };
128
186
  __decorate([
129
- property({ defaultValue: TagDesign.Neutral })
187
+ property()
130
188
  ], Tag.prototype, "design", void 0);
131
189
  __decorate([
132
- property({ defaultValue: "1" })
190
+ property()
133
191
  ], Tag.prototype, "colorScheme", void 0);
134
192
  __decorate([
135
193
  property({ type: Boolean })
@@ -138,10 +196,10 @@ __decorate([
138
196
  property({ type: Boolean })
139
197
  ], Tag.prototype, "interactive", void 0);
140
198
  __decorate([
141
- property({ type: WrappingType, defaultValue: WrappingType.Normal })
199
+ property()
142
200
  ], Tag.prototype, "wrappingType", void 0);
143
201
  __decorate([
144
- property({ type: TagSize, defaultValue: TagSize.S })
202
+ property()
145
203
  ], Tag.prototype, "size", void 0);
146
204
  __decorate([
147
205
  property({ type: Boolean })