@openui5/sap.m 1.119.0 → 1.120.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (462) hide show
  1. package/THIRDPARTY.txt +6 -6
  2. package/package.json +4 -4
  3. package/src/sap/m/.library +8 -1
  4. package/src/sap/m/AccButton.js +1 -1
  5. package/src/sap/m/ActionListItem.js +1 -1
  6. package/src/sap/m/ActionSelect.js +1 -1
  7. package/src/sap/m/ActionSheet.js +1 -1
  8. package/src/sap/m/ActionTile.js +1 -1
  9. package/src/sap/m/ActionTileContent.js +1 -1
  10. package/src/sap/m/AdditionalTextButton.js +1 -1
  11. package/src/sap/m/App.js +1 -1
  12. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  13. package/src/sap/m/Avatar.js +10 -6
  14. package/src/sap/m/AvatarRenderer.js +10 -3
  15. package/src/sap/m/Bar.js +1 -1
  16. package/src/sap/m/Breadcrumbs.js +1 -1
  17. package/src/sap/m/BusyDialog.js +1 -1
  18. package/src/sap/m/BusyIndicator.js +1 -1
  19. package/src/sap/m/Button.js +1 -1
  20. package/src/sap/m/Carousel.js +1 -1
  21. package/src/sap/m/CarouselLayout.js +1 -1
  22. package/src/sap/m/CheckBox.js +1 -1
  23. package/src/sap/m/ColorPalette.js +1 -1
  24. package/src/sap/m/ColorPalettePopover.js +1 -1
  25. package/src/sap/m/Column.js +1 -1
  26. package/src/sap/m/ColumnHeaderPopover.js +7 -8
  27. package/src/sap/m/ColumnListItem.js +1 -1
  28. package/src/sap/m/ColumnPopoverActionItem.js +1 -1
  29. package/src/sap/m/ColumnPopoverCustomItem.js +1 -1
  30. package/src/sap/m/ColumnPopoverItem.js +1 -1
  31. package/src/sap/m/ColumnPopoverSelectListItem.js +1 -1
  32. package/src/sap/m/ColumnPopoverSortItem.js +1 -1
  33. package/src/sap/m/ComboBox.js +1 -1
  34. package/src/sap/m/ComboBoxBase.js +20 -3
  35. package/src/sap/m/ComboBoxTextField.js +1 -1
  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 +1 -1
  40. package/src/sap/m/DateRangeSelection.js +22 -12
  41. package/src/sap/m/DateTimeField.js +1 -1
  42. package/src/sap/m/DateTimeInput.js +1 -1
  43. package/src/sap/m/DateTimePicker.js +1 -1
  44. package/src/sap/m/Dialog.js +1 -1
  45. package/src/sap/m/DisplayListItem.js +1 -1
  46. package/src/sap/m/DraftIndicator.js +1 -1
  47. package/src/sap/m/DynamicDate.js +1 -1
  48. package/src/sap/m/DynamicDateOption.js +1 -1
  49. package/src/sap/m/DynamicDateRange.js +10 -2
  50. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  51. package/src/sap/m/ExpandableText.js +1 -1
  52. package/src/sap/m/FacetFilter.js +2 -1
  53. package/src/sap/m/FacetFilterItem.js +1 -1
  54. package/src/sap/m/FacetFilterList.js +1 -1
  55. package/src/sap/m/FeedContent.js +1 -1
  56. package/src/sap/m/FeedInput.js +5 -4
  57. package/src/sap/m/FeedInputRenderer.js +3 -3
  58. package/src/sap/m/FeedListItem.js +6 -4
  59. package/src/sap/m/FeedListItemAction.js +1 -1
  60. package/src/sap/m/Fiori20Adapter.js +2 -2
  61. package/src/sap/m/FlexBox.js +1 -1
  62. package/src/sap/m/FlexItemData.js +1 -1
  63. package/src/sap/m/FormattedText.js +1 -1
  64. package/src/sap/m/GenericTag.js +1 -1
  65. package/src/sap/m/GenericTile.js +58 -23
  66. package/src/sap/m/GenericTileRenderer.js +11 -0
  67. package/src/sap/m/GroupHeaderListItem.js +1 -1
  68. package/src/sap/m/GrowingEnablement.js +2 -3
  69. package/src/sap/m/GrowingList.js +1 -1
  70. package/src/sap/m/HBox.js +1 -1
  71. package/src/sap/m/HeaderContainer.js +6 -4
  72. package/src/sap/m/HeaderContainerItemNavigator.js +1 -1
  73. package/src/sap/m/IconTabBar.js +1 -1
  74. package/src/sap/m/IconTabBarSelectList.js +1 -1
  75. package/src/sap/m/IconTabFilter.js +1 -1
  76. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  77. package/src/sap/m/IconTabHeader.js +1 -1
  78. package/src/sap/m/IconTabSeparator.js +1 -1
  79. package/src/sap/m/IllustratedMessage.js +1 -1
  80. package/src/sap/m/Illustration.js +1 -1
  81. package/src/sap/m/Image.js +1 -1
  82. package/src/sap/m/ImageContent.js +1 -1
  83. package/src/sap/m/Input.js +79 -14
  84. package/src/sap/m/InputBase.js +3 -1
  85. package/src/sap/m/InputListItem.js +1 -1
  86. package/src/sap/m/InputRenderer.js +7 -3
  87. package/src/sap/m/Label.js +1 -1
  88. package/src/sap/m/LightBox.js +1 -1
  89. package/src/sap/m/LightBoxItem.js +1 -1
  90. package/src/sap/m/Link.js +1 -1
  91. package/src/sap/m/LinkTileContent.js +143 -0
  92. package/src/sap/m/List.js +1 -1
  93. package/src/sap/m/ListBase.js +32 -14
  94. package/src/sap/m/ListItemBase.js +1 -1
  95. package/src/sap/m/MaskEnabler.js +1 -1
  96. package/src/sap/m/MaskInput.js +1 -1
  97. package/src/sap/m/MaskInputRule.js +1 -1
  98. package/src/sap/m/Menu.js +1 -1
  99. package/src/sap/m/MenuButton.js +3 -3
  100. package/src/sap/m/MenuItem.js +1 -1
  101. package/src/sap/m/MenuListItem.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 +2 -3
  106. package/src/sap/m/MessagePopoverItem.js +1 -1
  107. package/src/sap/m/MessageStrip.js +1 -1
  108. package/src/sap/m/MessageToast.js +5 -19
  109. package/src/sap/m/MessageView.js +1 -1
  110. package/src/sap/m/MessageViewRenderer.js +2 -3
  111. package/src/sap/m/MultiComboBox.js +1 -1
  112. package/src/sap/m/MultiEditField.js +1 -1
  113. package/src/sap/m/MultiInput.js +4 -2
  114. package/src/sap/m/NavContainer.js +4 -3
  115. package/src/sap/m/NewsContent.js +1 -1
  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 +9 -10
  121. package/src/sap/m/NumericContentRenderer.js +5 -4
  122. package/src/sap/m/NumericInput.js +1 -1
  123. package/src/sap/m/ObjectAttribute.js +1 -1
  124. package/src/sap/m/ObjectHeader.js +1 -1
  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 +1 -1
  129. package/src/sap/m/ObjectStatus.js +4 -6
  130. package/src/sap/m/ObjectStatusRenderer.js +3 -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 +1 -1
  134. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  135. package/src/sap/m/OverflowToolbarMenuButton.js +1 -1
  136. package/src/sap/m/OverflowToolbarRenderer.js +8 -1
  137. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  138. package/src/sap/m/P13nAnyFilterItem.js +1 -1
  139. package/src/sap/m/P13nColumnsItem.js +2 -1
  140. package/src/sap/m/P13nColumnsPanel.js +1 -1
  141. package/src/sap/m/P13nConditionPanel.js +1 -1
  142. package/src/sap/m/P13nDialog.js +1 -1
  143. package/src/sap/m/P13nDimMeasureItem.js +2 -1
  144. package/src/sap/m/P13nDimMeasurePanel.js +2 -1
  145. package/src/sap/m/P13nFilterItem.js +1 -1
  146. package/src/sap/m/P13nFilterPanel.js +1 -1
  147. package/src/sap/m/P13nGroupItem.js +2 -1
  148. package/src/sap/m/P13nGroupPanel.js +1 -1
  149. package/src/sap/m/P13nItem.js +1 -1
  150. package/src/sap/m/P13nPanel.js +1 -1
  151. package/src/sap/m/P13nSelectionItem.js +1 -1
  152. package/src/sap/m/P13nSelectionPanel.js +1 -1
  153. package/src/sap/m/P13nSortItem.js +2 -1
  154. package/src/sap/m/P13nSortPanel.js +1 -1
  155. package/src/sap/m/PDFViewer.js +20 -8
  156. package/src/sap/m/PDFViewerRenderManager.js +18 -18
  157. package/src/sap/m/PDFViewerRenderer.js +1 -1
  158. package/src/sap/m/Page.js +1 -1
  159. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  160. package/src/sap/m/PagingButton.js +1 -1
  161. package/src/sap/m/Panel.js +1 -1
  162. package/src/sap/m/PlanningCalendar.js +37 -12
  163. package/src/sap/m/PlanningCalendarHeader.js +1 -1
  164. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  165. package/src/sap/m/PlanningCalendarRow.js +1 -1
  166. package/src/sap/m/PlanningCalendarView.js +1 -1
  167. package/src/sap/m/Popover.js +5 -4
  168. package/src/sap/m/ProgressIndicator.js +1 -1
  169. package/src/sap/m/PullToRefresh.js +1 -1
  170. package/src/sap/m/QuickView.js +1 -1
  171. package/src/sap/m/QuickViewBase.js +1 -1
  172. package/src/sap/m/QuickViewCard.js +1 -1
  173. package/src/sap/m/QuickViewGroup.js +1 -1
  174. package/src/sap/m/QuickViewGroupElement.js +1 -1
  175. package/src/sap/m/QuickViewPage.js +1 -1
  176. package/src/sap/m/RadioButton.js +3 -3
  177. package/src/sap/m/RadioButtonGroup.js +1 -1
  178. package/src/sap/m/RangeSlider.js +1 -1
  179. package/src/sap/m/RangeSliderRenderer.js +15 -8
  180. package/src/sap/m/RatingIndicator.js +4 -3
  181. package/src/sap/m/ResponsivePopover.js +13 -7
  182. package/src/sap/m/ResponsiveScale.js +1 -1
  183. package/src/sap/m/ScrollBar.js +1 -1
  184. package/src/sap/m/ScrollContainer.js +1 -1
  185. package/src/sap/m/SearchField.js +1 -1
  186. package/src/sap/m/SegmentedButton.js +1 -1
  187. package/src/sap/m/SegmentedButtonItem.js +1 -1
  188. package/src/sap/m/Select.js +1 -1
  189. package/src/sap/m/SelectDialog.js +5 -7
  190. package/src/sap/m/SelectDialogBase.js +1 -1
  191. package/src/sap/m/SelectList.js +1 -1
  192. package/src/sap/m/SelectionDetails.js +1 -1
  193. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  194. package/src/sap/m/SelectionDetailsItem.js +1 -1
  195. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  196. package/src/sap/m/Shell.js +1 -1
  197. package/src/sap/m/SimpleFixFlex.js +1 -1
  198. package/src/sap/m/SinglePlanningCalendar.js +1 -1
  199. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  200. package/src/sap/m/SinglePlanningCalendarGrid.js +2 -2
  201. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +3 -2
  202. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  203. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  204. package/src/sap/m/SinglePlanningCalendarWeekView.js +1 -1
  205. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  206. package/src/sap/m/SlideTile.js +7 -9
  207. package/src/sap/m/Slider.js +1 -1
  208. package/src/sap/m/SliderTooltip.js +1 -1
  209. package/src/sap/m/SliderTooltipBase.js +1 -1
  210. package/src/sap/m/SliderTooltipContainer.js +1 -1
  211. package/src/sap/m/SplitApp.js +1 -1
  212. package/src/sap/m/SplitButton.js +1 -1
  213. package/src/sap/m/SplitContainer.js +4 -2
  214. package/src/sap/m/StandardDynamicDateOption.js +1 -1
  215. package/src/sap/m/StandardListItem.js +1 -1
  216. package/src/sap/m/StandardTile.js +1 -1
  217. package/src/sap/m/StandardTreeItem.js +1 -1
  218. package/src/sap/m/StepInput.js +1 -1
  219. package/src/sap/m/SuggestionItem.js +1 -1
  220. package/src/sap/m/SuggestionsPopover.js +5 -5
  221. package/src/sap/m/Switch.js +1 -1
  222. package/src/sap/m/TabContainer.js +10 -4
  223. package/src/sap/m/TabContainerItem.js +1 -1
  224. package/src/sap/m/TabStrip.js +2 -2
  225. package/src/sap/m/TabStripItem.js +1 -1
  226. package/src/sap/m/Table.js +35 -4
  227. package/src/sap/m/TablePersoController.js +1 -1
  228. package/src/sap/m/TablePersoDialog.js +1 -1
  229. package/src/sap/m/TablePersoProvider.js +1 -1
  230. package/src/sap/m/TableSelectDialog.js +5 -7
  231. package/src/sap/m/Text.js +1 -1
  232. package/src/sap/m/TextArea.js +1 -1
  233. package/src/sap/m/Tile.js +1 -1
  234. package/src/sap/m/TileContainer.js +1 -1
  235. package/src/sap/m/TileContent.js +4 -4
  236. package/src/sap/m/TimePicker.js +1 -1
  237. package/src/sap/m/TimePickerClock.js +1 -1
  238. package/src/sap/m/TimePickerClocks.js +1 -1
  239. package/src/sap/m/TimePickerInputs.js +1 -1
  240. package/src/sap/m/TimePickerInternals.js +1 -1
  241. package/src/sap/m/TimePickerSlider.js +1 -1
  242. package/src/sap/m/TimePickerSliders.js +1 -1
  243. package/src/sap/m/Title.js +1 -1
  244. package/src/sap/m/TitlePropagationSupport.js +1 -1
  245. package/src/sap/m/ToggleButton.js +1 -1
  246. package/src/sap/m/Token.js +1 -1
  247. package/src/sap/m/Tokenizer.js +1 -1
  248. package/src/sap/m/Toolbar.js +1 -1
  249. package/src/sap/m/ToolbarLayoutData.js +1 -1
  250. package/src/sap/m/ToolbarRenderer.js +8 -0
  251. package/src/sap/m/ToolbarSeparator.js +1 -1
  252. package/src/sap/m/ToolbarSpacer.js +1 -1
  253. package/src/sap/m/Tree.js +17 -1
  254. package/src/sap/m/TreeItemBase.js +1 -1
  255. package/src/sap/m/UploadCollection.js +1 -1
  256. package/src/sap/m/UploadCollectionItem.js +1 -1
  257. package/src/sap/m/UploadCollectionParameter.js +1 -1
  258. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  259. package/src/sap/m/VBox.js +1 -1
  260. package/src/sap/m/ValueStateHeader.js +9 -4
  261. package/src/sap/m/VariantItem.js +99 -27
  262. package/src/sap/m/VariantManagement.js +196 -90
  263. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  264. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  265. package/src/sap/m/ViewSettingsDialog.js +44 -44
  266. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  267. package/src/sap/m/ViewSettingsItem.js +1 -1
  268. package/src/sap/m/VisibleItem.js +1 -1
  269. package/src/sap/m/WheelSlider.js +1 -1
  270. package/src/sap/m/WheelSliderContainer.js +1 -1
  271. package/src/sap/m/Wizard.js +6 -6
  272. package/src/sap/m/WizardProgressNavigator.js +1 -1
  273. package/src/sap/m/WizardStep.js +1 -1
  274. package/src/sap/m/changeHandler/AddTableColumn.js +1 -1
  275. package/src/sap/m/changeHandler/ChangeLinkTarget.js +1 -1
  276. package/src/sap/m/changeHandler/CombineButtons.js +1 -1
  277. package/src/sap/m/changeHandler/MoveTableColumns.js +1 -1
  278. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +1 -1
  279. package/src/sap/m/changeHandler/SplitMenuButton.js +1 -1
  280. package/src/sap/m/designtime/IconTabFilter.designtime.js +1 -1
  281. package/src/sap/m/designtime/VariantManagement.designtime.js +0 -6
  282. package/src/sap/m/designtime/messagebundle_mk.properties +182 -0
  283. package/src/sap/m/designtime/messagebundle_sh.properties +3 -3
  284. package/src/sap/m/flexibility/EngineFlex.js +5 -0
  285. package/src/sap/m/inputUtils/highlightItemsWithContains.js +82 -0
  286. package/src/sap/m/library.js +76 -136
  287. package/src/sap/m/messagebundle.properties +37 -6
  288. package/src/sap/m/messagebundle_ar.properties +46 -2
  289. package/src/sap/m/messagebundle_bg.properties +49 -5
  290. package/src/sap/m/messagebundle_ca.properties +47 -3
  291. package/src/sap/m/messagebundle_cs.properties +46 -2
  292. package/src/sap/m/messagebundle_cy.properties +46 -2
  293. package/src/sap/m/messagebundle_da.properties +46 -2
  294. package/src/sap/m/messagebundle_de.properties +46 -2
  295. package/src/sap/m/messagebundle_el.properties +48 -4
  296. package/src/sap/m/messagebundle_en.properties +23 -6
  297. package/src/sap/m/messagebundle_en_GB.properties +46 -2
  298. package/src/sap/m/messagebundle_es.properties +46 -2
  299. package/src/sap/m/messagebundle_es_MX.properties +46 -2
  300. package/src/sap/m/messagebundle_et.properties +44 -0
  301. package/src/sap/m/messagebundle_fi.properties +46 -2
  302. package/src/sap/m/messagebundle_fr.properties +46 -2
  303. package/src/sap/m/messagebundle_fr_CA.properties +46 -2
  304. package/src/sap/m/messagebundle_hi.properties +48 -4
  305. package/src/sap/m/messagebundle_hr.properties +46 -2
  306. package/src/sap/m/messagebundle_hu.properties +51 -7
  307. package/src/sap/m/messagebundle_id.properties +48 -4
  308. package/src/sap/m/messagebundle_it.properties +44 -0
  309. package/src/sap/m/messagebundle_iw.properties +46 -2
  310. package/src/sap/m/messagebundle_ja.properties +44 -0
  311. package/src/sap/m/messagebundle_kk.properties +60 -16
  312. package/src/sap/m/messagebundle_ko.properties +44 -0
  313. package/src/sap/m/messagebundle_lt.properties +46 -2
  314. package/src/sap/m/messagebundle_lv.properties +57 -13
  315. package/src/sap/m/messagebundle_mk.properties +1869 -0
  316. package/src/sap/m/messagebundle_ms.properties +46 -2
  317. package/src/sap/m/messagebundle_nl.properties +44 -0
  318. package/src/sap/m/messagebundle_no.properties +47 -3
  319. package/src/sap/m/messagebundle_pl.properties +46 -2
  320. package/src/sap/m/messagebundle_pt.properties +44 -0
  321. package/src/sap/m/messagebundle_pt_PT.properties +44 -0
  322. package/src/sap/m/messagebundle_ro.properties +46 -2
  323. package/src/sap/m/messagebundle_ru.properties +48 -4
  324. package/src/sap/m/messagebundle_sh.properties +149 -105
  325. package/src/sap/m/messagebundle_sk.properties +46 -2
  326. package/src/sap/m/messagebundle_sl.properties +62 -18
  327. package/src/sap/m/messagebundle_sv.properties +50 -6
  328. package/src/sap/m/messagebundle_th.properties +44 -0
  329. package/src/sap/m/messagebundle_tr.properties +49 -5
  330. package/src/sap/m/messagebundle_uk.properties +59 -15
  331. package/src/sap/m/messagebundle_vi.properties +46 -2
  332. package/src/sap/m/messagebundle_zh_CN.properties +44 -0
  333. package/src/sap/m/messagebundle_zh_TW.properties +46 -2
  334. package/src/sap/m/p13n/AbstractContainer.js +2 -2
  335. package/src/sap/m/p13n/AbstractContainerItem.js +2 -2
  336. package/src/sap/m/p13n/BasePanel.js +13 -3
  337. package/src/sap/m/p13n/Container.js +1 -1
  338. package/src/sap/m/p13n/Engine.js +1 -1
  339. package/src/sap/m/p13n/FlexUtil.js +0 -41
  340. package/src/sap/m/p13n/GroupController.js +1 -1
  341. package/src/sap/m/p13n/GroupPanel.js +1 -1
  342. package/src/sap/m/p13n/Popup.js +16 -1
  343. package/src/sap/m/p13n/QueryPanel.js +1 -1
  344. package/src/sap/m/p13n/SelectionController.js +457 -423
  345. package/src/sap/m/p13n/SelectionPanel.js +1 -1
  346. package/src/sap/m/p13n/SortController.js +1 -1
  347. package/src/sap/m/p13n/SortPanel.js +4 -3
  348. package/src/sap/m/p13n/handler/xConfigHandler.js +18 -5
  349. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +1 -1
  350. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +1 -1
  351. package/src/sap/m/p13n/modules/UIManager.js +1 -1
  352. package/src/sap/m/p13n/modules/xConfigAPI.js +1 -1
  353. package/src/sap/m/plugins/CellSelector.js +172 -153
  354. package/src/sap/m/plugins/ColumnResizer.js +9 -2
  355. package/src/sap/m/plugins/CopyProvider.js +21 -10
  356. package/src/sap/m/plugins/DataStateIndicator.js +1 -1
  357. package/src/sap/m/plugins/PasteProvider.js +1 -1
  358. package/src/sap/m/plugins/PluginBase.js +1 -1
  359. package/src/sap/m/routing/Target.js +3 -3
  360. package/src/sap/m/routing/Targets.js +3 -3
  361. package/src/sap/m/semantic/AddAction.js +1 -1
  362. package/src/sap/m/semantic/CancelAction.js +1 -1
  363. package/src/sap/m/semantic/DeleteAction.js +1 -1
  364. package/src/sap/m/semantic/DetailPage.js +1 -1
  365. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  366. package/src/sap/m/semantic/EditAction.js +1 -1
  367. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  368. package/src/sap/m/semantic/FilterAction.js +1 -1
  369. package/src/sap/m/semantic/FilterSelect.js +1 -1
  370. package/src/sap/m/semantic/FlagAction.js +1 -1
  371. package/src/sap/m/semantic/ForwardAction.js +1 -1
  372. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  373. package/src/sap/m/semantic/GroupAction.js +1 -1
  374. package/src/sap/m/semantic/GroupSelect.js +1 -1
  375. package/src/sap/m/semantic/MainAction.js +1 -1
  376. package/src/sap/m/semantic/MasterPage.js +1 -1
  377. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  378. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  379. package/src/sap/m/semantic/NegativeAction.js +1 -1
  380. package/src/sap/m/semantic/OpenInAction.js +1 -1
  381. package/src/sap/m/semantic/PositiveAction.js +1 -1
  382. package/src/sap/m/semantic/PrintAction.js +1 -1
  383. package/src/sap/m/semantic/SaveAction.js +1 -1
  384. package/src/sap/m/semantic/Segment.js +1 -1
  385. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  386. package/src/sap/m/semantic/SemanticButton.js +1 -1
  387. package/src/sap/m/semantic/SemanticConfiguration.js +1 -1
  388. package/src/sap/m/semantic/SemanticControl.js +1 -1
  389. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  390. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  391. package/src/sap/m/semantic/SemanticPage.js +1 -1
  392. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  393. package/src/sap/m/semantic/SemanticToggleButton.js +1 -1
  394. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  395. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  396. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  397. package/src/sap/m/semantic/ShareMenu.js +1 -1
  398. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  399. package/src/sap/m/semantic/SortAction.js +1 -1
  400. package/src/sap/m/semantic/SortSelect.js +1 -1
  401. package/src/sap/m/table/ColumnWidthController.js +177 -0
  402. package/src/sap/m/table/Util.js +1 -1
  403. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  404. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  405. package/src/sap/m/table/columnmenu/Item.js +1 -1
  406. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  407. package/src/sap/m/table/columnmenu/Menu.js +17 -13
  408. package/src/sap/m/table/columnmenu/QuickAction.js +1 -1
  409. package/src/sap/m/table/columnmenu/QuickActionBase.js +1 -1
  410. package/src/sap/m/table/columnmenu/QuickActionItem.js +1 -1
  411. package/src/sap/m/table/columnmenu/QuickGroup.js +5 -1
  412. package/src/sap/m/table/columnmenu/QuickGroupItem.js +1 -1
  413. package/src/sap/m/table/columnmenu/QuickSort.js +1 -1
  414. package/src/sap/m/table/columnmenu/QuickSortItem.js +2 -2
  415. package/src/sap/m/table/columnmenu/QuickTotal.js +5 -1
  416. package/src/sap/m/table/columnmenu/QuickTotalItem.js +1 -1
  417. package/src/sap/m/themes/base/Avatar.less +0 -1
  418. package/src/sap/m/themes/base/BarBase.less +1 -1
  419. package/src/sap/m/themes/base/BusyIndicator.less +0 -10
  420. package/src/sap/m/themes/base/ExpandableText.less +6 -0
  421. package/src/sap/m/themes/base/GenericTile.less +36 -0
  422. package/src/sap/m/themes/base/LinkTileContent.less +17 -0
  423. package/src/sap/m/themes/base/MenuButton.less +1 -1
  424. package/src/sap/m/themes/base/NotificationListBase.less +3 -3
  425. package/src/sap/m/themes/base/ObjectStatus.less +241 -1
  426. package/src/sap/m/themes/base/RadioButton.less +1 -1
  427. package/src/sap/m/themes/base/SearchField.less +2 -1
  428. package/src/sap/m/themes/base/SplitButton.less +0 -1
  429. package/src/sap/m/themes/base/Text.less +4 -1
  430. package/src/sap/m/themes/base/Toolbar.less +7 -14
  431. package/src/sap/m/themes/base/ValueStateHeader.less +4 -0
  432. package/src/sap/m/themes/base/library.source.less +1 -0
  433. package/src/sap/m/upload/ActionsPlaceholder.js +49 -0
  434. package/src/sap/m/upload/Column.js +58 -0
  435. package/src/sap/m/upload/FilePreviewDialog.js +22 -3
  436. package/src/sap/m/upload/FilterPanel.js +280 -0
  437. package/src/sap/m/upload/UploadSet.js +11 -6
  438. package/src/sap/m/upload/UploadSetItem.js +6 -5
  439. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  440. package/src/sap/m/upload/UploadSetwithTable.js +487 -93
  441. package/src/sap/m/upload/UploadSetwithTableItem.js +26 -11
  442. package/src/sap/m/upload/Uploader.js +3 -0
  443. package/src/sap/m/upload/UploaderTableItem.js +4 -1
  444. package/src/sap/m/upload/p13n/PersManager.js +251 -0
  445. package/src/sap/m/upload/p13n/flexibility/UploadSetwithTable.flexibility.js +32 -0
  446. package/src/sap/m/upload/p13n/handlers/BaseConfigHandler.js +44 -0
  447. package/src/sap/m/upload/p13n/handlers/ChangeHandler.js +98 -0
  448. package/src/sap/m/upload/p13n/handlers/ColumnConfigHandler.js +57 -0
  449. package/src/sap/m/upload/p13n/handlers/ColumnsStateChangeHandler.js +43 -0
  450. package/src/sap/m/upload/p13n/handlers/FilterConfigHandler.js +71 -0
  451. package/src/sap/m/upload/p13n/handlers/FilterStateChangeHandler.js +65 -0
  452. package/src/sap/m/upload/p13n/handlers/GroupConfigHandler.js +57 -0
  453. package/src/sap/m/upload/p13n/handlers/GroupStateChangeHandler.js +46 -0
  454. package/src/sap/m/upload/p13n/handlers/SortConfigHandler.js +57 -0
  455. package/src/sap/m/upload/p13n/handlers/SortStateChangeHandler.js +48 -0
  456. package/src/sap/m/upload/p13n/mediator/BaseMediator.js +183 -0
  457. package/src/sap/m/upload/p13n/mediator/ColumnsMediator.js +210 -0
  458. package/src/sap/m/upload/p13n/mediator/FilterMediator.js +196 -0
  459. package/src/sap/m/upload/p13n/mediator/GroupMediator.js +192 -0
  460. package/src/sap/m/upload/p13n/mediator/SortMediator.js +200 -0
  461. package/src/sap/m/upload/p13n/modules/CustomDataConfig.js +100 -0
  462. package/src/sap/m/upload/p13n/modules/PersPopupManager.js +76 -0
@@ -5,27 +5,27 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- 'sap/base/util/array/diff',
9
- 'sap/ui/base/Object',
10
- 'sap/base/util/merge',
11
- 'sap/base/util/deepEqual',
12
- 'sap/m/p13n/SelectionPanel',
13
- 'sap/m/p13n/modules/xConfigAPI',
14
- 'sap/ui/core/Configuration',
15
- 'sap/ui/core/mvc/View'
8
+ 'sap/base/util/array/diff',
9
+ 'sap/ui/base/Object',
10
+ 'sap/base/util/merge',
11
+ 'sap/base/util/deepEqual',
12
+ 'sap/m/p13n/SelectionPanel',
13
+ 'sap/m/p13n/modules/xConfigAPI',
14
+ 'sap/ui/core/Configuration',
15
+ 'sap/ui/core/mvc/View'
16
16
  ], function (diff, BaseObject, merge, deepEqual, SelectionPanel, xConfigAPI, Configuration, View) {
17
17
  "use strict";
18
18
 
19
- /**
19
+ /**
20
20
  * Constructor for a new <code>SelectionController</code>.
21
21
  *
22
22
  * @param {string} [sId] ID for the new control, generated automatically if no ID is given
23
23
  * @param {object} [mSettings] Initial settings for the new control
24
- * @param {sap.ui.core.Control} mSettings.control The control instance that is personalized by this controller
25
- * @param {function} [mSettings.getKeyForItem] By default the SelectionController tries to identify the existing item through the
26
- * key by checking if there is an existing item with this id. This behaviour can be overruled by implementing this method which will
27
- * provide the according item of the <code>targetAggregation</code> to return the according key associated to this item.
28
- * @param {string} mSettings.targetAggregation The name of the aggregation that is now managed by this controller
24
+ * @param {sap.ui.core.Control} mSettings.control The control instance that is personalized by this controller
25
+ * @param {function} [mSettings.getKeyForItem] By default the SelectionController tries to identify the existing item through the
26
+ * key by checking if there is an existing item with this id. This behaviour can be overruled by implementing this method which will
27
+ * provide the according item of the <code>targetAggregation</code> to return the according key associated to this item.
28
+ * @param {string} mSettings.targetAggregation The name of the aggregation that is now managed by this controller
29
29
  *
30
30
  * @class
31
31
  * The <code>SelectionController</code> entity serves as a base class to create control-specific personalization implementations.
@@ -33,203 +33,203 @@ sap.ui.define([
33
33
  * @extends sap.ui.base.Object
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.119.0
36
+ * @version 1.120.0
37
37
  *
38
38
  * @public
39
39
  * @alias sap.m.p13n.SelectionController
40
40
  */
41
41
  var SelectionController = BaseObject.extend("sap.m.p13n.SelectionController",{
42
- constructor: function(mSettings) {
43
- BaseObject.call(this);
44
-
45
- this._oAdaptationControl = mSettings.control;
46
-
47
- /**
48
- * The 'stableKeys' can be provided in the constructor to exclude the keys from the p13n UI, while still respecting them in the
49
- * delta logic. For instance by ignoring the first column of a TreeTable in the p13n dialog while still not removing this column
50
- * on closing the dialog.
51
- */
52
- this._aStableKeys = mSettings.stableKeys || [];
53
-
54
- if (!this._oAdaptationControl) {
55
- throw new Error("Always provide atleast a 'control' configuration when creating a new p13n controller!");
56
- }
57
-
58
- this._sTargetAggregation = mSettings.targetAggregation;
59
- this._fSelector = mSettings.getKeyForItem;
60
-
61
- this._oP13nData = null;
62
- this._bLiveMode = false;
63
- this._bResetEnabled = false;
64
- this._bReorderingEnabled = mSettings.hasOwnProperty("enableReorder") ? mSettings.enableReorder : true;
65
-
66
- }
67
- });
68
-
69
- /**
70
- * The control that is being personalized via this controller.
71
- *
72
- * @returns {sap.ui.mdc.Control} The control which is being adapted.
73
- */
74
- SelectionController.prototype.getAdaptationControl = function(){
75
- return this._oAdaptationControl;
76
- };
77
-
78
- SelectionController.prototype.getTargetAggregation = function(){
79
- return this._sTargetAggregation;
80
- };
81
-
82
-
83
- /**
84
- * Defines the available ChangeTypes (should be in sync with 'getDelta').
85
- *
86
- * @returns {object} A map of legal change types.
87
- */
88
- SelectionController.prototype.getChangeOperations = function() {
89
- return {
90
- add: "addItem",
91
- remove: "removeItem",
92
- move: "moveItem"
93
- };
94
- };
95
-
96
- /**
97
- * Defines which control(s) are considered for the reset.
98
- *
99
- * @returns {sap.ui.core.Control | sap.ui.core.Control[]}
100
- **/
101
- SelectionController.prototype.getSelectorForReset = function() {
102
- return this._oAdaptationControl;
103
- };
104
-
105
- SelectionController.prototype.sanityCheck = function(oState) {
106
- return oState;
107
- };
108
-
109
- /**
110
- * The actual UI used for personalization.
111
- *
112
- * @param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper The property helper instance
113
- * @returns {sap.ui.core.Control|string|Promise} The control which is going to be used in the p13n container.
114
- */
115
- SelectionController.prototype.initAdaptationUI = function(oPropertyHelper){
116
- var oAdaptationData = this.mixInfoAndState(oPropertyHelper);
117
- this._oPanel = this.createUI(oAdaptationData);
118
- return Promise.resolve(this._oPanel);
119
- };
120
-
121
- SelectionController.prototype.createUI = function(oAdaptationData) {
122
- var oSelectionPanel = new SelectionPanel({
123
- showHeader: true,
124
- enableCount: true
125
- });
126
- oSelectionPanel.setEnableReorder(this._bReorderingEnabled);
127
- return oSelectionPanel.setP13nData(oAdaptationData.items);
128
- };
129
-
130
- var getViewForControl = function(oControl) {
131
- if (oControl instanceof View) {
132
- return oControl;
133
- }
134
-
135
- if (oControl && typeof oControl.getParent === "function") {
136
- oControl = oControl.getParent();
137
- return getViewForControl(oControl);
138
- }
139
- };
140
-
141
- SelectionController.prototype.getCurrentState = function(){
142
- var aState = [], aAggregationItems = this.getAdaptationControl().getAggregation(this.getTargetAggregation()) || [];
143
- var oView = getViewForControl(this.getAdaptationControl());
144
- aAggregationItems.forEach(function(oItem, iIndex) {
145
- var sId = oView ? oView.getLocalId(oItem.getId()) : oItem.getId();
146
- var vRelevant = this._fSelector ? this._fSelector(oItem) : oItem.getVisible();
147
- if (vRelevant) {
148
- aState.push({
149
- key: typeof vRelevant === "boolean" ? sId : vRelevant
150
- });
151
- }
42
+ constructor: function(mSettings) {
43
+ BaseObject.call(this);
44
+
45
+ this._oAdaptationControl = mSettings.control;
46
+
47
+ /**
48
+ * The 'stableKeys' can be provided in the constructor to exclude the keys from the p13n UI, while still respecting them in the
49
+ * delta logic. For instance by ignoring the first column of a TreeTable in the p13n dialog while still not removing this column
50
+ * on closing the dialog.
51
+ */
52
+ this._aStableKeys = mSettings.stableKeys || [];
53
+
54
+ if (!this._oAdaptationControl) {
55
+ throw new Error("Always provide atleast a 'control' configuration when creating a new p13n controller!");
56
+ }
57
+
58
+ this._sTargetAggregation = mSettings.targetAggregation;
59
+ this._fSelector = mSettings.getKeyForItem;
60
+
61
+ this._oP13nData = null;
62
+ this._bLiveMode = false;
63
+ this._bResetEnabled = false;
64
+ this._bReorderingEnabled = mSettings.hasOwnProperty("enableReorder") ? mSettings.enableReorder : true;
65
+
66
+ }
67
+ });
68
+
69
+ /**
70
+ * The control that is being personalized via this controller.
71
+ *
72
+ * @returns {sap.ui.mdc.Control} The control which is being adapted.
73
+ */
74
+ SelectionController.prototype.getAdaptationControl = function(){
75
+ return this._oAdaptationControl;
76
+ };
77
+
78
+ SelectionController.prototype.getTargetAggregation = function(){
79
+ return this._sTargetAggregation;
80
+ };
81
+
82
+
83
+ /**
84
+ * Defines the available ChangeTypes (should be in sync with 'getDelta').
85
+ *
86
+ * @returns {object} A map of legal change types.
87
+ */
88
+ SelectionController.prototype.getChangeOperations = function() {
89
+ return {
90
+ add: "addItem",
91
+ remove: "removeItem",
92
+ move: "moveItem"
93
+ };
94
+ };
95
+
96
+ /**
97
+ * Defines which control(s) are considered for the reset.
98
+ *
99
+ * @returns {sap.ui.core.Control | sap.ui.core.Control[]}
100
+ **/
101
+ SelectionController.prototype.getSelectorForReset = function() {
102
+ return this._oAdaptationControl;
103
+ };
104
+
105
+ SelectionController.prototype.sanityCheck = function(oState) {
106
+ return oState;
107
+ };
108
+
109
+ /**
110
+ * The actual UI used for personalization.
111
+ *
112
+ * @param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper The property helper instance
113
+ * @returns {sap.ui.core.Control|string|Promise} The control which is going to be used in the p13n container.
114
+ */
115
+ SelectionController.prototype.initAdaptationUI = function(oPropertyHelper){
116
+ var oAdaptationData = this.mixInfoAndState(oPropertyHelper);
117
+ this._oPanel = this.createUI(oAdaptationData);
118
+ return Promise.resolve(this._oPanel);
119
+ };
120
+
121
+ SelectionController.prototype.createUI = function(oAdaptationData) {
122
+ var oSelectionPanel = new SelectionPanel({
123
+ showHeader: true,
124
+ enableCount: true
125
+ });
126
+ oSelectionPanel.setEnableReorder(this._bReorderingEnabled);
127
+ return oSelectionPanel.setP13nData(oAdaptationData.items);
128
+ };
129
+
130
+ var getViewForControl = function(oControl) {
131
+ if (oControl instanceof View) {
132
+ return oControl;
133
+ }
134
+
135
+ if (oControl && typeof oControl.getParent === "function") {
136
+ oControl = oControl.getParent();
137
+ return getViewForControl(oControl);
138
+ }
139
+ };
140
+
141
+ SelectionController.prototype.getCurrentState = function(){
142
+ var aState = [], aAggregationItems = this.getAdaptationControl().getAggregation(this.getTargetAggregation()) || [];
143
+ var oView = getViewForControl(this.getAdaptationControl());
144
+ aAggregationItems.forEach(function(oItem, iIndex) {
145
+ var sId = oView ? oView.getLocalId(oItem.getId()) : oItem.getId();
146
+ var vRelevant = this._fSelector ? this._fSelector(oItem) : oItem.getVisible();
147
+ if (vRelevant) {
148
+ aState.push({
149
+ key: typeof vRelevant === "boolean" ? sId : vRelevant
150
+ });
151
+ }
152
152
  }.bind(this));
153
153
 
154
- var oXConfig = xConfigAPI.readConfig(this.getAdaptationControl()) || {};
155
- var oItemXConfig = oXConfig.hasOwnProperty("aggregations") ? oXConfig.aggregations[this._sTargetAggregation] : {};
156
-
157
- for (var sKey in oItemXConfig) {
158
- var aStateKeys = aState.map(function(o){return o.key;});
159
- var iCurrentIndex = aStateKeys.indexOf(sKey);
160
- var iNewIndex = oItemXConfig[sKey].position;
161
- var bVisible = oItemXConfig[sKey].visible !== false;
162
- var bReordered = iNewIndex !== undefined;
163
-
164
- if (bVisible && iCurrentIndex === -1) {
165
- aState.push({
166
- key: sKey
167
- });
168
- }
169
-
170
- if (bVisible && bReordered && aState.length > 0) {
171
- var oItem = aState.splice(iCurrentIndex, 1)[0];
172
- aState.splice(iNewIndex, 0, oItem);
173
- iCurrentIndex = iNewIndex;
174
- }
175
- if (oItemXConfig[sKey].visible === false && iCurrentIndex > -1) {
176
- aState.splice(iCurrentIndex, 1);
177
- }
178
-
179
- }
180
- return aState;
181
- };
154
+ var oXConfig = xConfigAPI.readConfig(this.getAdaptationControl()) || {};
155
+ var oItemXConfig = oXConfig.hasOwnProperty("aggregations") ? oXConfig.aggregations[this._sTargetAggregation] : {};
156
+
157
+ for (var sKey in oItemXConfig) {
158
+ var aStateKeys = aState.map(function(o){return o.key;});
159
+ var iCurrentIndex = aStateKeys.indexOf(sKey);
160
+ var iNewIndex = oItemXConfig[sKey].position;
161
+ var bVisible = oItemXConfig[sKey].visible !== false;
162
+ var bReordered = iNewIndex !== undefined;
163
+
164
+ if (bVisible && iCurrentIndex === -1) {
165
+ aState.push({
166
+ key: sKey
167
+ });
168
+ }
169
+
170
+ if (bVisible && bReordered && aState.length > 0) {
171
+ var oItem = aState.splice(iCurrentIndex, 1)[0];
172
+ aState.splice(iNewIndex, 0, oItem);
173
+ iCurrentIndex = iNewIndex;
174
+ }
175
+ if (oItemXConfig[sKey].visible === false && iCurrentIndex > -1) {
176
+ aState.splice(iCurrentIndex, 1);
177
+ }
178
+
179
+ }
180
+ return aState;
181
+ };
182
182
 
183
183
  SelectionController.prototype.getStateKey = function(){
184
184
  return "items";
185
185
  };
186
186
 
187
- SelectionController.prototype.getDelta = function(mPropertyBag) {
188
- var sPresenceAttribute = this._getPresenceAttribute(mPropertyBag.externalAppliance);
189
- var aNewStatePrepared;
190
-
191
- var fnFilterUnselected = function (oItem) {
192
- return oItem.hasOwnProperty(sPresenceAttribute) && oItem[sPresenceAttribute] === false ? false : true;
193
- };
194
- aNewStatePrepared = mPropertyBag.applyAbsolute
195
- ? mPropertyBag.changedState.filter(fnFilterUnselected) :
196
- this._getFilledArray(mPropertyBag.existingState, mPropertyBag.changedState, sPresenceAttribute).filter(fnFilterUnselected);
197
-
198
- this._aStableKeys.forEach(function(sKey, iIndex){
199
- var mExistingState = this.arrayToMap(this.getCurrentState());
200
- var mNewState = this.arrayToMap(aNewStatePrepared);
201
- var iStableIndex = mExistingState[sKey] || (iIndex - 1);
202
-
203
- if (!mNewState.hasOwnProperty(sKey)) {
204
- aNewStatePrepared.splice(iStableIndex, 0,mExistingState[sKey]);
205
- }
206
- }.bind(this));
207
- mPropertyBag.changedState = aNewStatePrepared;
208
-
209
- //Example: Dialog Ok --> don't trigger unnecessary flex change processing
210
- if (deepEqual(mPropertyBag.existingState, aNewStatePrepared)){
211
- return [];
212
- } else {
213
- return this.getArrayDeltaChanges(mPropertyBag);
214
- }
215
-
216
- };
217
-
218
- /**
219
- * Generates a set of changes based on the given arrays for a specified control
220
- *
221
- * @param {object} mDeltaInfo Map containing the necessary information to calculate the diff as change objects
222
- * @param {array} mDeltaInfo.existingState An array describing the control state before a adaptation
223
- * @param {array} mDeltaInfo.changedState An array describing the control state after a certain adaptation
224
- * @param {object} mDeltaInfo.control Control instance which is being used to generate the changes
225
- * @param {object} mDeltaInfo.changeOperations Map containing the changeOperations for the given Control instance
226
- * @param {string} mDeltaInfo.changeOperations.add Name of the control specific 'add' changehandler
227
- * @param {string} mDeltaInfo.changeOperations.remove Name of the control specific 'remove' changehandler
228
- * @param {string} [mDeltaInfo.changeOperations.move] Name of the control specific 'move' changehandler
229
- * @param {string} [mDeltaInfo.generator] Name of the change generator (E.g. the namespace of the UI creating the change object)
230
- *
231
- * @returns {array} Array containing the delta based created changes
232
- */
187
+ SelectionController.prototype.getDelta = function(mPropertyBag) {
188
+ var sPresenceAttribute = this._getPresenceAttribute(mPropertyBag.externalAppliance);
189
+ var aNewStatePrepared;
190
+
191
+ var fnFilterUnselected = function (oItem) {
192
+ return oItem.hasOwnProperty(sPresenceAttribute) && oItem[sPresenceAttribute] === false ? false : true;
193
+ };
194
+ aNewStatePrepared = mPropertyBag.applyAbsolute
195
+ ? mPropertyBag.changedState.filter(fnFilterUnselected) :
196
+ this._getFilledArray(mPropertyBag.existingState, mPropertyBag.changedState, sPresenceAttribute).filter(fnFilterUnselected);
197
+
198
+ this._aStableKeys.forEach(function(sKey, iIndex){
199
+ var mExistingState = this.arrayToMap(this.getCurrentState());
200
+ var mNewState = this.arrayToMap(aNewStatePrepared);
201
+ var iStableIndex = mExistingState[sKey] || (iIndex - 1);
202
+
203
+ if (!mNewState.hasOwnProperty(sKey)) {
204
+ aNewStatePrepared.splice(iStableIndex, 0,mExistingState[sKey]);
205
+ }
206
+ }.bind(this));
207
+ mPropertyBag.changedState = aNewStatePrepared;
208
+
209
+ //Example: Dialog Ok --> don't trigger unnecessary flex change processing
210
+ if (deepEqual(mPropertyBag.existingState, aNewStatePrepared)){
211
+ return [];
212
+ } else {
213
+ return this.getArrayDeltaChanges(mPropertyBag);
214
+ }
215
+
216
+ };
217
+
218
+ /**
219
+ * Generates a set of changes based on the given arrays for a specified control
220
+ *
221
+ * @param {object} mDeltaInfo Map containing the necessary information to calculate the diff as change objects
222
+ * @param {array} mDeltaInfo.existingState An array describing the control state before a adaptation
223
+ * @param {array} mDeltaInfo.changedState An array describing the control state after a certain adaptation
224
+ * @param {object} mDeltaInfo.control Control instance which is being used to generate the changes
225
+ * @param {object} mDeltaInfo.changeOperations Map containing the changeOperations for the given Control instance
226
+ * @param {string} mDeltaInfo.changeOperations.add Name of the control specific 'add' changehandler
227
+ * @param {string} mDeltaInfo.changeOperations.remove Name of the control specific 'remove' changehandler
228
+ * @param {string} [mDeltaInfo.changeOperations.move] Name of the control specific 'move' changehandler
229
+ * @param {string} [mDeltaInfo.generator] Name of the change generator (E.g. the namespace of the UI creating the change object)
230
+ *
231
+ * @returns {array} Array containing the delta based created changes
232
+ */
233
233
  SelectionController.prototype.getArrayDeltaChanges = function(mDeltaInfo) {
234
234
  var aExistingArray = mDeltaInfo.existingState;
235
235
  var aChangedArray = mDeltaInfo.changedState;
@@ -365,12 +365,12 @@ sap.ui.define([
365
365
 
366
366
  return mDeleteInserts;
367
367
  };
368
- SelectionController.prototype._verifyDeltaAttributes = function (oSource, oTarget, aDeltaAttributes) {
368
+ SelectionController.prototype._verifyDeltaAttributes = function (oSource, oTarget, aDeltaAttributes) {
369
369
  var bReturn = false;
370
370
 
371
371
  aDeltaAttributes.some(function(sAttr) {
372
372
  if (!oSource.hasOwnProperty(sAttr) && oTarget.hasOwnProperty(sAttr) ||
373
- oSource.hasOwnProperty(sAttr) && !oTarget.hasOwnProperty(sAttr) ||
373
+ oSource.hasOwnProperty(sAttr) && !oTarget.hasOwnProperty(sAttr) ||
374
374
  (oSource[sAttr] != oTarget[sAttr]) ) {
375
375
  bReturn = true;
376
376
  }
@@ -381,140 +381,143 @@ sap.ui.define([
381
381
 
382
382
  };
383
383
 
384
- /**
385
- * Method which reduces a propertyinfo map to changecontent relevant attributes.
386
- * <b>Note:</b> This method determines the attributes stored in the changeContent.
387
- *
388
- * @param {object} oProperty Object containing all values prior to change creation
389
- * @param {array} aDeltaAttributes Array containing all attributes that are necessary for the delta calculation
390
- *
391
- * @returns {object} Object containing reduced content
392
- */
393
- SelectionController.prototype._getChangeContent = function (oProperty, aDeltaAttributes) {
394
-
395
- var oChangeContent = {};
396
-
397
- // Index
398
- if (oProperty.hasOwnProperty("index") && oProperty.index >= 0) {
399
- oChangeContent.index = oProperty.index;
400
- }
401
-
402
- aDeltaAttributes.forEach(function(sAttribute) {
403
- if (oProperty.hasOwnProperty(sAttribute)){
404
- oChangeContent[sAttribute] = oProperty[sAttribute];
405
- }
406
- });
407
-
408
- return oChangeContent;
409
- };
410
-
411
- SelectionController.prototype._createAddRemoveChange = function(oControl, sOperation, oContent){
412
-
413
- var oChangeContent = oContent;
414
-
415
- oChangeContent.value = (sOperation == this.getChangeOperations()["add"]);
416
- oChangeContent.targetAggregation = this.getTargetAggregation();
417
-
418
- var oAddRemoveChange = {
419
- selectorElement: oControl,
420
- changeSpecificData: {
421
- changeType: sOperation,
422
- content: oChangeContent
423
- }
424
- };
425
- return oAddRemoveChange;
426
- };
427
-
428
- SelectionController.prototype._createMoveChange = function(sPropertykey, iNewIndex, sMoveOperation, oControl){
429
- var oMoveChange = {
430
- selectorElement: oControl,
431
- changeSpecificData: {
432
- changeType: sMoveOperation,
433
- content: {
434
- key: sPropertykey,
435
- targetAggregation: this.getTargetAggregation(),
436
- index: iNewIndex
437
- }
438
- }
439
- };
440
- return oMoveChange;
441
- };
442
- SelectionController.prototype._getPresenceAttribute = function(bexternalAppliance){
443
- return "visible";
444
- };
445
-
446
- /**
447
- * Allows calculations prior to applying a set of changes.
448
- * This can be used to mix additional changes to auto-created changes.
449
- *
450
- * @returns {Promise} A Promise that should resolve with an array of additional changes.
451
- */
452
- SelectionController.prototype.getBeforeApply = function(){
453
- return Promise.resolve();
454
- };
455
-
456
- /**
457
- * Initialized the inner model for the Personalization.
458
- *
459
- * @param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper The propertyhelper that should be utilized for property determination.
460
- * @returns {object} The personalization model data
461
- */
462
- SelectionController.prototype.mixInfoAndState = function(oPropertyHelper) {
463
-
464
- var aItemState = this.getCurrentState();
465
- var mItemState = this.arrayToMap(aItemState);
466
-
467
- var oP13nData = this.prepareAdaptationData(oPropertyHelper, function(mItem, oProperty){
468
- var oExisting = mItemState[oProperty.name || oProperty.key];
469
- mItem.visible = !!oExisting;
470
- mItem.position = oExisting ? oExisting.position : -1;
471
- return !(oProperty.visible === false || (this._aStableKeys.indexOf(oProperty.name || oProperty.key) > -1));
472
- }.bind(this));
473
-
474
- this.sortP13nData({
475
- visible: "visible",
476
- position: "position"
477
- }, oP13nData.items);
478
-
479
- oP13nData.items.forEach(function(oItem){delete oItem.position;});
480
- return oP13nData;
481
- };
482
-
483
- /**
484
- * @returns {object} The personalization data.
485
- *
486
- */
487
- SelectionController.prototype.getP13nData = function() {
488
- return this._oPanel ? this._oPanel.getP13nData() : this._oAdaptationModel && this._oAdaptationModel.getProperty("/items");
489
- };
490
-
491
- SelectionController.prototype.model2State = false;
492
-
493
- /**
494
- * Can be used to trigger update after UI interactions such as "Ok" and "Reset"
495
- *
496
- * @param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper The property helper instance
497
- */
498
- SelectionController.prototype.update = function(oPropertyHelper) {
499
- if (this._oPanel) {
384
+ /**
385
+ * Method which reduces a propertyinfo map to changecontent relevant attributes.
386
+ * <b>Note:</b> This method determines the attributes stored in the changeContent.
387
+ *
388
+ * @param {object} oProperty Object containing all values prior to change creation
389
+ * @param {array} aDeltaAttributes Array containing all attributes that are necessary for the delta calculation
390
+ *
391
+ * @returns {object} Object containing reduced content
392
+ */
393
+ SelectionController.prototype._getChangeContent = function (oProperty, aDeltaAttributes) {
394
+
395
+ var oChangeContent = {};
396
+
397
+ // Index
398
+ if (oProperty.hasOwnProperty("index") && oProperty.index >= 0) {
399
+ oChangeContent.index = oProperty.index;
400
+ }
401
+
402
+ aDeltaAttributes.forEach(function(sAttribute) {
403
+ if (oProperty.hasOwnProperty(sAttribute)){
404
+ oChangeContent[sAttribute] = oProperty[sAttribute];
405
+ }
406
+ });
407
+
408
+ return oChangeContent;
409
+ };
410
+
411
+ SelectionController.prototype._createAddRemoveChange = function(oControl, sOperation, oContent){
412
+
413
+ var oChangeContent = oContent;
414
+
415
+ if (sOperation.indexOf("set") !== 0) {
416
+ oChangeContent.value = (sOperation == this.getChangeOperations()["add"]);
417
+ }
418
+
419
+ oChangeContent.targetAggregation = this.getTargetAggregation();
420
+
421
+ var oAddRemoveChange = {
422
+ selectorElement: oControl,
423
+ changeSpecificData: {
424
+ changeType: sOperation,
425
+ content: oChangeContent
426
+ }
427
+ };
428
+ return oAddRemoveChange;
429
+ };
430
+
431
+ SelectionController.prototype._createMoveChange = function(sPropertykey, iNewIndex, sMoveOperation, oControl){
432
+ var oMoveChange = {
433
+ selectorElement: oControl,
434
+ changeSpecificData: {
435
+ changeType: sMoveOperation,
436
+ content: {
437
+ key: sPropertykey,
438
+ targetAggregation: this.getTargetAggregation(),
439
+ index: iNewIndex
440
+ }
441
+ }
442
+ };
443
+ return oMoveChange;
444
+ };
445
+ SelectionController.prototype._getPresenceAttribute = function(bexternalAppliance){
446
+ return "visible";
447
+ };
448
+
449
+ /**
450
+ * Allows calculations prior to applying a set of changes.
451
+ * This can be used to mix additional changes to auto-created changes.
452
+ *
453
+ * @returns {Promise} A Promise that should resolve with an array of additional changes.
454
+ */
455
+ SelectionController.prototype.getBeforeApply = function(){
456
+ return Promise.resolve();
457
+ };
458
+
459
+ /**
460
+ * Initialized the inner model for the Personalization.
461
+ *
462
+ * @param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper The propertyhelper that should be utilized for property determination.
463
+ * @returns {object} The personalization model data
464
+ */
465
+ SelectionController.prototype.mixInfoAndState = function(oPropertyHelper) {
466
+
467
+ var aItemState = this.getCurrentState();
468
+ var mItemState = this.arrayToMap(aItemState);
469
+
470
+ var oP13nData = this.prepareAdaptationData(oPropertyHelper, function(mItem, oProperty){
471
+ var oExisting = mItemState[oProperty.name || oProperty.key];
472
+ mItem.visible = !!oExisting;
473
+ mItem.position = oExisting ? oExisting.position : -1;
474
+ return !(oProperty.visible === false || (this._aStableKeys.indexOf(oProperty.name || oProperty.key) > -1));
475
+ }.bind(this));
476
+
477
+ this.sortP13nData({
478
+ visible: "visible",
479
+ position: "position"
480
+ }, oP13nData.items);
481
+
482
+ oP13nData.items.forEach(function(oItem){delete oItem.position;});
483
+ return oP13nData;
484
+ };
485
+
486
+ /**
487
+ * @returns {object} The personalization data.
488
+ *
489
+ */
490
+ SelectionController.prototype.getP13nData = function() {
491
+ return this._oPanel ? this._oPanel.getP13nData() : this._oAdaptationModel && this._oAdaptationModel.getProperty("/items");
492
+ };
493
+
494
+ SelectionController.prototype.model2State = false;
495
+
496
+ /**
497
+ * Can be used to trigger update after UI interactions such as "Ok" and "Reset"
498
+ *
499
+ * @param {sap.ui.mdc.util.PropertyHelper} oPropertyHelper The property helper instance
500
+ */
501
+ SelectionController.prototype.update = function(oPropertyHelper) {
502
+ if (this._oPanel) {
500
503
  if (!this._oPanel.isDestroyed()) {
501
504
  var oAdaptationData = this.mixInfoAndState(oPropertyHelper);
502
505
  this._oPanel.setP13nData(oAdaptationData.items);
503
506
  }
504
- } else if (this._oAdaptationModel){
505
- //'setData' causes unnecessary rerendering in some cases
506
- var oP13nData = this.mixInfoAndState(oPropertyHelper);
507
- this._oAdaptationModel.setProperty("/items", oP13nData.items);
508
- this._oAdaptationModel.setProperty("/itemsGrouped", oP13nData.itemsGrouped);
509
- }
510
- };
511
-
512
- SelectionController.prototype._getFilledArray = function(aPreviousItems, aNewItems, sRemoveProperty) {
507
+ } else if (this._oAdaptationModel){
508
+ //'setData' causes unnecessary rerendering in some cases
509
+ var oP13nData = this.mixInfoAndState(oPropertyHelper);
510
+ this._oAdaptationModel.setProperty("/items", oP13nData.items);
511
+ this._oAdaptationModel.setProperty("/itemsGrouped", oP13nData.itemsGrouped);
512
+ }
513
+ };
514
+
515
+ SelectionController.prototype._getFilledArray = function(aPreviousItems, aNewItems, sRemoveProperty) {
513
516
  var aNewItemsPrepared = merge([], aPreviousItems);
514
517
  var aNewItemState = merge([], aNewItems);
515
518
 
516
519
  aNewItemState.forEach(function (oItem) {
517
- var mExistingItems = this.arrayToMap(aNewItemsPrepared);
520
+ var mExistingItems = this.arrayToMap(aNewItemsPrepared);
518
521
  var oExistingItem = mExistingItems[oItem.key];
519
522
  if (!oItem.hasOwnProperty(sRemoveProperty) || oItem[sRemoveProperty]) {
520
523
  var iNewPosition = oItem.position;
@@ -536,134 +539,165 @@ sap.ui.define([
536
539
  return aNewItemsPrepared;
537
540
  };
538
541
 
539
- SelectionController.prototype.changesToState = function(aChanges) {
542
+ SelectionController.prototype.getPropertySetterChanges = function(mDeltaInfo) {
543
+ var oControl = mDeltaInfo.control;
544
+ var aExistingState = mDeltaInfo.existingState;
545
+ var aChangedState = mDeltaInfo.changedState;
546
+ var sOperation = mDeltaInfo.operation;
547
+ var sSetAttribute = mDeltaInfo.deltaAttribute;
548
+
549
+ var aSetterChanges = [];
550
+
551
+ aChangedState.forEach(function(oItem){
552
+ //check if the provided state item holds the value to check for
553
+ if (oItem.hasOwnProperty(sSetAttribute)) {
554
+ var oExistingItem = aExistingState.find(function(oExisting){return oExisting.name == oItem.name;});
555
+
556
+ //compare to identify delta (only create a change if really necessary)
557
+ var vOldValue = oExistingItem && oExistingItem.hasOwnProperty(sSetAttribute) && oExistingItem[sSetAttribute];
558
+ var vNewValue = oItem[sSetAttribute];
559
+ var bValueChanged = vOldValue !== vNewValue;
560
+ if (bValueChanged) {
561
+ aSetterChanges.push(this._createAddRemoveChange(oControl, sOperation, {
562
+ [oItem.hasOwnProperty("key") ? "key" : "name"]: oItem.key || oItem.name,
563
+ targetAggregation: this.getTargetAggregation(),
564
+ value: oItem[sSetAttribute]
565
+ }));
566
+ }
567
+ }
568
+ }.bind(this));
540
569
 
541
- var aState = [];
570
+ return aSetterChanges;
571
+ };
572
+
573
+ SelectionController.prototype.changesToState = function(aChanges) {
542
574
 
543
- aChanges.forEach(function(oChange){
544
- var oStateDiffContent = merge({}, oChange.changeSpecificData.content);
545
- var iIndex = oStateDiffContent.index;
546
- delete oStateDiffContent.index;
575
+ var aState = [];
547
576
 
548
- //set the position in case its explicitly provided and different to the current position
549
- if (iIndex !== undefined) {
550
- oStateDiffContent.position = iIndex;
551
- }
577
+ aChanges.forEach(function(oChange){
578
+ var oStateDiffContent = merge({}, oChange.changeSpecificData.content);
579
+ var iIndex = oStateDiffContent.index;
580
+ delete oStateDiffContent.index;
581
+
582
+ //set the position in case its explicitly provided and different to the current position
583
+ if (iIndex !== undefined) {
584
+ oStateDiffContent.position = iIndex;
585
+ }
552
586
 
553
- //set the presence attribute to false in case of an explicit remove
554
- if (oChange.changeSpecificData.changeType === this.getChangeOperations()["remove"]) {
555
- oStateDiffContent[this._getPresenceAttribute()] = false;
556
- }
587
+ //set the presence attribute to false in case of an explicit remove
588
+ if (oChange.changeSpecificData.changeType === this.getChangeOperations()["remove"]) {
589
+ oStateDiffContent[this._getPresenceAttribute()] = false;
590
+ }
557
591
 
558
- aState.push(oStateDiffContent);
559
- }.bind(this));
592
+ aState.push(oStateDiffContent);
593
+ }.bind(this));
560
594
 
561
- return aState;
562
- };
595
+ return aState;
596
+ };
563
597
 
564
- SelectionController.prototype.prepareAdaptationData = function(oPropertyHelper, fnEnhace, bGroupData) {
598
+ SelectionController.prototype.prepareAdaptationData = function(oPropertyHelper, fnEnhace, bGroupData) {
565
599
 
566
- var aItems = [];
567
- var mItemsGrouped = bGroupData ? {} : null;
600
+ var aItems = [];
601
+ var mItemsGrouped = bGroupData ? {} : null;
568
602
 
569
- var bEnhance = fnEnhace instanceof Function;
603
+ var bEnhance = fnEnhace instanceof Function;
570
604
 
571
- oPropertyHelper.getProperties().forEach(function(oProperty) {
605
+ oPropertyHelper.getProperties().forEach(function(oProperty) {
572
606
 
573
- var mItem = {};
574
- mItem.key = oProperty.name || oProperty.key;
575
- mItem.name = oProperty.name || oProperty.key;
607
+ var mItem = {};
608
+ mItem.key = oProperty.name || oProperty.key;
609
+ mItem.name = oProperty.name || oProperty.key;
576
610
 
577
- if (bEnhance) {
578
- var bIsValid = fnEnhace(mItem, oProperty);
579
- if (!bIsValid) {
580
- return;
581
- }
582
- }
611
+ if (bEnhance) {
612
+ var bIsValid = fnEnhace(mItem, oProperty);
613
+ if (!bIsValid) {
614
+ return;
615
+ }
616
+ }
583
617
 
584
- mItem.label = oProperty.label || mItem.key;
585
- mItem.tooltip = oProperty.tooltip;
618
+ mItem.label = oProperty.label || mItem.key;
619
+ mItem.tooltip = oProperty.tooltip;
586
620
 
587
- if (mItemsGrouped) {
588
- mItem.group = oProperty.group ? oProperty.group : "BASIC";
589
- mItem.groupLabel = oProperty.groupLabel;
590
- mItemsGrouped[mItem.group] = mItemsGrouped[mItem.group] ? mItemsGrouped[mItem.group] : [];
591
- mItemsGrouped[mItem.group].push(mItem);
592
- }
621
+ if (mItemsGrouped) {
622
+ mItem.group = oProperty.group ? oProperty.group : "BASIC";
623
+ mItem.groupLabel = oProperty.groupLabel;
624
+ mItemsGrouped[mItem.group] = mItemsGrouped[mItem.group] ? mItemsGrouped[mItem.group] : [];
625
+ mItemsGrouped[mItem.group].push(mItem);
626
+ }
593
627
 
594
- aItems.push(mItem);
628
+ aItems.push(mItem);
595
629
 
596
- });
630
+ });
597
631
 
598
- var oAdaptationData = {
599
- items: aItems
600
- };
632
+ var oAdaptationData = {
633
+ items: aItems
634
+ };
601
635
 
602
- if (mItemsGrouped) {
603
- oAdaptationData.itemsGrouped = this._buildGroupStructure(mItemsGrouped);
604
- }
636
+ if (mItemsGrouped) {
637
+ oAdaptationData.itemsGrouped = this._buildGroupStructure(mItemsGrouped);
638
+ }
605
639
 
606
- return oAdaptationData;
640
+ return oAdaptationData;
607
641
 
608
- };
642
+ };
609
643
 
610
644
 
611
- SelectionController.prototype._buildGroupStructure = function(mItemsGrouped) {
612
- var aGroupedItems = [];
613
- Object.keys(mItemsGrouped).forEach(function(sGroupKey){
614
- this.sortP13nData("generic", mItemsGrouped[sGroupKey]);
615
- aGroupedItems.push({
616
- group: sGroupKey,
617
- groupLabel: mItemsGrouped[sGroupKey][0].groupLabel || sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("p13n.BASIC_DEFAULT_GROUP"),//Grouplabel might not be necessarily be propagated to every item
618
- groupVisible: true,
619
- items: mItemsGrouped[sGroupKey]
620
- });
621
- }.bind(this));
622
- return aGroupedItems;
645
+ SelectionController.prototype._buildGroupStructure = function(mItemsGrouped) {
646
+ var aGroupedItems = [];
647
+ Object.keys(mItemsGrouped).forEach(function(sGroupKey){
648
+ this.sortP13nData("generic", mItemsGrouped[sGroupKey]);
649
+ aGroupedItems.push({
650
+ group: sGroupKey,
651
+ groupLabel: mItemsGrouped[sGroupKey][0].groupLabel || sap.ui.getCore().getLibraryResourceBundle("sap.m").getText("p13n.BASIC_DEFAULT_GROUP"),//Grouplabel might not be necessarily be propagated to every item
652
+ groupVisible: true,
653
+ items: mItemsGrouped[sGroupKey]
654
+ });
655
+ }.bind(this));
656
+ return aGroupedItems;
623
657
 
624
- };
658
+ };
625
659
 
626
- SelectionController.prototype.sortP13nData = function (oSorting, aItems) {
660
+ SelectionController.prototype.sortP13nData = function (oSorting, aItems) {
627
661
 
628
- var mP13nTypeSorting = oSorting;
662
+ var mP13nTypeSorting = oSorting;
629
663
 
630
- var sPositionAttribute = mP13nTypeSorting.position;
631
- var sSelectedAttribute = mP13nTypeSorting.visible;
664
+ var sPositionAttribute = mP13nTypeSorting.position;
665
+ var sSelectedAttribute = mP13nTypeSorting.visible;
632
666
 
633
- var sLocale = Configuration.getLocale().toString();
667
+ var sLocale = Configuration.getLocale().toString();
634
668
 
635
- var oCollator = window.Intl.Collator(sLocale, {});
669
+ var oCollator = window.Intl.Collator(sLocale, {});
636
670
 
637
- // group selected / unselected --> sort alphabetically in each group
638
- aItems.sort(function(mField1, mField2) {
639
- if (mField1[sSelectedAttribute] && mField2[sSelectedAttribute]) {
640
- return (mField1[sPositionAttribute] || 0) - (mField2[sPositionAttribute] || 0);
641
- } else if (mField1[sSelectedAttribute]) {
642
- return -1;
643
- } else if (mField2[sSelectedAttribute]) {
644
- return 1;
645
- } else if (!mField1[sSelectedAttribute] && !mField2[sSelectedAttribute]) {
646
- return oCollator.compare(mField1.label, mField2.label);
647
- }
648
- });
649
- };
671
+ // group selected / unselected --> sort alphabetically in each group
672
+ aItems.sort(function(mField1, mField2) {
673
+ if (mField1[sSelectedAttribute] && mField2[sSelectedAttribute]) {
674
+ return (mField1[sPositionAttribute] || 0) - (mField2[sPositionAttribute] || 0);
675
+ } else if (mField1[sSelectedAttribute]) {
676
+ return -1;
677
+ } else if (mField2[sSelectedAttribute]) {
678
+ return 1;
679
+ } else if (!mField1[sSelectedAttribute] && !mField2[sSelectedAttribute]) {
680
+ return oCollator.compare(mField1.label, mField2.label);
681
+ }
682
+ });
683
+ };
650
684
 
651
- SelectionController.prototype.arrayToMap = function(aArray) {
652
- return aArray.reduce(function(mMap, oProp, iIndex){
653
- mMap[oProp.key] = oProp;
654
- mMap[oProp.key].position = iIndex;
655
- return mMap;
656
- }, {});
657
- };
685
+ SelectionController.prototype.arrayToMap = function(aArray) {
686
+ return aArray.reduce(function(mMap, oProp, iIndex){
687
+ mMap[oProp.key] = oProp;
688
+ mMap[oProp.key].position = iIndex;
689
+ return mMap;
690
+ }, {});
691
+ };
658
692
 
659
- SelectionController.prototype.destroy = function() {
693
+ SelectionController.prototype.destroy = function() {
660
694
  BaseObject.prototype.destroy.apply(this, arguments);
661
- this._oAdaptationControl = null;
662
- this._bLiveMode = null;
663
- this._oPanel = null;
664
- this._bResetEnabled = null;
665
- this._oAdaptationModel = null;
666
- };
695
+ this._oAdaptationControl = null;
696
+ this._bLiveMode = null;
697
+ this._oPanel = null;
698
+ this._bResetEnabled = null;
699
+ this._oAdaptationModel = null;
700
+ };
667
701
 
668
702
  return SelectionController;
669
703