@openui5/sap.m 1.103.1 → 1.106.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 (494) hide show
  1. package/.eslintrc.json +2 -3
  2. package/.reuse/dep5 +35 -15
  3. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
  4. package/THIRDPARTY.txt +64 -21
  5. package/package.json +4 -4
  6. package/src/sap/m/.library +17 -1
  7. package/src/sap/m/AccButton.js +1 -1
  8. package/src/sap/m/ActionListItem.js +1 -1
  9. package/src/sap/m/ActionSelect.js +1 -1
  10. package/src/sap/m/ActionSheet.js +1 -1
  11. package/src/sap/m/App.js +2 -3
  12. package/src/sap/m/AssociativeOverflowToolbar.js +1 -1
  13. package/src/sap/m/Avatar.js +2 -2
  14. package/src/sap/m/BadgeEnabler.js +1 -2
  15. package/src/sap/m/Bar.js +11 -10
  16. package/src/sap/m/Breadcrumbs.js +2 -2
  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 +49 -10
  20. package/src/sap/m/ButtonRenderer.js +10 -2
  21. package/src/sap/m/Carousel.js +3 -4
  22. package/src/sap/m/CarouselLayout.js +1 -1
  23. package/src/sap/m/CarouselRenderer.js +3 -3
  24. package/src/sap/m/CheckBox.js +46 -6
  25. package/src/sap/m/CheckBoxRenderer.js +1 -0
  26. package/src/sap/m/ColorPalette.js +1 -1
  27. package/src/sap/m/ColorPalettePopover.js +1 -1
  28. package/src/sap/m/Column.js +5 -5
  29. package/src/sap/m/ColumnHeaderPopover.js +5 -7
  30. package/src/sap/m/ColumnListItem.js +1 -4
  31. package/src/sap/m/ColumnListItemRenderer.js +1 -2
  32. package/src/sap/m/ColumnPopoverActionItem.js +3 -3
  33. package/src/sap/m/ColumnPopoverCustomItem.js +3 -3
  34. package/src/sap/m/ColumnPopoverItem.js +3 -3
  35. package/src/sap/m/ColumnPopoverSelectListItem.js +3 -5
  36. package/src/sap/m/ColumnPopoverSortItem.js +3 -3
  37. package/src/sap/m/ComboBox.js +6 -5
  38. package/src/sap/m/ComboBoxBase.js +3 -7
  39. package/src/sap/m/ComboBoxBaseRenderer.js +2 -2
  40. package/src/sap/m/ComboBoxTextField.js +1 -7
  41. package/src/sap/m/ComboBoxTextFieldRenderer.js +19 -4
  42. package/src/sap/m/CustomDynamicDateOption.js +1 -1
  43. package/src/sap/m/CustomListItem.js +1 -1
  44. package/src/sap/m/CustomTile.js +1 -1
  45. package/src/sap/m/CustomTreeItem.js +3 -3
  46. package/src/sap/m/CustomTreeItemRenderer.js +2 -2
  47. package/src/sap/m/DatePicker.js +16 -26
  48. package/src/sap/m/DateRangeSelection.js +45 -38
  49. package/src/sap/m/DateTimeField.js +87 -20
  50. package/src/sap/m/DateTimeInput.js +1 -1
  51. package/src/sap/m/DateTimePicker.js +58 -32
  52. package/src/sap/m/DateTimePickerRenderer.js +1 -1
  53. package/src/sap/m/Dialog.js +44 -2
  54. package/src/sap/m/DisplayListItem.js +1 -1
  55. package/src/sap/m/DraftIndicator.js +1 -1
  56. package/src/sap/m/DynamicDate.js +1 -1
  57. package/src/sap/m/DynamicDateFormat.js +2 -5
  58. package/src/sap/m/DynamicDateOption.js +43 -16
  59. package/src/sap/m/DynamicDateRange.js +49 -7
  60. package/src/sap/m/DynamicDateRangeRenderer.js +5 -2
  61. package/src/sap/m/DynamicDateUtil.js +23 -2
  62. package/src/sap/m/DynamicDateValueHelpUIType.js +1 -1
  63. package/src/sap/m/ExpandableText.js +1 -1
  64. package/src/sap/m/FacetFilter.js +2 -2
  65. package/src/sap/m/FacetFilterItem.js +1 -1
  66. package/src/sap/m/FacetFilterList.js +4 -4
  67. package/src/sap/m/FeedContent.js +1 -1
  68. package/src/sap/m/FeedInput.js +1 -1
  69. package/src/sap/m/FeedListItem.js +1 -1
  70. package/src/sap/m/FeedListItemAction.js +1 -1
  71. package/src/sap/m/Fiori20Adapter.js +2 -2
  72. package/src/sap/m/FlexBox.js +1 -1
  73. package/src/sap/m/FlexItemData.js +1 -1
  74. package/src/sap/m/FormattedText.js +1 -1
  75. package/src/sap/m/GenericTag.js +1 -1
  76. package/src/sap/m/GenericTile.js +116 -23
  77. package/src/sap/m/GenericTileLineModeRenderer.js +4 -4
  78. package/src/sap/m/GenericTileRenderer.js +23 -10
  79. package/src/sap/m/GroupHeaderListItem.js +1 -1
  80. package/src/sap/m/GrowingEnablement.js +60 -36
  81. package/src/sap/m/GrowingList.js +1 -1
  82. package/src/sap/m/HBox.js +1 -1
  83. package/src/sap/m/HeaderContainer.js +34 -32
  84. package/src/sap/m/HeaderContainerItemNavigator.js +3 -6
  85. package/src/sap/m/IconTabBar.js +54 -22
  86. package/src/sap/m/IconTabBarSelectList.js +1 -1
  87. package/src/sap/m/IconTabFilter.js +1 -1
  88. package/src/sap/m/IconTabFilterExpandButtonBadge.js +1 -1
  89. package/src/sap/m/IconTabHeader.js +6 -19
  90. package/src/sap/m/IconTabSeparator.js +1 -1
  91. package/src/sap/m/IllustratedMessage.js +98 -25
  92. package/src/sap/m/IllustratedMessageRenderer.js +10 -6
  93. package/src/sap/m/Illustration.js +8 -1
  94. package/src/sap/m/IllustrationPool.js +1 -0
  95. package/src/sap/m/IllustrationRenderer.js +2 -1
  96. package/src/sap/m/Image.js +73 -3
  97. package/src/sap/m/ImageContent.js +1 -1
  98. package/src/sap/m/ImageRenderer.js +66 -2
  99. package/src/sap/m/Input.js +62 -7
  100. package/src/sap/m/InputBase.js +1 -1
  101. package/src/sap/m/InputBaseRenderer.js +2 -2
  102. package/src/sap/m/InputListItem.js +1 -1
  103. package/src/sap/m/InputRenderer.js +4 -0
  104. package/src/sap/m/InstanceManager.js +6 -6
  105. package/src/sap/m/Label.js +34 -4
  106. package/src/sap/m/LabelRenderer.js +7 -2
  107. package/src/sap/m/LightBox.js +2 -2
  108. package/src/sap/m/LightBoxItem.js +1 -1
  109. package/src/sap/m/Link.js +74 -10
  110. package/src/sap/m/LinkRenderer.js +26 -12
  111. package/src/sap/m/List.js +38 -1
  112. package/src/sap/m/ListBase.js +109 -44
  113. package/src/sap/m/ListBaseRenderer.js +7 -15
  114. package/src/sap/m/ListItemBase.js +40 -11
  115. package/src/sap/m/ListItemBaseRenderer.js +17 -6
  116. package/src/sap/m/ListRenderer.js +2 -2
  117. package/src/sap/m/MaskEnabler.js +52 -2
  118. package/src/sap/m/MaskInput.js +23 -1
  119. package/src/sap/m/MaskInputRule.js +1 -1
  120. package/src/sap/m/Menu.js +1 -1
  121. package/src/sap/m/MenuButton.js +1 -1
  122. package/src/sap/m/MenuItem.js +1 -1
  123. package/src/sap/m/MenuListItem.js +1 -1
  124. package/src/sap/m/MessageBox.js +1 -1
  125. package/src/sap/m/MessageItem.js +3 -4
  126. package/src/sap/m/MessageListItem.js +10 -6
  127. package/src/sap/m/MessagePage.js +1 -1
  128. package/src/sap/m/MessagePopover.js +4 -1
  129. package/src/sap/m/MessagePopoverItem.js +1 -1
  130. package/src/sap/m/MessageStrip.js +1 -1
  131. package/src/sap/m/MessageToast.js +1 -1
  132. package/src/sap/m/MessageView.js +1 -1
  133. package/src/sap/m/MultiComboBox.js +5 -16
  134. package/src/sap/m/MultiEditField.js +1 -1
  135. package/src/sap/m/MultiInput.js +1 -15
  136. package/src/sap/m/NavContainer.js +21 -19
  137. package/src/sap/m/NewsContent.js +2 -3
  138. package/src/sap/m/NotificationList.js +1 -1
  139. package/src/sap/m/NotificationListBase.js +1 -1
  140. package/src/sap/m/NotificationListGroup.js +3 -7
  141. package/src/sap/m/NotificationListGroupRenderer.js +1 -1
  142. package/src/sap/m/NotificationListItem.js +1 -1
  143. package/src/sap/m/NumericContent.js +1 -1
  144. package/src/sap/m/NumericInput.js +1 -1
  145. package/src/sap/m/ObjectAttribute.js +1 -1
  146. package/src/sap/m/ObjectHeader.js +3 -3
  147. package/src/sap/m/ObjectIdentifier.js +8 -5
  148. package/src/sap/m/ObjectListItem.js +7 -1
  149. package/src/sap/m/ObjectMarker.js +1 -1
  150. package/src/sap/m/ObjectNumber.js +2 -3
  151. package/src/sap/m/ObjectNumberRenderer.js +10 -3
  152. package/src/sap/m/ObjectStatus.js +2 -3
  153. package/src/sap/m/ObjectStatusRenderer.js +2 -2
  154. package/src/sap/m/OverflowToolbar.js +3 -8
  155. package/src/sap/m/OverflowToolbarAssociativePopover.js +1 -1
  156. package/src/sap/m/OverflowToolbarAssociativePopoverControls.js +3 -8
  157. package/src/sap/m/OverflowToolbarAssociativePopoverRenderer.js +2 -2
  158. package/src/sap/m/OverflowToolbarButton.js +2 -2
  159. package/src/sap/m/OverflowToolbarLayoutData.js +1 -1
  160. package/src/sap/m/OverflowToolbarToggleButton.js +1 -1
  161. package/src/sap/m/P13nAnyFilterItem.js +3 -3
  162. package/src/sap/m/P13nColumnsItem.js +3 -3
  163. package/src/sap/m/P13nColumnsPanel.js +3 -3
  164. package/src/sap/m/P13nConditionPanel.js +10 -3
  165. package/src/sap/m/P13nDialog.js +3 -3
  166. package/src/sap/m/P13nDimMeasureItem.js +3 -3
  167. package/src/sap/m/P13nDimMeasurePanel.js +3 -3
  168. package/src/sap/m/P13nFilterItem.js +3 -3
  169. package/src/sap/m/P13nFilterPanel.js +3 -3
  170. package/src/sap/m/P13nGroupItem.js +3 -3
  171. package/src/sap/m/P13nGroupPanel.js +3 -3
  172. package/src/sap/m/P13nItem.js +3 -3
  173. package/src/sap/m/P13nOperationsHelper.js +2 -2
  174. package/src/sap/m/P13nPanel.js +3 -3
  175. package/src/sap/m/P13nSelectionItem.js +3 -3
  176. package/src/sap/m/P13nSelectionPanel.js +3 -3
  177. package/src/sap/m/P13nSortItem.js +3 -3
  178. package/src/sap/m/P13nSortPanel.js +3 -3
  179. package/src/sap/m/PDFViewer.js +2 -2
  180. package/src/sap/m/PDFViewerRenderer.js +1 -0
  181. package/src/sap/m/Page.js +1 -3
  182. package/src/sap/m/PageAccessibleLandmarkInfo.js +1 -1
  183. package/src/sap/m/PagingButton.js +1 -1
  184. package/src/sap/m/Panel.js +1 -1
  185. package/src/sap/m/PlanningCalendar.js +4 -16
  186. package/src/sap/m/PlanningCalendarHeader.js +1 -5
  187. package/src/sap/m/PlanningCalendarLegend.js +1 -1
  188. package/src/sap/m/PlanningCalendarRow.js +1 -1
  189. package/src/sap/m/PlanningCalendarView.js +1 -1
  190. package/src/sap/m/Popover.js +11 -4
  191. package/src/sap/m/ProgressIndicator.js +1 -1
  192. package/src/sap/m/ProgressIndicatorRenderer.js +6 -3
  193. package/src/sap/m/PullToRefresh.js +1 -1
  194. package/src/sap/m/QuickView.js +3 -3
  195. package/src/sap/m/QuickViewBase.js +3 -3
  196. package/src/sap/m/QuickViewCard.js +3 -3
  197. package/src/sap/m/QuickViewGroup.js +1 -1
  198. package/src/sap/m/QuickViewGroupElement.js +3 -3
  199. package/src/sap/m/QuickViewPage.js +3 -3
  200. package/src/sap/m/RadioButton.js +47 -20
  201. package/src/sap/m/RadioButtonGroup.js +29 -26
  202. package/src/sap/m/RangeSlider.js +1 -3
  203. package/src/sap/m/RatingIndicator.js +8 -1
  204. package/src/sap/m/RatingIndicatorRenderer.js +13 -4
  205. package/src/sap/m/ResponsivePopover.js +3 -3
  206. package/src/sap/m/ResponsiveScale.js +1 -1
  207. package/src/sap/m/ScrollBar.js +1 -1
  208. package/src/sap/m/ScrollContainer.js +1 -1
  209. package/src/sap/m/SearchField.js +1 -1
  210. package/src/sap/m/SearchFieldRenderer.js +1 -0
  211. package/src/sap/m/SegmentedButton.js +1 -1
  212. package/src/sap/m/SegmentedButtonItem.js +1 -1
  213. package/src/sap/m/Select.js +8 -14
  214. package/src/sap/m/SelectDialog.js +2 -1
  215. package/src/sap/m/SelectDialogBase.js +1 -1
  216. package/src/sap/m/SelectList.js +1 -1
  217. package/src/sap/m/SelectListRenderer.js +2 -2
  218. package/src/sap/m/SelectionDetails.js +2 -2
  219. package/src/sap/m/SelectionDetailsFacade.js +2 -2
  220. package/src/sap/m/SelectionDetailsItem.js +1 -1
  221. package/src/sap/m/SelectionDetailsItemLine.js +1 -1
  222. package/src/sap/m/Shell.js +1 -1
  223. package/src/sap/m/SimpleFixFlex.js +1 -1
  224. package/src/sap/m/SinglePlanningCalendar.js +7 -9
  225. package/src/sap/m/SinglePlanningCalendarDayView.js +1 -1
  226. package/src/sap/m/SinglePlanningCalendarGrid.js +1 -7
  227. package/src/sap/m/SinglePlanningCalendarMonthGrid.js +1 -1
  228. package/src/sap/m/SinglePlanningCalendarMonthGridRenderer.js +0 -2
  229. package/src/sap/m/SinglePlanningCalendarMonthView.js +1 -1
  230. package/src/sap/m/SinglePlanningCalendarView.js +1 -1
  231. package/src/sap/m/SinglePlanningCalendarWeekView.js +12 -13
  232. package/src/sap/m/SinglePlanningCalendarWorkWeekView.js +1 -1
  233. package/src/sap/m/SlideTile.js +30 -5
  234. package/src/sap/m/Slider.js +1 -1
  235. package/src/sap/m/SliderTooltip.js +1 -3
  236. package/src/sap/m/SliderTooltipBase.js +1 -1
  237. package/src/sap/m/SliderTooltipBaseRenderer.js +2 -2
  238. package/src/sap/m/SliderTooltipContainer.js +1 -1
  239. package/src/sap/m/SliderTooltipContainerRenderer.js +2 -2
  240. package/src/sap/m/SliderTooltipRenderer.js +2 -2
  241. package/src/sap/m/SplitApp.js +1 -1
  242. package/src/sap/m/SplitButton.js +1 -3
  243. package/src/sap/m/SplitContainer.js +3 -7
  244. package/src/sap/m/StandardDynamicDateOption.js +9 -15
  245. package/src/sap/m/StandardListItem.js +1 -1
  246. package/src/sap/m/StandardListItemRenderer.js +2 -2
  247. package/src/sap/m/StandardTile.js +1 -1
  248. package/src/sap/m/StandardTreeItem.js +1 -1
  249. package/src/sap/m/StepInput.js +1 -1
  250. package/src/sap/m/SuggestionItem.js +1 -1
  251. package/src/sap/m/SuggestionsPopover.js +4 -2
  252. package/src/sap/m/Switch.js +1 -1
  253. package/src/sap/m/TabContainer.js +1 -1
  254. package/src/sap/m/TabContainerItem.js +1 -1
  255. package/src/sap/m/TabStrip.js +1 -1
  256. package/src/sap/m/TabStripItem.js +1 -1
  257. package/src/sap/m/Table.js +11 -9
  258. package/src/sap/m/TablePersoController.js +1 -1
  259. package/src/sap/m/TablePersoDialog.js +6 -15
  260. package/src/sap/m/TablePersoProvider.js +1 -1
  261. package/src/sap/m/TableRenderer.js +2 -9
  262. package/src/sap/m/TableSelectDialog.js +1 -1
  263. package/src/sap/m/Text.js +1 -1
  264. package/src/sap/m/TextArea.js +1 -1
  265. package/src/sap/m/TextAreaRenderer.js +1 -2
  266. package/src/sap/m/Tile.js +1 -1
  267. package/src/sap/m/TileContainer.js +1 -1
  268. package/src/sap/m/TileContent.js +8 -9
  269. package/src/sap/m/TileContentRenderer.js +3 -3
  270. package/src/sap/m/TimePicker.js +45 -8
  271. package/src/sap/m/TimePickerClock.js +2 -3
  272. package/src/sap/m/TimePickerClocks.js +5 -3
  273. package/src/sap/m/TimePickerClocksRenderer.js +4 -2
  274. package/src/sap/m/TimePickerInputs.js +1 -1
  275. package/src/sap/m/TimePickerInputsRenderer.js +1 -1
  276. package/src/sap/m/TimePickerInternals.js +1 -1
  277. package/src/sap/m/TimePickerSlider.js +1 -1
  278. package/src/sap/m/TimePickerSliders.js +3 -5
  279. package/src/sap/m/Title.js +1 -1
  280. package/src/sap/m/TitlePropagationSupport.js +1 -1
  281. package/src/sap/m/ToggleButton.js +2 -2
  282. package/src/sap/m/Token.js +1 -3
  283. package/src/sap/m/Tokenizer.js +1 -1
  284. package/src/sap/m/Toolbar.js +1 -1
  285. package/src/sap/m/ToolbarLayoutData.js +1 -1
  286. package/src/sap/m/ToolbarSeparator.js +1 -1
  287. package/src/sap/m/ToolbarSpacer.js +1 -1
  288. package/src/sap/m/Tree.js +8 -1
  289. package/src/sap/m/TreeItemBase.js +1 -1
  290. package/src/sap/m/TreeRenderer.js +0 -10
  291. package/src/sap/m/UploadCollection.js +2 -2
  292. package/src/sap/m/UploadCollectionItem.js +1 -1
  293. package/src/sap/m/UploadCollectionParameter.js +1 -1
  294. package/src/sap/m/UploadCollectionToolbarPlaceholder.js +1 -1
  295. package/src/sap/m/VBox.js +1 -1
  296. package/src/sap/m/ValueStateHeader.js +1 -1
  297. package/src/sap/m/VariantItem.js +160 -0
  298. package/src/sap/m/VariantManagement.js +717 -571
  299. package/src/sap/m/ViewSettingsCustomItem.js +1 -1
  300. package/src/sap/m/ViewSettingsCustomTab.js +1 -1
  301. package/src/sap/m/ViewSettingsDialog.js +1 -1
  302. package/src/sap/m/ViewSettingsFilterItem.js +1 -1
  303. package/src/sap/m/ViewSettingsItem.js +1 -1
  304. package/src/sap/m/VisibleItem.js +1 -1
  305. package/src/sap/m/WheelSlider.js +1 -1
  306. package/src/sap/m/WheelSliderContainer.js +1 -1
  307. package/src/sap/m/Wizard.js +10 -3
  308. package/src/sap/m/WizardProgressNavigator.js +1 -1
  309. package/src/sap/m/WizardStep.js +3 -1
  310. package/src/sap/m/_thirdparty/purify.js +1622 -0
  311. package/src/sap/m/changeHandler/AddTableColumn.js +12 -13
  312. package/src/sap/m/changeHandler/ChangeLinkTarget.js +2 -3
  313. package/src/sap/m/changeHandler/CombineButtons.js +19 -22
  314. package/src/sap/m/changeHandler/MoveTableColumns.js +6 -6
  315. package/src/sap/m/changeHandler/SelectIconTabBarFilter.js +5 -5
  316. package/src/sap/m/changeHandler/SplitMenuButton.js +7 -6
  317. package/src/sap/m/delegate/DateNavigation.js +0 -4
  318. package/src/sap/m/designtime/Link.designtime.js +19 -11
  319. package/src/sap/m/designtime/VariantManagement.designtime.js +36 -26
  320. package/src/sap/m/flexibility/EngineFlex.js +48 -0
  321. package/src/sap/m/inputUtils/selectionRange.js +1 -2
  322. package/src/sap/m/library.js +60 -7
  323. package/src/sap/m/messagebundle.properties +57 -6
  324. package/src/sap/m/messagebundle_ar.properties +39 -9
  325. package/src/sap/m/messagebundle_bg.properties +33 -3
  326. package/src/sap/m/messagebundle_ca.properties +32 -2
  327. package/src/sap/m/messagebundle_cs.properties +32 -2
  328. package/src/sap/m/messagebundle_cy.properties +34 -4
  329. package/src/sap/m/messagebundle_da.properties +32 -2
  330. package/src/sap/m/messagebundle_de.properties +32 -2
  331. package/src/sap/m/messagebundle_el.properties +35 -5
  332. package/src/sap/m/messagebundle_en.properties +34 -4
  333. package/src/sap/m/messagebundle_en_GB.properties +34 -4
  334. package/src/sap/m/messagebundle_en_US_sappsd.properties +33 -3
  335. package/src/sap/m/messagebundle_en_US_saprigi.properties +31 -3
  336. package/src/sap/m/messagebundle_en_US_saptrc.properties +33 -3
  337. package/src/sap/m/messagebundle_es.properties +33 -3
  338. package/src/sap/m/messagebundle_es_MX.properties +32 -2
  339. package/src/sap/m/messagebundle_et.properties +32 -2
  340. package/src/sap/m/messagebundle_fi.properties +36 -6
  341. package/src/sap/m/messagebundle_fr.properties +33 -3
  342. package/src/sap/m/messagebundle_fr_CA.properties +34 -4
  343. package/src/sap/m/messagebundle_hi.properties +34 -4
  344. package/src/sap/m/messagebundle_hr.properties +36 -6
  345. package/src/sap/m/messagebundle_hu.properties +34 -4
  346. package/src/sap/m/messagebundle_id.properties +34 -4
  347. package/src/sap/m/messagebundle_it.properties +33 -3
  348. package/src/sap/m/messagebundle_iw.properties +34 -4
  349. package/src/sap/m/messagebundle_ja.properties +33 -3
  350. package/src/sap/m/messagebundle_kk.properties +32 -2
  351. package/src/sap/m/messagebundle_ko.properties +40 -10
  352. package/src/sap/m/messagebundle_lt.properties +32 -2
  353. package/src/sap/m/messagebundle_lv.properties +32 -2
  354. package/src/sap/m/messagebundle_ms.properties +33 -3
  355. package/src/sap/m/messagebundle_nl.properties +46 -16
  356. package/src/sap/m/messagebundle_no.properties +34 -4
  357. package/src/sap/m/messagebundle_pl.properties +33 -3
  358. package/src/sap/m/messagebundle_pt.properties +37 -7
  359. package/src/sap/m/messagebundle_pt_PT.properties +32 -2
  360. package/src/sap/m/messagebundle_ro.properties +33 -3
  361. package/src/sap/m/messagebundle_ru.properties +33 -3
  362. package/src/sap/m/messagebundle_sh.properties +33 -3
  363. package/src/sap/m/messagebundle_sk.properties +32 -2
  364. package/src/sap/m/messagebundle_sl.properties +33 -3
  365. package/src/sap/m/messagebundle_sv.properties +32 -2
  366. package/src/sap/m/messagebundle_th.properties +65 -35
  367. package/src/sap/m/messagebundle_tr.properties +36 -6
  368. package/src/sap/m/messagebundle_uk.properties +33 -3
  369. package/src/sap/m/messagebundle_vi.properties +33 -3
  370. package/src/sap/m/messagebundle_zh_CN.properties +33 -3
  371. package/src/sap/m/messagebundle_zh_TW.properties +32 -2
  372. package/src/sap/m/p13n/AbstractContainer.js +7 -7
  373. package/src/sap/m/p13n/AbstractContainerItem.js +4 -4
  374. package/src/sap/m/p13n/BasePanel.js +24 -13
  375. package/src/sap/m/p13n/Container.js +3 -3
  376. package/src/sap/m/p13n/Engine.js +1254 -0
  377. package/src/sap/m/p13n/FlexUtil.js +161 -0
  378. package/src/sap/m/p13n/GroupController.js +145 -0
  379. package/src/sap/m/p13n/GroupPanel.js +12 -5
  380. package/src/sap/m/p13n/MetadataHelper.js +35 -0
  381. package/src/sap/m/p13n/PersistenceProvider.js +160 -0
  382. package/src/sap/m/p13n/Popup.js +49 -12
  383. package/src/sap/m/p13n/QueryPanel.js +3 -3
  384. package/src/sap/m/p13n/SelectionController.js +548 -0
  385. package/src/sap/m/p13n/SelectionPanel.js +23 -5
  386. package/src/sap/m/p13n/SortController.js +153 -0
  387. package/src/sap/m/p13n/SortPanel.js +15 -5
  388. package/src/sap/m/p13n/enum/PersistenceMode.js +43 -0
  389. package/src/sap/m/p13n/handler/xConfigHandler.js +166 -0
  390. package/src/sap/m/p13n/modification/FlexModificationHandler.js +90 -0
  391. package/src/sap/m/p13n/modification/LocalStorageModificationHandler.js +75 -0
  392. package/src/sap/m/p13n/modification/ModificationHandler.js +143 -0
  393. package/src/sap/m/p13n/modules/AdaptationProvider.js +67 -0
  394. package/src/sap/m/p13n/modules/DefaultProviderRegistry.js +147 -0
  395. package/src/sap/m/p13n/modules/StateHandlerRegistry.js +101 -0
  396. package/src/sap/m/p13n/modules/UIManager.js +230 -0
  397. package/src/sap/m/p13n/modules/xConfigAPI.js +288 -0
  398. package/src/sap/m/plugins/CellSelector.js +741 -0
  399. package/src/sap/m/plugins/ColumnResizer.js +15 -1
  400. package/src/sap/m/plugins/DataStateIndicator.js +2 -2
  401. package/src/sap/m/plugins/PasteProvider.js +1 -1
  402. package/src/sap/m/plugins/PluginBase.js +4 -3
  403. package/src/sap/m/rules/CheckBox.support.js +1 -1
  404. package/src/sap/m/rules/Image.support.js +1 -1
  405. package/src/sap/m/rules/Link.support.js +1 -1
  406. package/src/sap/m/rules/MessagePage.support.js +1 -1
  407. package/src/sap/m/rules/ObjectHeader.support.js +6 -6
  408. package/src/sap/m/rules/ObjectListItem.support.js +1 -1
  409. package/src/sap/m/rules/ObjectMarker.support.js +1 -1
  410. package/src/sap/m/rules/ObjectStatus.support.js +1 -1
  411. package/src/sap/m/rules/Panel.support.js +1 -1
  412. package/src/sap/m/rules/Select.support.js +1 -1
  413. package/src/sap/m/rules/Table.support.js +3 -3
  414. package/src/sap/m/semantic/AddAction.js +1 -1
  415. package/src/sap/m/semantic/CancelAction.js +1 -1
  416. package/src/sap/m/semantic/DeleteAction.js +1 -1
  417. package/src/sap/m/semantic/DetailPage.js +1 -1
  418. package/src/sap/m/semantic/DiscussInJamAction.js +1 -1
  419. package/src/sap/m/semantic/EditAction.js +1 -1
  420. package/src/sap/m/semantic/FavoriteAction.js +1 -1
  421. package/src/sap/m/semantic/FilterAction.js +1 -1
  422. package/src/sap/m/semantic/FilterSelect.js +1 -1
  423. package/src/sap/m/semantic/FlagAction.js +1 -1
  424. package/src/sap/m/semantic/ForwardAction.js +1 -1
  425. package/src/sap/m/semantic/FullscreenPage.js +1 -1
  426. package/src/sap/m/semantic/GroupAction.js +1 -1
  427. package/src/sap/m/semantic/GroupSelect.js +1 -1
  428. package/src/sap/m/semantic/MainAction.js +1 -1
  429. package/src/sap/m/semantic/MasterPage.js +1 -1
  430. package/src/sap/m/semantic/MessagesIndicator.js +1 -1
  431. package/src/sap/m/semantic/MultiSelectAction.js +1 -1
  432. package/src/sap/m/semantic/NegativeAction.js +1 -1
  433. package/src/sap/m/semantic/OpenInAction.js +1 -1
  434. package/src/sap/m/semantic/PositiveAction.js +1 -1
  435. package/src/sap/m/semantic/PrintAction.js +1 -1
  436. package/src/sap/m/semantic/SaveAction.js +1 -1
  437. package/src/sap/m/semantic/Segment.js +1 -1
  438. package/src/sap/m/semantic/SegmentedContainer.js +1 -1
  439. package/src/sap/m/semantic/SemanticButton.js +1 -1
  440. package/src/sap/m/semantic/SemanticConfiguration.js +3 -4
  441. package/src/sap/m/semantic/SemanticControl.js +1 -1
  442. package/src/sap/m/semantic/SemanticOverflowToolbarButton.js +1 -1
  443. package/src/sap/m/semantic/SemanticOverflowToolbarToggleButton.js +1 -1
  444. package/src/sap/m/semantic/SemanticPage.js +1 -1
  445. package/src/sap/m/semantic/SemanticSelect.js +1 -1
  446. package/src/sap/m/semantic/SemanticToggleButton.js +1 -3
  447. package/src/sap/m/semantic/SendEmailAction.js +1 -1
  448. package/src/sap/m/semantic/SendMessageAction.js +1 -1
  449. package/src/sap/m/semantic/ShareInJamAction.js +1 -1
  450. package/src/sap/m/semantic/ShareMenu.js +1 -1
  451. package/src/sap/m/semantic/ShareMenuPage.js +1 -1
  452. package/src/sap/m/semantic/SortAction.js +1 -1
  453. package/src/sap/m/semantic/SortSelect.js +1 -1
  454. package/src/sap/m/table/Util.js +30 -11
  455. package/src/sap/m/table/columnmenu/ActionItem.js +1 -1
  456. package/src/sap/m/table/columnmenu/Entry.js +1 -1
  457. package/src/sap/m/table/columnmenu/Item.js +1 -1
  458. package/src/sap/m/table/columnmenu/ItemBase.js +1 -1
  459. package/src/sap/m/table/columnmenu/Menu.js +50 -13
  460. package/src/sap/m/table/columnmenu/QuickAction.js +16 -8
  461. package/src/sap/m/table/columnmenu/QuickActionBase.js +18 -3
  462. package/src/sap/m/table/columnmenu/QuickActionItem.js +5 -6
  463. package/src/sap/m/table/columnmenu/QuickGroup.js +29 -5
  464. package/src/sap/m/table/columnmenu/QuickGroupItem.js +13 -1
  465. package/src/sap/m/table/columnmenu/QuickSort.js +1 -3
  466. package/src/sap/m/table/columnmenu/QuickSortItem.js +8 -7
  467. package/src/sap/m/table/columnmenu/QuickTotal.js +29 -5
  468. package/src/sap/m/table/columnmenu/QuickTotalItem.js +13 -1
  469. package/src/sap/m/themes/base/Breadcrumbs.less +6 -0
  470. package/src/sap/m/themes/base/Button.less +0 -1
  471. package/src/sap/m/themes/base/Carousel.less +8 -8
  472. package/src/sap/m/themes/base/CellSelector.less +9 -0
  473. package/src/sap/m/themes/base/CheckBox.less +1 -0
  474. package/src/sap/m/themes/base/Dialog.less +1 -0
  475. package/src/sap/m/themes/base/DisplayListItem.less +3 -3
  476. package/src/sap/m/themes/base/DynamicDateRange.less +4 -0
  477. package/src/sap/m/themes/base/FeedContent.less +13 -5
  478. package/src/sap/m/themes/base/GenericTile.less +56 -9
  479. package/src/sap/m/themes/base/IllustratedMessage.less +7 -0
  480. package/src/sap/m/themes/base/NewsContent.less +6 -0
  481. package/src/sap/m/themes/base/NumericContent.less +1 -1
  482. package/src/sap/m/themes/base/ObjectStatus.less +2 -1
  483. package/src/sap/m/themes/base/OverflowToolbarAssociativePopover.less +5 -1
  484. package/src/sap/m/themes/base/SelectList.less +0 -5
  485. package/src/sap/m/themes/base/SinglePlanningCalendarGrid.less +7 -0
  486. package/src/sap/m/themes/base/SlideTile.less +35 -4
  487. package/src/sap/m/themes/base/Table.less +11 -2
  488. package/src/sap/m/themes/base/TileContent.less +17 -0
  489. package/src/sap/m/themes/base/library.source.less +1 -0
  490. package/src/sap/m/upload/UploadSet.js +300 -23
  491. package/src/sap/m/upload/UploadSetItem.js +18 -7
  492. package/src/sap/m/upload/UploadSetRenderer.js +8 -16
  493. package/src/sap/m/upload/UploadSetToolbarPlaceholder.js +1 -1
  494. package/src/sap/m/upload/Uploader.js +1 -2
@@ -0,0 +1,143 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ sap.ui.define([
7
+ "sap/ui/base/Object",
8
+ "sap/ui/core/util/reflection/JsControlTreeModifier"
9
+ ], function(BaseObject, JsControlTreeModifier) {
10
+ "use strict";
11
+
12
+ var oModificationHandler;
13
+
14
+ /**
15
+ * @class This class offers modification capabilities without persistence.
16
+ * It should be used as the persistence layer in the {@link sap.m.p13n.Engine#register Engine#register} process.
17
+ *
18
+ * @author SAP SE
19
+ * @public
20
+ * @experimental Since 1.104.
21
+ * @alias sap.m.p13n.modification.ModificationHandler
22
+ */
23
+ var ModificationHandler = BaseObject.extend("sap.m.p13n.modification.ModificationHandler");
24
+
25
+ var mInitialState = new WeakMap();
26
+
27
+ /**
28
+ * Should implement the appliance of changes
29
+ *
30
+ * @param {array} aChanges An array of changes
31
+ * @param {object} oModificationPayload An object providing a modification handler specific payload
32
+ * @returns {Promise} Returns a <code>Promise</code> reflecting change processing
33
+ */
34
+ ModificationHandler.prototype.processChanges = function(aChanges, oModificationPayload){
35
+
36
+ var aChangeAppliance = [];
37
+
38
+ aChanges.forEach(function(oChange){
39
+ var oChangeContent = oChange.changeSpecificData.content;
40
+ var oControl = oChange.selectorElement;
41
+ var sChangeType = oChange.changeSpecificData.changeType;
42
+ // var oItem = sap.ui.getCore().byId(oChangeContent.name);
43
+ // var sTargetAggregation = oChangeContent.targetAggregation;
44
+ // var oSelector = oChange.selectorElement;
45
+ // var oContent = oChange.changeSpecificData.content;
46
+
47
+ var oTransientChange = {
48
+ getContent: function() {
49
+ return oChangeContent;
50
+ },
51
+
52
+ getChangeType: function() {
53
+ return sChangeType;
54
+ },
55
+
56
+ getControl: function() {
57
+ return oControl;
58
+ },
59
+
60
+ setRevertData: function() {
61
+ }
62
+ };
63
+
64
+ var oPromise = new Promise(function(resolve){
65
+ sap.ui.require(["sap/m/flexibility/EngineFlex"], function(EngineFlex){
66
+ var pAppliance = EngineFlex[sChangeType].changeHandler.applyChange(oTransientChange, oControl, {
67
+ modifier: JsControlTreeModifier
68
+ });
69
+
70
+ resolve(pAppliance);
71
+ });
72
+ });
73
+
74
+ aChangeAppliance.push(oPromise);
75
+ });
76
+
77
+ return Promise.all(aChangeAppliance);
78
+ };
79
+
80
+ /**
81
+ * Should implement a function that returns a promise resolving
82
+ * after the current pending changes have been applied.
83
+ *
84
+ * @private
85
+ * @param {object} mPropertyBag A propertybag containing modification specific configuration
86
+ * @param {sap.ui.core.Element} mPropertyBag.element The according element which should be checked
87
+ * @param {object} oModificationPayload An object providing a modification handler specific payload
88
+ * @returns {Promise} Returns a <code>Promise</code> reflecting change appliance
89
+
90
+ */
91
+ ModificationHandler.prototype.waitForChanges = function(mPropertyBag, oModificationPayload) {
92
+ return Promise.resolve();
93
+ };
94
+
95
+ /**
96
+ * Should implement a function that returns a promise resolving
97
+ * after the current pending changes have been reset.
98
+ *
99
+ * @private
100
+ * @param {object} mPropertyBag A propertybag containing modification specific configuration
101
+ * @param {sap.ui.core.Element} mPropertyBag.selector The according element which should be checked
102
+ * @param {object} oModificationPayload An object providing a modification handler specific payload
103
+ * @returns {Promise} Returns a <code>Promise</code> reflecting the reset execution
104
+ */
105
+ ModificationHandler.prototype.reset = function(mPropertyBag, oModificationPayload) {
106
+ var oControl = mPropertyBag.selector;
107
+ return sap.m.p13n.Engine.getInstance().applyState(oControl, mInitialState.get(oControl), true);
108
+ };
109
+
110
+ ModificationHandler.prototype.initialize = function(oControl) {
111
+ var pInitial, oInitialState;
112
+
113
+ pInitial = sap.m.p13n.Engine.getInstance().retrieveState(oControl)
114
+ .then(function(oRetrievedState){
115
+ oInitialState = oRetrievedState;
116
+ mInitialState.set(oControl, oInitialState);
117
+ });
118
+
119
+ return pInitial;
120
+ };
121
+
122
+ /**
123
+ * Should implement a function that returns information ont modification support
124
+ *
125
+ * @private
126
+ * @param {object} mPropertyBag A propertybag containing modification specific configuration
127
+ * @param {sap.ui.core.Element} mPropertyBag.selector The according element which should be checked
128
+ * @param {object} oModificationPayload An object providing a modification handler specific payload
129
+ * @returns {boolean} reflects the modification support state
130
+ */
131
+ ModificationHandler.prototype.isModificationSupported = function(mPropertyBag, oModificationPayload){
132
+ return false;
133
+ };
134
+
135
+ ModificationHandler.getInstance = function() {
136
+ if (!oModificationHandler){
137
+ oModificationHandler = new ModificationHandler();
138
+ }
139
+ return oModificationHandler;
140
+ };
141
+
142
+ return ModificationHandler;
143
+ });
@@ -0,0 +1,67 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ sap.ui.define([
7
+ "sap/ui/base/Object"
8
+ ], function(BaseObject) {
9
+ "use strict";
10
+
11
+ /**
12
+ * @class Interface to implement basic adaptation functionality.
13
+ * Implementing this interface enables the usage of certain p13n
14
+ * modules such as the UIManager and the DefaultProviderRegistry.
15
+ *
16
+ * @author SAP SE
17
+ * @since 1.104
18
+ * @private
19
+ *
20
+ * @ui5-restricted sap.m
21
+ * @alias sap.m.p13n.AdaptationProvider
22
+ */
23
+ var AdaptationProvider = BaseObject.extend("sap.m.p13n.AdaptationProvider", {
24
+ metadata: {
25
+ baseType : "sap.m.p13n.AdaptationProvider"
26
+ }
27
+ });
28
+
29
+ /**
30
+ * Initialize adaptation for a provided control instance, set of keys and properties
31
+ *
32
+ * @param {string|sap.ui.core.Control} vControl The control id or instance
33
+ * @param {Array} aKeys An Array of keys
34
+ * @param {Array} [aCustomInfo] An Array of propertyinfos
35
+ *
36
+ * @returns {Promise} A Promise resolving in the according property helper instance
37
+ */
38
+ AdaptationProvider.prototype.initAdaptation = function(vControl, aKeys, aCustomInfo){
39
+ throw new Error("Please implement 'initAdaptation'");
40
+ };
41
+
42
+ /**
43
+ * Reset the personalization for a provided control instance and key
44
+ *
45
+ * @param {sap.ui.core.Control} oControl The control instance
46
+ * @param {string} sKey Key to be affected by reset
47
+ *
48
+ * @returns {Promise} A Promise resolving after the reset has been processed
49
+ */
50
+ AdaptationProvider.prototype.reset = function(oControl, sKey){
51
+ throw new Error("Please implement 'reset'");
52
+ };
53
+
54
+ /**
55
+ * Reset the personalization for a provided control instance and key
56
+ *
57
+ * @param {sap.ui.core.Control} oControl The control instance
58
+ * @param {Array} aKeys An Array of keys
59
+ *
60
+ * @returns {Promise} A Promise resolving after all changes have been processed
61
+ */
62
+ AdaptationProvider.prototype.handleP13n = function(oControl, aKeys){
63
+ throw new Error("Please implement 'handleP13n'");
64
+ };
65
+
66
+ return AdaptationProvider;
67
+ });
@@ -0,0 +1,147 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([
8
+ "sap/ui/base/Object",
9
+ "sap/m/p13n/PersistenceProvider",
10
+ "sap/ui/fl/Utils"
11
+ ], function (BaseObject, PersistenceProvider, FLUtils) {
12
+ "use strict";
13
+
14
+ var ERROR_INSTANCING = "DefaultProviderRegistry: This class is a singleton and should not be used without an AdaptationProvider. Please use 'sap.m.p13n.Engine.getInstance().defaultProviderRegistry' instead";
15
+
16
+ //Singleton storage
17
+ var oDefaultProviderRegistry;
18
+
19
+ /**
20
+ * Constructor for a new DefaultProviderRegistry.
21
+ * This registry creates and manages default persistence providers for each persistence mode.
22
+ * It is intended for use cases where no dedicated provider can or should be created by an application.
23
+ * The DefaultProviderRegistry currently resides in the Engine and must never be called separately.
24
+ *
25
+ * @class
26
+ * @extends sap.ui.base.Object
27
+ *
28
+ * @author SAP SE
29
+ * @version 1.106.0
30
+ *
31
+ * @private
32
+ * @since 1.104
33
+ * @alias sap.m.p13n.modules.DefaultProviderRegistry
34
+ */
35
+ var DefaultProviderRegistry = BaseObject.extend("sap.m.p13n.modules.DefaultProviderRegistry", {
36
+ constructor: function(oEngine) {
37
+
38
+ if (oDefaultProviderRegistry) {
39
+ throw Error(ERROR_INSTANCING);
40
+ }
41
+
42
+ BaseObject.call(this);
43
+ this._mDefaultProviders = {};
44
+ this._oEngine = oEngine;
45
+ }
46
+ });
47
+
48
+ /**
49
+ * @override
50
+ * @inheritDoc
51
+ */
52
+ DefaultProviderRegistry.prototype.destroy = function() {
53
+ Object.keys(this._mDefaultProviders).forEach(function (sProviderName) {
54
+ this._mDefaultProviders[sProviderName].destroy();
55
+ delete this._mDefaultProviders[sProviderName];
56
+ }.bind(this));
57
+ this._oEngine = null;
58
+ oDefaultProviderRegistry = null;
59
+ BaseObject.prototype.destroy.apply(this, arguments);
60
+ };
61
+
62
+ /**
63
+ * @private
64
+ * @ui5-restricted sap.m
65
+ *
66
+ * Attaches a control to a default persistence provider held inside the DefaultProviderRegistry for the given <code>PersistenceMode</code>
67
+ *
68
+ * @param {sap.ui.core.Control|string} vElement The control instance or a control id.
69
+ * @param {sap.m.enum.PersistenceMode} sPersistenceMode Desired persistence mode for the retrieved persistence provider
70
+ * @returns {sap.m.p13n.PersistenceProvider} Returns a persistence provider instance, if possible
71
+ */
72
+ DefaultProviderRegistry.prototype.attach = function (vElement, sPersistenceMode) {
73
+ if (this._oEngine.isRegisteredForModification(vElement)) { // Modification settings for a registered element are only determined once in the Engine
74
+ throw new Error("DefaultProviderRegistry: You must not change the modificationSettings for an already registered element");
75
+ }
76
+
77
+ var oElement = typeof vElement === "string" ? sap.ui.getCore().byId(vElement) : vElement, sElementId = typeof vElement === "string" ? vElement : vElement.getId();
78
+ var oDefaultProvider = this._retrieveDefaultProvider(oElement, sPersistenceMode);
79
+
80
+ if (oDefaultProvider.getFor().indexOf(sElementId) === -1) {
81
+ oDefaultProvider.addFor(vElement);
82
+ }
83
+
84
+ return oDefaultProvider;
85
+ };
86
+
87
+ /**
88
+ * @private
89
+ * @ui5-restricted sap.m
90
+ *
91
+ * Detaches a control from any existing default persistence provider
92
+ *
93
+ * @param {sap.ui.core.Control|string} vControl The control instance or a control id.
94
+ */
95
+ DefaultProviderRegistry.prototype.detach = function (vControl) {
96
+ Object.keys(this._mDefaultProviders).forEach(function (sMode) {
97
+ var oDefaultProvider = this._mDefaultProviders[sMode];
98
+ oDefaultProvider.removeFor(vControl);
99
+ }.bind(this));
100
+ };
101
+
102
+ /**
103
+ * @private
104
+ * @ui5-restricted sap.ui.mdc
105
+ *
106
+ * Returns a promise resolving a default persistence provider for the given <code>Control</code> and <code>PersistenceMode</code>.
107
+ * @param {sap.ui.core.Element} oElement The element instance.
108
+ * @param {sap.ui.mdc.enum.PersistenceMode} sPersistenceMode Desired persistence mode for the retrieved persistence provider
109
+ * @returns {Promise} Returns a <code>Promise</code> returning a persistence provider instance, if possible
110
+ */
111
+ DefaultProviderRegistry.prototype._retrieveDefaultProvider = function (oElement, sPersistenceMode) {
112
+
113
+ if (!this._mDefaultProviders[sPersistenceMode]) {
114
+ var oProvider = new PersistenceProvider("defaultProviderRegistry" + sPersistenceMode, {
115
+ mode: sPersistenceMode
116
+ });
117
+
118
+ var fnAttachVariantModel = function(){
119
+ var oModel = oElement.getModel(FLUtils.VARIANT_MODEL_NAME);
120
+ if (oModel) {
121
+ oProvider.setModel(oModel, FLUtils.VARIANT_MODEL_NAME);
122
+ oElement.detachEvent("modelContextChange", fnAttachVariantModel);
123
+ }
124
+ };
125
+
126
+ oElement.attachEvent("modelContextChange", fnAttachVariantModel);
127
+ this._mDefaultProviders[sPersistenceMode] = oProvider;
128
+ }
129
+
130
+ return this._mDefaultProviders[sPersistenceMode];
131
+ };
132
+
133
+ /**
134
+ * @private
135
+ * @ui5-restricted sap.m
136
+ *
137
+ * This method is the central point of access to the DefaultProviderRegistry Singleton.
138
+ */
139
+ DefaultProviderRegistry.getInstance = function(Engine) {
140
+ if (!oDefaultProviderRegistry) {
141
+ oDefaultProviderRegistry = new DefaultProviderRegistry(Engine);
142
+ }
143
+ return oDefaultProviderRegistry;
144
+ };
145
+
146
+ return DefaultProviderRegistry;
147
+ });
@@ -0,0 +1,101 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([
8
+ "sap/ui/base/EventProvider"
9
+ ], function (EventProvider) {
10
+ "use strict";
11
+
12
+ var ERROR_INSTANCING = "StateHandlerRegistry: This class is a singleton and should not be used without an AdaptationProvider. Please use 'sap.m.p13n.Engine.getInstance().stateHandlerRegistry' instead";
13
+
14
+ //Singleton storage
15
+ var oStateHandlerRegistry;
16
+
17
+ /**
18
+ * Constructor for a new StateHandlerRegistry.
19
+ *
20
+ * @class
21
+ * @extends sap.ui.base.Object
22
+ *
23
+ * @author SAP SE
24
+ * @version 1.106.0
25
+ *
26
+ * @private
27
+ * @since 1.104
28
+ * @alias sap.m.p13n.modules.StateHandlerRegistry
29
+ */
30
+ var StateHandlerRegistry = EventProvider.extend("sap.m.p13n.modules.StateHandlerRegistry", {
31
+ constructor: function() {
32
+
33
+ if (oStateHandlerRegistry) {
34
+ throw Error(ERROR_INSTANCING);
35
+ }
36
+
37
+ EventProvider.call(this);
38
+ }
39
+ });
40
+
41
+ /**
42
+ * @private
43
+ * @ui5-restricted sap.m
44
+ *
45
+ * Attaches an event handler to the <code>StateHandlerRegistry</code> class.
46
+ * The event handler may be fired every time a user triggers a personalization change for a control instance during runtime.
47
+ *
48
+ * @param {function} fnStateEventHandler The handler function to call when the event occurs
49
+ * @returns {this} Returns <code>this</code> to allow method chaining
50
+ */
51
+ StateHandlerRegistry.prototype.attachChange = function(fnStateEventHandler) {
52
+ return EventProvider.prototype.attachEvent.call(this, "stateChange", fnStateEventHandler);
53
+ };
54
+
55
+ /**
56
+ * @private
57
+ * @ui5-restricted sap.m
58
+ *
59
+ * Removes a previously attached state change event handler from the <code>StateHandlerRegistry</code> class.
60
+ * The passed parameters must match those used for registration with {@link StateHandlerRegistry#attachChange} beforehand.
61
+ *
62
+ * @param {function} fnStateEventHandler The handler function to detach from the event
63
+ * @returns {this} Returns <code>this</code> to allow method chaining
64
+ */
65
+ StateHandlerRegistry.prototype.detachChange = function(fnStateEventHandler) {
66
+ return EventProvider.prototype.detachEvent.call(this, "stateChange", fnStateEventHandler);
67
+ };
68
+
69
+ /**
70
+ * @private
71
+ * @ui5-restricted sap.m
72
+ *
73
+ * Fires an {@link sap.ui.base.Event event} with the given settings and notifies all attached event handlers.
74
+ *
75
+ * @param {sap.ui.core.Control} oControl The control instance
76
+ * @param {object} oState The updated state
77
+ * @returns {this} Returns <code>this</code> to allow method chaining
78
+ */
79
+ StateHandlerRegistry.prototype.fireChange = function(oControl, oState) {
80
+ return EventProvider.prototype.fireEvent.call(this, "stateChange", {
81
+ control: oControl,
82
+ state: oState
83
+ });
84
+ };
85
+
86
+ /**
87
+ * @private
88
+ * @ui5-restricted sap.m
89
+ *
90
+ * This method is the central point of access to the DefaultProviderRegistry Singleton.
91
+ * @returns {this} Returns the <code>StateHandlerRegistry</code> instance.
92
+ */
93
+ StateHandlerRegistry.getInstance = function () {
94
+ if (!oStateHandlerRegistry) {
95
+ oStateHandlerRegistry = new StateHandlerRegistry();
96
+ }
97
+ return oStateHandlerRegistry;
98
+ };
99
+
100
+ return StateHandlerRegistry;
101
+ });
@@ -0,0 +1,230 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([
8
+ "sap/ui/base/Object",
9
+ "sap/ui/mdc/util/loadModules",
10
+ "sap/base/Log"
11
+ ], function (BaseObject, loadModules, Log) {
12
+ "use strict";
13
+
14
+ var ERROR_INSTANCING = "UIManager: This class is a singleton and should not be used without an AdaptationProvider. Please use 'sap.m.p13n.Engine.getInstance().uimanager' instead";
15
+
16
+ //Singleton storage
17
+ var oUIManager;
18
+
19
+ /**
20
+ * Constructor for a new UIManager.
21
+ * This manager creates and manages <code>sap.m.p13n.Popup</code> instances in order to personalize a certain control instance.
22
+ * The <cod>UIManager</code> serves as additional implementation for the <code>sap.m.p13n.Engine</code> to visualize p13n UIs for end user personalization.
23
+ *
24
+ * <b>Note:</b>The UIManager resides in the Engine and must never be called separately.
25
+ * The Engine currently is being used to provide controller capabilities, accessed by the UIManager, the according is {@link sap.m.p13n.AdaptationProvider}.
26
+ *
27
+ * @class
28
+ * @extends sap.ui.base.Object
29
+ *
30
+ * @author SAP SE
31
+ * @version 1.106.0
32
+ *
33
+ * @private
34
+ *
35
+ * @since 1.104
36
+ * @alias sap.m.p13n.modules.UIManager
37
+ */
38
+ var UIManager = BaseObject.extend("sap.m.p13n.UIManager", {
39
+ constructor: function(oAdaptationProvider) {
40
+
41
+ if (oUIManager) {
42
+ throw Error(ERROR_INSTANCING);
43
+ }
44
+
45
+ this.oAdaptationProvider = oAdaptationProvider;
46
+
47
+ BaseObject.call(this);
48
+ }
49
+ });
50
+
51
+ /**
52
+ *
53
+ * @param {sap.ui.core.Control} oControl The control instance to be personalized
54
+ * @param {string|string[]} vPanelKeys The affected panels that should be added to the <code>sap.m.p13n.Popup</code>
55
+ * @param {object} mSettings The settings object for the personalization
56
+ * @param {string} [mSettings.title] The title for the <code>sap.m.p13n.Popup</code> control
57
+ * @param {object} [mSettings.source] The source contro to be used by the <code>sap.m.p13n.Popup</code> control (only necessary in case the mode is set to <code>ResponsivePopover</code>)
58
+ * @param {object} [mSettings.mode] The mode to be used by the <code>sap.m.p13n.Popup</code> control
59
+ * @param {object} [mSettings.contentHeight] Height configuration for the related popup container
60
+ * @param {object} [mSettings.contentWidth] Width configuration for the related popup container
61
+ *
62
+ * @returns {Promise} Promise resolving in the <code>sap.m.p13n.Popup</code> instance.
63
+ */
64
+ UIManager.prototype.show = function(oControl, vPanelKeys, mSettings) {
65
+ var aPanelKeys = vPanelKeys instanceof Array ? vPanelKeys : [vPanelKeys];
66
+ var oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.m");
67
+ var that = this;
68
+ mSettings = Object.assign({}, mSettings);
69
+
70
+ if (!this.hasActiveP13n(oControl)){
71
+ this.setActiveP13n(oControl, vPanelKeys);
72
+
73
+ return this.create(oControl, vPanelKeys, mSettings)
74
+ .then(function(aInitializedPanels){
75
+ return loadModules(["sap/m/p13n/Popup"]).then(function(aModules){
76
+
77
+ //if there is no title provided and only one panel created, use it's title as the Popup title
78
+ var sTitle;
79
+ if (!mSettings.title && aPanelKeys.length === 1) {
80
+ sTitle = aInitializedPanels[0].getTitle();
81
+ } else {
82
+ sTitle = mSettings.title || oResourceBundle.getText("p13n.VIEW_SETTINGS");
83
+ }
84
+
85
+ //Enrich Popup with AdaptationProvider functionality --> add controller logic (reset and appliance)
86
+ var Popup = aModules[0];
87
+ var oP13nContainer = new Popup({
88
+ mode: mSettings.mode,
89
+ warningText: mSettings.warningText || oResourceBundle.getText("p13n.RESET_WARNING_TEXT"),
90
+ title: sTitle,
91
+ close: function(oEvt){
92
+ var sReason = oEvt.getParameter("reason");
93
+ if (sReason == "Ok") {
94
+ that.oAdaptationProvider.handleP13n(oControl, aPanelKeys);
95
+ }
96
+ oP13nContainer.removeAllPanels();//TODO
97
+ that.setActiveP13n(oControl, null);
98
+
99
+ oP13nContainer.destroy();
100
+ },
101
+ reset: function(){
102
+ that.oAdaptationProvider.reset(oControl, aPanelKeys);
103
+ }
104
+ });
105
+
106
+ aInitializedPanels.forEach(function(oPanel, iIndex){
107
+ oP13nContainer.addPanel(oPanel, aPanelKeys[iIndex]);
108
+ });
109
+
110
+ oControl.addDependent(oP13nContainer);
111
+ oP13nContainer.open(mSettings.source, mSettings);
112
+ return oP13nContainer._oPopup;
113
+
114
+ });
115
+ }, function(eContainerFailure){
116
+ this.setActiveP13n(oControl, null);
117
+ Log.error("UIManager failure:" + eContainerFailure.stack);
118
+ }.bind(this));
119
+ } else {
120
+ return Promise.resolve();
121
+ }
122
+ };
123
+
124
+ UIManager.prototype.create = function(oControl, vPanelKeys) {
125
+ var aPanelKeys = vPanelKeys instanceof Array ? vPanelKeys : [vPanelKeys];
126
+ var that = this;
127
+
128
+ return this.oAdaptationProvider.initAdaptation(oControl, aPanelKeys)
129
+ .then(function(){
130
+ var vSettings = this.oAdaptationProvider.getUISettings(oControl, aPanelKeys);
131
+
132
+ //if condition only temporarly necessary until sap.ui.comp adjusted
133
+ if (vSettings instanceof Promise) {
134
+ return vSettings;
135
+ } else {
136
+ var aPanelPromises = [], aPanelSettings = [];
137
+ Object.keys(vSettings).forEach(function(sSetting){
138
+ var vSetting = vSettings[sSetting];
139
+ if (vSetting && vSetting.hasOwnProperty("adaptationUI")) {
140
+ var pCreation = vSetting.adaptationUI;
141
+ aPanelPromises.push(pCreation);
142
+
143
+ aPanelSettings.push({
144
+ key: sSetting,
145
+ settings: vSetting
146
+ });
147
+ }
148
+ });
149
+ return Promise.all(aPanelPromises).then(function(aPanels){
150
+ var mMappedSetting = {};
151
+ aPanels.forEach(function(oPanel, iIndex){
152
+ if (oPanel) {
153
+ var oPanelSetting = aPanelSettings[iIndex];
154
+ var mContainerSettings = oPanelSetting.settings.containerSettings;
155
+ if (mContainerSettings.title) {
156
+ oPanel.setTitle(mContainerSettings.title);
157
+ }
158
+ mMappedSetting[oPanelSetting.key] = {
159
+ panel: oPanel
160
+ };
161
+ }
162
+ });
163
+ return mMappedSetting;
164
+ });
165
+ }
166
+ }.bind(this))
167
+
168
+ .then(function(mSettings){
169
+ var aInitializedPanels = [];
170
+
171
+ //Attach state validation during personalization
172
+ Object.keys(mSettings).forEach(function(sPanel, iIndex){
173
+ var oPanel = mSettings[sPanel].panel;
174
+
175
+ //not every panel used is a p13n.BasePanel (comp.FilterPanel, AdaptationFilterBar) these panels might not provide a change event
176
+ if (oPanel.attachChange instanceof Function) {
177
+ oPanel.attachChange(function(oEvt){
178
+ that.oAdaptationProvider.validateP13n(oControl, aPanelKeys[iIndex], oEvt.getSource());
179
+ });
180
+ }
181
+ aInitializedPanels.push(oPanel);
182
+ });
183
+
184
+ return aInitializedPanels;
185
+ });
186
+ };
187
+
188
+ UIManager.getInstance = function(oAdaptationProvider) {
189
+ if (!oUIManager) {
190
+ this._checkValidInterface(oAdaptationProvider);
191
+ oUIManager = new UIManager(oAdaptationProvider);
192
+ }
193
+ return oUIManager;
194
+ };
195
+
196
+ UIManager.prototype.setActiveP13n = function(vControl, vKeys) {
197
+ if (this.oAdaptationProvider.setActiveP13n instanceof Function) {
198
+ this.oAdaptationProvider.setActiveP13n(vControl, vKeys);
199
+ }
200
+ };
201
+
202
+ UIManager.prototype.hasActiveP13n = function(vControl) {
203
+ var bActiveP13n = false;
204
+ if (this.oAdaptationProvider.hasActiveP13n instanceof Function) {
205
+ bActiveP13n = this.oAdaptationProvider.hasActiveP13n(vControl);
206
+ }
207
+ return bActiveP13n;
208
+ };
209
+
210
+ /**
211
+ * Checks if the UIManager has been initialized with a valid AdaptationProvider interface.
212
+ *
213
+ * @private
214
+ * @ui5-restricted sap.m
215
+ *
216
+ * @param {sap.m.AdaptationProvider} oAdaptationProvider Object implementing the <code>sap.m.AdaptationProvider</code> interface to provide personalization capabilites.
217
+ */
218
+ UIManager._checkValidInterface = function(oAdaptationProvider) {
219
+ if (!oAdaptationProvider || !oAdaptationProvider.isA("sap.m.p13n.AdaptationProvider")){
220
+ throw Error("The UIManager singleton must not be accessed without an AdaptationProvider interface!");
221
+ }
222
+ };
223
+
224
+ UIManager.prototype.destroy = function() {
225
+ BaseObject.prototype.destroy.apply(this, arguments);
226
+ oUIManager = null;
227
+ };
228
+
229
+ return UIManager;
230
+ });