@openui5/sap.ui.core 1.92.0 → 1.93.3

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 (318) hide show
  1. package/{.eslintrc → .eslintrc.json} +0 -0
  2. package/.reuse/dep5 +5 -0
  3. package/THIRDPARTY.txt +10 -1
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +5 -1
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +1 -1
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +7 -4
  10. package/src/sap/base/i18n/ResourceBundle.js +2 -2
  11. package/src/sap/base/util/Properties.js +4 -1
  12. package/src/sap/base/util/isEmptyObject.js +1 -2
  13. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  14. package/src/sap/base/util/restricted/_castArray.js +1 -1
  15. package/src/sap/base/util/restricted/_compact.js +1 -1
  16. package/src/sap/base/util/restricted/_curry.js +1 -1
  17. package/src/sap/base/util/restricted/_debounce.js +1 -1
  18. package/src/sap/base/util/restricted/_difference.js +1 -1
  19. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  24. package/src/sap/base/util/restricted/_flatten.js +1 -1
  25. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_intersection.js +1 -1
  28. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  32. package/src/sap/base/util/restricted/_isNil.js +1 -1
  33. package/src/sap/base/util/restricted/_max.js +1 -1
  34. package/src/sap/base/util/restricted/_merge.js +1 -1
  35. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  36. package/src/sap/base/util/restricted/_min.js +1 -1
  37. package/src/sap/base/util/restricted/_omit.js +1 -1
  38. package/src/sap/base/util/restricted/_pick.js +1 -1
  39. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  40. package/src/sap/base/util/restricted/_throttle.js +1 -1
  41. package/src/sap/base/util/restricted/_toArray.js +1 -1
  42. package/src/sap/base/util/restricted/_union.js +1 -1
  43. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  44. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  45. package/src/sap/base/util/restricted/_uniq.js +1 -1
  46. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  48. package/src/sap/base/util/restricted/_without.js +1 -1
  49. package/src/sap/base/util/restricted/_xor.js +1 -1
  50. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  51. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  52. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  54. package/src/sap/ui/Device.js +3 -3
  55. package/src/sap/ui/Global.js +4 -4
  56. package/src/sap/ui/VersionInfo.js +1 -0
  57. package/src/sap/ui/base/DataType.js +1 -0
  58. package/src/sap/ui/base/Event.js +1 -1
  59. package/src/sap/ui/base/EventProvider.js +1 -1
  60. package/src/sap/ui/base/Interface.js +1 -1
  61. package/src/sap/ui/base/ManagedObject.js +120 -18
  62. package/src/sap/ui/base/ManagedObjectMetadata.js +14 -5
  63. package/src/sap/ui/base/Metadata.js +1 -1
  64. package/src/sap/ui/base/Object.js +1 -1
  65. package/src/sap/ui/base/ObjectPool.js +1 -1
  66. package/src/sap/ui/core/.library +2 -2
  67. package/src/sap/ui/core/BusyIndicator.js +1 -1
  68. package/src/sap/ui/core/BusyIndicatorUtils.js +4 -1
  69. package/src/sap/ui/core/Component.js +143 -42
  70. package/src/sap/ui/core/ComponentContainer.js +1 -1
  71. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  72. package/src/sap/ui/core/ComponentSupport.js +1 -1
  73. package/src/sap/ui/core/Configuration.js +2 -1
  74. package/src/sap/ui/core/Control.js +1 -1
  75. package/src/sap/ui/core/Core.js +18 -21
  76. package/src/sap/ui/core/CustomData.js +1 -1
  77. package/src/sap/ui/core/CustomizingConfiguration.js +1 -1
  78. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  79. package/src/sap/ui/core/Element.js +1 -1
  80. package/src/sap/ui/core/ElementMetadata.js +1 -1
  81. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  82. package/src/sap/ui/core/EventBus.js +1 -1
  83. package/src/sap/ui/core/Fragment.js +2 -2
  84. package/src/sap/ui/core/HTML.js +1 -1
  85. package/src/sap/ui/core/History.js +1 -1
  86. package/src/sap/ui/core/Icon.js +1 -1
  87. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  88. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  89. package/src/sap/ui/core/InvisibleMessage.js +9 -1
  90. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  91. package/src/sap/ui/core/InvisibleText.js +1 -1
  92. package/src/sap/ui/core/Item.js +1 -1
  93. package/src/sap/ui/core/LabelEnablement.js +1 -1
  94. package/src/sap/ui/core/LayoutData.js +1 -1
  95. package/src/sap/ui/core/ListItem.js +1 -1
  96. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  97. package/src/sap/ui/core/Locale.js +1 -1
  98. package/src/sap/ui/core/LocaleData.js +1 -1
  99. package/src/sap/ui/core/Manifest.js +124 -69
  100. package/src/sap/ui/core/Message.js +1 -1
  101. package/src/sap/ui/core/Patcher.js +53 -80
  102. package/src/sap/ui/core/Placeholder.js +1 -0
  103. package/src/sap/ui/core/Popup.js +29 -5
  104. package/src/sap/ui/core/RenderManager.js +25 -22
  105. package/src/sap/ui/core/Renderer.js +1 -1
  106. package/src/sap/ui/core/ResizeHandler.js +1 -1
  107. package/src/sap/ui/core/ScrollBar.js +1 -1
  108. package/src/sap/ui/core/SeparatorItem.js +1 -1
  109. package/src/sap/ui/core/ThemeCheck.js +13 -61
  110. package/src/sap/ui/core/Title.js +1 -1
  111. package/src/sap/ui/core/TooltipBase.js +1 -1
  112. package/src/sap/ui/core/UIArea.js +5 -2
  113. package/src/sap/ui/core/UIComponent.js +46 -32
  114. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  115. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  116. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  117. package/src/sap/ui/core/XMLComposite.js +1 -1
  118. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  119. package/src/sap/ui/core/XMLTemplateProcessor.js +1 -1
  120. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  121. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  122. package/src/sap/ui/core/dnd/DragDropBase.js +2 -9
  123. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  124. package/src/sap/ui/core/dnd/DragInfo.js +41 -1
  125. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  126. package/src/sap/ui/core/format/DateFormat.js +2 -0
  127. package/src/sap/ui/core/format/NumberFormat.js +2 -0
  128. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  129. package/src/sap/ui/core/library.js +3 -3
  130. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  131. package/src/sap/ui/core/message/Message.js +1 -1
  132. package/src/sap/ui/core/message/MessageManager.js +3 -1
  133. package/src/sap/ui/core/message/MessageParser.js +1 -1
  134. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  135. package/src/sap/ui/core/mvc/Controller.js +146 -8
  136. package/src/sap/ui/core/mvc/HTMLView.js +3 -1
  137. package/src/sap/ui/core/mvc/JSONView.js +7 -5
  138. package/src/sap/ui/core/mvc/JSView.js +4 -2
  139. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  140. package/src/sap/ui/core/mvc/View.js +16 -5
  141. package/src/sap/ui/core/mvc/ViewType.js +2 -0
  142. package/src/sap/ui/core/mvc/XMLView.js +13 -9
  143. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  144. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  145. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  146. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  147. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  148. package/src/sap/ui/core/routing/History.js +26 -16
  149. package/src/sap/ui/core/routing/Route.js +10 -1
  150. package/src/sap/ui/core/routing/Router.js +8 -5
  151. package/src/sap/ui/core/routing/TargetCache.js +1 -1
  152. package/src/sap/ui/core/routing/Targets.js +26 -0
  153. package/src/sap/ui/core/routing/async/Route.js +6 -3
  154. package/src/sap/ui/core/routing/async/Target.js +29 -4
  155. package/src/sap/ui/core/routing/sync/Target.js +15 -0
  156. package/src/sap/ui/core/rules/App.support.js +35 -1
  157. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  158. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  159. package/src/sap/ui/core/service/Service.js +1 -1
  160. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  161. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  162. package/src/sap/ui/core/support/Plugin.js +1 -1
  163. package/src/sap/ui/core/support/Support.js +1 -1
  164. package/src/sap/ui/core/support/controls/ObjectViewer.js +5 -9
  165. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  166. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  167. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  168. package/src/sap/ui/core/support/plugins/MessageTest.js +1 -1
  169. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  170. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  171. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  172. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  173. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  174. package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
  175. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +5 -0
  176. package/src/sap/ui/core/themes/base/SAP-icons.css +2 -0
  177. package/src/sap/ui/core/themes/base/SAP-icons.less +10 -0
  178. package/src/sap/ui/core/themes/base/base.less +569 -414
  179. package/src/sap/ui/core/themes/base/global.less +38 -0
  180. package/src/sap/ui/core/themes/base/library.source.less +1 -2
  181. package/src/sap/ui/core/themes/base/shared.less +1 -0
  182. package/src/sap/ui/core/themes/sap_hcb/global.less +34 -0
  183. package/src/sap/ui/core/theming/Parameters.js +221 -59
  184. package/src/sap/ui/core/theming/ThemeHelper.js +94 -0
  185. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  186. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  187. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  188. package/src/sap/ui/core/tmpl/Template.js +2 -1
  189. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  190. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  191. package/src/sap/ui/core/util/Export.js +1 -1
  192. package/src/sap/ui/core/util/ExportCell.js +1 -1
  193. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  194. package/src/sap/ui/core/util/ExportRow.js +1 -1
  195. package/src/sap/ui/core/util/ExportType.js +1 -1
  196. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  197. package/src/sap/ui/core/util/File.js +1 -1
  198. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  199. package/src/sap/ui/core/util/MockServer.js +20 -1
  200. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  201. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +18 -0
  202. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  203. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  204. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  205. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  206. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  207. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  208. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  209. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  210. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  211. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  212. package/src/sap/ui/debug/ControlTree.js +1 -1
  213. package/src/sap/ui/debug/DebugEnv.js +1 -1
  214. package/src/sap/ui/debug/PropertyList.js +1 -1
  215. package/src/sap/ui/events/jquery/EventSimulation.js +7 -6
  216. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  217. package/src/sap/ui/model/ClientModel.js +1 -1
  218. package/src/sap/ui/model/CompositeDataState.js +1 -1
  219. package/src/sap/ui/model/CompositeType.js +1 -1
  220. package/src/sap/ui/model/Context.js +31 -11
  221. package/src/sap/ui/model/DataState.js +1 -1
  222. package/src/sap/ui/model/ListBinding.js +19 -0
  223. package/src/sap/ui/model/MetaModel.js +1 -1
  224. package/src/sap/ui/model/Model.js +3 -3
  225. package/src/sap/ui/model/SelectionModel.js +5 -1
  226. package/src/sap/ui/model/SimpleType.js +1 -1
  227. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  228. package/src/sap/ui/model/Type.js +1 -1
  229. package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -6
  230. package/src/sap/ui/model/base/ManagedObjectModel.js +9 -1
  231. package/src/sap/ui/model/json/JSONModel.js +1 -1
  232. package/src/sap/ui/model/message/MessageModel.js +1 -1
  233. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  234. package/src/sap/ui/model/odata/ODataListBinding.js +1 -0
  235. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  236. package/src/sap/ui/model/odata/ODataMetaModel.js +3 -2
  237. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  238. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  239. package/src/sap/ui/model/odata/ODataUtils.js +19 -0
  240. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +30 -27
  241. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  242. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  243. package/src/sap/ui/model/odata/type/Currency.js +7 -2
  244. package/src/sap/ui/model/odata/type/Date.js +1 -1
  245. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  246. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  247. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  248. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  249. package/src/sap/ui/model/odata/type/Double.js +1 -1
  250. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  251. package/src/sap/ui/model/odata/type/Int.js +1 -1
  252. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  253. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  254. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  255. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  256. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  257. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  258. package/src/sap/ui/model/odata/type/Single.js +1 -1
  259. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  260. package/src/sap/ui/model/odata/type/String.js +3 -1
  261. package/src/sap/ui/model/odata/type/Time.js +1 -1
  262. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  263. package/src/sap/ui/model/odata/type/Unit.js +7 -2
  264. package/src/sap/ui/model/odata/type/UnitMixin.js +20 -7
  265. package/src/sap/ui/model/odata/v2/Context.js +165 -0
  266. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  267. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +19 -5
  268. package/src/sap/ui/model/odata/v2/ODataListBinding.js +18 -78
  269. package/src/sap/ui/model/odata/v2/ODataModel.js +74 -52
  270. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +55 -41
  271. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  272. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +16 -10
  273. package/src/sap/ui/model/odata/v4/ODataListBinding.js +39 -21
  274. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  275. package/src/sap/ui/model/odata/v4/ODataModel.js +3 -3
  276. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +15 -15
  277. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +11 -6
  278. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +5 -3
  279. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -1
  280. package/src/sap/ui/model/odata/v4/lib/_Cache.js +7 -6
  281. package/src/sap/ui/model/odata/v4/lib/_Helper.js +17 -2
  282. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +3 -2
  283. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  284. package/src/sap/ui/model/type/Boolean.js +1 -1
  285. package/src/sap/ui/model/type/Currency.js +1 -1
  286. package/src/sap/ui/model/type/Date.js +1 -1
  287. package/src/sap/ui/model/type/DateInterval.js +1 -1
  288. package/src/sap/ui/model/type/DateTime.js +1 -1
  289. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  290. package/src/sap/ui/model/type/FileSize.js +1 -1
  291. package/src/sap/ui/model/type/Float.js +1 -1
  292. package/src/sap/ui/model/type/Integer.js +1 -1
  293. package/src/sap/ui/model/type/String.js +1 -1
  294. package/src/sap/ui/model/type/Time.js +1 -1
  295. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  296. package/src/sap/ui/model/type/Unit.js +1 -1
  297. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  298. package/src/sap/ui/performance/Measurement.js +1 -1
  299. package/src/sap/ui/performance/trace/FESR.js +2 -1
  300. package/src/sap/ui/performance/trace/Interaction.js +11 -9
  301. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  302. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  303. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  304. package/src/sap/ui/security/FrameOptions.js +2 -1
  305. package/src/sap/ui/test/Opa5.js +1 -1
  306. package/src/sap/ui/test/OpaBuilder.js +1 -0
  307. package/src/sap/ui/test/TestUtils.js +17 -30
  308. package/src/sap/ui/test/launchers/componentLauncher.js +2 -1
  309. package/src/sap/ui/test/opaQunit.js +6 -9
  310. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +4 -4
  311. package/src/sap/ui/thirdparty/IPv6.js +2 -2
  312. package/src/sap/ui/thirdparty/SecondLevelDomains.js +2 -2
  313. package/src/sap/ui/thirdparty/URI.js +14 -5
  314. package/src/sap/ui/thirdparty/URITemplate.js +2 -2
  315. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  316. package/src/sap/ui/thirdparty/crossroads.js +10 -2
  317. package/src/sap/ui/util/Storage.js +1 -1
  318. package/src/ui5loader.js +5 -2
@@ -0,0 +1,94 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2021 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/base/Log'
8
+ ], function (Log) {
9
+ "use strict";
10
+
11
+ // TODO reset map onThemeChanged
12
+ var mLibThemeMetadata = {};
13
+
14
+ /**
15
+ *
16
+ * @since 1.92.0
17
+ * @alias sap.ui.core.theming.ThemeHelper
18
+ * @static
19
+ * @namespace
20
+ * @private
21
+ * @ui5-restricted sap.ui.core
22
+ */
23
+ var ThemeHelper = {};
24
+
25
+ ThemeHelper.reset = function () {
26
+ mLibThemeMetadata = {};
27
+ };
28
+
29
+ ThemeHelper.getMetadata = function (sLibId) {
30
+ if (!sLibId) {
31
+ return null;
32
+ }
33
+
34
+ var sLibName = sLibId.replace("sap-ui-theme-", "").replace(/\./g, "-");
35
+ if (mLibThemeMetadata[sLibName]) {
36
+ return mLibThemeMetadata[sLibName];
37
+ }
38
+
39
+ var oMetadata, sMetadataJSON;
40
+
41
+ var oBodyStyle = window.getComputedStyle(document.body || document.documentElement);
42
+ var sVariablesMarker = oBodyStyle.getPropertyValue("--sapUiTheme-" + sLibName).trim();
43
+
44
+ // Try first to read the metadata from the CSS variables in case CSS variables are supported
45
+ if (sVariablesMarker) {
46
+ // read metadata
47
+ sMetadataJSON = oBodyStyle.getPropertyValue("--sapThemeMetaData-UI5-" + sLibName).trim();
48
+ }
49
+ // Fallback to inline metadata in case no CSS variables are supported or metadata is only available inline
50
+ if (!sMetadataJSON) {
51
+ var oMetadataElement = document.createElement("span");
52
+ oMetadataElement.classList.add("sapThemeMetaData-UI5-" + sLibName);
53
+ document.documentElement.appendChild(oMetadataElement);
54
+ var sDataUri = window.getComputedStyle(oMetadataElement).getPropertyValue("background-image");
55
+ document.documentElement.removeChild(oMetadataElement);
56
+
57
+ var aDataUriMatch = /\(["']?data:text\/plain;utf-8,(.*?)['"]?\)/i.exec(sDataUri);
58
+ if (!aDataUriMatch || aDataUriMatch.length < 2) {
59
+ return null;
60
+ }
61
+
62
+ var sMetaData = aDataUriMatch[1];
63
+
64
+ // The following lines of code are moved unchanged from ThemeCheck in order to not introduce any regressions but
65
+ // neverteheless it's not fully clear if detection of URI encoding and URI decoding itself (especially manual encoding of spaces)
66
+ // is necessary
67
+
68
+ // Try to detect URI encoding by checking for first and last character for not encoded characters
69
+ if (sMetaData.charAt(0) !== "{" && sMetaData.charAt(sMetaData.length - 1) !== "}") {
70
+ try {
71
+ sMetaData = decodeURI(sMetaData);
72
+ } catch (ex) {
73
+ // ignore
74
+ }
75
+ }
76
+
77
+ // Remove superfluous escaping of double quotes
78
+ sMetaData = sMetaData.replace(/\\"/g, '"');
79
+
80
+ // Replace encoded spaces => not clear if this is really necessary and if there is any valid case where spaces are URI encoded
81
+ // but we could not detect URI encoding. Keep coding in order to avoid regression.
82
+ sMetadataJSON = sMetaData.replace(/%20/g, " ");
83
+ }
84
+ try {
85
+ oMetadata = JSON.parse(sMetadataJSON);
86
+ mLibThemeMetadata[sLibName] = oMetadata;
87
+ } catch (ex) {
88
+ Log.error("Could not parse theme metadata for library " + sLibName + ".");
89
+ }
90
+ return oMetadata;
91
+ };
92
+
93
+ return ThemeHelper;
94
+ });
@@ -19,7 +19,7 @@ sap.ui.define(['sap/ui/core/Element', 'sap/ui/core/library'],
19
19
  * @class
20
20
  * Represents a DOM attribute of a DOM element.
21
21
  * @extends sap.ui.core.Element
22
- * @version 1.92.0
22
+ * @version 1.93.3
23
23
  *
24
24
  * @public
25
25
  * @since 1.15
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @class
28
28
  * Represents a DOM element. It allows to use databinding for the properties and nested DOM attributes.
29
29
  * @extends sap.ui.core.Control
30
- * @version 1.92.0
30
+ * @version 1.93.3
31
31
  *
32
32
  * @public
33
33
  * @since 1.15
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @extends sap.ui.core.tmpl.Template
47
47
  * @abstract
48
48
  * @author SAP SE
49
- * @version 1.92.0
49
+ * @version 1.93.3
50
50
  * @alias sap.ui.core.tmpl.HandlebarsTemplate
51
51
  * @since 1.15
52
52
  * @deprecated since 1.56
@@ -48,7 +48,7 @@ function(
48
48
  * @extends sap.ui.base.ManagedObject
49
49
  * @abstract
50
50
  * @author SAP SE
51
- * @version 1.92.0
51
+ * @version 1.93.3
52
52
  * @alias sap.ui.core.tmpl.Template
53
53
  * @since 1.15
54
54
  * @deprecated since 1.56, use an {@link sap.ui.core.mvc.XMLView XMLView} or {@link sap.ui.core.mvc.JSView JSView} instead.
@@ -558,6 +558,7 @@ function(
558
558
  // instance if found
559
559
  if (sId) {
560
560
  var theTemplate = sap.ui.getCore().getTemplate(sId);
561
+ // eslint-disable-next-line no-unsafe-negation
561
562
  if (!theTemplate instanceof Template) {
562
563
  throw new Error("Object for id \"" + sId + "\" is no sap.ui.core.tmpl.Template!");
563
564
  } else {
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  * @class
44
44
  * This is the base class for all template controls. Template controls are declared based on templates.
45
45
  * @extends sap.ui.core.Control
46
- * @version 1.92.0
46
+ * @version 1.93.3
47
47
  *
48
48
  * @public
49
49
  * @since 1.15
@@ -12,7 +12,7 @@ sap.ui.define([], function() {
12
12
  *
13
13
  * @class Utility class for asyncHints
14
14
  * @author SAP SE
15
- * @version 1.92.0
15
+ * @version 1.93.3
16
16
  *
17
17
  * @private
18
18
  * @ui5-restricted sap.ushell
@@ -141,7 +141,7 @@ sap.ui.define([
141
141
  * @extends sap.ui.core.Control
142
142
  *
143
143
  * @author SAP SE
144
- * @version 1.92.0
144
+ * @version 1.93.3
145
145
  * @since 1.22.0
146
146
  *
147
147
  * @public
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/core/Element'],
20
20
  * @extends sap.ui.core.Element
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.92.0
23
+ * @version 1.93.3
24
24
  * @since 1.22.0
25
25
  *
26
26
  * @public
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.base.ManagedObject
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.92.0
26
+ * @version 1.93.3
27
27
  * @since 1.22.0
28
28
  *
29
29
  * @public
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.base.ManagedObject
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.92.0
26
+ * @version 1.93.3
27
27
  * @since 1.22.0
28
28
  *
29
29
  * @public
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/ManagedObject'],
20
20
  * @extends sap.ui.base.ManagedObject
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.92.0
23
+ * @version 1.93.3
24
24
  * @since 1.22.0
25
25
  *
26
26
  * @public
@@ -38,7 +38,7 @@ sap.ui.define(['./ExportType'],
38
38
  * @extends sap.ui.core.util.ExportType
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.92.0
41
+ * @version 1.93.3
42
42
  * @since 1.22.0
43
43
  *
44
44
  * @public
@@ -13,7 +13,7 @@ sap.ui.define(["sap/ui/thirdparty/jquery"],
13
13
  * Utility class to handle files.
14
14
  *
15
15
  * @author SAP SE
16
- * @version 1.92.0
16
+ * @version 1.93.3
17
17
  * @namespace
18
18
  *
19
19
  * @public
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  *
21
21
  * @extends sap.ui.base.Object
22
22
  * @author SAP SE
23
- * @version 1.92.0
23
+ * @version 1.93.3
24
24
  * @private
25
25
  * @alias sap.ui.core.util.LibraryInfo
26
26
  */
@@ -31,7 +31,7 @@ sap.ui
31
31
  * @extends sap.ui.base.ManagedObject
32
32
  * @abstract
33
33
  * @author SAP SE
34
- * @version 1.92.0
34
+ * @version 1.93.3
35
35
  * @public
36
36
  * @alias sap.ui.core.util.MockServer
37
37
  */
@@ -3702,13 +3702,32 @@ sap.ui
3702
3702
  /**
3703
3703
  * Enum for the method.
3704
3704
  * @public
3705
+ * @enum {string}
3705
3706
  */
3706
3707
  MockServer.HTTPMETHOD = {
3708
+ /**
3709
+ * @public
3710
+ */
3707
3711
  GET: "GET",
3712
+ /**
3713
+ * @public
3714
+ */
3708
3715
  POST: "POST",
3716
+ /**
3717
+ * @public
3718
+ */
3709
3719
  DELETE: "DELETE",
3720
+ /**
3721
+ * @public
3722
+ */
3710
3723
  PUT: "PUT",
3724
+ /**
3725
+ * @public
3726
+ */
3711
3727
  MERGE: "MERGE",
3728
+ /**
3729
+ * @public
3730
+ */
3712
3731
  PATCH: "PATCH"
3713
3732
  };
3714
3733
 
@@ -13,7 +13,7 @@ sap.ui.define([ "sap/ui/core/Core", "sap/ui/model/ParseException", "sap/ui/model
13
13
  *
14
14
  * @class Parses and validates data on the <code>paste</code> event of an SAPUI5 table.
15
15
  * @author SAP SE
16
- * @version 1.92.0
16
+ * @version 1.93.3
17
17
  * @private
18
18
  * @ui5-restricted sap.ui.table.Table, sap.m.Table, sap.m.plugins.PasteProvider
19
19
  * @alias sap.ui.core.util.PasteHelper
@@ -43,6 +43,24 @@ sap.ui.define([
43
43
  */
44
44
  return /** @lends sap.ui.core.util.reflection.BaseTreeModifier */{
45
45
 
46
+ /**
47
+ * Function determining the control targeted by the change. It is also possible to pass an extensionpoint selector.
48
+ * In this case an extension point is referenced in the selector but the parent control of the extensionpoint will be returned.
49
+ *
50
+ * @param {object} oSelector - Target of a flexibility change
51
+ * @param {string} [oSelector.id] - ID of the control targeted by the change. (name or id property is mandatory for selector)
52
+ * @param {boolean} [oSelector.isLocalId] - <code>true</code> if the ID within the selector is a local ID or a global ID
53
+ * @param {string} [oSelector.name] - Name of the extension point targeted by the change. (name or id property is mandatory for selector)
54
+ * @param {sap.ui.core.UIComponent} oAppComponent - Application component
55
+ * @param {Element} oView - For XML processing only: XML node of the view
56
+ * @returns {Promise<sap.ui.base.ManagedObject|Element>} Control representation targeted within the selector, wrapped in a Promise
57
+ * @throws {Error} In case no control could be determined, an error is thrown
58
+ * @public
59
+ */
60
+ bySelectorExtensionPointEnabled: function (oSelector, oAppComponent, oView) {
61
+ return Promise.resolve(this.bySelector(oSelector, oAppComponent, oView));
62
+ },
63
+
46
64
  /**
47
65
  * Function determining the control targeted by the change.
48
66
  *
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './Serializer', './delegate/HTML', '
20
20
  * @class HTMLViewSerializer class.
21
21
  * @extends sap.ui.base.EventProvider
22
22
  * @author SAP SE
23
- * @version 1.92.0
23
+ * @version 1.93.3
24
24
  * @alias sap.ui.core.util.serializer.HTMLViewSerializer
25
25
  * @private
26
26
  * @ui5-restricted sap.watt, com.sap.webide
@@ -21,7 +21,7 @@ sap.ui.define(['sap/ui/base/EventProvider', "sap/base/assert"],
21
21
  * @class Serializer class.
22
22
  * @extends sap.ui.base.EventProvider
23
23
  * @author SAP SE
24
- * @version 1.92.0
24
+ * @version 1.93.3
25
25
  * @alias sap.ui.core.util.serializer.Serializer
26
26
  * @private
27
27
  * @ui5-restricted sap.watt, com.sap.webide
@@ -21,7 +21,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './HTMLViewSerializer', './XMLViewSe
21
21
  * @class ViewSerializer class.
22
22
  * @extends sap.ui.base.EventProvider
23
23
  * @author SAP SE
24
- * @version 1.92.0
24
+ * @version 1.93.3
25
25
  * @alias sap.ui.core.util.serializer.ViewSerializer
26
26
  * @private
27
27
  * @ui5-restricted sap.watt, com.sap.webide
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './Serializer', './delegate/XML', 's
20
20
  * @class XMLViewSerializer class.
21
21
  * @extends sap.ui.base.EventProvider
22
22
  * @author SAP SE
23
- * @version 1.92.0
23
+ * @version 1.93.3
24
24
  * @alias sap.ui.core.util.serializer.XMLViewSerializer
25
25
  * @private
26
26
  * @ui5-restricted sap.watt, com.sap.webide
@@ -17,7 +17,7 @@ sap.ui.define(['sap/ui/base/EventProvider'],
17
17
  * @class Abstract serializer delegate class.
18
18
  * @extends sap.ui.base.EventProvider
19
19
  * @author SAP SE
20
- * @version 1.92.0
20
+ * @version 1.93.3
21
21
  * @alias sap.ui.core.util.serializer.delegate.Delegate
22
22
  * @private
23
23
  * @ui5-restricted sap.watt, com.sap.webide
@@ -19,7 +19,7 @@ sap.ui.define(['./Delegate', "sap/base/strings/hyphenate", "sap/base/util/deepEq
19
19
  * @class HTML serializer delegate class.
20
20
  * @extends sap.ui.core.util.serializer.delegate.Delegate
21
21
  * @author SAP SE
22
- * @version 1.92.0
22
+ * @version 1.93.3
23
23
  * @alias sap.ui.core.util.serializer.delegate.HTML
24
24
  * @private
25
25
  * @ui5-restricted sap.watt, com.sap.webide
@@ -132,7 +132,7 @@ sap.ui.define(['./Delegate', "sap/base/strings/hyphenate", "sap/base/util/deepEq
132
132
  }
133
133
  return oValue;
134
134
  }, function (sName, oValue) {
135
- return (oValue !== null && typeof oValue !== undefined && oValue !== "");
135
+ return (oValue !== null && oValue !== "");
136
136
  });
137
137
 
138
138
  // write properties
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @class XML serializer delegate class.
25
25
  * @extends sap.ui.core.util.serializer.delegate.Delegate
26
26
  * @author SAP SE
27
- * @version 1.92.0
27
+ * @version 1.93.3
28
28
  * @alias sap.ui.core.util.serializer.delegate.XML
29
29
  * @private
30
30
  * @ui5-restricted sap.watt, com.sap.webide
@@ -149,7 +149,7 @@ sap.ui.define([
149
149
  }
150
150
  return oValue;
151
151
  }, function (sName, oValue) {
152
- return (oValue !== null && typeof oValue !== undefined && oValue !== "");
152
+ return (oValue !== null && oValue !== "");
153
153
  });
154
154
 
155
155
  // write properties
@@ -12,7 +12,7 @@ sap.ui.define(function() {
12
12
  /**
13
13
  * Defines the different ready states for a WebSocket connection.
14
14
  *
15
- * @version 1.92.0
15
+ * @version 1.93.3
16
16
  * @enum {int}
17
17
  * @public
18
18
  * @alias sap.ui.core.ws.ReadyState
@@ -21,7 +21,7 @@ sap.ui.define(['./WebSocket', "sap/base/Log"],
21
21
  * @class WebSocket class implementing the pcp-protocol.
22
22
  * @extends sap.ui.core.ws.WebSocket
23
23
  * @author SAP SE
24
- * @version 1.92.0
24
+ * @version 1.93.3
25
25
  * @alias sap.ui.core.ws.SapPcpWebSocket
26
26
  */
27
27
  var SapPcpWebSocket = WebSocket.extend("sap.ui.core.ws.SapPcpWebSocket", /** @lends sap.ui.core.ws.SapPcpWebSocket.prototype */ {
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @class Basic WebSocket class.
27
27
  * @extends sap.ui.base.EventProvider
28
28
  * @author SAP SE
29
- * @version 1.92.0
29
+ * @version 1.93.3
30
30
  * @alias sap.ui.core.ws.WebSocket
31
31
  */
32
32
  var WebSocket = EventProvider.extend("sap.ui.core.ws.WebSocket", /** @lends sap.ui.core.ws.WebSocket.prototype */ {
@@ -33,7 +33,7 @@ sap.ui.define('sap/ui/debug/ControlTree', [
33
33
  * @class Control Tree used for the Debug Environment
34
34
  * @extends sap.ui.base.EventProvider
35
35
  * @author Martin Schaus, Frank Weigel
36
- * @version 1.92.0
36
+ * @version 1.93.3
37
37
  * @alias sap.ui.debug.ControlTree
38
38
  * @private
39
39
  */
@@ -16,7 +16,7 @@ sap.ui.define('sap/ui/debug/DebugEnv', ['sap/ui/base/Interface', './ControlTree'
16
16
  * @class Central Class for the Debug Environment
17
17
  *
18
18
  * @author Martin Schaus, Frank Weigel
19
- * @version 1.92.0
19
+ * @version 1.93.3
20
20
  * @private
21
21
  * @alias sap.ui.debug.DebugEnv
22
22
  */
@@ -39,7 +39,7 @@ sap.ui.define('sap/ui/debug/PropertyList', [
39
39
  *
40
40
  * @extends sap.ui.base.EventProvider
41
41
  * @author Martin Schaus
42
- * @version 1.92.0
42
+ * @version 1.93.3
43
43
  *
44
44
  * @param {sap.ui.core.Core}
45
45
  * oCore the core instance to use for analysis
@@ -19,7 +19,8 @@ sap.ui.define([
19
19
  /**
20
20
  * @namespace
21
21
  * @alias module:sap/ui/events/jquery/EventSimulation
22
- * @public
22
+ * @private
23
+ * @ui5-restricted sap.ui.core
23
24
  */
24
25
  var oEventSimulation = {};
25
26
 
@@ -32,10 +33,10 @@ sap.ui.define([
32
33
  * This function adds the simulated event prefixed with string "sap" to ControlEvents.events.
33
34
  *
34
35
  * When UIArea binds to the simulated event with prefix, it internally binds to the original events with the given handler and
35
- * also provides the additional configuration data in the follwing format:
36
+ * also provides the additional configuration data in the following format:
36
37
  *
37
38
  * {
38
- * domRef: // the dom reference of the UIArea
39
+ * domRef: // the DOM reference of the UIArea
39
40
  * eventName: // the simulated event name
40
41
  * sapEventName: // the simulated event name with sap prefix
41
42
  * eventHandle: // the handler that should be registered to simulated event with sap prefix
@@ -116,8 +117,8 @@ sap.ui.define([
116
117
  sTouchStartControlId = $DomRef.data("__touchstart_control"),
117
118
  oTouchStartControlDOM = sTouchStartControlId && window.document.getElementById(sTouchStartControlId);
118
119
 
119
- // Checks if the mouseout event should be handled, the mouseout of the inner dom shouldn't be handled when the mouse cursor
120
- // is still inside the control's root dom node
120
+ // Checks if the mouseout event should be handled, the mouseout of the inner DOM shouldn't be handled when the mouse cursor
121
+ // is still inside the control's root DOM node
121
122
  if (oEvent.type === "mouseout" && !checkMouseEnterOrLeave(oEvent, oConfig.domRef)
122
123
  && (!oTouchStartControlDOM || !checkMouseEnterOrLeave(oEvent, oTouchStartControlDOM))
123
124
  ) {
@@ -379,7 +380,7 @@ sap.ui.define([
379
380
  //
380
381
  // UIArea binds to both touchstart and saptouchstart event and saptouchstart internally also binds to touchstart event. Before
381
382
  // jQuery version 1.9.1, the touchstart event handler is called before the saptouchstart event handler and our flags (e.g. _sapui_handledByUIArea)
382
- // still work. However since the order of event registration is inversed from jQuery version 1.9.1, the saptouchstart event hanlder is called
383
+ // still work. However since the order of event registration is inversed from jQuery version 1.9.1, the saptouchstart event handler is called
383
384
  // before the touchstart one, our flags don't work anymore.
384
385
  //
385
386
  // Therefore jQuery version needs to be checked in order to decide the event order in ControlEvents.events.
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  oEvent.stopImmediatePropagation();
38
38
  if (bIsLoggable) {
39
39
  t1 = window.performance.now();
40
- Log.debug("Perf: jQuery trigger supression event handler " + oEvent.type + " took " + (t1 - t0) + " milliseconds.");
40
+ Log.debug("Perf: jQuery trigger suppression event handler " + oEvent.type + " took " + (t1 - t0) + " milliseconds.");
41
41
  }
42
42
  return false; //prevent further jQuery processing.
43
43
  }
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.ui.model.Model
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.92.0
32
+ * @version 1.93.3
33
33
  *
34
34
  * @param {string} [oData] URL where to load the data from
35
35
  * @public
@@ -14,7 +14,7 @@ sap.ui.define(['./DataState', "sap/base/util/deepEqual", "sap/base/util/each"],
14
14
  * @extends sap.ui.model.DataState
15
15
  *
16
16
  * @author SAP SE
17
- * @version 1.92.0
17
+ * @version 1.93.3
18
18
  *
19
19
  * @public
20
20
  * @alias sap.ui.model.CompositeDataState
@@ -39,7 +39,7 @@ sap.ui.define(['./SimpleType'],
39
39
  * <code>true</code>.
40
40
  * @extends sap.ui.model.SimpleType
41
41
  * @public
42
- * @version 1.92.0
42
+ * @version 1.93.3
43
43
  */
44
44
  var CompositeType = SimpleType.extend("sap.ui.model.CompositeType", /** @lends sap.ui.model.CompositeType.prototype */ {
45
45
 
@@ -103,6 +103,9 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/util/isPlainObject"],
103
103
  /**
104
104
  * Sets the force refresh flag of the context. If this is set, the context will force a refresh of dependent
105
105
  * bindings, when the context is propagated.
106
+ *
107
+ * @deprecated since 1.93.0; only supported by the OData V2 Model; use V2 specific Context
108
+ * instead
106
109
  * @private
107
110
  * @param {boolean} bForceRefresh the force refresh flag
108
111
  */
@@ -112,6 +115,9 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/util/isPlainObject"],
112
115
 
113
116
  /**
114
117
  * This method returns, whether dependent bindings need to be refreshed.
118
+ *
119
+ * @deprecated since 1.93.0; only supported by the OData V2 Model; use V2 specific Context
120
+ * instead
115
121
  * @private
116
122
  * @return {boolean} the force refresh flag
117
123
  */
@@ -123,6 +129,9 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/util/isPlainObject"],
123
129
  * Sets the preliminary flag of the context. If this is set, the context is not yet linked to actual model
124
130
  * data, but does just contain path information. This can be used by dependent bindings to send their request
125
131
  * in parallel to the request of the context binding.
132
+ *
133
+ * @deprecated since 1.93.0; only supported by the OData V2 Model; use V2 specific Context
134
+ * instead
126
135
  * @private
127
136
  * @param {boolean} bPreliminary the preliminary flag
128
137
  */
@@ -132,6 +141,9 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/util/isPlainObject"],
132
141
 
133
142
  /**
134
143
  * This method returns, whether the context is preliminary.
144
+ *
145
+ * @deprecated since 1.93.0; only supported by the OData V2 Model; use V2 specific Context
146
+ * instead
135
147
  * @private
136
148
  * @ui5-restricted sap.suite.ui.generic
137
149
  * @return {boolean} the preliminary flag
@@ -143,6 +155,9 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/util/isPlainObject"],
143
155
  /**
144
156
  * Sets the updated flag of the context. If this is set, the context was updated. E.g. the path changed from
145
157
  * a preliminary path to the canonical one.
158
+ *
159
+ * @deprecated since 1.93.0; only supported by the OData V2 Model; use V2 specific Context
160
+ * instead
146
161
  * @private
147
162
  * @param {boolean} bUpdated the preliminary flag
148
163
  */
@@ -152,6 +167,9 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/util/isPlainObject"],
152
167
 
153
168
  /**
154
169
  * This method returns, whether the context is updated.
170
+ *
171
+ * @deprecated since 1.93.0; only supported by the OData V2 Model; use V2 specific Context
172
+ * instead
155
173
  * @private
156
174
  * @return {boolean} the updated flag
157
175
  */
@@ -159,6 +177,17 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/util/isPlainObject"],
159
177
  return this.bUpdated;
160
178
  };
161
179
 
180
+ /**
181
+ * Whether this context has changed. By default this context cannot be changed but subclasses
182
+ * can override this behaviour.
183
+ *
184
+ * @return {boolean} Whether this context has changed
185
+ * @private
186
+ */
187
+ Context.prototype.hasChanged = function() {
188
+ return this.isUpdated() || this.isRefreshForced();
189
+ };
190
+
162
191
  /**
163
192
  * Compares the two given Contexts. Returns true if the context instances are not equal,
164
193
  * if the new context is updated or if the new context is refreshed.
@@ -169,17 +198,8 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/util/isPlainObject"],
169
198
  * @private
170
199
  */
171
200
  Context.hasChanged = function(oOldContext, oNewContext) {
172
- var bChanged = false;
173
-
174
- if (oOldContext !== oNewContext) {
175
- bChanged = true;
176
- } else if (oNewContext && oNewContext.isUpdated()) {
177
- bChanged = true;
178
- } else if (oNewContext && oNewContext.isRefreshForced()) {
179
- bChanged = true;
180
- }
181
-
182
- return bChanged;
201
+ return oOldContext !== oNewContext
202
+ || !!oNewContext && !!oNewContext.hasChanged();
183
203
  };
184
204
 
185
205
  /**