@openui5/sap.ui.core 1.120.18 → 1.120.20

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 (312) hide show
  1. package/package.json +1 -1
  2. package/src/jquery.sap.global.js +1 -1
  3. package/src/jquery.sap.properties.js +1 -1
  4. package/src/jquery.sap.resources.js +1 -1
  5. package/src/jquery.sap.script.js +1 -1
  6. package/src/jquery.sap.storage.js +3 -3
  7. package/src/sap/base/Event.js +1 -1
  8. package/src/sap/base/Eventing.js +1 -1
  9. package/src/sap/base/config.js +1 -1
  10. package/src/sap/base/i18n/LanguageTag.js +1 -1
  11. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  12. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  13. package/src/sap/base/util/restricted/_castArray.js +1 -1
  14. package/src/sap/base/util/restricted/_compact.js +1 -1
  15. package/src/sap/base/util/restricted/_curry.js +1 -1
  16. package/src/sap/base/util/restricted/_debounce.js +1 -1
  17. package/src/sap/base/util/restricted/_difference.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  19. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  23. package/src/sap/base/util/restricted/_flatten.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  25. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  26. package/src/sap/base/util/restricted/_intersection.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  28. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  30. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isNil.js +1 -1
  32. package/src/sap/base/util/restricted/_max.js +1 -1
  33. package/src/sap/base/util/restricted/_merge.js +1 -1
  34. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  35. package/src/sap/base/util/restricted/_min.js +1 -1
  36. package/src/sap/base/util/restricted/_omit.js +1 -1
  37. package/src/sap/base/util/restricted/_pick.js +1 -1
  38. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  39. package/src/sap/base/util/restricted/_throttle.js +1 -1
  40. package/src/sap/base/util/restricted/_toArray.js +1 -1
  41. package/src/sap/base/util/restricted/_union.js +1 -1
  42. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  43. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  44. package/src/sap/base/util/restricted/_uniq.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  46. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  47. package/src/sap/base/util/restricted/_without.js +1 -1
  48. package/src/sap/base/util/restricted/_xor.js +1 -1
  49. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  50. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  52. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  53. package/src/sap/ui/Device.js +3 -3
  54. package/src/sap/ui/Global.js +4 -4
  55. package/src/sap/ui/base/Event.js +1 -1
  56. package/src/sap/ui/base/EventProvider.js +1 -1
  57. package/src/sap/ui/base/Interface.js +1 -1
  58. package/src/sap/ui/base/ManagedObject.js +1 -1
  59. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  60. package/src/sap/ui/base/Metadata.js +1 -1
  61. package/src/sap/ui/base/Object.js +1 -1
  62. package/src/sap/ui/base/ObjectPool.js +1 -1
  63. package/src/sap/ui/core/.library +1 -1
  64. package/src/sap/ui/core/BusyIndicator.js +1 -1
  65. package/src/sap/ui/core/Component.js +1 -1
  66. package/src/sap/ui/core/ComponentContainer.js +1 -1
  67. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  68. package/src/sap/ui/core/ComponentSupport.js +1 -1
  69. package/src/sap/ui/core/Configuration.js +1 -1
  70. package/src/sap/ui/core/Control.js +1 -1
  71. package/src/sap/ui/core/Core.js +1 -1
  72. package/src/sap/ui/core/CustomData.js +1 -1
  73. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  74. package/src/sap/ui/core/Element.js +1 -1
  75. package/src/sap/ui/core/ElementMetadata.js +1 -1
  76. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  77. package/src/sap/ui/core/EventBus.js +1 -1
  78. package/src/sap/ui/core/Fragment.js +1 -1
  79. package/src/sap/ui/core/HTML.js +1 -1
  80. package/src/sap/ui/core/History.js +1 -1
  81. package/src/sap/ui/core/Icon.js +1 -1
  82. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  83. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  84. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  85. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  86. package/src/sap/ui/core/InvisibleText.js +1 -1
  87. package/src/sap/ui/core/Item.js +1 -1
  88. package/src/sap/ui/core/LabelEnablement.js +1 -1
  89. package/src/sap/ui/core/LayoutData.js +1 -1
  90. package/src/sap/ui/core/ListItem.js +1 -1
  91. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  92. package/src/sap/ui/core/Locale.js +1 -1
  93. package/src/sap/ui/core/LocaleData.js +1 -1
  94. package/src/sap/ui/core/Manifest.js +1 -1
  95. package/src/sap/ui/core/Message.js +1 -1
  96. package/src/sap/ui/core/RenderManager.js +1 -1
  97. package/src/sap/ui/core/Renderer.js +1 -1
  98. package/src/sap/ui/core/ResizeHandler.js +1 -1
  99. package/src/sap/ui/core/ScrollBar.js +1 -1
  100. package/src/sap/ui/core/SeparatorItem.js +1 -1
  101. package/src/sap/ui/core/Title.js +1 -1
  102. package/src/sap/ui/core/TooltipBase.js +1 -1
  103. package/src/sap/ui/core/UIArea.js +1 -1
  104. package/src/sap/ui/core/UIComponent.js +1 -1
  105. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  106. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  107. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  108. package/src/sap/ui/core/XMLComposite.js +1 -1
  109. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  110. package/src/sap/ui/core/date/UI5Date.js +1 -1
  111. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  112. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  113. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  114. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  115. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  116. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  117. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  118. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  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/messagebundle_en_US_saptrc.properties +294 -282
  127. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  128. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  129. package/src/sap/ui/core/mvc/JSView.js +4 -3
  130. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  131. package/src/sap/ui/core/mvc/View.js +1 -1
  132. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  133. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  134. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  135. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  136. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  137. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  138. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  139. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  140. package/src/sap/ui/core/service/Service.js +1 -1
  141. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  142. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  143. package/src/sap/ui/core/support/Plugin.js +1 -1
  144. package/src/sap/ui/core/support/Support.js +1 -1
  145. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  146. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  147. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  148. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  149. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  150. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  151. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  152. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  153. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  154. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  155. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  156. package/src/sap/ui/core/tmpl/Template.js +1 -1
  157. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  158. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  159. package/src/sap/ui/core/util/Export.js +1 -1
  160. package/src/sap/ui/core/util/ExportCell.js +1 -1
  161. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  162. package/src/sap/ui/core/util/ExportRow.js +1 -1
  163. package/src/sap/ui/core/util/ExportType.js +1 -1
  164. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  165. package/src/sap/ui/core/util/File.js +1 -1
  166. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  167. package/src/sap/ui/core/util/MockServer.js +1 -1
  168. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  169. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  170. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  171. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  172. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  173. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  174. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  175. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  176. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  177. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  178. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  179. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  180. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  181. package/src/sap/ui/debug/ControlTree.js +1 -1
  182. package/src/sap/ui/debug/DebugEnv.js +1 -1
  183. package/src/sap/ui/debug/PropertyList.js +1 -1
  184. package/src/sap/ui/model/ClientModel.js +1 -1
  185. package/src/sap/ui/model/CompositeDataState.js +1 -1
  186. package/src/sap/ui/model/CompositeType.js +1 -1
  187. package/src/sap/ui/model/DataState.js +1 -1
  188. package/src/sap/ui/model/MetaModel.js +1 -1
  189. package/src/sap/ui/model/Model.js +1 -1
  190. package/src/sap/ui/model/SelectionModel.js +1 -1
  191. package/src/sap/ui/model/SimpleType.js +1 -1
  192. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  193. package/src/sap/ui/model/Type.js +1 -1
  194. package/src/sap/ui/model/json/JSONModel.js +1 -1
  195. package/src/sap/ui/model/message/MessageModel.js +1 -1
  196. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  197. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  198. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  199. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  200. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  201. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  202. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  203. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  204. package/src/sap/ui/model/odata/type/Date.js +1 -1
  205. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  206. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  207. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  208. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  209. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  210. package/src/sap/ui/model/odata/type/Double.js +1 -1
  211. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  212. package/src/sap/ui/model/odata/type/Int.js +1 -1
  213. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  214. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  215. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  216. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  217. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  218. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  219. package/src/sap/ui/model/odata/type/Single.js +1 -1
  220. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  221. package/src/sap/ui/model/odata/type/String.js +1 -1
  222. package/src/sap/ui/model/odata/type/Time.js +1 -1
  223. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  224. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  225. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  226. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  227. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  228. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  229. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  230. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  231. package/src/sap/ui/model/odata/v4/ODataListBinding.js +1 -1
  232. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  233. package/src/sap/ui/model/odata/v4/ODataModel.js +39 -11
  234. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  235. package/src/sap/ui/model/odata/v4/lib/_Cache.js +1 -1
  236. package/src/sap/ui/model/odata/v4/lib/_Helper.js +13 -6
  237. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  238. package/src/sap/ui/model/type/Boolean.js +1 -1
  239. package/src/sap/ui/model/type/Currency.js +1 -1
  240. package/src/sap/ui/model/type/Date.js +1 -1
  241. package/src/sap/ui/model/type/DateInterval.js +1 -1
  242. package/src/sap/ui/model/type/DateTime.js +1 -1
  243. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  244. package/src/sap/ui/model/type/FileSize.js +1 -1
  245. package/src/sap/ui/model/type/Float.js +1 -1
  246. package/src/sap/ui/model/type/Integer.js +1 -1
  247. package/src/sap/ui/model/type/String.js +1 -1
  248. package/src/sap/ui/model/type/Time.js +1 -1
  249. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  250. package/src/sap/ui/model/type/Unit.js +1 -1
  251. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  252. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  253. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  254. package/src/sap/ui/test/generic/TestBase.js +1 -1
  255. package/src/sap/ui/util/Storage.js +1 -1
  256. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
  257. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  258. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  259. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  260. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  261. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  262. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  263. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  264. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  265. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  266. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  267. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  268. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  269. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  270. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  271. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  272. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  273. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  274. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  275. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  276. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  277. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  278. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  279. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  280. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  281. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  282. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  283. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  284. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  285. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  286. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  287. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  288. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  289. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  290. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  291. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  292. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  293. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  294. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  295. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  296. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  297. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  298. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  299. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  300. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  301. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  302. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  303. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  304. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  305. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  306. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  307. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  308. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  309. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +127 -3
  310. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +88 -5
  311. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +4 -4
  312. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +35 -13
@@ -4,7 +4,7 @@ metadata:
4
4
  type: application
5
5
  framework:
6
6
  name: OpenUI5
7
- version: "1.120.18" #MainVersion#
7
+ version: "1.120.20" #MainVersion#
8
8
  libraries:
9
9
  - name: sap.m
10
10
  - name: sap.f
@@ -4,7 +4,7 @@ metadata:
4
4
  type: application
5
5
  framework:
6
6
  name: OpenUI5
7
- version: "1.120.18" #MainVersion#
7
+ version: "1.120.20" #MainVersion#
8
8
  libraries:
9
9
  - name: sap.m
10
10
  - name: sap.f
@@ -4,7 +4,7 @@ metadata:
4
4
  type: application
5
5
  framework:
6
6
  name: OpenUI5
7
- version: "1.120.18" #MainVersion#
7
+ version: "1.120.20" #MainVersion#
8
8
  libraries:
9
9
  - name: sap.m
10
10
  - name: sap.f
@@ -4,7 +4,7 @@ metadata:
4
4
  type: application
5
5
  framework:
6
6
  name: OpenUI5
7
- version: "1.120.18" #MainVersion#
7
+ version: "1.120.20" #MainVersion#
8
8
  libraries:
9
9
  - name: sap.m
10
10
  - name: sap.f
@@ -4,7 +4,7 @@ metadata:
4
4
  type: application
5
5
  framework:
6
6
  name: OpenUI5
7
- version: "1.120.18" #MainVersion#
7
+ version: "1.120.20" #MainVersion#
8
8
  libraries:
9
9
  - name: sap.m
10
10
  - name: sap.f
@@ -4,7 +4,7 @@ metadata:
4
4
  type: application
5
5
  framework:
6
6
  name: OpenUI5
7
- version: "1.120.18" #MainVersion#
7
+ version: "1.120.20" #MainVersion#
8
8
  libraries:
9
9
  - name: sap.m
10
10
  - name: sap.f
@@ -4,7 +4,7 @@ metadata:
4
4
  type: application
5
5
  framework:
6
6
  name: OpenUI5
7
- version: "1.120.18" #MainVersion#
7
+ version: "1.120.20" #MainVersion#
8
8
  libraries:
9
9
  - name: sap.m
10
10
  - name: sap.f
@@ -4,7 +4,7 @@ metadata:
4
4
  type: application
5
5
  framework:
6
6
  name: OpenUI5
7
- version: "1.120.18" #MainVersion#
7
+ version: "1.120.20" #MainVersion#
8
8
  libraries:
9
9
  - name: sap.m
10
10
  - name: sap.ui.layout
@@ -5601,8 +5601,24 @@ sap.ui.define([
5601
5601
  // refreshSingle is able to calculate the key predicates in its response and a subsequent PATCH
5602
5602
  // is possible.
5603
5603
  // BCP: 2070137560
5604
+ //
5605
+ // A header message is returned in the response. The targets of the message are pointing to the
5606
+ // binding parameter. The UI5 message contains the adjusted targets. (SNOW: DINC0122620)
5607
+ //
5608
+ // The header message contains the property "longtextUrl", which points one level up. See that
5609
+ // the UI5 message contains the resolved "descriptionUrl". (SNOW: DINC0197984)
5604
5610
  QUnit.test("Context.refresh() in a list relative to a return value context", function (assert) {
5605
- var oTable,
5611
+ var oMessage = {
5612
+ additionalTargets : [
5613
+ "$Parameter/SalesOrder/SO_2_SOITEM(ProductID='HT-1000')/ProductID"
5614
+ ],
5615
+ code : "foo-42",
5616
+ longtextUrl : "../LongText('0815')",
5617
+ message : "text",
5618
+ numericSeverity : 1,
5619
+ target : "$Parameter/SalesOrder/SO_2_SOITEM(ProductID='HT-1000')/Name"
5620
+ },
5621
+ oTable,
5606
5622
  sView = '\
5607
5623
  <FlexBox binding="{/SalesOrderList(\'1\')}">\
5608
5624
  <Text id="id" text="{SalesOrderID}"/>\
@@ -5639,7 +5655,23 @@ sap.ui.define([
5639
5655
  ProductID : "HT-1000"
5640
5656
  }
5641
5657
  }]
5642
- });
5658
+ }, {
5659
+ "sap-messages" : JSON.stringify([oMessage])
5660
+ })
5661
+ .expectMessages([{
5662
+ code : "foo-42",
5663
+ descriptionUrl : sSalesOrderService + "LongText('0815')",
5664
+ message : "text",
5665
+ persistent : true,
5666
+ targets : [
5667
+ "/SalesOrderList('1')/SO_2_SOITEM(ProductID='HT-1000')/Name",
5668
+ "/SalesOrderList('1')/SO_2_SOITEM(ProductID='HT-1000')/ProductID"
5669
+ ],
5670
+ technicalDetails : {
5671
+ originalMessage : oMessage
5672
+ },
5673
+ type : "Success"
5674
+ }]);
5643
5675
 
5644
5676
  return Promise.all([
5645
5677
  that.oView.byId("action").getObjectBinding().execute(),
@@ -18807,8 +18839,18 @@ sap.ui.define([
18807
18839
  // result.
18808
18840
  // JIRA: CPOUI5UISERVICESV3-965
18809
18841
  // BCP: 2070134549
18842
+ //
18843
+ // A header message is returned in the response. The target of the message is pointing to the
18844
+ // binding parameter. The UI5 message contains the adjusted target. (SNOW: DINC0122620)
18810
18845
  QUnit.test("Rel. bound function, auto-$expand/$select (BCP 2070134549)", function (assert) {
18811
- var sFunctionName = "com.sap.gateway.default.iwbep.tea_busi.v0001"
18846
+ var oMessage = {
18847
+ // additional targets are missing intentionally
18848
+ code : "foo-42",
18849
+ message : "text",
18850
+ numericSeverity : 1,
18851
+ target : "$Parameter/_it/Name"
18852
+ },
18853
+ sFunctionName = "com.sap.gateway.default.iwbep.tea_busi.v0001"
18812
18854
  + ".__FAKE__FuGetEmployeesByManager",
18813
18855
  oModel = this.createTeaBusiModel({autoExpandSelect : true}),
18814
18856
  sView = '\
@@ -18834,7 +18876,21 @@ sap.ui.define([
18834
18876
  ID : "6",
18835
18877
  Name : "Susan Bay"
18836
18878
  }]
18879
+ }, {
18880
+ "sap-messages" : JSON.stringify([oMessage])
18837
18881
  })
18882
+ .expectMessages([{
18883
+ code : "foo-42",
18884
+ message : "text",
18885
+ persistent : true,
18886
+ targets : [
18887
+ "/MANAGERS('1')/Name"
18888
+ ],
18889
+ technicalDetails : {
18890
+ originalMessage : oMessage
18891
+ },
18892
+ type : "Success"
18893
+ }])
18838
18894
  .expectChange("TEAM_ID", "TEAM_03")
18839
18895
  .expectChange("id", ["3", "6"])
18840
18896
  .expectChange("name", ["Jonathan Smith", "Susan Bay"]);
@@ -59736,4 +59792,72 @@ make root = ${bMakeRoot}`;
59736
59792
 
59737
59793
  await this.oView.byId("root").getBindingContext().requestRefresh();
59738
59794
  });
59795
+
59796
+ //*********************************************************************************************
59797
+ // Scenario: A context binding with empty path has a hidden context binding to the draft as
59798
+ // parent. Request a property and set a hidden context binding to the active entity as parent.
59799
+ // Before the request finished, set the binding context to null. In the end, request side
59800
+ // effects for the complete model to see that no change listeners remained in the hidden ODCB
59801
+ // for the active entity. (The issue is that registering is delayed due to the pending
59802
+ // request, but deregistering happens immediately when the binding loses its parent context. So
59803
+ // it deregisters when there is no registration yet, and registers afterwards when there is no
59804
+ // more deregistration to be expected.)
59805
+ // SNOW: DINC0117588
59806
+ QUnit.test("DINC0117588 #2", async function (assert) {
59807
+ const oModel = this.createSpecialCasesModel({autoExpandSelect : true});
59808
+ const sView = `
59809
+ <FlexBox id="root" binding="{}">
59810
+ <Text id="id" text="{ArtistID}"/>
59811
+ <Text id="active" text="{IsActiveEntity}"/>
59812
+ </FlexBox>`;
59813
+
59814
+ this.expectChange("id")
59815
+ .expectChange("active");
59816
+
59817
+ await this.createView(assert, sView, oModel);
59818
+
59819
+ this.expectRequest("Artists(ArtistID='1',IsActiveEntity=false)"
59820
+ + "?$select=ArtistID,IsActiveEntity",
59821
+ {ArtistID : "1", IsActiveEntity : false})
59822
+ .expectChange("id", "1")
59823
+ .expectChange("active", "No");
59824
+
59825
+ const oForm = this.oView.byId("root");
59826
+ oForm.setBindingContext(
59827
+ oModel.bindContext("/Artists(ArtistID='1',IsActiveEntity=false)").getBoundContext());
59828
+
59829
+ await this.waitForChanges(assert, "inactive entity");
59830
+
59831
+ let fnResolve;
59832
+ this.expectRequest("Artists(ArtistID='1',IsActiveEntity=true)"
59833
+ + "?$select=ArtistID,IsActiveEntity",
59834
+ new Promise((resolve) => {
59835
+ fnResolve = resolve;
59836
+ })
59837
+ );
59838
+
59839
+ const oContext
59840
+ = oModel.bindContext("/Artists(ArtistID='1',IsActiveEntity=true)").getBoundContext();
59841
+ const oPropertyPromise = oContext.requestProperty("ArtistID");
59842
+ oForm.setBindingContext(oContext);
59843
+
59844
+ await this.waitForChanges(assert, "active entity");
59845
+
59846
+ this.expectChange("id", null)
59847
+ .expectChange("active", null);
59848
+
59849
+ oForm.setBindingContext(null);
59850
+
59851
+ fnResolve({ArtistID : "1", IsActiveEntity : true});
59852
+
59853
+ await Promise.all([
59854
+ oPropertyPromise,
59855
+ this.waitForChanges(assert, "no entity")
59856
+ ]);
59857
+
59858
+ await Promise.all([
59859
+ oContext.requestSideEffects(["/special.cases.Container/Artists"]),
59860
+ this.waitForChanges(assert, "request full side-effects refresh")
59861
+ ]);
59862
+ });
59739
59863
  });
@@ -1790,15 +1790,27 @@ sap.ui.define([
1790
1790
  aMessages = [{}, {}],
1791
1791
  sResourcePath = "~res~";
1792
1792
 
1793
+ const oMetaModel = {
1794
+ getObject : mustBeMocked
1795
+ };
1796
+
1797
+ oModelMock.expects("getMetaModel").returns(oMetaModel);
1798
+ this.mock(_Helper).expects("getMetaPath")
1799
+ .withExactArgs("/" + sResourcePath)
1800
+ .returns("~metaPath~");
1801
+ this.mock(oMetaModel).expects("getObject")
1802
+ .withExactArgs("~metaPath~")
1803
+ .returns("~metadata~"); // not an array
1804
+
1793
1805
  oModelMock.expects("createUI5Message")
1794
1806
  .withExactArgs(sinon.match(function (oMessage) {
1795
1807
  return oMessage === aMessages[0] && oMessage.transition === true;
1796
- }), sResourcePath)
1808
+ }), sResourcePath, undefined, sinon.match.same(aMessages[0]))
1797
1809
  .returns("~UI5msg0~");
1798
1810
  oModelMock.expects("createUI5Message")
1799
1811
  .withExactArgs(sinon.match(function (oMessage) {
1800
1812
  return oMessage === aMessages[1] && oMessage.transition === true;
1801
- }), sResourcePath)
1813
+ }), sResourcePath, undefined, sinon.match.same(aMessages[1]))
1802
1814
  .returns("~UI5msg1~");
1803
1815
  this.mock(Messaging).expects("updateMessages")
1804
1816
  .withExactArgs(undefined, sinon.match(["~UI5msg0~", "~UI5msg1~"]));
@@ -1808,9 +1820,78 @@ sap.ui.define([
1808
1820
 
1809
1821
  // code under test
1810
1822
  oModel.reportTransitionMessages([], sResourcePath);
1823
+ });
1824
+
1825
+ //*********************************************************************************************
1826
+ QUnit.test("reportTransitionMessages: w/o resourcePath", function () {
1827
+ var oModel = this.createModel(),
1828
+ oModelMock = this.mock(oModel),
1829
+ aMessages = [{}, {}];
1830
+
1831
+ oModelMock.expects("getMetaModel").never();
1832
+
1833
+ oModelMock.expects("createUI5Message")
1834
+ .withExactArgs(sinon.match(function (oMessage) {
1835
+ return oMessage === aMessages[0] && oMessage.transition === true;
1836
+ }), undefined, undefined, sinon.match.same(aMessages[0]))
1837
+ .returns("~UI5msg0~");
1838
+ oModelMock.expects("createUI5Message")
1839
+ .withExactArgs(sinon.match(function (oMessage) {
1840
+ return oMessage === aMessages[1] && oMessage.transition === true;
1841
+ }), undefined, undefined, sinon.match.same(aMessages[1]))
1842
+ .returns("~UI5msg1~");
1843
+ this.mock(Messaging).expects("updateMessages")
1844
+ .withExactArgs(undefined, sinon.match(["~UI5msg0~", "~UI5msg1~"]));
1811
1845
 
1812
1846
  // code under test
1813
- oModel.reportTransitionMessages(null, sResourcePath);
1847
+ oModel.reportTransitionMessages(aMessages);
1848
+ });
1849
+
1850
+ //*********************************************************************************************
1851
+ QUnit.test("reportTransitionMessages: operationMetadata is used to adjustTargets", function () {
1852
+ const oModel = this.createModel();
1853
+ const oModelMock = this.mock(oModel);
1854
+ const oMetaModel = {
1855
+ getObject : mustBeMocked
1856
+ };
1857
+ oModelMock.expects("getMetaModel").returns(oMetaModel);
1858
+ const oHelperMock = this.mock(_Helper);
1859
+ oHelperMock.expects("getMetaPath")
1860
+ .withExactArgs("/resource/path/operation")
1861
+ .returns("~metaPath~");
1862
+ const oMetaModelMock = this.mock(oMetaModel);
1863
+ oMetaModelMock.expects("getObject")
1864
+ .withExactArgs("~metaPath~")
1865
+ .returns(["~metadata~"]);
1866
+ oMetaModelMock.expects("getObject")
1867
+ .withExactArgs("~metaPath~/@$ui5.overload/0")
1868
+ .returns("~operationMetadata~");
1869
+ const oClonedMessage0 = {};
1870
+ oHelperMock.expects("clone").withExactArgs("~message0~").returns(oClonedMessage0);
1871
+ const oClonedMessage1 = {};
1872
+ oHelperMock.expects("clone").withExactArgs("~message1~").returns(oClonedMessage1);
1873
+ oHelperMock.expects("adjustTargets")
1874
+ .withExactArgs(sinon.match.same(oClonedMessage0), "~operationMetadata~", undefined,
1875
+ "/resource/path");
1876
+ oHelperMock.expects("adjustTargets")
1877
+ .withExactArgs(sinon.match.same(oClonedMessage1), "~operationMetadata~", undefined,
1878
+ "/resource/path");
1879
+ oModelMock.expects("createUI5Message")
1880
+ .withExactArgs(sinon.match(function (oMessage) {
1881
+ return oMessage === oClonedMessage0 && oMessage.transition === true;
1882
+ }), "resource/path/operation?~queryOptions~", undefined, "~message0~")
1883
+ .returns("~UI5msg0~");
1884
+ oModelMock.expects("createUI5Message")
1885
+ .withExactArgs(sinon.match(function (oMessage) {
1886
+ return oMessage === oClonedMessage1 && oMessage.transition === true;
1887
+ }), "resource/path/operation?~queryOptions~", undefined, "~message1~")
1888
+ .returns("~UI5msg1~");
1889
+ this.mock(Messaging).expects("updateMessages")
1890
+ .withExactArgs(undefined, sinon.match(["~UI5msg0~", "~UI5msg1~"]));
1891
+
1892
+ // code under test
1893
+ oModel.reportTransitionMessages(["~message0~", "~message1~"],
1894
+ "resource/path/operation?~queryOptions~");
1814
1895
  });
1815
1896
 
1816
1897
  //*********************************************************************************************
@@ -2659,7 +2740,8 @@ sap.ui.define([
2659
2740
  },
2660
2741
  oUI5Message;
2661
2742
 
2662
- oHelperMock.expects("createTechnicalDetails"); // ignore details
2743
+ oHelperMock.expects("createTechnicalDetails")
2744
+ .withExactArgs("~originalMessage~"); // ignore details
2663
2745
  oHelperMock.expects("buildPath").never();
2664
2746
  [oFixture.target].concat(oFixture.additionalTargets || []).forEach(function (sTarget) {
2665
2747
  if (sTarget[0] !== "/") {
@@ -2678,7 +2760,8 @@ sap.ui.define([
2678
2760
  });
2679
2761
 
2680
2762
  // code under test
2681
- oUI5Message = oModel.createUI5Message(oRawMessage, "~resourcePath~", "~cachePath~");
2763
+ oUI5Message = oModel.createUI5Message(oRawMessage, "~resourcePath~", "~cachePath~",
2764
+ "~originalMessage~");
2682
2765
 
2683
2766
  assert.deepEqual(oUI5Message.getTargets(), oFixture.expectedTargets);
2684
2767
  assert.strictEqual(oUI5Message.getPersistent(), oFixture.expectedPersistent || false);
@@ -11084,9 +11084,10 @@ sap.ui.define([
11084
11084
  oCacheMock = this.mock(oCache);
11085
11085
  assert.strictEqual(oCache.oPromise, null);
11086
11086
 
11087
- oCacheMock.expects("registerChangeListener").never();
11087
+ const oRegisterExpectation = oCacheMock.expects("registerChangeListener")
11088
+ .withExactArgs(undefined, "~oListener1~");
11088
11089
  this.mock(oGroupLock1).expects("unlock").never();
11089
- this.oRequestorMock.expects("request")
11090
+ const oRequestExpectation = this.oRequestorMock.expects("request")
11090
11091
  .withExactArgs("GET", sResourcePath + "?~", sinon.match.same(oGroupLock1), undefined,
11091
11092
  undefined, sinon.match.same(fnDataRequested1), undefined, sMetaPath)
11092
11093
  .returns(Promise.resolve(oExpectedResult).then(function () {
@@ -11096,8 +11097,6 @@ sap.ui.define([
11096
11097
  oResponseExpectation = oCacheMock.expects("visitResponse")
11097
11098
  .withExactArgs(sinon.match.same(oExpectedResult),
11098
11099
  sinon.match.same(mTypeForMetaPath));
11099
- oCacheMock.expects("registerChangeListener")
11100
- .withExactArgs(undefined, "~oListener1~");
11101
11100
  oCacheMock.expects("drillDown")
11102
11101
  .withExactArgs(sinon.match.same(oExpectedResult), undefined,
11103
11102
  sinon.match.same(oGroupLock1), bCreateOnDemand)
@@ -11120,6 +11119,7 @@ sap.ui.define([
11120
11119
  bCreateOnDemand, "fnGetOriginalResourcePath")
11121
11120
  .then(function (oResult) {
11122
11121
  assert.strictEqual(oResult, oExpectedResult);
11122
+ assert.ok(oRegisterExpectation.calledBefore(oRequestExpectation));
11123
11123
  })
11124
11124
  ];
11125
11125
  oOldPromise = oCache.oPromise;
@@ -4504,18 +4504,32 @@ sap.ui.define([
4504
4504
 
4505
4505
  //*********************************************************************************************
4506
4506
  [true, false].forEach(function (bTargetIsValid) {
4507
- var sTitle = "adjustTargets: with additional targets, target is valid: " + bTargetIsValid;
4507
+ [true, false].forEach(function (bAnnotation) {
4508
+ var sTitle = "adjustTargets: with additional targets, annotation: " + bAnnotation
4509
+ + ", target is valid: " + bTargetIsValid;
4508
4510
 
4509
4511
  QUnit.test(sTitle, function (assert) {
4510
4512
  var oHelperMock = this.mock(_Helper),
4513
+ oMessage;
4514
+
4515
+ if (bAnnotation) {
4511
4516
  oMessage = {
4512
4517
  target : "target",
4513
4518
  "@foo.additionalTargets" : ["additional1", "foo", "additional2"]
4514
4519
  };
4515
4520
 
4516
- oHelperMock.expects("getAnnotationKey")
4517
- .withExactArgs(sinon.match.same(oMessage), ".additionalTargets")
4518
- .returns("@foo.additionalTargets");
4521
+ oHelperMock.expects("getAnnotationKey")
4522
+ .withExactArgs(sinon.match.same(oMessage), ".additionalTargets")
4523
+ .returns("@foo.additionalTargets");
4524
+ } else {
4525
+ oMessage = {
4526
+ target : "target",
4527
+ additionalTargets : ["additional1", "foo", "additional2"],
4528
+ "@foo.additionalTargets" : "n/a" // additionalTargets must win!
4529
+ };
4530
+
4531
+ oHelperMock.expects("getAnnotationKey").never();
4532
+ }
4519
4533
  oHelperMock.expects("getAdjustedTarget")
4520
4534
  .withExactArgs("target", "oOperationMetadata", "sParameterContextPath", "sContextPath")
4521
4535
  .returns(bTargetIsValid ? "~adjusted~" : undefined);
@@ -4536,18 +4550,21 @@ sap.ui.define([
4536
4550
  _Helper.adjustTargets(oMessage, "oOperationMetadata", "sParameterContextPath",
4537
4551
  "sContextPath");
4538
4552
 
4539
- if (bTargetIsValid) {
4540
- assert.deepEqual(oMessage, {
4541
- target : "~adjusted~",
4542
- "@foo.additionalTargets" : ["~adjusted1~", "~adjusted2~"]
4543
- });
4553
+ const oExpectedMessage = {
4554
+ target : bTargetIsValid ? "~adjusted~" : "~adjusted1~",
4555
+ "@foo.additionalTargets" : "n/a"
4556
+ };
4557
+ const aAdditionalTargets
4558
+ = bTargetIsValid ? ["~adjusted1~", "~adjusted2~"] : ["~adjusted2~"];
4559
+
4560
+ if (bAnnotation) {
4561
+ oExpectedMessage["@foo.additionalTargets"] = aAdditionalTargets;
4544
4562
  } else {
4545
- assert.deepEqual(oMessage, {
4546
- target : "~adjusted1~",
4547
- "@foo.additionalTargets" : ["~adjusted2~"]
4548
- });
4563
+ oExpectedMessage.additionalTargets = aAdditionalTargets;
4549
4564
  }
4565
+ assert.deepEqual(oMessage, oExpectedMessage);
4550
4566
  });
4567
+ });
4551
4568
  });
4552
4569
 
4553
4570
  //*********************************************************************************************
@@ -4576,6 +4593,11 @@ sap.ui.define([
4576
4593
  _Helper.getAdjustedTarget("$Parameter/foo/bar", oOperationMetadata,
4577
4594
  "~parameterContextPath~"),
4578
4595
  "~parameterContextPath~/foo/bar");
4596
+
4597
+ assert.strictEqual(
4598
+ // code under test
4599
+ _Helper.getAdjustedTarget("foo/bar", oOperationMetadata),
4600
+ "foo/bar");
4579
4601
  });
4580
4602
 
4581
4603
  //*********************************************************************************************