@openui5/sap.m 1.93.3 → 1.96.2

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 (485) 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 +5 -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 +33 -11
  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 +265 -53
  68. package/src/sap/m/GenericTileRenderer.js +228 -84
  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 +125 -28
  83. package/src/sap/m/InputBase.js +104 -17
  84. package/src/sap/m/InputBaseRenderer.js +8 -20
  85. package/src/sap/m/InputListItem.js +1 -1
  86. package/src/sap/m/Label.js +1 -1
  87. package/src/sap/m/LightBox.js +2 -2
  88. package/src/sap/m/LightBoxItem.js +1 -1
  89. package/src/sap/m/Link.js +1 -1
  90. package/src/sap/m/List.js +1 -1
  91. package/src/sap/m/ListBase.js +12 -5
  92. package/src/sap/m/ListItemBase.js +16 -16
  93. package/src/sap/m/MaskEnabler.js +106 -4
  94. package/src/sap/m/MaskInput.js +19 -4
  95. package/src/sap/m/MaskInputRule.js +1 -1
  96. package/src/sap/m/Menu.js +8 -6
  97. package/src/sap/m/MenuButton.js +20 -3
  98. package/src/sap/m/MenuButtonRenderer.js +1 -0
  99. package/src/sap/m/MenuItem.js +1 -1
  100. package/src/sap/m/MenuListItem.js +1 -1
  101. package/src/sap/m/MessageBox.js +1 -1
  102. package/src/sap/m/MessageItem.js +1 -1
  103. package/src/sap/m/MessageListItem.js +1 -1
  104. package/src/sap/m/MessagePage.js +1 -1
  105. package/src/sap/m/MessagePopover.js +1 -1
  106. package/src/sap/m/MessagePopoverItem.js +1 -1
  107. package/src/sap/m/MessageStrip.js +7 -3
  108. package/src/sap/m/MessageStripRenderer.js +2 -2
  109. package/src/sap/m/MessageToast.js +1 -1
  110. package/src/sap/m/MessageView.js +5 -5
  111. package/src/sap/m/MultiComboBox.js +343 -114
  112. package/src/sap/m/MultiEditField.js +1 -1
  113. package/src/sap/m/MultiInput.js +82 -7
  114. package/src/sap/m/NavContainer.js +24 -7
  115. package/src/sap/m/NewsContent.js +19 -10
  116. package/src/sap/m/NewsContentRenderer.js +1 -2
  117. package/src/sap/m/NotificationList.js +1 -1
  118. package/src/sap/m/NotificationListBase.js +1 -1
  119. package/src/sap/m/NotificationListGroup.js +1 -1
  120. package/src/sap/m/NotificationListItem.js +1 -1
  121. package/src/sap/m/NumericContent.js +1 -1
  122. package/src/sap/m/NumericContentRenderer.js +34 -17
  123. package/src/sap/m/ObjectAttribute.js +46 -5
  124. package/src/sap/m/ObjectHeader.js +3 -3
  125. package/src/sap/m/ObjectHeaderRenderer.js +6 -7
  126. package/src/sap/m/ObjectIdentifier.js +1 -1
  127. package/src/sap/m/ObjectListItem.js +1 -1
  128. package/src/sap/m/ObjectMarker.js +1 -1
  129. package/src/sap/m/ObjectNumber.js +13 -1
  130. package/src/sap/m/ObjectStatus.js +1 -1
  131. package/src/sap/m/ObjectStatusRenderer.js +4 -1
  132. package/src/sap/m/OverflowToolbar.js +1 -1
  133. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  134. package/src/sap/m/OverflowToolbarButton.js +4 -2
  135. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  136. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  137. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  138. package/src/sap/m/P13nColumnsItem.js +1 -1
  139. package/src/sap/m/P13nColumnsPanel.js +3 -3
  140. package/src/sap/m/P13nConditionPanel.js +23 -53
  141. package/src/sap/m/P13nDialog.js +1 -1
  142. package/src/sap/m/P13nDimMeasureItem.js +1 -1
  143. package/src/sap/m/P13nDimMeasurePanel.js +3 -3
  144. package/src/sap/m/P13nFilterItem.js +1 -1
  145. package/src/sap/m/P13nFilterPanel.js +1 -3
  146. package/src/sap/m/P13nGroupItem.js +1 -1
  147. package/src/sap/m/P13nGroupPanel.js +1 -3
  148. package/src/sap/m/P13nItem.js +1 -1
  149. package/src/sap/m/P13nPanel.js +1 -1
  150. package/src/sap/m/P13nSelectionItem.js +1 -1
  151. package/src/sap/m/P13nSelectionPanel.js +1 -1
  152. package/src/sap/m/P13nSortItem.js +1 -1
  153. package/src/sap/m/P13nSortPanel.js +1 -3
  154. package/src/sap/m/PDFViewer.js +14 -5
  155. package/src/sap/m/Page.js +1 -1
  156. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  157. package/src/sap/m/PagingButton.js +1 -1
  158. package/src/sap/m/Panel.js +1 -1
  159. package/src/sap/m/PlanningCalendar.js +139 -41
  160. package/src/sap/m/PlanningCalendarHeader.js +5 -8
  161. package/src/sap/m/PlanningCalendarLegend.js +1 -6
  162. package/src/sap/m/PlanningCalendarLegendRenderer.js +2 -5
  163. package/src/sap/m/PlanningCalendarRow.js +1 -1
  164. package/src/sap/m/PlanningCalendarView.js +1 -6
  165. package/src/sap/m/Popover.js +7 -7
  166. package/src/sap/m/PopoverRenderer.js +3 -2
  167. package/src/sap/m/ProgressIndicator.js +1 -1
  168. package/src/sap/m/PullToRefresh.js +1 -1
  169. package/src/sap/m/QuickView.js +1 -1
  170. package/src/sap/m/QuickViewBase.js +1 -1
  171. package/src/sap/m/QuickViewCard.js +1 -1
  172. package/src/sap/m/QuickViewGroup.js +1 -1
  173. package/src/sap/m/QuickViewGroupElement.js +1 -1
  174. package/src/sap/m/QuickViewPage.js +1 -1
  175. package/src/sap/m/RadioButton.js +1 -1
  176. package/src/sap/m/RadioButtonGroup.js +1 -1
  177. package/src/sap/m/RangeSlider.js +1 -1
  178. package/src/sap/m/RatingIndicator.js +10 -8
  179. package/src/sap/m/ResponsivePopover.js +1 -1
  180. package/src/sap/m/ResponsiveScale.js +1 -1
  181. package/src/sap/m/ScrollBar.js +1 -1
  182. package/src/sap/m/ScrollContainer.js +1 -1
  183. package/src/sap/m/SearchField.js +6 -34
  184. package/src/sap/m/SearchFieldRenderer.js +16 -12
  185. package/src/sap/m/SegmentedButton.js +12 -17
  186. package/src/sap/m/SegmentedButtonItem.js +1 -1
  187. package/src/sap/m/Select.js +18 -8
  188. package/src/sap/m/SelectDialog.js +1 -1
  189. package/src/sap/m/SelectDialogBase.js +1 -1
  190. package/src/sap/m/SelectList.js +1 -1
  191. package/src/sap/m/SelectRenderer.js +6 -1
  192. package/src/sap/m/SelectionDetails.js +7 -9
  193. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  194. package/src/sap/m/SelectionDetailsItem.js +8 -4
  195. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  196. package/src/sap/m/Shell.js +9 -17
  197. package/src/sap/m/SimpleFixFlex.js +1 -1
  198. package/src/sap/m/SinglePlanningCalendar.js +7 -10
  199. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  200. package/src/sap/m/SinglePlanningCalendarGrid.js +15 -13
  201. package/src/sap/m/SinglePlanningCalendarGridRenderer.js +17 -7
  202. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -6
  203. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +4 -6
  204. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -6
  205. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  206. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -6
  207. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -6
  208. package/src/sap/m/SlideTile.js +31 -3
  209. package/src/sap/m/SlideTileRenderer.js +9 -0
  210. package/src/sap/m/Slider.js +1 -1
  211. package/src/sap/m/SliderTooltip.js +1 -1
  212. package/src/sap/m/SliderTooltipBase.js +1 -1
  213. package/src/sap/m/SliderTooltipContainer.js +1 -1
  214. package/src/sap/m/SplitApp.js +1 -1
  215. package/src/sap/m/SplitButton.js +3 -7
  216. package/src/sap/m/SplitContainer.js +13 -8
  217. package/src/sap/m/StandardDynamicDateOption.js +50 -12
  218. package/src/sap/m/StandardListItem.js +69 -26
  219. package/src/sap/m/StandardListItemRenderer.js +21 -9
  220. package/src/sap/m/StandardTile.js +1 -1
  221. package/src/sap/m/StandardTreeItem.js +1 -1
  222. package/src/sap/m/StepInput.js +30 -14
  223. package/src/sap/m/Suggest.js +25 -25
  224. package/src/sap/m/SuggestionItem.js +1 -7
  225. package/src/sap/m/SuggestionsPopover.js +1 -1
  226. package/src/sap/m/Switch.js +2 -2
  227. package/src/sap/m/TabContainer.js +1 -1
  228. package/src/sap/m/TabContainerItem.js +1 -1
  229. package/src/sap/m/TabStrip.js +1 -1
  230. package/src/sap/m/TabStripItem.js +1 -1
  231. package/src/sap/m/Table.js +2 -4
  232. package/src/sap/m/TablePersoController.js +1 -1
  233. package/src/sap/m/TablePersoDialog.js +1 -1
  234. package/src/sap/m/TablePersoProvider.js +1 -1
  235. package/src/sap/m/TableRenderer.js +3 -3
  236. package/src/sap/m/TableSelectDialog.js +1 -1
  237. package/src/sap/m/Text.js +1 -1
  238. package/src/sap/m/TextArea.js +2 -2
  239. package/src/sap/m/Tile.js +1 -1
  240. package/src/sap/m/TileContainer.js +1 -1
  241. package/src/sap/m/TileContent.js +22 -4
  242. package/src/sap/m/TileContentRenderer.js +73 -5
  243. package/src/sap/m/TimePicker.js +4 -3
  244. package/src/sap/m/TimePickerClock.js +2 -2
  245. package/src/sap/m/TimePickerClocks.js +2 -1
  246. package/src/sap/m/TimePickerInputs.js +3 -3
  247. package/src/sap/m/TimePickerInternals.js +1 -1
  248. package/src/sap/m/TimePickerSlider.js +2 -2
  249. package/src/sap/m/TimePickerSliders.js +1 -1
  250. package/src/sap/m/Title.js +1 -1
  251. package/src/sap/m/TitlePropagationSupport.js +1 -1
  252. package/src/sap/m/ToggleButton.js +1 -1
  253. package/src/sap/m/Token.js +1 -1
  254. package/src/sap/m/Tokenizer.js +45 -3
  255. package/src/sap/m/TokenizerRenderer.js +5 -0
  256. package/src/sap/m/Toolbar.js +1 -1
  257. package/src/sap/m/ToolbarLayoutData.js +1 -1
  258. package/src/sap/m/ToolbarSeparator.js +1 -1
  259. package/src/sap/m/ToolbarSpacer.js +1 -1
  260. package/src/sap/m/Tree.js +1 -1
  261. package/src/sap/m/TreeItemBase.js +1 -1
  262. package/src/sap/m/UploadCollection.js +2 -7
  263. package/src/sap/m/UploadCollectionItem.js +1 -1
  264. package/src/sap/m/UploadCollectionParameter.js +1 -1
  265. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  266. package/src/sap/m/VBox.js +1 -1
  267. package/src/sap/m/ValueStateHeader.js +1 -1
  268. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  269. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  270. package/src/sap/m/ViewSettingsDialog.js +1 -1
  271. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  272. package/src/sap/m/ViewSettingsItem.js +1 -1
  273. package/src/sap/m/VisibleItem.js +1 -1
  274. package/src/sap/m/WheelSlider.js +2 -2
  275. package/src/sap/m/WheelSliderContainer.js +1 -1
  276. package/src/sap/m/Wizard.js +18 -8
  277. package/src/sap/m/WizardProgressNavigator.js +1 -1
  278. package/src/sap/m/WizardProgressNavigatorRenderer.js +3 -2
  279. package/src/sap/m/WizardStep.js +1 -1
  280. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  281. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  282. package/src/sap/m/changeHandler/CombineButtons.js +16 -17
  283. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  284. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +86 -0
  285. package/src/sap/m/changeHandler/SplitMenuButton.js +12 -6
  286. package/src/sap/m/delegate/DateNavigation.js +4 -5
  287. package/src/sap/m/delegate/ValueStateMessage.js +4 -7
  288. package/src/sap/m/designtime/IconTabBar.designtime.js +85 -2
  289. package/src/sap/m/designtime/IconTabBarSelectTab.fragment.xml +17 -0
  290. package/src/sap/m/designtime/MenuButton.designtime.js +3 -0
  291. package/src/sap/m/designtime/ObjectIdentifier.designtime.js +16 -12
  292. package/src/sap/m/designtime/messagebundle.properties +9 -0
  293. package/src/sap/m/designtime/messagebundle_ar.properties +6 -0
  294. package/src/sap/m/designtime/messagebundle_bg.properties +6 -0
  295. package/src/sap/m/designtime/messagebundle_ca.properties +6 -0
  296. package/src/sap/m/designtime/messagebundle_cs.properties +6 -0
  297. package/src/sap/m/designtime/messagebundle_cy.properties +6 -0
  298. package/src/sap/m/designtime/messagebundle_da.properties +6 -0
  299. package/src/sap/m/designtime/messagebundle_de.properties +8 -2
  300. package/src/sap/m/designtime/messagebundle_el.properties +6 -0
  301. package/src/sap/m/designtime/messagebundle_en.properties +6 -0
  302. package/src/sap/m/designtime/messagebundle_en_GB.properties +6 -0
  303. package/src/sap/m/designtime/messagebundle_en_US_sappsd.properties +6 -0
  304. package/src/sap/m/designtime/messagebundle_en_US_saprigi.properties +6 -0
  305. package/src/sap/m/designtime/messagebundle_en_US_saptrc.properties +6 -0
  306. package/src/sap/m/designtime/messagebundle_es.properties +6 -0
  307. package/src/sap/m/designtime/messagebundle_es_MX.properties +6 -0
  308. package/src/sap/m/designtime/messagebundle_et.properties +6 -0
  309. package/src/sap/m/designtime/messagebundle_fi.properties +6 -0
  310. package/src/sap/m/designtime/messagebundle_fr.properties +6 -0
  311. package/src/sap/m/designtime/messagebundle_fr_CA.properties +6 -0
  312. package/src/sap/m/designtime/messagebundle_hi.properties +6 -0
  313. package/src/sap/m/designtime/messagebundle_hr.properties +6 -0
  314. package/src/sap/m/designtime/messagebundle_hu.properties +6 -0
  315. package/src/sap/m/designtime/messagebundle_id.properties +6 -0
  316. package/src/sap/m/designtime/messagebundle_it.properties +6 -0
  317. package/src/sap/m/designtime/messagebundle_iw.properties +6 -0
  318. package/src/sap/m/designtime/messagebundle_ja.properties +6 -0
  319. package/src/sap/m/designtime/messagebundle_kk.properties +6 -0
  320. package/src/sap/m/designtime/messagebundle_ko.properties +6 -0
  321. package/src/sap/m/designtime/messagebundle_lt.properties +6 -0
  322. package/src/sap/m/designtime/messagebundle_lv.properties +6 -0
  323. package/src/sap/m/designtime/messagebundle_ms.properties +6 -0
  324. package/src/sap/m/designtime/messagebundle_nl.properties +6 -0
  325. package/src/sap/m/designtime/messagebundle_no.properties +6 -0
  326. package/src/sap/m/designtime/messagebundle_pl.properties +6 -0
  327. package/src/sap/m/designtime/messagebundle_pt.properties +6 -0
  328. package/src/sap/m/designtime/messagebundle_pt_PT.properties +6 -0
  329. package/src/sap/m/designtime/messagebundle_ro.properties +6 -0
  330. package/src/sap/m/designtime/messagebundle_ru.properties +6 -0
  331. package/src/sap/m/designtime/messagebundle_sh.properties +6 -0
  332. package/src/sap/m/designtime/messagebundle_sk.properties +6 -0
  333. package/src/sap/m/designtime/messagebundle_sl.properties +6 -0
  334. package/src/sap/m/designtime/messagebundle_sv.properties +6 -0
  335. package/src/sap/m/designtime/messagebundle_th.properties +6 -0
  336. package/src/sap/m/designtime/messagebundle_tr.properties +6 -0
  337. package/src/sap/m/designtime/messagebundle_uk.properties +6 -0
  338. package/src/sap/m/designtime/messagebundle_vi.properties +6 -0
  339. package/src/sap/m/designtime/messagebundle_zh_CN.properties +6 -0
  340. package/src/sap/m/designtime/messagebundle_zh_TW.properties +6 -0
  341. package/src/sap/m/flexibility/IconTabBar.flexibility.js +21 -0
  342. package/src/sap/m/flexibility/MenuButton.flexibility.js +1 -0
  343. package/src/sap/m/inputUtils/ListHelpers.js +16 -3
  344. package/src/sap/m/library.js +60 -34
  345. package/src/sap/m/messagebundle.properties +62 -7
  346. package/src/sap/m/messagebundle_ar.properties +35 -6
  347. package/src/sap/m/messagebundle_bg.properties +35 -6
  348. package/src/sap/m/messagebundle_ca.properties +40 -11
  349. package/src/sap/m/messagebundle_cs.properties +46 -17
  350. package/src/sap/m/messagebundle_cy.properties +35 -6
  351. package/src/sap/m/messagebundle_da.properties +36 -7
  352. package/src/sap/m/messagebundle_de.properties +36 -7
  353. package/src/sap/m/messagebundle_el.properties +35 -6
  354. package/src/sap/m/messagebundle_en.properties +32 -3
  355. package/src/sap/m/messagebundle_en_GB.properties +32 -3
  356. package/src/sap/m/messagebundle_en_US_sappsd.properties +26 -3
  357. package/src/sap/m/messagebundle_en_US_saprigi.properties +39 -3
  358. package/src/sap/m/messagebundle_en_US_saptrc.properties +14 -6
  359. package/src/sap/m/messagebundle_es.properties +35 -6
  360. package/src/sap/m/messagebundle_es_MX.properties +38 -9
  361. package/src/sap/m/messagebundle_et.properties +35 -6
  362. package/src/sap/m/messagebundle_fi.properties +35 -6
  363. package/src/sap/m/messagebundle_fr.properties +48 -19
  364. package/src/sap/m/messagebundle_fr_CA.properties +36 -7
  365. package/src/sap/m/messagebundle_hi.properties +35 -6
  366. package/src/sap/m/messagebundle_hr.properties +35 -6
  367. package/src/sap/m/messagebundle_hu.properties +35 -6
  368. package/src/sap/m/messagebundle_id.properties +37 -8
  369. package/src/sap/m/messagebundle_it.properties +41 -12
  370. package/src/sap/m/messagebundle_iw.properties +35 -6
  371. package/src/sap/m/messagebundle_ja.properties +35 -6
  372. package/src/sap/m/messagebundle_kk.properties +35 -6
  373. package/src/sap/m/messagebundle_ko.properties +36 -7
  374. package/src/sap/m/messagebundle_lt.properties +35 -6
  375. package/src/sap/m/messagebundle_lv.properties +35 -6
  376. package/src/sap/m/messagebundle_ms.properties +36 -7
  377. package/src/sap/m/messagebundle_nl.properties +37 -8
  378. package/src/sap/m/messagebundle_no.properties +47 -18
  379. package/src/sap/m/messagebundle_pl.properties +39 -10
  380. package/src/sap/m/messagebundle_pt.properties +38 -9
  381. package/src/sap/m/messagebundle_pt_PT.properties +35 -6
  382. package/src/sap/m/messagebundle_ro.properties +40 -11
  383. package/src/sap/m/messagebundle_ru.properties +36 -7
  384. package/src/sap/m/messagebundle_sh.properties +36 -7
  385. package/src/sap/m/messagebundle_sk.properties +35 -6
  386. package/src/sap/m/messagebundle_sl.properties +35 -6
  387. package/src/sap/m/messagebundle_sv.properties +35 -6
  388. package/src/sap/m/messagebundle_th.properties +35 -6
  389. package/src/sap/m/messagebundle_tr.properties +35 -6
  390. package/src/sap/m/messagebundle_uk.properties +42 -13
  391. package/src/sap/m/messagebundle_vi.properties +36 -7
  392. package/src/sap/m/messagebundle_zh_CN.properties +35 -6
  393. package/src/sap/m/messagebundle_zh_TW.properties +35 -6
  394. package/src/sap/m/p13n/AbstractContainer.js +243 -0
  395. package/src/sap/m/p13n/AbstractContainerItem.js +94 -0
  396. package/src/sap/m/p13n/BasePanel.js +643 -0
  397. package/src/sap/m/p13n/Container.js +239 -0
  398. package/src/sap/m/p13n/GroupPanel.js +119 -0
  399. package/src/sap/m/p13n/QueryPanel.js +312 -0
  400. package/src/sap/m/p13n/SelectionPanel.js +403 -0
  401. package/src/sap/m/p13n/SortPanel.js +139 -0
  402. package/src/sap/m/plugins/ColumnResizer.js +23 -2
  403. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  404. package/src/sap/m/plugins/PasteProvider.js +9 -1
  405. package/src/sap/m/plugins/PluginBase.js +1 -1
  406. package/src/sap/m/routing/TargetHandler.js +24 -22
  407. package/src/sap/m/routing/async/Target.js +3 -2
  408. package/src/sap/m/semantic/AddAction.js +1 -1
  409. package/src/sap/m/semantic/CancelAction.js +1 -1
  410. package/src/sap/m/semantic/DeleteAction.js +1 -1
  411. package/src/sap/m/semantic/DetailPage.js +1 -1
  412. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  413. package/src/sap/m/semantic/EditAction.js +1 -1
  414. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  415. package/src/sap/m/semantic/FilterAction.js +1 -1
  416. package/src/sap/m/semantic/FilterSelect.js +1 -1
  417. package/src/sap/m/semantic/FlagAction.js +1 -1
  418. package/src/sap/m/semantic/ForwardAction.js +1 -1
  419. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  420. package/src/sap/m/semantic/GroupAction.js +1 -1
  421. package/src/sap/m/semantic/GroupSelect.js +1 -1
  422. package/src/sap/m/semantic/MainAction.js +1 -1
  423. package/src/sap/m/semantic/MasterPage.js +1 -1
  424. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  425. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  426. package/src/sap/m/semantic/NegativeAction.js +1 -1
  427. package/src/sap/m/semantic/OpenInAction.js +1 -1
  428. package/src/sap/m/semantic/PositiveAction.js +1 -1
  429. package/src/sap/m/semantic/PrintAction.js +1 -1
  430. package/src/sap/m/semantic/SaveAction.js +1 -1
  431. package/src/sap/m/semantic/Segment.js +1 -1
  432. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  433. package/src/sap/m/semantic/SemanticButton.js +1 -1
  434. package/src/sap/m/semantic/SemanticConfiguration.js +3 -5
  435. package/src/sap/m/semantic/SemanticControl.js +1 -1
  436. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  437. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +2 -2
  438. package/src/sap/m/semantic/SemanticPage.js +1 -1
  439. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  440. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  441. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  442. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  443. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  444. package/src/sap/m/semantic/ShareMenu.js +1 -1
  445. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  446. package/src/sap/m/semantic/SortAction.js +1 -1
  447. package/src/sap/m/semantic/SortSelect.js +1 -1
  448. package/src/sap/m/table/Util.js +192 -0
  449. package/src/sap/m/themes/base/AbstractContainer.less +17 -0
  450. package/src/sap/m/themes/base/ColumnListItem.less +2 -2
  451. package/src/sap/m/themes/base/Dialog.less +11 -28
  452. package/src/sap/m/themes/base/GenericTile.less +453 -18
  453. package/src/sap/m/themes/base/IconTabBar.less +5 -6
  454. package/src/sap/m/themes/base/Input.less +12 -0
  455. package/src/sap/m/themes/base/ListBase.less +7 -5
  456. package/src/sap/m/themes/base/MessagePage.less +1 -7
  457. package/src/sap/m/themes/base/MessageView.less +4 -0
  458. package/src/sap/m/themes/base/MultiComboBox.less +17 -0
  459. package/src/sap/m/themes/base/NewsContent.less +48 -1
  460. package/src/sap/m/themes/base/NumericContent.less +87 -0
  461. package/src/sap/m/themes/base/ObjectMarker.less +3 -0
  462. package/src/sap/m/themes/base/ObjectNumber.less +10 -2
  463. package/src/sap/m/themes/base/ObjectStatus.less +14 -0
  464. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +0 -6
  465. package/src/sap/m/themes/base/P13nContainer.less +17 -0
  466. package/src/sap/m/themes/base/P13nDialog.less +4 -0
  467. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +1 -2
  468. package/src/sap/m/themes/base/SlideTile.less +15 -0
  469. package/src/sap/m/themes/base/StandardListItem.less +5 -0
  470. package/src/sap/m/themes/base/Table.less +9 -19
  471. package/src/sap/m/themes/base/TextArea.less +1 -1
  472. package/src/sap/m/themes/base/TileContent.less +20 -0
  473. package/src/sap/m/themes/base/Token.less +0 -3
  474. package/src/sap/m/themes/base/Tokenizer.less +6 -0
  475. package/src/sap/m/themes/base/UploadSet.less +5 -0
  476. package/src/sap/m/themes/base/ViewSettingsDialog.less +28 -1
  477. package/src/sap/m/themes/base/library.source.less +4 -0
  478. package/src/sap/m/themes/base/p13n.Container.less +17 -0
  479. package/src/sap/m/themes/base/p13n.QueryPanel.less +7 -0
  480. package/src/sap/m/themes/base/p13n.SelectionPanel.less +32 -0
  481. package/src/sap/m/themes/sap_hcb/IconTabBar.less +3 -3
  482. package/src/sap/m/upload/UploadSet.js +48 -23
  483. package/src/sap/m/upload/UploadSetItem.js +9 -4
  484. package/ui5.yaml +4 -1
  485. 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.2
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();
1958
+ onsaphome: this.handleHomeEvent.bind(this),
1919
1959
 
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];
1924
-
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
  }
@@ -3409,10 +3446,24 @@ function(
3409
3446
 
3410
3447
  var oInfo = ComboBoxBase.prototype.getAccessibilityInfo.apply(this, arguments);
3411
3448
  oInfo.type = core.getLibraryResourceBundle("sap.m").getText("ACC_CTR_TYPE_MULTICOMBO");
3412
- oInfo.description = ((oInfo.description || "") + " " + sText).trim();
3449
+ oInfo.description = (this.getValueDescriptionInfo() + " " + sText).trim();
3413
3450
  return oInfo;
3414
3451
  };
3415
3452
 
3453
+ /**
3454
+ * Gets the value of the accessibility description info field.
3455
+ *
3456
+ * @protected
3457
+ * @override
3458
+ * @returns {string} The value of the accessibility description info
3459
+ */
3460
+ MultiComboBox.prototype.getValueDescriptionInfo = function () {
3461
+ if (this.getValue()) {
3462
+ return this.getValue();
3463
+ }
3464
+ return this._hasTokens() ? "" : sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("INPUTBASE_VALUE_EMPTY");
3465
+ };
3466
+
3416
3467
  /**
3417
3468
  * Indicates if selection is triggered by a click
3418
3469
  *
@@ -3529,6 +3580,7 @@ function(
3529
3580
  MultiComboBox.prototype.applyShowItemsFilters = function () {
3530
3581
  this.syncPickerContent();
3531
3582
  itemsVisibilityHandler(this.getItems(), this.filterItems({value: this.getValue() || "_", items: this.getItems()}));
3583
+ this.manageSelectAllCheckBoxState();
3532
3584
  };
3533
3585
 
3534
3586
  /**
@@ -3556,6 +3608,183 @@ function(
3556
3608
  }
3557
3609
  };
3558
3610
 
3611
+ /**
3612
+ * Creates a list header toolbar containing the select all checkbox.
3613
+ *
3614
+ * @param {sap.m.List} oList The list instance to be configured
3615
+ * @private
3616
+ */
3617
+ MultiComboBox.prototype.createSelectAllHeaderToolbar = function (oList) {
3618
+ oList = oList || this._getList();
3619
+
3620
+ if (!oList || oList.getHeaderToolbar()) {
3621
+ return;
3622
+ }
3623
+
3624
+ var oSelectAllCheckbox = new CheckBox({
3625
+ select: function (oEvent) {
3626
+ var oCheckBox = oEvent.getSource(),
3627
+ aVisibleSelectableItems = ListHelpers.getSelectableItems(this.getItems()),
3628
+ aSelectedVisibleItems = this._getSelectedItemsOf(aVisibleSelectableItems);
3629
+
3630
+ if (oEvent.getParameter("selected")) {
3631
+ var aNotSelectedVisibleItems = aVisibleSelectableItems.filter(function (aCurSelectedItem) {
3632
+ return aSelectedVisibleItems.indexOf(aCurSelectedItem) === -1;
3633
+ });
3634
+
3635
+ aNotSelectedVisibleItems.forEach(function(oItem) {
3636
+ this.setSelection({
3637
+ item: oItem,
3638
+ items: aNotSelectedVisibleItems,
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
+ } else {
3649
+ aSelectedVisibleItems.forEach(function(oItem) {
3650
+ this.removeSelection({
3651
+ item: oItem,
3652
+ items: aSelectedVisibleItems,
3653
+ selectAll: true,
3654
+ id: oItem.getId(),
3655
+ key: oItem.getKey(),
3656
+ fireChangeEvent: true,
3657
+ suppressInvalidate: true,
3658
+ listItemUpdated: false
3659
+ });
3660
+ }, this);
3661
+ }
3662
+
3663
+ oCheckBox.focus();
3664
+ }.bind(this)
3665
+ });
3666
+
3667
+ oSelectAllCheckbox.addEventDelegate(this._selectAllDelegate(), this);
3668
+
3669
+ oList.setHeaderToolbar(new Toolbar({
3670
+ content: oSelectAllCheckbox
3671
+ }).addStyleClass("sapMMultiComboBoxSelectAll"))
3672
+ .setSticky(["HeaderToolbar"]);
3673
+
3674
+ this.attachSelectionChange(this.manageSelectAllCheckBoxState.bind(this));
3675
+ };
3676
+
3677
+ /**
3678
+ * Updates the state and text of the select all checkbox.
3679
+ *
3680
+ * @private
3681
+ */
3682
+ MultiComboBox.prototype.manageSelectAllCheckBoxState = function () {
3683
+ var oSelectAllCheckbox = this.getSelectAllCheckbox();
3684
+
3685
+ if (!oSelectAllCheckbox) {
3686
+ return;
3687
+ }
3688
+
3689
+ var aItems = this.getItems(),
3690
+ aSelectedItems = this.getSelectedItems(),
3691
+ bSelectAll = ListHelpers.getSelectableItems(aItems).filter(function (oSelectableItem) {
3692
+ return aSelectedItems.indexOf(oSelectableItem) > -1;
3693
+ }).length === ListHelpers.getSelectableItems(aItems).length;
3694
+
3695
+ oSelectAllCheckbox
3696
+ .setText(this._oRbM.getText("MULTICOMBOBOX_SELECT_ALL_CHECKBOX", [aSelectedItems.length, ListHelpers.getAllSelectableItems(aItems).length]))
3697
+ .setSelected(bSelectAll);
3698
+ };
3699
+
3700
+ /**
3701
+ * Gets the list header toolbar containing the select all checkbox.
3702
+ *
3703
+ * @returns {sap.m.Toolbar|undefined} The header toolbar, if defined
3704
+ * @private
3705
+ */
3706
+ MultiComboBox.prototype.getSelectAllToolbar = function () {
3707
+ var oList = this._getList();
3708
+
3709
+ return oList && oList.getHeaderToolbar();
3710
+ };
3711
+
3712
+ /**
3713
+ * Gets the select all checkbox.
3714
+ *
3715
+ * @returns {sap.m.Checkbox|undefined} The select all checkbox, if defined
3716
+ * @private
3717
+ */
3718
+ MultiComboBox.prototype.getSelectAllCheckbox = function () {
3719
+ var oSelectAllToolbar = this.getSelectAllToolbar();
3720
+
3721
+ return oSelectAllToolbar && oSelectAllToolbar.getContent()[0];
3722
+ };
3723
+
3724
+ /**
3725
+ * Event Delegate for the select all checkbox.
3726
+ *
3727
+ * @returns {object} The delegate object, containing all event delegates
3728
+ * @private
3729
+ */
3730
+ MultiComboBox.prototype._selectAllDelegate = function () {
3731
+ return {
3732
+ onsapdown: this.handleDownEvent,
3733
+ onsapup: function (oEvent) {
3734
+ oEvent.preventDefault();
3735
+ if (this.getValueState() !== ValueState.None) {
3736
+ this._handleFormattedTextNav();
3737
+ return;
3738
+ }
3739
+
3740
+ this.getFocusDomRef().focus();
3741
+ },
3742
+ onsaphome: this.handleHomeEvent,
3743
+ onsapend: this.handleEndEvent,
3744
+ onfocusin: function () {
3745
+ var oRenderer = this.getRenderer(),
3746
+ oSelectAllToolbar = this.getSelectAllToolbar();
3747
+
3748
+ oSelectAllToolbar && oSelectAllToolbar.addStyleClass(oRenderer.CSS_CLASS_MULTICOMBOBOX + "SelectAllFocused");
3749
+ },
3750
+ onfocusout: function () {
3751
+ var oRenderer = this.getRenderer(),
3752
+ oSelectAllToolbar = this.getSelectAllToolbar();
3753
+
3754
+ oSelectAllToolbar && oSelectAllToolbar.removeStyleClass(oRenderer.CSS_CLASS_MULTICOMBOBOX + "SelectAllFocused");
3755
+ },
3756
+ onsapshow: this.close,
3757
+ onsaphide: this.close
3758
+ };
3759
+ };
3760
+
3761
+ /**
3762
+ * Focuses the select all checkbox.
3763
+ * @private
3764
+ */
3765
+ MultiComboBox.prototype.focusSelectAll = function () {
3766
+ var oSelectAllCheckbox = this.getSelectAllCheckbox();
3767
+
3768
+ oSelectAllCheckbox && oSelectAllCheckbox.focus();
3769
+ };
3770
+
3771
+ /**
3772
+ * Toggles the visibility of the list header toolbar, containing the select all checkbox.
3773
+ *
3774
+ * @param {boolean} bShow If true, the select all should be visible
3775
+ * @private
3776
+ */
3777
+ MultiComboBox.prototype.toggleSelectAllVisibility = function (bShow) {
3778
+ var oSelectAllToolbar = this.getSelectAllToolbar();
3779
+
3780
+ if (oSelectAllToolbar) {
3781
+ oSelectAllToolbar.setVisible(bShow);
3782
+ return;
3783
+ }
3784
+
3785
+ bShow && this.createSelectAllHeaderToolbar();
3786
+ };
3787
+
3559
3788
  return MultiComboBox;
3560
3789
 
3561
3790
  });
@@ -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.2
21
21
  * @experimental since 1.52
22
22
  * @since 1.52.0
23
23
  * @alias sap.m.MultiEditField