@openui5/sap.m 1.93.3 → 1.96.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 (483) hide show
  1. package/.reuse/dep5 +6 -11
  2. package/THIRDPARTY.txt +10 -16
  3. package/package.json +4 -4
  4. package/src/sap/m/.library +1 -1
  5. package/src/sap/m/AccButton.js +1 -1
  6. package/src/sap/m/ActionListItem.js +1 -1
  7. package/src/sap/m/ActionSelect.js +1 -1
  8. package/src/sap/m/ActionSheet.js +1 -1
  9. package/src/sap/m/App.js +5 -1
  10. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  11. package/src/sap/m/Avatar.js +1 -4
  12. package/src/sap/m/Bar.js +13 -7
  13. package/src/sap/m/Breadcrumbs.js +2 -2
  14. package/src/sap/m/BusyDialog.js +1 -1
  15. package/src/sap/m/BusyIndicator.js +1 -1
  16. package/src/sap/m/Button.js +34 -1
  17. package/src/sap/m/Carousel.js +11 -3
  18. package/src/sap/m/CarouselLayout.js +1 -1
  19. package/src/sap/m/CheckBox.js +1 -1
  20. package/src/sap/m/CheckBoxRenderer.js +12 -3
  21. package/src/sap/m/ColorPalette.js +7 -11
  22. package/src/sap/m/ColorPalettePopover.js +1 -6
  23. package/src/sap/m/Column.js +6 -1
  24. package/src/sap/m/ColumnHeaderPopover.js +1 -1
  25. package/src/sap/m/ColumnListItem.js +1 -1
  26. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  27. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  31. package/src/sap/m/ComboBox.js +1 -1
  32. package/src/sap/m/ComboBoxBase.js +5 -2
  33. package/src/sap/m/ComboBoxRenderer.js +25 -9
  34. package/src/sap/m/ComboBoxTextField.js +1 -1
  35. package/src/sap/m/CustomDynamicDateOption.js +14 -2
  36. package/src/sap/m/CustomListItem.js +1 -1
  37. package/src/sap/m/CustomTile.js +1 -1
  38. package/src/sap/m/CustomTreeItem.js +1 -1
  39. package/src/sap/m/DatePicker.js +27 -10
  40. package/src/sap/m/DatePickerRenderer.js +1 -1
  41. package/src/sap/m/DateRangeSelection.js +6 -9
  42. package/src/sap/m/DateTimeField.js +1 -1
  43. package/src/sap/m/DateTimeInput.js +1 -1
  44. package/src/sap/m/DateTimePicker.js +6 -9
  45. package/src/sap/m/Dialog.js +44 -127
  46. package/src/sap/m/DialogRenderer.js +1 -1
  47. package/src/sap/m/DisplayListItem.js +1 -1
  48. package/src/sap/m/DraftIndicator.js +1 -1
  49. package/src/sap/m/DynamicDate.js +15 -6
  50. package/src/sap/m/DynamicDateOption.js +58 -17
  51. package/src/sap/m/DynamicDateRange.js +47 -10
  52. package/src/sap/m/DynamicDateUtil.js +6 -3
  53. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  54. package/src/sap/m/ExpandableText.js +1 -1
  55. package/src/sap/m/FacetFilter.js +47 -16
  56. package/src/sap/m/FacetFilterItem.js +1 -1
  57. package/src/sap/m/FacetFilterList.js +1 -1
  58. package/src/sap/m/FeedContent.js +1 -1
  59. package/src/sap/m/FeedInput.js +1 -1
  60. package/src/sap/m/FeedListItem.js +1 -1
  61. package/src/sap/m/FeedListItemAction.js +1 -1
  62. package/src/sap/m/Fiori20Adapter.js +2 -2
  63. package/src/sap/m/FlexBox.js +1 -1
  64. package/src/sap/m/FlexItemData.js +1 -1
  65. package/src/sap/m/FormattedText.js +1 -1
  66. package/src/sap/m/GenericTag.js +1 -1
  67. package/src/sap/m/GenericTile.js +215 -52
  68. package/src/sap/m/GenericTileRenderer.js +218 -83
  69. package/src/sap/m/GroupHeaderListItem.js +1 -1
  70. package/src/sap/m/GrowingList.js +1 -1
  71. package/src/sap/m/HBox.js +1 -1
  72. package/src/sap/m/HeaderContainer.js +53 -1
  73. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  74. package/src/sap/m/IconTabBar.js +8 -1
  75. package/src/sap/m/IconTabBarSelectList.js +1 -1
  76. package/src/sap/m/IconTabFilter.js +8 -6
  77. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  78. package/src/sap/m/IconTabHeader.js +16 -4
  79. package/src/sap/m/IconTabSeparator.js +1 -1
  80. package/src/sap/m/Image.js +1 -1
  81. package/src/sap/m/ImageContent.js +1 -1
  82. package/src/sap/m/Input.js +124 -28
  83. package/src/sap/m/InputBase.js +13 -6
  84. package/src/sap/m/InputListItem.js +1 -1
  85. package/src/sap/m/Label.js +1 -1
  86. package/src/sap/m/LightBox.js +2 -2
  87. package/src/sap/m/LightBoxItem.js +1 -1
  88. package/src/sap/m/Link.js +1 -1
  89. package/src/sap/m/List.js +1 -1
  90. package/src/sap/m/ListBase.js +12 -5
  91. package/src/sap/m/ListItemBase.js +16 -16
  92. package/src/sap/m/MaskEnabler.js +106 -4
  93. package/src/sap/m/MaskInput.js +19 -4
  94. package/src/sap/m/MaskInputRule.js +1 -1
  95. package/src/sap/m/Menu.js +8 -6
  96. package/src/sap/m/MenuButton.js +20 -3
  97. package/src/sap/m/MenuButtonRenderer.js +1 -0
  98. package/src/sap/m/MenuItem.js +1 -1
  99. package/src/sap/m/MenuListItem.js +1 -1
  100. package/src/sap/m/MessageBox.js +1 -1
  101. package/src/sap/m/MessageItem.js +16 -1
  102. package/src/sap/m/MessageListItem.js +1 -1
  103. package/src/sap/m/MessagePage.js +1 -1
  104. package/src/sap/m/MessagePopover.js +1 -1
  105. package/src/sap/m/MessagePopoverItem.js +1 -1
  106. package/src/sap/m/MessageStrip.js +7 -3
  107. package/src/sap/m/MessageStripRenderer.js +2 -2
  108. package/src/sap/m/MessageToast.js +1 -1
  109. package/src/sap/m/MessageView.js +27 -16
  110. package/src/sap/m/MultiComboBox.js +328 -113
  111. package/src/sap/m/MultiEditField.js +1 -1
  112. package/src/sap/m/MultiInput.js +55 -6
  113. package/src/sap/m/NavContainer.js +24 -7
  114. package/src/sap/m/NewsContent.js +19 -10
  115. package/src/sap/m/NewsContentRenderer.js +1 -2
  116. package/src/sap/m/NotificationList.js +1 -1
  117. package/src/sap/m/NotificationListBase.js +1 -1
  118. package/src/sap/m/NotificationListGroup.js +1 -1
  119. package/src/sap/m/NotificationListItem.js +1 -1
  120. package/src/sap/m/NumericContent.js +1 -1
  121. package/src/sap/m/NumericContentRenderer.js +34 -17
  122. package/src/sap/m/ObjectAttribute.js +46 -5
  123. package/src/sap/m/ObjectHeader.js +1 -1
  124. package/src/sap/m/ObjectHeaderRenderer.js +6 -7
  125. package/src/sap/m/ObjectIdentifier.js +1 -1
  126. package/src/sap/m/ObjectListItem.js +1 -1
  127. package/src/sap/m/ObjectMarker.js +1 -1
  128. package/src/sap/m/ObjectNumber.js +13 -1
  129. package/src/sap/m/ObjectStatus.js +1 -1
  130. package/src/sap/m/ObjectStatusRenderer.js +4 -1
  131. package/src/sap/m/OverflowToolbar.js +1 -1
  132. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  133. package/src/sap/m/OverflowToolbarButton.js +4 -2
  134. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  135. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  136. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  137. package/src/sap/m/P13nColumnsItem.js +1 -1
  138. package/src/sap/m/P13nColumnsPanel.js +3 -3
  139. package/src/sap/m/P13nConditionPanel.js +23 -53
  140. package/src/sap/m/P13nDialog.js +1 -1
  141. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  142. package/src/sap/m/P13nDimMeasurePanel.js +3 -3
  143. package/src/sap/m/P13nFilterItem.js +1 -1
  144. package/src/sap/m/P13nFilterPanel.js +1 -3
  145. package/src/sap/m/P13nGroupItem.js +1 -1
  146. package/src/sap/m/P13nGroupPanel.js +1 -3
  147. package/src/sap/m/P13nItem.js +1 -1
  148. package/src/sap/m/P13nPanel.js +1 -1
  149. package/src/sap/m/P13nSelectionItem.js +1 -1
  150. package/src/sap/m/P13nSelectionPanel.js +1 -1
  151. package/src/sap/m/P13nSortItem.js +1 -1
  152. package/src/sap/m/P13nSortPanel.js +1 -3
  153. package/src/sap/m/PDFViewer.js +14 -5
  154. package/src/sap/m/Page.js +1 -1
  155. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  156. package/src/sap/m/PagingButton.js +1 -1
  157. package/src/sap/m/Panel.js +1 -1
  158. package/src/sap/m/PlanningCalendar.js +139 -41
  159. package/src/sap/m/PlanningCalendarHeader.js +1 -6
  160. package/src/sap/m/PlanningCalendarLegend.js +1 -6
  161. package/src/sap/m/PlanningCalendarLegendRenderer.js +2 -5
  162. package/src/sap/m/PlanningCalendarRow.js +1 -1
  163. package/src/sap/m/PlanningCalendarView.js +1 -6
  164. package/src/sap/m/Popover.js +5 -5
  165. package/src/sap/m/PopoverRenderer.js +3 -2
  166. package/src/sap/m/ProgressIndicator.js +1 -1
  167. package/src/sap/m/PullToRefresh.js +1 -1
  168. package/src/sap/m/QuickView.js +1 -1
  169. package/src/sap/m/QuickViewBase.js +1 -1
  170. package/src/sap/m/QuickViewCard.js +1 -1
  171. package/src/sap/m/QuickViewGroup.js +1 -1
  172. package/src/sap/m/QuickViewGroupElement.js +1 -1
  173. package/src/sap/m/QuickViewPage.js +1 -1
  174. package/src/sap/m/RadioButton.js +1 -1
  175. package/src/sap/m/RadioButtonGroup.js +1 -1
  176. package/src/sap/m/RangeSlider.js +1 -1
  177. package/src/sap/m/RatingIndicator.js +10 -8
  178. package/src/sap/m/ResponsivePopover.js +1 -1
  179. package/src/sap/m/ResponsiveScale.js +1 -1
  180. package/src/sap/m/ScrollBar.js +1 -1
  181. package/src/sap/m/ScrollContainer.js +1 -1
  182. package/src/sap/m/SearchField.js +6 -34
  183. package/src/sap/m/SearchFieldRenderer.js +16 -12
  184. package/src/sap/m/SegmentedButton.js +12 -17
  185. package/src/sap/m/SegmentedButtonItem.js +1 -1
  186. package/src/sap/m/Select.js +18 -8
  187. package/src/sap/m/SelectDialog.js +1 -1
  188. package/src/sap/m/SelectDialogBase.js +1 -1
  189. package/src/sap/m/SelectList.js +1 -1
  190. package/src/sap/m/SelectRenderer.js +6 -1
  191. package/src/sap/m/SelectionDetails.js +7 -9
  192. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  193. package/src/sap/m/SelectionDetailsItem.js +8 -4
  194. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  195. package/src/sap/m/Shell.js +9 -17
  196. package/src/sap/m/SimpleFixFlex.js +1 -1
  197. package/src/sap/m/SinglePlanningCalendar.js +7 -10
  198. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  199. package/src/sap/m/SinglePlanningCalendarGrid.js +15 -13
  200. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +17 -7
  201. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -6
  202. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +4 -6
  203. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -6
  204. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  205. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -6
  206. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -6
  207. package/src/sap/m/SlideTile.js +31 -3
  208. package/src/sap/m/SlideTileRenderer.js +9 -0
  209. package/src/sap/m/Slider.js +1 -1
  210. package/src/sap/m/SliderTooltip.js +1 -1
  211. package/src/sap/m/SliderTooltipBase.js +1 -1
  212. package/src/sap/m/SliderTooltipContainer.js +1 -1
  213. package/src/sap/m/SplitApp.js +1 -1
  214. package/src/sap/m/SplitButton.js +3 -7
  215. package/src/sap/m/SplitContainer.js +13 -8
  216. package/src/sap/m/StandardDynamicDateOption.js +50 -12
  217. package/src/sap/m/StandardListItem.js +69 -26
  218. package/src/sap/m/StandardListItemRenderer.js +21 -9
  219. package/src/sap/m/StandardTile.js +1 -1
  220. package/src/sap/m/StandardTreeItem.js +1 -1
  221. package/src/sap/m/StepInput.js +30 -14
  222. package/src/sap/m/Suggest.js +25 -25
  223. package/src/sap/m/SuggestionItem.js +1 -7
  224. package/src/sap/m/SuggestionsPopover.js +1 -1
  225. package/src/sap/m/Switch.js +2 -2
  226. package/src/sap/m/TabContainer.js +1 -1
  227. package/src/sap/m/TabContainerItem.js +1 -1
  228. package/src/sap/m/TabStrip.js +1 -1
  229. package/src/sap/m/TabStripItem.js +1 -1
  230. package/src/sap/m/Table.js +2 -4
  231. package/src/sap/m/TablePersoController.js +1 -1
  232. package/src/sap/m/TablePersoDialog.js +1 -1
  233. package/src/sap/m/TablePersoProvider.js +1 -1
  234. package/src/sap/m/TableRenderer.js +3 -3
  235. package/src/sap/m/TableSelectDialog.js +1 -1
  236. package/src/sap/m/Text.js +1 -1
  237. package/src/sap/m/TextArea.js +2 -2
  238. package/src/sap/m/Tile.js +1 -1
  239. package/src/sap/m/TileContainer.js +1 -1
  240. package/src/sap/m/TileContent.js +22 -4
  241. package/src/sap/m/TileContentRenderer.js +73 -5
  242. package/src/sap/m/TimePicker.js +4 -3
  243. package/src/sap/m/TimePickerClock.js +2 -2
  244. package/src/sap/m/TimePickerClocks.js +2 -1
  245. package/src/sap/m/TimePickerInputs.js +3 -3
  246. package/src/sap/m/TimePickerInternals.js +1 -1
  247. package/src/sap/m/TimePickerSlider.js +2 -2
  248. package/src/sap/m/TimePickerSliders.js +1 -1
  249. package/src/sap/m/Title.js +1 -1
  250. package/src/sap/m/TitlePropagationSupport.js +1 -1
  251. package/src/sap/m/ToggleButton.js +1 -1
  252. package/src/sap/m/Token.js +1 -1
  253. package/src/sap/m/Tokenizer.js +45 -3
  254. package/src/sap/m/TokenizerRenderer.js +5 -0
  255. package/src/sap/m/Toolbar.js +1 -1
  256. package/src/sap/m/ToolbarLayoutData.js +1 -1
  257. package/src/sap/m/ToolbarSeparator.js +1 -1
  258. package/src/sap/m/ToolbarSpacer.js +1 -1
  259. package/src/sap/m/Tree.js +1 -1
  260. package/src/sap/m/TreeItemBase.js +1 -1
  261. package/src/sap/m/UploadCollection.js +2 -7
  262. package/src/sap/m/UploadCollectionItem.js +1 -1
  263. package/src/sap/m/UploadCollectionParameter.js +1 -1
  264. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  265. package/src/sap/m/VBox.js +1 -1
  266. package/src/sap/m/ValueStateHeader.js +1 -1
  267. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  268. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  269. package/src/sap/m/ViewSettingsDialog.js +1 -1
  270. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  271. package/src/sap/m/ViewSettingsItem.js +1 -1
  272. package/src/sap/m/VisibleItem.js +1 -1
  273. package/src/sap/m/WheelSlider.js +2 -2
  274. package/src/sap/m/WheelSliderContainer.js +1 -1
  275. package/src/sap/m/Wizard.js +2 -1
  276. package/src/sap/m/WizardProgressNavigator.js +1 -1
  277. package/src/sap/m/WizardProgressNavigatorRenderer.js +3 -2
  278. package/src/sap/m/WizardStep.js +1 -1
  279. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  280. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  281. package/src/sap/m/changeHandler/CombineButtons.js +16 -17
  282. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  283. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +86 -0
  284. package/src/sap/m/changeHandler/SplitMenuButton.js +12 -6
  285. package/src/sap/m/delegate/DateNavigation.js +4 -5
  286. package/src/sap/m/designtime/IconTabBar.designtime.js +85 -2
  287. package/src/sap/m/designtime/IconTabBarSelectTab.fragment.xml +17 -0
  288. package/src/sap/m/designtime/MenuButton.designtime.js +3 -0
  289. package/src/sap/m/designtime/ObjectIdentifier.designtime.js +16 -12
  290. package/src/sap/m/designtime/messagebundle.properties +9 -0
  291. package/src/sap/m/designtime/messagebundle_ar.properties +6 -0
  292. package/src/sap/m/designtime/messagebundle_bg.properties +6 -0
  293. package/src/sap/m/designtime/messagebundle_ca.properties +6 -0
  294. package/src/sap/m/designtime/messagebundle_cs.properties +6 -0
  295. package/src/sap/m/designtime/messagebundle_cy.properties +6 -0
  296. package/src/sap/m/designtime/messagebundle_da.properties +6 -0
  297. package/src/sap/m/designtime/messagebundle_de.properties +8 -2
  298. package/src/sap/m/designtime/messagebundle_el.properties +6 -0
  299. package/src/sap/m/designtime/messagebundle_en.properties +6 -0
  300. package/src/sap/m/designtime/messagebundle_en_GB.properties +6 -0
  301. package/src/sap/m/designtime/messagebundle_en_US_sappsd.properties +6 -0
  302. package/src/sap/m/designtime/messagebundle_en_US_saprigi.properties +6 -0
  303. package/src/sap/m/designtime/messagebundle_en_US_saptrc.properties +6 -0
  304. package/src/sap/m/designtime/messagebundle_es.properties +6 -0
  305. package/src/sap/m/designtime/messagebundle_es_MX.properties +6 -0
  306. package/src/sap/m/designtime/messagebundle_et.properties +6 -0
  307. package/src/sap/m/designtime/messagebundle_fi.properties +6 -0
  308. package/src/sap/m/designtime/messagebundle_fr.properties +6 -0
  309. package/src/sap/m/designtime/messagebundle_fr_CA.properties +6 -0
  310. package/src/sap/m/designtime/messagebundle_hi.properties +6 -0
  311. package/src/sap/m/designtime/messagebundle_hr.properties +6 -0
  312. package/src/sap/m/designtime/messagebundle_hu.properties +6 -0
  313. package/src/sap/m/designtime/messagebundle_id.properties +6 -0
  314. package/src/sap/m/designtime/messagebundle_it.properties +6 -0
  315. package/src/sap/m/designtime/messagebundle_iw.properties +6 -0
  316. package/src/sap/m/designtime/messagebundle_ja.properties +6 -0
  317. package/src/sap/m/designtime/messagebundle_kk.properties +6 -0
  318. package/src/sap/m/designtime/messagebundle_ko.properties +6 -0
  319. package/src/sap/m/designtime/messagebundle_lt.properties +6 -0
  320. package/src/sap/m/designtime/messagebundle_lv.properties +6 -0
  321. package/src/sap/m/designtime/messagebundle_ms.properties +6 -0
  322. package/src/sap/m/designtime/messagebundle_nl.properties +6 -0
  323. package/src/sap/m/designtime/messagebundle_no.properties +6 -0
  324. package/src/sap/m/designtime/messagebundle_pl.properties +6 -0
  325. package/src/sap/m/designtime/messagebundle_pt.properties +6 -0
  326. package/src/sap/m/designtime/messagebundle_pt_PT.properties +6 -0
  327. package/src/sap/m/designtime/messagebundle_ro.properties +6 -0
  328. package/src/sap/m/designtime/messagebundle_ru.properties +6 -0
  329. package/src/sap/m/designtime/messagebundle_sh.properties +6 -0
  330. package/src/sap/m/designtime/messagebundle_sk.properties +6 -0
  331. package/src/sap/m/designtime/messagebundle_sl.properties +6 -0
  332. package/src/sap/m/designtime/messagebundle_sv.properties +6 -0
  333. package/src/sap/m/designtime/messagebundle_th.properties +6 -0
  334. package/src/sap/m/designtime/messagebundle_tr.properties +6 -0
  335. package/src/sap/m/designtime/messagebundle_uk.properties +6 -0
  336. package/src/sap/m/designtime/messagebundle_vi.properties +6 -0
  337. package/src/sap/m/designtime/messagebundle_zh_CN.properties +6 -0
  338. package/src/sap/m/designtime/messagebundle_zh_TW.properties +6 -0
  339. package/src/sap/m/flexibility/IconTabBar.flexibility.js +21 -0
  340. package/src/sap/m/flexibility/MenuButton.flexibility.js +1 -0
  341. package/src/sap/m/inputUtils/ListHelpers.js +16 -3
  342. package/src/sap/m/library.js +60 -34
  343. package/src/sap/m/messagebundle.properties +59 -7
  344. package/src/sap/m/messagebundle_ar.properties +13 -5
  345. package/src/sap/m/messagebundle_bg.properties +13 -5
  346. package/src/sap/m/messagebundle_ca.properties +13 -5
  347. package/src/sap/m/messagebundle_cs.properties +24 -16
  348. package/src/sap/m/messagebundle_cy.properties +13 -5
  349. package/src/sap/m/messagebundle_da.properties +14 -6
  350. package/src/sap/m/messagebundle_de.properties +14 -6
  351. package/src/sap/m/messagebundle_el.properties +14 -6
  352. package/src/sap/m/messagebundle_en.properties +10 -2
  353. package/src/sap/m/messagebundle_en_GB.properties +10 -2
  354. package/src/sap/m/messagebundle_en_US_sappsd.properties +26 -3
  355. package/src/sap/m/messagebundle_en_US_saprigi.properties +39 -3
  356. package/src/sap/m/messagebundle_en_US_saptrc.properties +14 -6
  357. package/src/sap/m/messagebundle_es.properties +13 -5
  358. package/src/sap/m/messagebundle_es_MX.properties +16 -8
  359. package/src/sap/m/messagebundle_et.properties +13 -5
  360. package/src/sap/m/messagebundle_fi.properties +13 -5
  361. package/src/sap/m/messagebundle_fr.properties +26 -18
  362. package/src/sap/m/messagebundle_fr_CA.properties +14 -6
  363. package/src/sap/m/messagebundle_hi.properties +13 -5
  364. package/src/sap/m/messagebundle_hr.properties +13 -5
  365. package/src/sap/m/messagebundle_hu.properties +13 -5
  366. package/src/sap/m/messagebundle_id.properties +15 -7
  367. package/src/sap/m/messagebundle_it.properties +19 -11
  368. package/src/sap/m/messagebundle_iw.properties +13 -5
  369. package/src/sap/m/messagebundle_ja.properties +13 -5
  370. package/src/sap/m/messagebundle_kk.properties +13 -5
  371. package/src/sap/m/messagebundle_ko.properties +14 -6
  372. package/src/sap/m/messagebundle_lt.properties +13 -5
  373. package/src/sap/m/messagebundle_lv.properties +13 -5
  374. package/src/sap/m/messagebundle_ms.properties +14 -6
  375. package/src/sap/m/messagebundle_nl.properties +15 -7
  376. package/src/sap/m/messagebundle_no.properties +25 -17
  377. package/src/sap/m/messagebundle_pl.properties +17 -9
  378. package/src/sap/m/messagebundle_pt.properties +16 -8
  379. package/src/sap/m/messagebundle_pt_PT.properties +13 -5
  380. package/src/sap/m/messagebundle_ro.properties +18 -10
  381. package/src/sap/m/messagebundle_ru.properties +14 -6
  382. package/src/sap/m/messagebundle_sh.properties +14 -6
  383. package/src/sap/m/messagebundle_sk.properties +13 -5
  384. package/src/sap/m/messagebundle_sl.properties +13 -5
  385. package/src/sap/m/messagebundle_sv.properties +13 -5
  386. package/src/sap/m/messagebundle_th.properties +13 -5
  387. package/src/sap/m/messagebundle_tr.properties +13 -5
  388. package/src/sap/m/messagebundle_uk.properties +16 -8
  389. package/src/sap/m/messagebundle_vi.properties +14 -6
  390. package/src/sap/m/messagebundle_zh_CN.properties +13 -5
  391. package/src/sap/m/messagebundle_zh_TW.properties +13 -5
  392. package/src/sap/m/p13n/AbstractContainer.js +243 -0
  393. package/src/sap/m/p13n/AbstractContainerItem.js +94 -0
  394. package/src/sap/m/p13n/BasePanel.js +643 -0
  395. package/src/sap/m/p13n/Container.js +239 -0
  396. package/src/sap/m/p13n/GroupPanel.js +119 -0
  397. package/src/sap/m/p13n/QueryPanel.js +312 -0
  398. package/src/sap/m/p13n/SelectionPanel.js +403 -0
  399. package/src/sap/m/p13n/SortPanel.js +139 -0
  400. package/src/sap/m/plugins/ColumnResizer.js +23 -2
  401. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  402. package/src/sap/m/plugins/PasteProvider.js +9 -1
  403. package/src/sap/m/plugins/PluginBase.js +1 -1
  404. package/src/sap/m/routing/TargetHandler.js +24 -22
  405. package/src/sap/m/routing/async/Target.js +3 -2
  406. package/src/sap/m/semantic/AddAction.js +1 -1
  407. package/src/sap/m/semantic/CancelAction.js +1 -1
  408. package/src/sap/m/semantic/DeleteAction.js +1 -1
  409. package/src/sap/m/semantic/DetailPage.js +1 -1
  410. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  411. package/src/sap/m/semantic/EditAction.js +1 -1
  412. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  413. package/src/sap/m/semantic/FilterAction.js +1 -1
  414. package/src/sap/m/semantic/FilterSelect.js +1 -1
  415. package/src/sap/m/semantic/FlagAction.js +1 -1
  416. package/src/sap/m/semantic/ForwardAction.js +1 -1
  417. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  418. package/src/sap/m/semantic/GroupAction.js +1 -1
  419. package/src/sap/m/semantic/GroupSelect.js +1 -1
  420. package/src/sap/m/semantic/MainAction.js +1 -1
  421. package/src/sap/m/semantic/MasterPage.js +1 -1
  422. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  423. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  424. package/src/sap/m/semantic/NegativeAction.js +1 -1
  425. package/src/sap/m/semantic/OpenInAction.js +1 -1
  426. package/src/sap/m/semantic/PositiveAction.js +1 -1
  427. package/src/sap/m/semantic/PrintAction.js +1 -1
  428. package/src/sap/m/semantic/SaveAction.js +1 -1
  429. package/src/sap/m/semantic/Segment.js +1 -1
  430. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  431. package/src/sap/m/semantic/SemanticButton.js +1 -1
  432. package/src/sap/m/semantic/SemanticConfiguration.js +3 -5
  433. package/src/sap/m/semantic/SemanticControl.js +1 -1
  434. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  435. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +2 -2
  436. package/src/sap/m/semantic/SemanticPage.js +1 -1
  437. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  438. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  439. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  440. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  441. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  442. package/src/sap/m/semantic/ShareMenu.js +1 -1
  443. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  444. package/src/sap/m/semantic/SortAction.js +1 -1
  445. package/src/sap/m/semantic/SortSelect.js +1 -1
  446. package/src/sap/m/table/Util.js +192 -0
  447. package/src/sap/m/themes/base/AbstractContainer.less +17 -0
  448. package/src/sap/m/themes/base/ColumnListItem.less +2 -2
  449. package/src/sap/m/themes/base/Dialog.less +11 -28
  450. package/src/sap/m/themes/base/GenericTile.less +397 -18
  451. package/src/sap/m/themes/base/IconTabBar.less +5 -6
  452. package/src/sap/m/themes/base/Input.less +12 -0
  453. package/src/sap/m/themes/base/ListBase.less +7 -5
  454. package/src/sap/m/themes/base/MessagePage.less +1 -7
  455. package/src/sap/m/themes/base/MessageView.less +4 -0
  456. package/src/sap/m/themes/base/MultiComboBox.less +17 -0
  457. package/src/sap/m/themes/base/NewsContent.less +19 -1
  458. package/src/sap/m/themes/base/NumericContent.less +87 -0
  459. package/src/sap/m/themes/base/ObjectMarker.less +3 -0
  460. package/src/sap/m/themes/base/ObjectNumber.less +10 -2
  461. package/src/sap/m/themes/base/ObjectStatus.less +14 -0
  462. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +0 -6
  463. package/src/sap/m/themes/base/P13nContainer.less +17 -0
  464. package/src/sap/m/themes/base/P13nDialog.less +4 -0
  465. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +1 -2
  466. package/src/sap/m/themes/base/SlideTile.less +15 -0
  467. package/src/sap/m/themes/base/StandardListItem.less +5 -0
  468. package/src/sap/m/themes/base/Table.less +9 -19
  469. package/src/sap/m/themes/base/TextArea.less +1 -1
  470. package/src/sap/m/themes/base/TileContent.less +11 -0
  471. package/src/sap/m/themes/base/Token.less +0 -3
  472. package/src/sap/m/themes/base/Tokenizer.less +6 -0
  473. package/src/sap/m/themes/base/UploadSet.less +5 -0
  474. package/src/sap/m/themes/base/ViewSettingsDialog.less +28 -1
  475. package/src/sap/m/themes/base/library.source.less +4 -0
  476. package/src/sap/m/themes/base/p13n.Container.less +17 -0
  477. package/src/sap/m/themes/base/p13n.QueryPanel.less +7 -0
  478. package/src/sap/m/themes/base/p13n.SelectionPanel.less +32 -0
  479. package/src/sap/m/themes/sap_hcb/IconTabBar.less +3 -3
  480. package/src/sap/m/upload/UploadSet.js +48 -23
  481. package/src/sap/m/upload/UploadSetItem.js +9 -4
  482. package/ui5.yaml +4 -1
  483. package/src/sap/m/ios7.js +0 -199
@@ -14,6 +14,8 @@ sap.ui.define([
14
14
  './StandardListItem',
15
15
  './Popover',
16
16
  './GroupHeaderListItem',
17
+ './CheckBox',
18
+ './Toolbar',
17
19
  './library',
18
20
  'sap/ui/core/EnabledPropagator',
19
21
  'sap/ui/core/IconPool',
@@ -56,6 +58,8 @@ function(
56
58
  StandardListItem,
57
59
  Popover,
58
60
  GroupHeaderListItem,
61
+ CheckBox,
62
+ Toolbar,
59
63
  library,
60
64
  EnabledPropagator,
61
65
  IconPool,
@@ -155,7 +159,7 @@ function(
155
159
  * </ul>
156
160
  *
157
161
  * @author SAP SE
158
- * @version 1.93.3
162
+ * @version 1.96.1
159
163
  *
160
164
  * @constructor
161
165
  * @extends sap.m.ComboBoxBase
@@ -179,7 +183,12 @@ function(
179
183
  /**
180
184
  * Defines if there are selected items or not.
181
185
  */
182
- hasSelection: { type: "boolean", visibility: "hidden", defaultValue: false }
186
+ hasSelection: { type: "boolean", visibility: "hidden", defaultValue: false },
187
+
188
+ /**
189
+ * Determines if the select all checkbox is visible on top of suggestions.
190
+ */
191
+ showSelectAll: { type: "boolean", defaultValue: false }
183
192
  },
184
193
  associations: {
185
194
 
@@ -343,21 +352,9 @@ function(
343
352
  return;
344
353
  }
345
354
 
346
- if (this.getValueState() != ValueState.None) {
347
- this._handleFormattedTextNav();
348
- return;
349
- }
350
-
351
355
  // wait for the composition and input events to fire properly since the focus of the list item
352
356
  // triggers unwanted extra events when called in while composing
353
- setTimeout(function() {
354
- // If list is open then go to the first visible list item. Set this item into the visual viewport.
355
- var aItems = ListHelpers.getVisibleItems(this.getItems()),
356
- oItem = aItems[0];
357
-
358
- oItem && ListHelpers.getListItem(oItem).focus();
359
- }.bind(this), 0);
360
-
357
+ setTimeout(this.handleDownEvent.bind(this, oEvent), 0);
361
358
  };
362
359
 
363
360
  /**
@@ -395,6 +392,94 @@ function(
395
392
  }
396
393
  };
397
394
 
395
+ /**
396
+ * Handles the Down Arrow press event.
397
+ *
398
+ * @param {jquery.Event} oEvent The event object
399
+ * @private
400
+ */
401
+ MultiComboBox.prototype.handleDownEvent = function (oEvent) {
402
+ if (!this.isOpen()) {
403
+ return;
404
+ }
405
+
406
+ var oSrcControl = oEvent.srcControl,
407
+ oSrcDomRef = oSrcControl && oSrcControl.getDomRef(),
408
+ bFocusInInput = containsOrEquals(this.getDomRef(), oSrcDomRef),
409
+ oValueStateHeader = this.getPicker().getCustomHeader(),
410
+ oValueStateHeaderDom = oValueStateHeader && oValueStateHeader.getDomRef();
411
+
412
+ oEvent.setMarked();
413
+ // note: Prevent document scrolling when Down key is pressed
414
+ oEvent.preventDefault();
415
+
416
+ if (bFocusInInput && this.getValueState() != ValueState.None) {
417
+ this._handleFormattedTextNav();
418
+ return;
419
+ }
420
+
421
+ if ((bFocusInInput || containsOrEquals(oValueStateHeaderDom, oSrcDomRef)) && this.getShowSelectAll()) {
422
+ this.focusSelectAll();
423
+ return;
424
+ }
425
+
426
+ this.focusFirstItemInList();
427
+ };
428
+
429
+ /**
430
+ * Handles the End press event.
431
+ *
432
+ * @param {jquery.Event} oEvent The event object
433
+ * @private
434
+ */
435
+ MultiComboBox.prototype.handleEndEvent = function (oEvent) {
436
+ oEvent.setMarked();
437
+ // Note: Prevent document scrolling when End key is pressed
438
+ oEvent.preventDefault();
439
+
440
+ var aVisibleItems = ListHelpers.getVisibleItems(this.getItems()),
441
+ oListItem = aVisibleItems.length && ListHelpers.getListItem(aVisibleItems[aVisibleItems.length - 1]);
442
+
443
+ oListItem && oListItem.focus();
444
+ };
445
+
446
+ /**
447
+ * Handles the Home press event.
448
+ *
449
+ * @param {jquery.Event} oEvent The event object
450
+ * @private
451
+ */
452
+ MultiComboBox.prototype.handleHomeEvent = function (oEvent) {
453
+ oEvent.setMarked();
454
+ // note: Prevent document scrolling when Home key is pressed
455
+ oEvent.preventDefault();
456
+
457
+ if (this.getValueState() !== ValueState.None) {
458
+ this._handleFormattedTextNav();
459
+ oEvent.stopPropagation(true);
460
+ return;
461
+ }
462
+
463
+ if (this.getShowSelectAll()) {
464
+ this.focusSelectAll();
465
+ oEvent.stopPropagation(true);
466
+ return;
467
+ }
468
+
469
+ this.focusFirstItemInList();
470
+ };
471
+
472
+ /**
473
+ * Focuses on the first item in the list of options.
474
+ * @private
475
+ */
476
+ MultiComboBox.prototype.focusFirstItemInList = function () {
477
+ var aVisibleItems = ListHelpers.getVisibleItems(this.getItems()),
478
+ oListItem = aVisibleItems.length && ListHelpers.getListItem(aVisibleItems[0]);
479
+
480
+ oListItem && oListItem.focus();
481
+ };
482
+
398
483
  /**
399
484
  * Checks if the focused element is part of the Tokenizer.
400
485
  * @returns {boolean} True if the focus is inside the Tokenizer
@@ -411,6 +496,8 @@ function(
411
496
  * @private
412
497
  */
413
498
  MultiComboBox.prototype.onsapshow = function(oEvent) {
499
+ oEvent.preventDefault();
500
+
414
501
  this._handleItemToFocus();
415
502
  ComboBoxBase.prototype.onsapshow.apply(this, arguments);
416
503
  };
@@ -428,33 +515,17 @@ function(
428
515
  * - pressing the Up arrow key will move the focus to the input,
429
516
  * - pressing the Down arrow key - will select the first selectable item.
430
517
  *
431
- * @param {object} oFormattedText <code>sap.m.FormattedText</code> value state message.
518
+ * @param {object} oValueStateHeader The value state header.
432
519
  * @param {array} aValueStateLinks The links in <code>sap.m.FormattedText</code> value state message.
433
520
  * @returns {object} Delegate for navigation and focus handling for <code>sap.m.ValueStateHeader</code> containing <code>sap.m.FormattedText</code> message with links.
434
521
  *
435
522
  * @private
436
523
  */
437
- MultiComboBox.prototype._valueStateNavDelegate = function(oValueStateHeader, oFormattedText, aValueStateLinks) {
438
- var oFocusDomRef = this.getFocusDomRef();
439
-
440
- this.oValueStateNavDelegate = {
441
- onsapdown: function(oEvent) {
442
- var aVisibleItems = ListHelpers.getVisibleItems(this.getItems()),
443
- oListItem = aVisibleItems.length && ListHelpers.getListItem(aVisibleItems[0]);
444
-
445
- oEvent.preventDefault();
446
- oListItem && oListItem.focus();
447
- }.bind(this),
448
- onsapup: function() {
449
- oFocusDomRef.focus();
450
- },
451
- onsapend: function(oEvent) {
452
- var aVisibleItems = ListHelpers.getVisibleItems(this.getItems()),
453
- oListItem = aVisibleItems.length && ListHelpers.getListItem(aVisibleItems[aVisibleItems.length - 1]);
454
-
455
- oEvent.preventDefault();
456
- oListItem && oListItem.focus();
457
- }.bind(this),
524
+ MultiComboBox.prototype._valueStateNavDelegate = function(oValueStateHeader, aValueStateLinks) {
525
+ return {
526
+ onsapdown: this.handleDownEvent,
527
+ onsapup: this.focus,
528
+ onsapend: this.handleEndEvent,
458
529
  onfocusout: function(oEvent) {
459
530
  // Links should not be tabbable after the focus is moved outside of the value state header
460
531
  oValueStateHeader.removeStyleClass("sapMFocusable");
@@ -465,10 +536,10 @@ function(
465
536
  oLink.getDomRef().setAttribute("tabindex", "-1");
466
537
  });
467
538
  }
468
- }
539
+ },
540
+ onsapshow: this.close,
541
+ onsaphide: this.close
469
542
  };
470
-
471
- return this.oValueStateNavDelegate;
472
543
  };
473
544
 
474
545
  /**
@@ -494,16 +565,8 @@ function(
494
565
  * @private
495
566
  */
496
567
  MultiComboBox.prototype._formattedTextLinksNav = {
497
- onsapup: function() {
498
- this.focus();
499
- },
500
- onsapdown: function() {
501
- var aSelectableItems = ListHelpers.getSelectableItems(this.getItems());
502
-
503
- if (aSelectableItems.length) {
504
- aSelectableItems[0].focus();
505
- }
506
- }
568
+ onsapup: this.focus,
569
+ onsapdown: this.handleDownEvent
507
570
  };
508
571
 
509
572
  /**
@@ -515,8 +578,6 @@ function(
515
578
  MultiComboBox.prototype._handleFormattedTextNav = function() {
516
579
  var oCustomHeader = this.getPicker().getCustomHeader(),
517
580
  aValueStateLinks = this.getValueStateLinks(),
518
- oFormattedText = oCustomHeader.getFormattedText(),
519
- oValueStateNavDelegate = this.oValueStateNavDelegate || this._valueStateNavDelegate(oCustomHeader, oFormattedText, aValueStateLinks),
520
581
  oLastValueStateLink = aValueStateLinks ? aValueStateLinks[aValueStateLinks.length - 1] : null,
521
582
  oFirstValueStateLink = aValueStateLinks ? aValueStateLinks[0] : null;
522
583
 
@@ -524,9 +585,13 @@ function(
524
585
  return;
525
586
  }
526
587
 
588
+ if (!this.oValueStateNavDelegate) {
589
+ this.oValueStateNavDelegate = this._valueStateNavDelegate(oCustomHeader, aValueStateLinks);
590
+ oCustomHeader.addEventDelegate(this.oValueStateNavDelegate, this);
591
+ }
592
+
527
593
  // Make the value state header focusable and focus it
528
594
  oCustomHeader.getDomRef().setAttribute("tabindex", "-1");
529
- oCustomHeader.addDelegate(oValueStateNavDelegate);
530
595
  oCustomHeader.addStyleClass("sapMFocusable");
531
596
  oCustomHeader.focus();
532
597
 
@@ -534,7 +599,7 @@ function(
534
599
  // (on the items list or on the input) and the opposite when the header is focused.
535
600
  aValueStateLinks.forEach(function(oLink) {
536
601
  oLink.getDomRef().setAttribute("tabindex", "0");
537
- oLink.addDelegate(this._formattedTextLinksNav, this);
602
+ oLink.addEventDelegate(this._formattedTextLinksNav, this);
538
603
  }, this);
539
604
 
540
605
  this.oMoveFocusBackToVSHeader = !this.oMoveFocusBackToVSHeader ? {
@@ -545,8 +610,8 @@ function(
545
610
  }
546
611
  } : this.oMoveFocusBackToVSHeader;
547
612
 
548
- oLastValueStateLink && oLastValueStateLink.addDelegate(this._closePickerDelegate, this);
549
- oFirstValueStateLink && oFirstValueStateLink.addDelegate(this.oMoveFocusBackToVSHeader, this);
613
+ oLastValueStateLink && oLastValueStateLink.addEventDelegate(this._closePickerDelegate, this);
614
+ oFirstValueStateLink && oFirstValueStateLink.addEventDelegate(this.oMoveFocusBackToVSHeader, this);
550
615
  };
551
616
 
552
617
  /**
@@ -555,7 +620,9 @@ function(
555
620
  * @param {jQuery.Event} oEvent The event object.
556
621
  * @private
557
622
  */
558
- MultiComboBox.prototype.onsaphide = MultiComboBox.prototype.onsapshow;
623
+ MultiComboBox.prototype.onsaphide = function (oEvent) {
624
+ this.onsapshow(oEvent);
625
+ };
559
626
 
560
627
  /**
561
628
  * Handles the item selection when user triggers an item selection via key press (TAB, ENTER etc.).
@@ -1124,6 +1191,8 @@ function(
1124
1191
  onAfterRendering: this.onAfterRenderingList,
1125
1192
  onfocusin: this.onFocusinList
1126
1193
  }, this);
1194
+
1195
+ this.getShowSelectAll() && this.createSelectAllHeaderToolbar(oList);
1127
1196
  };
1128
1197
 
1129
1198
  /**
@@ -1184,6 +1253,8 @@ function(
1184
1253
  this.syncPickerContent(true);
1185
1254
  }
1186
1255
 
1256
+ this.toggleSelectAllVisibility(this.getShowSelectAll());
1257
+
1187
1258
  this._deregisterResizeHandler();
1188
1259
  this._synchronizeSelectedItemAndKey();
1189
1260
  this.setProperty("hasSelection", !!this.getSelectedItems().length, true);
@@ -1472,6 +1543,8 @@ function(
1472
1543
  } else {
1473
1544
  itemsVisibilityHandler(this.getItems(), this.filterItems({value: sValue, items: aItems}));
1474
1545
  }
1546
+
1547
+ this.manageSelectAllCheckBoxState();
1475
1548
  };
1476
1549
 
1477
1550
  /**
@@ -1796,9 +1869,7 @@ function(
1796
1869
  oEvent.setMarked();
1797
1870
  oEvent.preventDefault();
1798
1871
 
1799
- var aVisibleItems = ListHelpers.getSelectableItems(this.getItems()).filter(function(oItem) {
1800
- return !oItem.isA("sap.ui.core.SeparatorItem") && !oItem.isA("sap.m.GroupHeaderListItem");
1801
- });
1872
+ var aVisibleItems = ListHelpers.getSelectableItems(this.getItems());
1802
1873
  var aSelectedItems = this._getSelectedItemsOf(aVisibleItems);
1803
1874
 
1804
1875
  if (aSelectedItems.length !== aVisibleItems.length) {
@@ -1869,14 +1940,7 @@ function(
1869
1940
  // Handle when F4 or Alt + DOWN arrow are pressed.
1870
1941
  oEvent.setMarked();
1871
1942
 
1872
- if (this.isOpen()) {
1873
- this.close();
1874
- return;
1875
- }
1876
-
1877
- if (this.hasContent()) {
1878
- this.open();
1879
- }
1943
+ this.close();
1880
1944
  },
1881
1945
 
1882
1946
  onsaphide: function(oEvent) {
@@ -1891,40 +1955,9 @@ function(
1891
1955
  this.close();
1892
1956
  },
1893
1957
 
1894
- onsaphome: function(oEvent) {
1895
-
1896
- // Handle when Pos1 is pressed.
1897
- oEvent.setMarked();
1898
-
1899
- // note: prevent document scrolling when Home key is pressed
1900
- oEvent.preventDefault();
1901
-
1902
- if (this.getValueState() !== ValueState.None) {
1903
- this._handleFormattedTextNav();
1904
- oEvent.stopPropagation(true);
1905
- return;
1906
- }
1907
-
1908
- var aVisibleItems = ListHelpers.getSelectableItems(this.getItems());
1909
- var oItem = aVisibleItems[0];
1910
-
1911
- // Scrolls an item into the visual viewport
1912
- ListHelpers.getListItem(oItem).focus();
1913
- },
1914
-
1915
- onsapend: function(oEvent) {
1916
-
1917
- // Handle when End is pressed.
1918
- oEvent.setMarked();
1919
-
1920
- // note: prevent document scrolling when End key is pressed
1921
- oEvent.preventDefault();
1922
- var aVisibleItems = ListHelpers.getSelectableItems(this.getItems());
1923
- var oItem = aVisibleItems[aVisibleItems.length - 1];
1958
+ onsaphome: this.handleHomeEvent.bind(this),
1924
1959
 
1925
- // Scrolls an item into the visual viewport
1926
- ListHelpers.getListItem(oItem).focus();
1927
- },
1960
+ onsapend: this.handleEndEvent.bind(this),
1928
1961
 
1929
1962
  onsapup: function(oEvent) {
1930
1963
 
@@ -1938,18 +1971,20 @@ function(
1938
1971
  var oItemFirst = aVisibleItems[0];
1939
1972
  var oItemCurrent = jQuery(document.activeElement).control()[0];
1940
1973
 
1941
- if (oItemCurrent === ListHelpers.getListItem(oItemFirst) && this.getValueState() !== ValueState.None) {
1942
- this._handleFormattedTextNav();
1943
- oEvent.stopPropagation(true);
1974
+ if (oItemCurrent !== ListHelpers.getListItem(oItemFirst)) {
1944
1975
  return;
1945
- } else if (oItemCurrent === ListHelpers.getListItem(oItemFirst)) {
1946
- this.focus();
1976
+ }
1947
1977
 
1948
- // Stop the propagation of event. Otherwise the list item sets
1949
- // the focus and
1950
- // it is not possible to come up from list box to input field.
1951
- oEvent.stopPropagation(true);
1978
+ if (this.getShowSelectAll()) {
1979
+ this.focusSelectAll();
1980
+ } else if (this.getValueState() !== ValueState.None) {
1981
+ this._handleFormattedTextNav();
1982
+ } else {
1983
+ this.focus();
1952
1984
  }
1985
+
1986
+ // prevent list from focusing list item
1987
+ oEvent.stopPropagation(true);
1953
1988
  },
1954
1989
 
1955
1990
  onfocusin: function(oEvent) {
@@ -2184,6 +2219,8 @@ function(
2184
2219
  oList.getItems()[this._iFocusedIndex].focus();
2185
2220
  this._iFocusedIndex = null;
2186
2221
  }
2222
+
2223
+ this.manageSelectAllCheckBoxState();
2187
2224
  };
2188
2225
 
2189
2226
  /**
@@ -3130,6 +3167,7 @@ function(
3130
3167
  }
3131
3168
  }
3132
3169
  itemsVisibilityHandler(this.getItems(), this.filterItems({ value: sValue, items: aItemsToCheck }));
3170
+ this.manageSelectAllCheckBoxState();
3133
3171
 
3134
3172
  this._sOldInput = sValue;
3135
3173
 
@@ -3204,8 +3242,6 @@ function(
3204
3242
  };
3205
3243
 
3206
3244
  MultiComboBox.prototype.init = function() {
3207
- this._oRb = core.getLibraryResourceBundle("sap.m");
3208
-
3209
3245
  ComboBoxBase.prototype.init.apply(this, arguments);
3210
3246
 
3211
3247
  // Flag to mark that all the initial setters have completed.
@@ -3296,6 +3332,7 @@ function(
3296
3332
  this._oRbC = null;
3297
3333
  this._oRbM = null;
3298
3334
  this._oListItemEnterEventDelegate = null;
3335
+ this.oValueStateNavDelegate = null;
3299
3336
 
3300
3337
  this._sInitialValueState = null;
3301
3338
  };
@@ -3370,7 +3407,7 @@ function(
3370
3407
  oItemToFocus = this._getItemByValue(sValue);
3371
3408
  }
3372
3409
 
3373
- // If no items are selected focuse the first visible one
3410
+ // If no items are selected focus the first visible one
3374
3411
  if (!oItemToFocus) {
3375
3412
  oItemToFocus = aSelectedItems.length ? ListHelpers.getItemByListItem(this.getItems(), this._getList().getSelectedItems()[0]) : aSelectableItems[0];
3376
3413
  }
@@ -3529,6 +3566,7 @@ function(
3529
3566
  MultiComboBox.prototype.applyShowItemsFilters = function () {
3530
3567
  this.syncPickerContent();
3531
3568
  itemsVisibilityHandler(this.getItems(), this.filterItems({value: this.getValue() || "_", items: this.getItems()}));
3569
+ this.manageSelectAllCheckBoxState();
3532
3570
  };
3533
3571
 
3534
3572
  /**
@@ -3556,6 +3594,183 @@ function(
3556
3594
  }
3557
3595
  };
3558
3596
 
3597
+ /**
3598
+ * Creates a list header toolbar containing the select all checkbox.
3599
+ *
3600
+ * @param {sap.m.List} oList The list instance to be configured
3601
+ * @private
3602
+ */
3603
+ MultiComboBox.prototype.createSelectAllHeaderToolbar = function (oList) {
3604
+ oList = oList || this._getList();
3605
+
3606
+ if (!oList || oList.getHeaderToolbar()) {
3607
+ return;
3608
+ }
3609
+
3610
+ var oSelectAllCheckbox = new CheckBox({
3611
+ select: function (oEvent) {
3612
+ var oCheckBox = oEvent.getSource(),
3613
+ aVisibleSelectableItems = ListHelpers.getSelectableItems(this.getItems()),
3614
+ aSelectedVisibleItems = this._getSelectedItemsOf(aVisibleSelectableItems);
3615
+
3616
+ if (oEvent.getParameter("selected")) {
3617
+ var aNotSelectedVisibleItems = aVisibleSelectableItems.filter(function (aCurSelectedItem) {
3618
+ return aSelectedVisibleItems.indexOf(aCurSelectedItem) === -1;
3619
+ });
3620
+
3621
+ aNotSelectedVisibleItems.forEach(function(oItem) {
3622
+ this.setSelection({
3623
+ item: oItem,
3624
+ items: aNotSelectedVisibleItems,
3625
+ selectAll: true,
3626
+ id: oItem.getId(),
3627
+ key: oItem.getKey(),
3628
+ fireChangeEvent: true,
3629
+ suppressInvalidate: true,
3630
+ listItemUpdated: false
3631
+ });
3632
+ }, this);
3633
+
3634
+ } else {
3635
+ aSelectedVisibleItems.forEach(function(oItem) {
3636
+ this.removeSelection({
3637
+ item: oItem,
3638
+ items: aSelectedVisibleItems,
3639
+ selectAll: true,
3640
+ id: oItem.getId(),
3641
+ key: oItem.getKey(),
3642
+ fireChangeEvent: true,
3643
+ suppressInvalidate: true,
3644
+ listItemUpdated: false
3645
+ });
3646
+ }, this);
3647
+ }
3648
+
3649
+ oCheckBox.focus();
3650
+ }.bind(this)
3651
+ });
3652
+
3653
+ oSelectAllCheckbox.addEventDelegate(this._selectAllDelegate(), this);
3654
+
3655
+ oList.setHeaderToolbar(new Toolbar({
3656
+ content: oSelectAllCheckbox
3657
+ }).addStyleClass("sapMMultiComboBoxSelectAll"))
3658
+ .setSticky(["HeaderToolbar"]);
3659
+
3660
+ this.attachSelectionChange(this.manageSelectAllCheckBoxState.bind(this));
3661
+ };
3662
+
3663
+ /**
3664
+ * Updates the state and text of the select all checkbox.
3665
+ *
3666
+ * @private
3667
+ */
3668
+ MultiComboBox.prototype.manageSelectAllCheckBoxState = function () {
3669
+ var oSelectAllCheckbox = this.getSelectAllCheckbox();
3670
+
3671
+ if (!oSelectAllCheckbox) {
3672
+ return;
3673
+ }
3674
+
3675
+ var aItems = this.getItems(),
3676
+ aSelectedItems = this.getSelectedItems(),
3677
+ bSelectAll = ListHelpers.getSelectableItems(aItems).filter(function (oSelectableItem) {
3678
+ return aSelectedItems.indexOf(oSelectableItem) > -1;
3679
+ }).length === ListHelpers.getSelectableItems(aItems).length;
3680
+
3681
+ oSelectAllCheckbox
3682
+ .setText(this._oRbM.getText("MULTICOMBOBOX_SELECT_ALL_CHECKBOX", [aSelectedItems.length, ListHelpers.getAllSelectableItems(aItems).length]))
3683
+ .setSelected(bSelectAll);
3684
+ };
3685
+
3686
+ /**
3687
+ * Gets the list header toolbar containing the select all checkbox.
3688
+ *
3689
+ * @returns {sap.m.Toolbar|undefined} The header toolbar, if defined
3690
+ * @private
3691
+ */
3692
+ MultiComboBox.prototype.getSelectAllToolbar = function () {
3693
+ var oList = this._getList();
3694
+
3695
+ return oList && oList.getHeaderToolbar();
3696
+ };
3697
+
3698
+ /**
3699
+ * Gets the select all checkbox.
3700
+ *
3701
+ * @returns {sap.m.Checkbox|undefined} The select all checkbox, if defined
3702
+ * @private
3703
+ */
3704
+ MultiComboBox.prototype.getSelectAllCheckbox = function () {
3705
+ var oSelectAllToolbar = this.getSelectAllToolbar();
3706
+
3707
+ return oSelectAllToolbar && oSelectAllToolbar.getContent()[0];
3708
+ };
3709
+
3710
+ /**
3711
+ * Event Delegate for the select all checkbox.
3712
+ *
3713
+ * @returns {object} The delegate object, containing all event delegates
3714
+ * @private
3715
+ */
3716
+ MultiComboBox.prototype._selectAllDelegate = function () {
3717
+ return {
3718
+ onsapdown: this.handleDownEvent,
3719
+ onsapup: function (oEvent) {
3720
+ oEvent.preventDefault();
3721
+ if (this.getValueState() !== ValueState.None) {
3722
+ this._handleFormattedTextNav();
3723
+ return;
3724
+ }
3725
+
3726
+ this.getFocusDomRef().focus();
3727
+ },
3728
+ onsaphome: this.handleHomeEvent,
3729
+ onsapend: this.handleEndEvent,
3730
+ onfocusin: function () {
3731
+ var oRenderer = this.getRenderer(),
3732
+ oSelectAllToolbar = this.getSelectAllToolbar();
3733
+
3734
+ oSelectAllToolbar && oSelectAllToolbar.addStyleClass(oRenderer.CSS_CLASS_MULTICOMBOBOX + "SelectAllFocused");
3735
+ },
3736
+ onfocusout: function () {
3737
+ var oRenderer = this.getRenderer(),
3738
+ oSelectAllToolbar = this.getSelectAllToolbar();
3739
+
3740
+ oSelectAllToolbar && oSelectAllToolbar.removeStyleClass(oRenderer.CSS_CLASS_MULTICOMBOBOX + "SelectAllFocused");
3741
+ },
3742
+ onsapshow: this.close,
3743
+ onsaphide: this.close
3744
+ };
3745
+ };
3746
+
3747
+ /**
3748
+ * Focuses the select all checkbox.
3749
+ * @private
3750
+ */
3751
+ MultiComboBox.prototype.focusSelectAll = function () {
3752
+ var oSelectAllCheckbox = this.getSelectAllCheckbox();
3753
+
3754
+ oSelectAllCheckbox && oSelectAllCheckbox.focus();
3755
+ };
3756
+
3757
+ /**
3758
+ * Toggles the visibility of the list header toolbar, containing the select all checkbox.
3759
+ *
3760
+ * @param {boolean} bShow If true, the select all should be visible
3761
+ * @private
3762
+ */
3763
+ MultiComboBox.prototype.toggleSelectAllVisibility = function (bShow) {
3764
+ var oSelectAllToolbar = this.getSelectAllToolbar();
3765
+
3766
+ if (oSelectAllToolbar) {
3767
+ oSelectAllToolbar.setVisible(bShow);
3768
+ return;
3769
+ }
3770
+
3771
+ bShow && this.createSelectAllHeaderToolbar();
3772
+ };
3773
+
3559
3774
  return MultiComboBox;
3560
3775
 
3561
3776
  });
@@ -17,7 +17,7 @@ sap.ui.define(["sap/ui/core/XMLComposite", "./library", "sap/ui/core/Item"], fun
17
17
  * @implements sap.ui.core.IFormContent
18
18
  *
19
19
  * @author SAP SE
20
- * @version 1.93.3
20
+ * @version 1.96.1
21
21
  * @experimental since 1.52
22
22
  * @since 1.52.0
23
23
  * @alias sap.m.MultiEditField