@openui5/sap.ui.core 1.96.11 → 1.96.13

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 (257) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +1 -1
  3. package/src/jquery.sap.global.js +1 -1
  4. package/src/jquery.sap.properties.js +1 -1
  5. package/src/jquery.sap.resources.js +1 -1
  6. package/src/jquery.sap.script.js +1 -1
  7. package/src/jquery.sap.storage.js +3 -3
  8. package/src/sap/base/security/URLListValidator.js +36 -3
  9. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  10. package/src/sap/base/util/restricted/_castArray.js +1 -1
  11. package/src/sap/base/util/restricted/_compact.js +1 -1
  12. package/src/sap/base/util/restricted/_curry.js +1 -1
  13. package/src/sap/base/util/restricted/_debounce.js +1 -1
  14. package/src/sap/base/util/restricted/_difference.js +1 -1
  15. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  16. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  17. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  18. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  20. package/src/sap/base/util/restricted/_flatten.js +1 -1
  21. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  22. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  23. package/src/sap/base/util/restricted/_intersection.js +1 -1
  24. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  25. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  26. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  27. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  28. package/src/sap/base/util/restricted/_isNil.js +1 -1
  29. package/src/sap/base/util/restricted/_max.js +1 -1
  30. package/src/sap/base/util/restricted/_merge.js +1 -1
  31. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  32. package/src/sap/base/util/restricted/_min.js +1 -1
  33. package/src/sap/base/util/restricted/_omit.js +1 -1
  34. package/src/sap/base/util/restricted/_pick.js +1 -1
  35. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  36. package/src/sap/base/util/restricted/_throttle.js +1 -1
  37. package/src/sap/base/util/restricted/_toArray.js +1 -1
  38. package/src/sap/base/util/restricted/_union.js +1 -1
  39. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  40. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  41. package/src/sap/base/util/restricted/_uniq.js +1 -1
  42. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  43. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  44. package/src/sap/base/util/restricted/_without.js +1 -1
  45. package/src/sap/base/util/restricted/_xor.js +1 -1
  46. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  47. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  48. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  49. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  50. package/src/sap/ui/Device.js +3 -3
  51. package/src/sap/ui/Global.js +4 -4
  52. package/src/sap/ui/base/Event.js +1 -1
  53. package/src/sap/ui/base/EventProvider.js +1 -1
  54. package/src/sap/ui/base/Interface.js +1 -1
  55. package/src/sap/ui/base/ManagedObject.js +1 -1
  56. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  57. package/src/sap/ui/base/Metadata.js +1 -1
  58. package/src/sap/ui/base/Object.js +1 -1
  59. package/src/sap/ui/base/ObjectPool.js +1 -1
  60. package/src/sap/ui/core/.library +1 -1
  61. package/src/sap/ui/core/BusyIndicator.js +1 -1
  62. package/src/sap/ui/core/Component.js +1 -1
  63. package/src/sap/ui/core/ComponentContainer.js +1 -1
  64. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  65. package/src/sap/ui/core/ComponentSupport.js +1 -1
  66. package/src/sap/ui/core/Control.js +1 -1
  67. package/src/sap/ui/core/Core.js +1 -1
  68. package/src/sap/ui/core/CustomData.js +1 -1
  69. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  70. package/src/sap/ui/core/Element.js +1 -1
  71. package/src/sap/ui/core/ElementMetadata.js +1 -1
  72. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  73. package/src/sap/ui/core/EventBus.js +1 -1
  74. package/src/sap/ui/core/Fragment.js +1 -1
  75. package/src/sap/ui/core/HTML.js +1 -1
  76. package/src/sap/ui/core/History.js +1 -1
  77. package/src/sap/ui/core/Icon.js +1 -1
  78. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  79. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  80. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  81. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  82. package/src/sap/ui/core/InvisibleText.js +1 -1
  83. package/src/sap/ui/core/Item.js +1 -1
  84. package/src/sap/ui/core/LabelEnablement.js +1 -1
  85. package/src/sap/ui/core/LayoutData.js +1 -1
  86. package/src/sap/ui/core/ListItem.js +1 -1
  87. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  88. package/src/sap/ui/core/Locale.js +1 -1
  89. package/src/sap/ui/core/LocaleData.js +1 -1
  90. package/src/sap/ui/core/Manifest.js +1 -1
  91. package/src/sap/ui/core/Message.js +1 -1
  92. package/src/sap/ui/core/Popup.js +12 -7
  93. package/src/sap/ui/core/RenderManager.js +1 -1
  94. package/src/sap/ui/core/Renderer.js +1 -1
  95. package/src/sap/ui/core/ResizeHandler.js +1 -1
  96. package/src/sap/ui/core/ScrollBar.js +1 -1
  97. package/src/sap/ui/core/SeparatorItem.js +1 -1
  98. package/src/sap/ui/core/Title.js +1 -1
  99. package/src/sap/ui/core/TooltipBase.js +1 -1
  100. package/src/sap/ui/core/UIArea.js +2 -2
  101. package/src/sap/ui/core/UIComponent.js +1 -1
  102. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  103. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  104. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  105. package/src/sap/ui/core/XMLComposite.js +1 -1
  106. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  107. package/src/sap/ui/core/date/Buddhist.js +15 -13
  108. package/src/sap/ui/core/date/CalendarUtils.js +92 -0
  109. package/src/sap/ui/core/date/CalendarWeekNumbering.js +76 -0
  110. package/src/sap/ui/core/date/Japanese.js +42 -4
  111. package/src/sap/ui/core/date/UniversalDate.js +193 -40
  112. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  113. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  114. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  115. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  116. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  117. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  118. package/src/sap/ui/core/format/DateFormat.js +36 -10
  119. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  120. package/src/sap/ui/core/library.js +3 -3
  121. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  122. package/src/sap/ui/core/message/Message.js +1 -1
  123. package/src/sap/ui/core/message/MessageManager.js +1 -1
  124. package/src/sap/ui/core/message/MessageParser.js +1 -1
  125. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  126. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  127. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  128. package/src/sap/ui/core/mvc/JSView.js +1 -1
  129. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  130. package/src/sap/ui/core/mvc/View.js +1 -1
  131. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  132. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  133. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  134. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  135. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  136. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  137. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  138. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  139. package/src/sap/ui/core/service/Service.js +1 -1
  140. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  141. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  142. package/src/sap/ui/core/support/Plugin.js +1 -1
  143. package/src/sap/ui/core/support/Support.js +1 -1
  144. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  145. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  146. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  147. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  148. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  149. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  150. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  151. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  152. package/src/sap/ui/core/themes/base/base.less +1644 -97
  153. package/src/sap/ui/core/themes/base/global.less +1 -0
  154. package/src/sap/ui/core/themes/base/shared.less +7 -0
  155. package/src/sap/ui/core/themes/sap_hcb/global.less +1 -0
  156. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  157. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  158. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  159. package/src/sap/ui/core/tmpl/Template.js +1 -1
  160. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  161. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  162. package/src/sap/ui/core/util/Export.js +1 -1
  163. package/src/sap/ui/core/util/ExportCell.js +1 -1
  164. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  165. package/src/sap/ui/core/util/ExportRow.js +1 -1
  166. package/src/sap/ui/core/util/ExportType.js +1 -1
  167. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  168. package/src/sap/ui/core/util/File.js +1 -1
  169. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  170. package/src/sap/ui/core/util/MockServer.js +1 -1
  171. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  172. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  173. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  174. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  175. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  176. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  177. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  178. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  179. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  180. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  181. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  182. package/src/sap/ui/debug/ControlTree.js +1 -1
  183. package/src/sap/ui/debug/DebugEnv.js +1 -1
  184. package/src/sap/ui/debug/PropertyList.js +1 -1
  185. package/src/sap/ui/model/ClientModel.js +1 -1
  186. package/src/sap/ui/model/CompositeDataState.js +1 -1
  187. package/src/sap/ui/model/CompositeType.js +1 -1
  188. package/src/sap/ui/model/DataState.js +1 -1
  189. package/src/sap/ui/model/MetaModel.js +1 -1
  190. package/src/sap/ui/model/Model.js +1 -1
  191. package/src/sap/ui/model/SelectionModel.js +1 -1
  192. package/src/sap/ui/model/SimpleType.js +1 -1
  193. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  194. package/src/sap/ui/model/Type.js +1 -1
  195. package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
  196. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +28 -33
  197. package/src/sap/ui/model/json/JSONModel.js +1 -1
  198. package/src/sap/ui/model/message/MessageModel.js +1 -1
  199. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  200. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  201. package/src/sap/ui/model/odata/ODataMetaModel.js +31 -8
  202. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  203. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  204. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +25 -32
  205. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  206. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  207. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  208. package/src/sap/ui/model/odata/type/Date.js +1 -1
  209. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  210. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  211. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  212. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  213. package/src/sap/ui/model/odata/type/Double.js +1 -1
  214. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  215. package/src/sap/ui/model/odata/type/Int.js +1 -1
  216. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  217. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  218. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  219. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  220. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  221. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  222. package/src/sap/ui/model/odata/type/Single.js +1 -1
  223. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  224. package/src/sap/ui/model/odata/type/String.js +1 -1
  225. package/src/sap/ui/model/odata/type/Time.js +1 -1
  226. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  227. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  228. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  229. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  230. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  231. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  232. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  233. package/src/sap/ui/model/odata/v4/ODataBinding.js +4 -0
  234. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  235. package/src/sap/ui/model/odata/v4/ODataListBinding.js +82 -26
  236. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  237. package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
  238. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  239. package/src/sap/ui/model/odata/v4/lib/_Cache.js +22 -6
  240. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  241. package/src/sap/ui/model/type/Boolean.js +1 -1
  242. package/src/sap/ui/model/type/Currency.js +1 -1
  243. package/src/sap/ui/model/type/Date.js +1 -1
  244. package/src/sap/ui/model/type/DateInterval.js +1 -1
  245. package/src/sap/ui/model/type/DateTime.js +1 -1
  246. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  247. package/src/sap/ui/model/type/FileSize.js +1 -1
  248. package/src/sap/ui/model/type/Float.js +1 -1
  249. package/src/sap/ui/model/type/Integer.js +1 -1
  250. package/src/sap/ui/model/type/String.js +1 -1
  251. package/src/sap/ui/model/type/Time.js +1 -1
  252. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  253. package/src/sap/ui/model/type/Unit.js +1 -1
  254. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  255. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  256. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  257. package/src/sap/ui/util/Storage.js +1 -1
@@ -76,7 +76,7 @@ sap.ui.define([
76
76
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
77
77
  * @public
78
78
  * @since 1.37.0
79
- * @version 1.96.11
79
+ * @version 1.96.13
80
80
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
81
81
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
82
82
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -124,6 +124,7 @@ sap.ui.define([
124
124
  this.sOperationMode = mParameters.$$operationMode || oModel.sOperationMode;
125
125
  this.mPreviousContextsByPath = {};
126
126
  this.aPreviousData = [];
127
+ this.sResumeAction = undefined; // a special resume action for $$sharedRequest
127
128
  this.bSharedRequest = mParameters.$$sharedRequest || oModel.bSharedRequests;
128
129
  this.aSorters = _Helper.toArray(vSorters);
129
130
  this.sUpdateGroupId = mParameters.$$updateGroupId;
@@ -978,7 +979,7 @@ sap.ui.define([
978
979
  }
979
980
  this.aContexts.splice(iIndex, 1);
980
981
  if (bDestroyLater && this.iCurrentEnd) {
981
- // Add the context to mPreviousContextsByPath although it definitely won't be reused.
982
+ // Add the context to mPreviousContextsByPath, although it definitely won't be reused.
982
983
  // Then it is destroyed later, but only if there is a listener (iCurrentEnd is set by
983
984
  // getContexts and mPreviousContextsByPath is only cleared when getContexts is called)
984
985
  this.mPreviousContextsByPath[oContext.getPath()] = oContext;
@@ -1023,9 +1024,16 @@ sap.ui.define([
1023
1024
  */
1024
1025
  ODataListBinding.prototype.doCreateCache = function (sResourcePath, mQueryOptions, oContext,
1025
1026
  sDeepResourcePath) {
1026
- return _AggregationCache.create(this.oModel.oRequestor, sResourcePath, sDeepResourcePath,
1027
- this.mParameters.$$aggregation, this.inheritQueryOptions(mQueryOptions, oContext),
1028
- this.oModel.bAutoExpandSelect, this.bSharedRequest);
1027
+ var oCache = _AggregationCache.create(this.oModel.oRequestor, sResourcePath,
1028
+ sDeepResourcePath, this.mParameters.$$aggregation,
1029
+ this.inheritQueryOptions(mQueryOptions, oContext),
1030
+ this.oModel.bAutoExpandSelect, this.bSharedRequest);
1031
+
1032
+ if (this.bSharedRequest) {
1033
+ oCache.registerChange("", this);
1034
+ }
1035
+
1036
+ return oCache;
1029
1037
  };
1030
1038
 
1031
1039
  /**
@@ -2314,6 +2322,35 @@ sap.ui.define([
2314
2322
  });
2315
2323
  };
2316
2324
 
2325
+ /**
2326
+ * Notification from the cache that the collection has changed. Currently, only bindings with
2327
+ * bSharedRequest register at the cache and are notified when the cache has been reset.
2328
+ *
2329
+ * @private
2330
+ */
2331
+ ODataListBinding.prototype.onChange = function () {
2332
+ var aDependentBindings,
2333
+ that = this;
2334
+
2335
+ if (!this.oRefreshPromise) {
2336
+ // some other binding with the same cache is refreshing
2337
+ if (this.isRootBindingSuspended()) {
2338
+ this.sResumeAction = "onChange";
2339
+ } else {
2340
+ // Note: after reset the dependent bindings cannot be found anymore
2341
+ aDependentBindings = this.getDependentBindings();
2342
+ this.reset(ChangeReason.Refresh);
2343
+ SyncPromise.all(
2344
+ aDependentBindings.map(function (oBinding) {
2345
+ return oBinding.refreshInternal("");
2346
+ })
2347
+ ).then(function () {
2348
+ return that.oHeaderContext.checkUpdate();
2349
+ }).catch(this.oModel.getReporter());
2350
+ }
2351
+ }
2352
+ };
2353
+
2317
2354
  /**
2318
2355
  * @override
2319
2356
  * @see sap.ui.model.odata.v4.ODataBinding#refreshInternal
@@ -2344,7 +2381,11 @@ sap.ui.define([
2344
2381
  }
2345
2382
 
2346
2383
  if (this.isRootBindingSuspended()) {
2347
- this.refreshSuspended(sGroupId);
2384
+ if (this.bSharedRequest) {
2385
+ this.sResumeAction = "resetCache";
2386
+ } else {
2387
+ this.refreshSuspended(sGroupId);
2388
+ }
2348
2389
  return SyncPromise.all(refreshAll(that.getDependentBindings()));
2349
2390
  }
2350
2391
 
@@ -2357,29 +2398,34 @@ sap.ui.define([
2357
2398
 
2358
2399
  if (oCache && !oPromise) { // do not refresh twice
2359
2400
  that.removeCachesAndMessages(sResourcePathPrefix);
2360
- that.fetchCache(that.oContext, false, /*bKeepQueryOptions*/true);
2361
- oKeptElementsPromise = that.oCachePromise.then(function (oNewCache) {
2362
- return oNewCache.refreshKeptElements(that.lockGroup(sGroupId), onRemove);
2363
- });
2364
- if (that.iCurrentEnd > 0) {
2365
- oPromise = that.createRefreshPromise().catch(function (oError) {
2366
- if (!bKeepCacheOnError || oError.canceled) {
2367
- throw oError;
2368
- }
2369
- return that.fetchResourcePath(that.oContext).then(function (sResourcePath) {
2370
- if (!that.bRelative || oCache.getResourcePath() === sResourcePath) {
2371
- that.oCache = oCache;
2372
- that.oCachePromise = SyncPromise.resolve(oCache);
2373
- that.iCreatedContexts = iCreatedContexts;
2374
- oCache.setActive(true);
2375
- that._fireChange({reason : ChangeReason.Change});
2401
+ if (that.bSharedRequest) {
2402
+ oPromise = that.createRefreshPromise();
2403
+ oCache.reset([]);
2404
+ } else {
2405
+ that.fetchCache(that.oContext, false, /*bKeepQueryOptions*/true);
2406
+ oKeptElementsPromise = that.oCachePromise.then(function (oNewCache) {
2407
+ return oNewCache.refreshKeptElements(that.lockGroup(sGroupId), onRemove);
2408
+ });
2409
+ if (that.iCurrentEnd > 0) {
2410
+ oPromise = that.createRefreshPromise().catch(function (oError) {
2411
+ if (!bKeepCacheOnError || oError.canceled) {
2412
+ throw oError;
2376
2413
  }
2377
- throw oError;
2414
+ return that.fetchResourcePath(that.oContext).then(function (sResourcePath) {
2415
+ if (!that.bRelative || oCache.getResourcePath() === sResourcePath) {
2416
+ that.oCache = oCache;
2417
+ that.oCachePromise = SyncPromise.resolve(oCache);
2418
+ that.iCreatedContexts = iCreatedContexts;
2419
+ oCache.setActive(true);
2420
+ that._fireChange({reason : ChangeReason.Change});
2421
+ }
2422
+ throw oError;
2423
+ });
2378
2424
  });
2379
- });
2425
+ }
2380
2426
  }
2381
2427
  }
2382
- // Note: after reset the dependent bindings cannot be found any more
2428
+ // Note: after reset the dependent bindings cannot be found anymore
2383
2429
  aDependentBindings = that.getDependentBindings();
2384
2430
  that.reset(ChangeReason.Refresh); // this may reset that.oRefreshPromise
2385
2431
  return SyncPromise.all(
@@ -2831,13 +2877,23 @@ sap.ui.define([
2831
2877
  */
2832
2878
  ODataListBinding.prototype.resumeInternal = function (_bCheckUpdate, bParentHasChanges) {
2833
2879
  var aBindings = this.getDependentBindings(),
2880
+ sResumeAction = this.sResumeAction,
2834
2881
  sResumeChangeReason = this.sResumeChangeReason,
2835
- bRefresh = bParentHasChanges || sResumeChangeReason;
2882
+ bRefresh = bParentHasChanges || sResumeAction || sResumeChangeReason;
2836
2883
 
2884
+ this.sResumeAction = undefined;
2837
2885
  this.sResumeChangeReason = undefined;
2838
2886
 
2839
2887
  if (bRefresh) {
2840
2888
  this.removeCachesAndMessages("");
2889
+ if (sResumeAction === "onChange") {
2890
+ this.onChange();
2891
+ return;
2892
+ }
2893
+ if (sResumeAction === "resetCache") {
2894
+ this.oCache.reset([]);
2895
+ return;
2896
+ }
2841
2897
  this.reset();
2842
2898
  // if the parent binding resumes but there are no changes in the parent binding
2843
2899
  // ignore the parent cache and create an own cache
@@ -658,7 +658,7 @@ sap.ui.define([
658
658
  * @hideconstructor
659
659
  * @public
660
660
  * @since 1.37.0
661
- * @version 1.96.11
661
+ * @version 1.96.13
662
662
  */
663
663
  var ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
664
664
  /*
@@ -210,7 +210,7 @@ sap.ui.define([
210
210
  * @extends sap.ui.model.Model
211
211
  * @public
212
212
  * @since 1.37.0
213
- * @version 1.96.11
213
+ * @version 1.96.13
214
214
  */
215
215
  var ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
216
216
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * @mixes sap.ui.model.odata.v4.ODataBinding
58
58
  * @public
59
59
  * @since 1.37.0
60
- * @version 1.96.11
60
+ * @version 1.96.13
61
61
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
62
62
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
63
63
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -434,7 +434,8 @@ sap.ui.define([
434
434
  };
435
435
 
436
436
  /**
437
- * Deregisters the given change listener. Note: shared caches have no listeners anyway.
437
+ * Deregisters the given change listener. Note: shared caches only have listeners for the empty
438
+ * path.
438
439
  *
439
440
  * @param {string} sPath
440
441
  * The path
@@ -444,7 +445,7 @@ sap.ui.define([
444
445
  * @public
445
446
  */
446
447
  _Cache.prototype.deregisterChange = function (sPath, oListener) {
447
- if (!this.bSharedRequest) {
448
+ if (!(this.bSharedRequest && sPath)) {
448
449
  _Helper.removeByPath(this.mChangeListeners, sPath, oListener);
449
450
  }
450
451
  };
@@ -1237,8 +1238,8 @@ sap.ui.define([
1237
1238
  };
1238
1239
 
1239
1240
  /**
1240
- * Registers the listener for the path. Shared caches do not register listeners because they are
1241
- * read-only.
1241
+ * Registers the listener for the path. Shared caches do not register listeners except for the
1242
+ * empty path, because they are read-only.
1242
1243
  *
1243
1244
  * @param {string} sPath The path
1244
1245
  * @param {object} [oListener] The listener
@@ -1246,7 +1247,7 @@ sap.ui.define([
1246
1247
  * @private
1247
1248
  */
1248
1249
  _Cache.prototype.registerChange = function (sPath, oListener) {
1249
- if (!this.bSharedRequest) {
1250
+ if (!(this.bSharedRequest && sPath)) {
1250
1251
  _Helper.addByPath(this.mChangeListeners, sPath, oListener);
1251
1252
  }
1252
1253
  };
@@ -1476,8 +1477,8 @@ sap.ui.define([
1476
1477
  this.iActiveUsages -= 1;
1477
1478
  if (!this.iActiveUsages) {
1478
1479
  this.iInactiveSince = Date.now();
1480
+ this.mChangeListeners = {};
1479
1481
  }
1480
- this.mChangeListeners = {}; // Note: shared caches have no listeners anyway
1481
1482
  }
1482
1483
  };
1483
1484
 
@@ -2693,6 +2694,21 @@ sap.ui.define([
2693
2694
  });
2694
2695
  };
2695
2696
 
2697
+ /**
2698
+ * Resets this shared cache to its initial state and fires change events.
2699
+ *
2700
+ * @public
2701
+ */
2702
+ _CollectionCache.prototype.reset = function () {
2703
+ this.sContext = undefined;
2704
+ this.aElements.length = this.aElements.$created = 0;
2705
+ this.aElements.$byPredicate = {};
2706
+ this.aElements.$count = undefined; // needed for setCount()
2707
+ this.iLimit = Infinity;
2708
+
2709
+ _Helper.fireChange(this.mChangeListeners, "");
2710
+ };
2711
+
2696
2712
  //*********************************************************************************************
2697
2713
  // PropertyCache
2698
2714
  //*********************************************************************************************
@@ -228,7 +228,7 @@ sap.ui.define([
228
228
  *
229
229
  * @extends sap.ui.model.Model
230
230
  * @public
231
- * @version 1.96.11
231
+ * @version 1.96.13
232
232
  */
233
233
  var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
234
234
 
@@ -19,7 +19,7 @@ sap.ui.define(['sap/ui/model/SimpleType', 'sap/ui/model/FormatException', 'sap/u
19
19
  * @extends sap.ui.model.SimpleType
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.96.11
22
+ * @version 1.96.13
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions]
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.model.CompositeType
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.96.11
35
+ * @version 1.96.13
36
36
  *
37
37
  * @public
38
38
  * @param {object} [oFormatOptions]
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.96.11
29
+ * @version 1.96.13
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * @extends sap.ui.model.CompositeType
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.96.11
36
+ * @version 1.96.13
37
37
  *
38
38
  * @public
39
39
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.96.11
22
+ * @version 1.96.13
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.96.11
22
+ * @version 1.96.13
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.96.11
27
+ * @version 1.96.13
28
28
  *
29
29
  * @public
30
30
  * @param {object} [oFormatOptions] formatting options. Supports the same options as {@link sap.ui.core.format.FileSizeFormat.getInstance FileSizeFormat.getInstance}
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.96.11
29
+ * @version 1.96.13
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.model.SimpleType
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.96.11
29
+ * @version 1.96.13
30
30
  *
31
31
  * @public
32
32
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.SimpleType
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.96.11
27
+ * @version 1.96.13
28
28
  *
29
29
  * @alias sap.ui.model.type.String
30
30
  * @param {object} [oFormatOptions]
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.Date
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.96.11
22
+ * @version 1.96.13
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
19
19
  * @extends sap.ui.model.type.DateInterval
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.96.11
22
+ * @version 1.96.13
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  *
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.96.11
50
+ * @version 1.96.13
51
51
  *
52
52
  * @public
53
53
  * @param {object} [oFormatOptions]
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @extends sap.ui.model.ClientModel
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.96.11
50
+ * @version 1.96.13
51
51
  *
52
52
  * @param {object} oData either the URL where to load the XML from or an XML
53
53
  * @public
@@ -53,7 +53,7 @@ sap.ui.define(['sap/ui/core/Core', "sap/ui/VersionInfo"],
53
53
  * @namespace
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.96.11
56
+ * @version 1.96.13
57
57
  *
58
58
  * @public
59
59
  * @since 1.48.0
@@ -27,7 +27,7 @@ sap.ui.define([ 'sap/ui/core/Element', 'sap/ui/core/Control', 'sap/ui/core/Core'
27
27
  * @namespace
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.96.11
30
+ * @version 1.96.13
31
31
  *
32
32
  * @public
33
33
  * @since 1.48.0
@@ -250,7 +250,7 @@ sap.ui.define(["sap/base/assert"], function (assert) {
250
250
  *
251
251
  * @enum {string}
252
252
  * @public
253
- * @version 1.96.11
253
+ * @version 1.96.13
254
254
  */
255
255
  Storage.Type = {
256
256
  /**