@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
@@ -9,6 +9,7 @@ sap.ui.define([
9
9
  "sap/base/Log",
10
10
  "sap/base/util/extend",
11
11
  "sap/base/util/isEmptyObject",
12
+ "sap/base/util/UriParameters",
12
13
  "sap/ui/base/BindingParser",
13
14
  "sap/ui/base/ManagedObject",
14
15
  "sap/ui/base/SyncPromise",
@@ -22,9 +23,9 @@ sap.ui.define([
22
23
  "sap/ui/model/json/JSONPropertyBinding",
23
24
  "sap/ui/model/json/JSONTreeBinding",
24
25
  "sap/ui/performance/Measurement"
25
- ], function (Utils, Log, extend, isEmptyObject, BindingParser, ManagedObject, SyncPromise,
26
- BindingMode, ClientContextBinding, Context, FilterProcessor, MetaModel, JSONListBinding,
27
- JSONModel, JSONPropertyBinding, JSONTreeBinding, Measurement) {
26
+ ], function (Utils, Log, extend, isEmptyObject, UriParameters, BindingParser, ManagedObject,
27
+ SyncPromise, BindingMode, ClientContextBinding, Context, FilterProcessor, MetaModel,
28
+ JSONListBinding, JSONModel, JSONPropertyBinding, JSONTreeBinding, Measurement) {
28
29
  "use strict";
29
30
  /*global Map */
30
31
 
@@ -208,7 +209,7 @@ sap.ui.define([
208
209
  * {@link #loaded loaded} has been resolved!
209
210
  *
210
211
  * @author SAP SE
211
- * @version 1.96.11
212
+ * @version 1.96.13
212
213
  * @alias sap.ui.model.odata.ODataMetaModel
213
214
  * @extends sap.ui.model.MetaModel
214
215
  * @public
@@ -557,8 +558,8 @@ sap.ui.define([
557
558
  var that = this;
558
559
 
559
560
  return this.oLoadedPromiseSync.then(function () {
560
- var sCacheKey, oCodeListModel, oCodeListModelCache, sCollectionPath, oMappingPromise,
561
- sMetaDataUrl, oPromise, oReadPromise,
561
+ var sCacheKey, sCacheKeyWithModel, oCodeListModel, oCodeListModelCache, sCollectionPath,
562
+ oMappingPromise, sMetaDataUrl, oPromise, oReadPromise,
562
563
  sCodeListAnnotation = "com.sap.vocabularies.CodeList.v1." + sTerm,
563
564
  oCodeListAnnotation = that.getODataEntityContainer()[sCodeListAnnotation];
564
565
 
@@ -579,19 +580,37 @@ sap.ui.define([
579
580
  sCollectionPath = oCodeListAnnotation.CollectionPath.String;
580
581
  sMetaDataUrl = that.oDataModel.getMetadataUrl();
581
582
  sCacheKey = sMetaDataUrl + "#" + sCollectionPath;
583
+ // check for global cache entry
582
584
  oPromise = mCodeListUrl2Promise.get(sCacheKey);
583
585
  if (oPromise) {
584
586
  return oPromise;
585
587
  }
588
+ // check for an ODataModel related cache entry
589
+ sCacheKeyWithModel = sCacheKey + "#" + that.getId();
590
+ oPromise = mCodeListUrl2Promise.get(sCacheKeyWithModel);
591
+ if (oPromise) {
592
+ return oPromise;
593
+ }
586
594
 
587
595
  oCodeListModelCache = that._getOrCreateSharedModelCache();
588
596
  oCodeListModel = oCodeListModelCache.oModel;
589
597
 
590
598
  oReadPromise = new SyncPromise(function (fnResolve, fnReject) {
599
+ var oUriParams = UriParameters.fromURL(sMetaDataUrl),
600
+ sClient = oUriParams.get("sap-client"),
601
+ sLanguage = oUriParams.get("sap-language"),
602
+ mUrlParameters = {$skip : 0, $top : 5000}; // avoid server-driven paging
603
+
604
+ if (sClient) {
605
+ mUrlParameters["sap-client"] = sClient;
606
+ }
607
+ if (sLanguage) {
608
+ mUrlParameters["sap-language"] = sLanguage;
609
+ }
591
610
  oCodeListModel.read("/" + sCollectionPath, {
592
611
  error : fnReject,
593
612
  success : fnResolve,
594
- urlParameters : {$skip : 0, $top : 5000} // avoid server-driven paging
613
+ urlParameters : mUrlParameters
595
614
  });
596
615
  });
597
616
  oMappingPromise = new SyncPromise(function (fnResolve, fnReject) {
@@ -608,6 +627,9 @@ sap.ui.define([
608
627
  var aData = aResults[0].results,
609
628
  mMapping = aResults[1];
610
629
 
630
+ mCodeListUrl2Promise.set(sCacheKey, oPromise);
631
+ mCodeListUrl2Promise.delete(sCacheKeyWithModel); // not needed any more
632
+
611
633
  return aData.reduce(function (mCode2Customizing, oEntity) {
612
634
  var sCode = oEntity[mMapping.code],
613
635
  oCustomizing = {
@@ -634,6 +656,7 @@ sap.ui.define([
634
656
  if (oCodeListModel.bDestroyed) {
635
657
  // do not cache rejected Promise caused by a destroyed code list model
636
658
  mCodeListUrl2Promise.delete(sCacheKey);
659
+ mCodeListUrl2Promise.delete(sCacheKeyWithModel);
637
660
  } else {
638
661
  Log.error("Couldn't load code list: " + sCollectionPath + " for "
639
662
  + that.oDataModel.getCodeListModelParameters().serviceUrl,
@@ -650,7 +673,7 @@ sap.ui.define([
650
673
  oCodeListModelCache.bFirstCodeListRequested = true;
651
674
  }
652
675
  });
653
- mCodeListUrl2Promise.set(sCacheKey, oPromise);
676
+ mCodeListUrl2Promise.set(sCacheKeyWithModel, oPromise);
654
677
 
655
678
  return oPromise;
656
679
  });
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * Implementation to access OData metadata
45
45
  *
46
46
  * @author SAP SE
47
- * @version 1.96.11
47
+ * @version 1.96.13
48
48
  *
49
49
  * @public
50
50
  * @alias sap.ui.model.odata.ODataMetadata
@@ -76,7 +76,7 @@ sap.ui.define([
76
76
  *
77
77
  *
78
78
  * @author SAP SE
79
- * @version 1.96.11
79
+ * @version 1.96.13
80
80
  *
81
81
  * @public
82
82
  * @deprecated As of version 1.48, please use {@link sap.ui.model.odata.v2.ODataModel} instead.
@@ -4186,21 +4186,12 @@ sap.ui.define([
4186
4186
  * 2. none of its ancestor it's collapsed.
4187
4187
  */
4188
4188
  ODataTreeBindingFlat.prototype._calcIndexDelta = function (iEndServerIndex) {
4189
- // collect all collapsed server indices and magnitude as a look-up table
4190
- // serverIndex + magnitude form a range for which we can check if there is a containment situation
4191
- var mCollapsedServerIndices = {};
4192
- this._aCollapsed.forEach(function (oNode) {
4193
- // only regard nodes with a server-index and not initially collapsed
4194
- if (oNode.serverIndex >= 0 && oNode.serverIndex < iEndServerIndex && !oNode.isDeepOne && !oNode.initiallyCollapsed) {
4195
- mCollapsedServerIndices[oNode.serverIndex] = oNode.magnitude;
4196
- }
4197
- });
4189
+ var i, bIgnore, aManuallyCollapsedServerIndexNodes,
4190
+ iCollapsedDelta = 0,
4191
+ iExpandedDelta = 0,
4192
+ iLastCollapsedIndex = 0;
4198
4193
 
4199
- // collapsed delta
4200
- var iLastCollapsedIndex = 0;
4201
- var iCollapsedDelta = 0;
4202
-
4203
- for (var i = 0; i < this._aCollapsed.length; i++) {
4194
+ for (i = 0; i < this._aCollapsed.length; i++) {
4204
4195
  var oCollapsedNode = this._aCollapsed[i];
4205
4196
 
4206
4197
  if (this._getRelatedServerIndex(oCollapsedNode) >= iEndServerIndex) {
@@ -4220,26 +4211,26 @@ sap.ui.define([
4220
4211
  }
4221
4212
  }
4222
4213
 
4223
- // expanded delta
4224
- var iExpandedDelta = 0;
4225
-
4226
- var fnInCollapsedRange = function (oNode) {
4227
- var bIgnore = false;
4228
- var iContainingIndexToCheck = oNode.serverIndex || oNode.containingServerIndex;
4229
- for (var j in mCollapsedServerIndices) {
4230
- // if the expanded node is inside a collapsed range -> ignore it
4231
- if (iContainingIndexToCheck > j && iContainingIndexToCheck < j + mCollapsedServerIndices[j]) {
4232
- bIgnore = true;
4233
- break;
4234
- }
4235
- }
4236
- return bIgnore;
4214
+ // filter all collapsed nodes for server-index nodes that are not initially collapsed
4215
+ aManuallyCollapsedServerIndexNodes = this._aCollapsed.filter(function (oNode) {
4216
+ return oNode.serverIndex >= 0 && oNode.serverIndex < iEndServerIndex
4217
+ && !oNode.isDeepOne && !oNode.initiallyCollapsed;
4218
+ });
4219
+
4220
+ // Checks if the given expanded node is a child node of any of the manually collapsed
4221
+ // server-index nodes
4222
+ var fnInCollapsedRange = function (iExpandedNodeIndex) {
4223
+ return aManuallyCollapsedServerIndexNodes.some(function (oNode) {
4224
+ return iExpandedNodeIndex > oNode.serverIndex
4225
+ && iExpandedNodeIndex < oNode.serverIndex + oNode.magnitude;
4226
+ });
4237
4227
  };
4238
4228
 
4239
4229
  for (i = 0; i < this._aExpanded.length; i++) {
4240
- var oExpandedNode = this._aExpanded[i];
4230
+ var oExpandedNode = this._aExpanded[i],
4231
+ iExpandedNodeIndex = this._getRelatedServerIndex(oExpandedNode);
4241
4232
 
4242
- if (this._getRelatedServerIndex(oExpandedNode) >= iEndServerIndex) {
4233
+ if (iExpandedNodeIndex >= iEndServerIndex) {
4243
4234
  break;
4244
4235
  }
4245
4236
 
@@ -4256,7 +4247,9 @@ sap.ui.define([
4256
4247
  oParent = oParent.parent;
4257
4248
  }
4258
4249
 
4259
- var bIgnore = fnInCollapsedRange(oExpandedNode);
4250
+ // if oExpandedNode is a child of a collapsed node it is not visible on the UI and
4251
+ // can be ignored for the expanded delta
4252
+ bIgnore = fnInCollapsedRange(iExpandedNodeIndex);
4260
4253
 
4261
4254
  // if not then regard the children for the expanded delta
4262
4255
  if (!bYep && !bIgnore) {
@@ -4265,7 +4258,7 @@ sap.ui.define([
4265
4258
 
4266
4259
  } else if (oExpandedNode.initiallyCollapsed) {
4267
4260
  // see if the node on the last auto-expand level is contained in a sub-tree of a collapsed server-indexed node
4268
- var bIgnore = fnInCollapsedRange(oExpandedNode);
4261
+ bIgnore = fnInCollapsedRange(iExpandedNodeIndex);
4269
4262
  if (!bIgnore) {
4270
4263
  // still we have to check for a
4271
4264
  iExpandedDelta += oExpandedNode.children.length;
@@ -87,7 +87,7 @@ sap.ui.define([
87
87
  * @extends sap.ui.model.odata.type.ODataType
88
88
  *
89
89
  * @author SAP SE
90
- * @version 1.96.11
90
+ * @version 1.96.13
91
91
  *
92
92
  * @alias sap.ui.model.odata.type.Boolean
93
93
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
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.odata.type.Byte
30
30
  * @param {object} [oFormatOptions]
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * @extends sap.ui.model.type.Currency
62
62
  * @public
63
63
  * @since 1.63.0
64
- * @version 1.96.11
64
+ * @version 1.96.13
65
65
  */
66
66
  var Currency = BaseCurrency.extend("sap.ui.model.odata.type.Currency", {
67
67
  constructor : function (oFormatOptions, oConstraints) {
@@ -106,7 +106,7 @@ sap.ui.define([
106
106
  * @extends sap.ui.model.odata.type.ODataType
107
107
  *
108
108
  * @author SAP SE
109
- * @version 1.96.11
109
+ * @version 1.96.13
110
110
  *
111
111
  * @alias sap.ui.model.odata.type.Date
112
112
  * @param {object} [oFormatOptions]
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @extends sap.ui.model.odata.type.DateTimeBase
60
60
  *
61
61
  * @author SAP SE
62
- * @version 1.96.11
62
+ * @version 1.96.13
63
63
  *
64
64
  * @alias sap.ui.model.odata.type.DateTime
65
65
  * @param {object} [oFormatOptions]
@@ -132,7 +132,7 @@ sap.ui.define([
132
132
  * @extends sap.ui.model.odata.type.ODataType
133
133
  * @public
134
134
  * @since 1.27.0
135
- * @version 1.96.11
135
+ * @version 1.96.13
136
136
  */
137
137
  var DateTimeBase = ODataType.extend("sap.ui.model.odata.type.DateTimeBase", {
138
138
  constructor : function (oFormatOptions, oConstraints) {
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.model.odata.type.DateTimeBase
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.96.11
31
+ * @version 1.96.13
32
32
  *
33
33
  * @alias sap.ui.model.odata.type.DateTimeOffset
34
34
  * @param {object} [oFormatOptions]
@@ -197,7 +197,7 @@ sap.ui.define([
197
197
  * @extends sap.ui.model.odata.type.ODataType
198
198
  *
199
199
  * @author SAP SE
200
- * @version 1.96.11
200
+ * @version 1.96.13
201
201
  *
202
202
  * @alias sap.ui.model.odata.type.Decimal
203
203
  * @param {object} [oFormatOptions]
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.model.odata.type.ODataType
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.96.11
98
+ * @version 1.96.13
99
99
  *
100
100
  * @alias sap.ui.model.odata.type.Double
101
101
  * @param {object} [oFormatOptions]
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  * @extends sap.ui.model.odata.type.ODataType
63
63
  *
64
64
  * @author SAP SE
65
- * @version 1.96.11
65
+ * @version 1.96.13
66
66
  *
67
67
  * @alias sap.ui.model.odata.type.Guid
68
68
  * @param {object} [oFormatOptions]
@@ -80,7 +80,7 @@ sap.ui.define([
80
80
  * @extends sap.ui.model.odata.type.ODataType
81
81
  *
82
82
  * @author SAP SE
83
- * @version 1.96.11
83
+ * @version 1.96.13
84
84
  *
85
85
  * @abstract
86
86
  * @alias sap.ui.model.odata.type.Int
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
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.odata.type.Int16
30
30
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
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.odata.type.Int32
30
30
  * @param {object} [oFormatOptions]
@@ -137,7 +137,7 @@ sap.ui.define([
137
137
  * @extends sap.ui.model.odata.type.ODataType
138
138
  *
139
139
  * @author SAP SE
140
- * @version 1.96.11
140
+ * @version 1.96.13
141
141
  *
142
142
  * @alias sap.ui.model.odata.type.Int64
143
143
  * @param {object} [oFormatOptions]
@@ -115,7 +115,7 @@ sap.ui.define([
115
115
  * @extends sap.ui.model.SimpleType
116
116
  *
117
117
  * @author SAP SE
118
- * @version 1.96.11
118
+ * @version 1.96.13
119
119
  *
120
120
  * @abstract
121
121
  * @alias sap.ui.model.odata.type.ODataType
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.model.odata.type.ODataType
31
31
  * @public
32
32
  * @since 1.37.0
33
- * @version 1.96.11
33
+ * @version 1.96.13
34
34
  */
35
35
  var Raw = ODataType.extend("sap.ui.model.odata.type.Raw", {
36
36
  constructor : function (oFormatOptions, oConstraints) {
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
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.odata.type.SByte
30
30
  * @param {object} [oFormatOptions]
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.model.odata.type.ODataType
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.96.11
98
+ * @version 1.96.13
99
99
  *
100
100
  * @alias sap.ui.model.odata.type.Single
101
101
  * @param {object} [oFormatOptions]
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @extends sap.ui.model.odata.type.ODataType
61
61
  * @public
62
62
  * @since 1.51.0
63
- * @version 1.96.11
63
+ * @version 1.96.13
64
64
  */
65
65
  var Stream = ODataType.extend("sap.ui.model.odata.type.Stream", {
66
66
  constructor : function (oFormatOptions, oConstraints) {
@@ -84,7 +84,7 @@ sap.ui.define([
84
84
  * @extends sap.ui.model.odata.type.ODataType
85
85
  *
86
86
  * @author SAP SE
87
- * @version 1.96.11
87
+ * @version 1.96.13
88
88
  *
89
89
  * @alias sap.ui.model.odata.type.String
90
90
  * @param {object} [oFormatOptions]
@@ -154,7 +154,7 @@ sap.ui.define([
154
154
  * @extends sap.ui.model.odata.type.ODataType
155
155
  *
156
156
  * @author SAP SE
157
- * @version 1.96.11
157
+ * @version 1.96.13
158
158
  *
159
159
  * @alias sap.ui.model.odata.type.Time
160
160
  * @param {object} [oFormatOptions]
@@ -110,7 +110,7 @@ sap.ui.define([
110
110
  * @extends sap.ui.model.odata.type.ODataType
111
111
  * @public
112
112
  * @since 1.37.0
113
- * @version 1.96.11
113
+ * @version 1.96.13
114
114
  */
115
115
  var TimeOfDay = ODataType.extend("sap.ui.model.odata.type.TimeOfDay", {
116
116
  constructor : function (oFormatOptions, oConstraints) {
@@ -63,7 +63,7 @@ sap.ui.define([
63
63
  * @extends sap.ui.model.type.Unit
64
64
  * @public
65
65
  * @since 1.63.0
66
- * @version 1.96.11
66
+ * @version 1.96.13
67
67
  */
68
68
  var Unit = BaseUnit.extend("sap.ui.model.odata.type.Unit", {
69
69
  constructor : function (oFormatOptions, oConstraints, aDynamicFormatOptionNames) {
@@ -52,7 +52,7 @@ sap.ui.define([
52
52
  * @hideconstructor
53
53
  * @public
54
54
  * @since 1.93.0
55
- * @version 1.96.11
55
+ * @version 1.96.13
56
56
  */
57
57
  var Context = BaseContext.extend("sap.ui.model.odata.v2.Context", {
58
58
  constructor : function (oModel, sPath, sDeepPath, oCreatePromise) {
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @class Annotation loader for OData V2 services
36
36
  *
37
37
  * @author SAP SE
38
- * @version 1.96.11
38
+ * @version 1.96.13
39
39
  *
40
40
  * @public
41
41
  * @since 1.37.0
@@ -201,7 +201,7 @@ sap.ui.define([
201
201
  * This model is not prepared to be inherited from.
202
202
  *
203
203
  * @author SAP SE
204
- * @version 1.96.11
204
+ * @version 1.96.13
205
205
  *
206
206
  * @public
207
207
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * @extends sap.ui.model.TreeBinding
93
93
  * @hideconstructor
94
94
  * @public
95
- * @version 1.96.11
95
+ * @version 1.96.13
96
96
  */
97
97
  var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
98
98
 
@@ -98,7 +98,7 @@ sap.ui.define([
98
98
  * @hideconstructor
99
99
  * @public
100
100
  * @since 1.39.0
101
- * @version 1.96.11
101
+ * @version 1.96.13
102
102
  */
103
103
  var Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
104
104
  constructor : function (oModel, oBinding, sPath, iIndex, oCreatePromise, iGeneration) {
@@ -310,9 +310,12 @@ sap.ui.define([
310
310
  * @since 1.66
311
311
  */
312
312
  ODataBinding.prototype.destroy = function () {
313
+ var that = this;
314
+
313
315
  this.mCacheByResourcePath = undefined;
314
316
  this.oCachePromise.then(function (oOldCache) {
315
317
  if (oOldCache) {
318
+ oOldCache.deregisterChange("", that);
316
319
  oOldCache.setActive(false);
317
320
  }
318
321
  }, function () {});
@@ -405,6 +408,7 @@ sap.ui.define([
405
408
 
406
409
  if (oCache) {
407
410
  // if oCachePromise is pending no cache will be created because of oFetchCacheCallToken
411
+ oCache.deregisterChange("", this);
408
412
  oCache.setActive(false);
409
413
  } else if (bKeepQueryOptions) {
410
414
  if (oCache === undefined) {
@@ -106,7 +106,7 @@ sap.ui.define([
106
106
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
107
107
  * @public
108
108
  * @since 1.37.0
109
- * @version 1.96.11
109
+ * @version 1.96.13
110
110
  *
111
111
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
112
112
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding