@openui5/sap.ui.core 1.120.0 → 1.120.1

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 (464) 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 +2 -2
  8. package/src/sap/base/Eventing.js +1 -1
  9. package/src/sap/base/config.js +1 -1
  10. package/src/sap/base/i18n/Formatting.js +30 -14
  11. package/src/sap/base/i18n/LanguageTag.js +1 -1
  12. package/src/sap/base/i18n/Localization.js +1 -2
  13. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  14. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  15. package/src/sap/base/util/restricted/_castArray.js +1 -1
  16. package/src/sap/base/util/restricted/_compact.js +1 -1
  17. package/src/sap/base/util/restricted/_curry.js +1 -1
  18. package/src/sap/base/util/restricted/_debounce.js +1 -1
  19. package/src/sap/base/util/restricted/_difference.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_flatten.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_intersection.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isNil.js +1 -1
  34. package/src/sap/base/util/restricted/_max.js +1 -1
  35. package/src/sap/base/util/restricted/_merge.js +1 -1
  36. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  37. package/src/sap/base/util/restricted/_min.js +1 -1
  38. package/src/sap/base/util/restricted/_omit.js +1 -1
  39. package/src/sap/base/util/restricted/_pick.js +1 -1
  40. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  41. package/src/sap/base/util/restricted/_throttle.js +1 -1
  42. package/src/sap/base/util/restricted/_toArray.js +1 -1
  43. package/src/sap/base/util/restricted/_union.js +1 -1
  44. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  45. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  46. package/src/sap/base/util/restricted/_uniq.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  49. package/src/sap/base/util/restricted/_without.js +1 -1
  50. package/src/sap/base/util/restricted/_xor.js +1 -1
  51. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  52. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  55. package/src/sap/ui/Device.js +3 -3
  56. package/src/sap/ui/Global.js +4 -4
  57. package/src/sap/ui/base/Event.js +1 -1
  58. package/src/sap/ui/base/EventProvider.js +1 -1
  59. package/src/sap/ui/base/Interface.js +1 -1
  60. package/src/sap/ui/base/ManagedObject.js +1 -57
  61. package/src/sap/ui/base/ManagedObjectMetadata.js +25 -1
  62. package/src/sap/ui/base/Metadata.js +1 -1
  63. package/src/sap/ui/base/Object.js +1 -1
  64. package/src/sap/ui/base/ObjectPool.js +1 -1
  65. package/src/sap/ui/core/.library +1 -1
  66. package/src/sap/ui/core/BusyIndicator.js +1 -1
  67. package/src/sap/ui/core/Component.js +27 -8
  68. package/src/sap/ui/core/ComponentContainer.js +3 -3
  69. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  70. package/src/sap/ui/core/ComponentSupport.js +1 -1
  71. package/src/sap/ui/core/Configuration.js +9 -7
  72. package/src/sap/ui/core/Control.js +1 -1
  73. package/src/sap/ui/core/Core.js +14 -68
  74. package/src/sap/ui/core/CustomData.js +1 -1
  75. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  76. package/src/sap/ui/core/Element.js +7 -3
  77. package/src/sap/ui/core/ElementMetadata.js +1 -1
  78. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  79. package/src/sap/ui/core/EventBus.js +1 -1
  80. package/src/sap/ui/core/Fragment.js +3 -3
  81. package/src/sap/ui/core/HTML.js +1 -1
  82. package/src/sap/ui/core/History.js +1 -1
  83. package/src/sap/ui/core/Icon.js +1 -1
  84. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  85. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  86. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  87. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  88. package/src/sap/ui/core/InvisibleText.js +1 -1
  89. package/src/sap/ui/core/Item.js +1 -1
  90. package/src/sap/ui/core/LabelEnablement.js +1 -1
  91. package/src/sap/ui/core/LayoutData.js +1 -1
  92. package/src/sap/ui/core/Lib.js +59 -29
  93. package/src/sap/ui/core/ListItem.js +1 -1
  94. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  95. package/src/sap/ui/core/Locale.js +1 -1
  96. package/src/sap/ui/core/LocaleData.js +1 -1
  97. package/src/sap/ui/core/Manifest.js +1 -1
  98. package/src/sap/ui/core/Message.js +1 -1
  99. package/src/sap/ui/core/RenderManager.js +1 -1
  100. package/src/sap/ui/core/Renderer.js +1 -1
  101. package/src/sap/ui/core/ResizeHandler.js +1 -1
  102. package/src/sap/ui/core/ScrollBar.js +1 -1
  103. package/src/sap/ui/core/SeparatorItem.js +1 -1
  104. package/src/sap/ui/core/Title.js +1 -1
  105. package/src/sap/ui/core/TooltipBase.js +1 -1
  106. package/src/sap/ui/core/UIArea.js +5 -1
  107. package/src/sap/ui/core/UIComponent.js +1 -1
  108. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  109. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  110. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  111. package/src/sap/ui/core/XMLComposite.js +1 -1
  112. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  113. package/src/sap/ui/core/date/Islamic.js +4 -4
  114. package/src/sap/ui/core/date/UI5Date.js +1 -1
  115. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  116. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  117. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  118. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  119. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  120. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  121. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  122. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  123. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  124. package/src/sap/ui/core/library.js +3 -3
  125. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  126. package/src/sap/ui/core/message/Message.js +1 -1
  127. package/src/sap/ui/core/message/MessageManager.js +1 -1
  128. package/src/sap/ui/core/message/MessageParser.js +1 -1
  129. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  130. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
  131. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  132. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  133. package/src/sap/ui/core/mvc/JSView.js +1 -1
  134. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  135. package/src/sap/ui/core/mvc/View.js +2 -2
  136. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  137. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  138. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  139. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  140. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  141. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  142. package/src/sap/ui/core/search/OpenSearchProvider.js +2 -1
  143. package/src/sap/ui/core/search/SearchProvider.js +2 -1
  144. package/src/sap/ui/core/service/Service.js +1 -1
  145. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  146. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  147. package/src/sap/ui/core/support/Plugin.js +1 -1
  148. package/src/sap/ui/core/support/Support.js +1 -1
  149. package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
  150. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  151. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  152. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  153. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  154. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  155. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  156. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  157. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  158. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  159. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  160. package/src/sap/ui/core/tmpl/Template.js +1 -1
  161. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  162. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  163. package/src/sap/ui/core/util/Export.js +1 -1
  164. package/src/sap/ui/core/util/ExportCell.js +1 -1
  165. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  166. package/src/sap/ui/core/util/ExportRow.js +1 -1
  167. package/src/sap/ui/core/util/ExportType.js +1 -1
  168. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  169. package/src/sap/ui/core/util/File.js +1 -1
  170. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  171. package/src/sap/ui/core/util/MockServer.js +1 -1
  172. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  173. package/src/sap/ui/core/util/_LocalizationHelper.js +122 -0
  174. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  175. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  176. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  177. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  178. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  179. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  180. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  181. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  182. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  183. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  184. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  185. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  186. package/src/sap/ui/debug/ControlTree.js +1 -1
  187. package/src/sap/ui/debug/DebugEnv.js +1 -1
  188. package/src/sap/ui/debug/PropertyList.js +1 -1
  189. package/src/sap/ui/model/ClientListBinding.js +6 -3
  190. package/src/sap/ui/model/ClientModel.js +1 -1
  191. package/src/sap/ui/model/ClientTreeBinding.js +6 -3
  192. package/src/sap/ui/model/CompositeDataState.js +1 -1
  193. package/src/sap/ui/model/CompositeType.js +1 -1
  194. package/src/sap/ui/model/DataState.js +1 -1
  195. package/src/sap/ui/model/FilterProcessor.js +17 -17
  196. package/src/sap/ui/model/MetaModel.js +1 -1
  197. package/src/sap/ui/model/Model.js +10 -8
  198. package/src/sap/ui/model/SelectionModel.js +1 -1
  199. package/src/sap/ui/model/SimpleType.js +1 -1
  200. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  201. package/src/sap/ui/model/Type.js +1 -1
  202. package/src/sap/ui/model/json/JSONModel.js +1 -1
  203. package/src/sap/ui/model/message/MessageModel.js +1 -1
  204. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  205. package/src/sap/ui/model/odata/ODataListBinding.js +5 -2
  206. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  207. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  208. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  209. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  210. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  211. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  212. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  213. package/src/sap/ui/model/odata/type/Date.js +1 -1
  214. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  215. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  216. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  217. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  218. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  219. package/src/sap/ui/model/odata/type/Double.js +1 -1
  220. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  221. package/src/sap/ui/model/odata/type/Int.js +1 -1
  222. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  223. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  224. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  225. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  226. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  227. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  228. package/src/sap/ui/model/odata/type/Single.js +1 -1
  229. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  230. package/src/sap/ui/model/odata/type/String.js +1 -1
  231. package/src/sap/ui/model/odata/type/Time.js +1 -1
  232. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  233. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  234. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  235. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  236. package/src/sap/ui/model/odata/v2/ODataListBinding.js +5 -2
  237. package/src/sap/ui/model/odata/v2/ODataModel.js +6 -55
  238. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +6 -3
  239. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  240. package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
  241. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  242. package/src/sap/ui/model/odata/v4/ODataListBinding.js +1 -1
  243. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +2 -2
  244. package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
  245. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  246. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  247. package/src/sap/ui/model/type/Boolean.js +1 -1
  248. package/src/sap/ui/model/type/Currency.js +1 -1
  249. package/src/sap/ui/model/type/Date.js +1 -1
  250. package/src/sap/ui/model/type/DateInterval.js +1 -1
  251. package/src/sap/ui/model/type/DateTime.js +1 -1
  252. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  253. package/src/sap/ui/model/type/FileSize.js +1 -1
  254. package/src/sap/ui/model/type/Float.js +1 -1
  255. package/src/sap/ui/model/type/Integer.js +1 -1
  256. package/src/sap/ui/model/type/String.js +1 -1
  257. package/src/sap/ui/model/type/Time.js +1 -1
  258. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  259. package/src/sap/ui/model/type/Unit.js +1 -1
  260. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  261. package/src/sap/ui/performance/trace/Interaction.js +20 -16
  262. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  263. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  264. package/src/sap/ui/test/actions/EnterText.js +4 -0
  265. package/src/sap/ui/test/generic/TestBase.js +1 -1
  266. package/src/sap/ui/util/Storage.js +1 -1
  267. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/manifest.json +3 -10
  268. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/package.json +13 -0
  269. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +11 -0
  270. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/manifest.json +3 -11
  271. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/package.json +13 -0
  272. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +11 -0
  273. package/test/sap/ui/core/demokit/sample/matcher/Descendant/Component.js +1 -1
  274. package/test/sap/ui/core/demokit/sample/matcher/Descendant/manifest.json +3 -11
  275. package/test/sap/ui/core/demokit/sample/matcher/Descendant/package.json +13 -0
  276. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +11 -0
  277. package/test/sap/ui/core/demokit/sample/matcher/I18NText/manifest.json +3 -11
  278. package/test/sap/ui/core/demokit/sample/matcher/I18NText/package.json +13 -0
  279. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +11 -0
  280. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/manifest.json +3 -11
  281. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/package.json +13 -0
  282. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +11 -0
  283. package/test/sap/ui/core/demokit/tutorial/databinding/01/Component.js +9 -25
  284. package/test/sap/ui/core/demokit/tutorial/databinding/01/manifest.json +20 -0
  285. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  286. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/manifest.json +5 -0
  287. package/test/sap/ui/core/demokit/tutorial/databinding/02/Component.js +9 -25
  288. package/test/sap/ui/core/demokit/tutorial/databinding/02/manifest.json +20 -0
  289. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  290. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/manifest.json +5 -0
  291. package/test/sap/ui/core/demokit/tutorial/databinding/03/Component.js +9 -25
  292. package/test/sap/ui/core/demokit/tutorial/databinding/03/manifest.json +20 -0
  293. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  294. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/manifest.json +5 -0
  295. package/test/sap/ui/core/demokit/tutorial/databinding/04/Component.js +9 -26
  296. package/test/sap/ui/core/demokit/tutorial/databinding/04/manifest.json +21 -0
  297. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  298. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/manifest.json +5 -0
  299. package/test/sap/ui/core/demokit/tutorial/databinding/05/Component.js +9 -26
  300. package/test/sap/ui/core/demokit/tutorial/databinding/05/manifest.json +21 -0
  301. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  302. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/manifest.json +5 -0
  303. package/test/sap/ui/core/demokit/tutorial/databinding/06/Component.js +9 -27
  304. package/test/sap/ui/core/demokit/tutorial/databinding/06/manifest.json +22 -0
  305. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  306. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/manifest.json +5 -0
  307. package/test/sap/ui/core/demokit/tutorial/databinding/07/Component.js +9 -28
  308. package/test/sap/ui/core/demokit/tutorial/databinding/07/manifest.json +23 -0
  309. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  310. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/manifest.json +5 -0
  311. package/test/sap/ui/core/demokit/tutorial/databinding/08/Component.js +9 -28
  312. package/test/sap/ui/core/demokit/tutorial/databinding/08/manifest.json +23 -0
  313. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  314. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/manifest.json +5 -0
  315. package/test/sap/ui/core/demokit/tutorial/databinding/09/Component.js +9 -29
  316. package/test/sap/ui/core/demokit/tutorial/databinding/09/manifest.json +24 -0
  317. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  318. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/manifest.json +5 -0
  319. package/test/sap/ui/core/demokit/tutorial/databinding/10/Component.js +9 -29
  320. package/test/sap/ui/core/demokit/tutorial/databinding/10/manifest.json +24 -0
  321. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  322. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/manifest.json +5 -0
  323. package/test/sap/ui/core/demokit/tutorial/databinding/11/Component.js +9 -29
  324. package/test/sap/ui/core/demokit/tutorial/databinding/11/manifest.json +24 -0
  325. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  326. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/manifest.json +5 -0
  327. package/test/sap/ui/core/demokit/tutorial/databinding/12/Component.js +9 -30
  328. package/test/sap/ui/core/demokit/tutorial/databinding/12/manifest.json +25 -0
  329. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  330. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/manifest.json +5 -0
  331. package/test/sap/ui/core/demokit/tutorial/databinding/13/Component.js +9 -30
  332. package/test/sap/ui/core/demokit/tutorial/databinding/13/manifest.json +25 -0
  333. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  334. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/manifest.json +5 -0
  335. package/test/sap/ui/core/demokit/tutorial/databinding/14/Component.js +9 -30
  336. package/test/sap/ui/core/demokit/tutorial/databinding/14/manifest.json +25 -0
  337. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  338. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/manifest.json +5 -0
  339. package/test/sap/ui/core/demokit/tutorial/databinding/15/Component.js +9 -32
  340. package/test/sap/ui/core/demokit/tutorial/databinding/15/manifest.json +27 -0
  341. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  342. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/manifest.json +5 -0
  343. package/test/sap/ui/core/demokit/tutorial/mockserver/01/Component.js +9 -30
  344. package/test/sap/ui/core/demokit/tutorial/mockserver/01/manifest.json +24 -0
  345. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  346. package/test/sap/ui/core/demokit/tutorial/mockserver/02/Component.js +9 -33
  347. package/test/sap/ui/core/demokit/tutorial/mockserver/02/manifest.json +27 -0
  348. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  349. package/test/sap/ui/core/demokit/tutorial/mockserver/03/Component.js +9 -33
  350. package/test/sap/ui/core/demokit/tutorial/mockserver/03/manifest.json +27 -0
  351. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  352. package/test/sap/ui/core/demokit/tutorial/mockserver/04/Component.js +9 -33
  353. package/test/sap/ui/core/demokit/tutorial/mockserver/04/manifest.json +27 -0
  354. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  355. package/test/sap/ui/core/demokit/tutorial/navigation/01/Component.js +9 -33
  356. package/test/sap/ui/core/demokit/tutorial/navigation/01/manifest.json +28 -0
  357. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  358. package/test/sap/ui/core/demokit/tutorial/navigation/02/Component.js +9 -35
  359. package/test/sap/ui/core/demokit/tutorial/navigation/02/manifest.json +30 -0
  360. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  361. package/test/sap/ui/core/demokit/tutorial/navigation/03/Component.js +9 -37
  362. package/test/sap/ui/core/demokit/tutorial/navigation/03/manifest.json +32 -0
  363. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  364. package/test/sap/ui/core/demokit/tutorial/navigation/04/Component.js +9 -38
  365. package/test/sap/ui/core/demokit/tutorial/navigation/04/manifest.json +33 -0
  366. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  367. package/test/sap/ui/core/demokit/tutorial/navigation/05/Component.js +9 -38
  368. package/test/sap/ui/core/demokit/tutorial/navigation/05/manifest.json +33 -0
  369. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  370. package/test/sap/ui/core/demokit/tutorial/navigation/06/Component.js +9 -40
  371. package/test/sap/ui/core/demokit/tutorial/navigation/06/manifest.json +35 -0
  372. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  373. package/test/sap/ui/core/demokit/tutorial/navigation/07/Component.js +9 -42
  374. package/test/sap/ui/core/demokit/tutorial/navigation/07/manifest.json +37 -0
  375. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  376. package/test/sap/ui/core/demokit/tutorial/navigation/08/Component.js +9 -45
  377. package/test/sap/ui/core/demokit/tutorial/navigation/08/manifest.json +40 -0
  378. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  379. package/test/sap/ui/core/demokit/tutorial/navigation/09/Component.js +9 -45
  380. package/test/sap/ui/core/demokit/tutorial/navigation/09/manifest.json +40 -0
  381. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  382. package/test/sap/ui/core/demokit/tutorial/navigation/10/Component.js +9 -47
  383. package/test/sap/ui/core/demokit/tutorial/navigation/10/manifest.json +42 -0
  384. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  385. package/test/sap/ui/core/demokit/tutorial/navigation/11/Component.js +9 -52
  386. package/test/sap/ui/core/demokit/tutorial/navigation/11/manifest.json +47 -0
  387. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  388. package/test/sap/ui/core/demokit/tutorial/navigation/12/Component.js +9 -52
  389. package/test/sap/ui/core/demokit/tutorial/navigation/12/manifest.json +47 -0
  390. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  391. package/test/sap/ui/core/demokit/tutorial/navigation/13/Component.js +9 -52
  392. package/test/sap/ui/core/demokit/tutorial/navigation/13/manifest.json +47 -0
  393. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  394. package/test/sap/ui/core/demokit/tutorial/navigation/14/Component.js +9 -52
  395. package/test/sap/ui/core/demokit/tutorial/navigation/14/manifest.json +47 -0
  396. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  397. package/test/sap/ui/core/demokit/tutorial/navigation/15/Component.js +9 -52
  398. package/test/sap/ui/core/demokit/tutorial/navigation/15/manifest.json +47 -0
  399. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  400. package/test/sap/ui/core/demokit/tutorial/navigation/16/Component.js +9 -52
  401. package/test/sap/ui/core/demokit/tutorial/navigation/16/manifest.json +47 -0
  402. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  403. package/test/sap/ui/core/demokit/tutorial/navigation/17/Component.js +9 -52
  404. package/test/sap/ui/core/demokit/tutorial/navigation/17/manifest.json +47 -0
  405. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  406. package/test/sap/ui/core/demokit/tutorial/odatav4/01/Component.js +3 -27
  407. package/test/sap/ui/core/demokit/tutorial/odatav4/01/manifest.json +28 -0
  408. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  409. package/test/sap/ui/core/demokit/tutorial/odatav4/02/Component.js +3 -27
  410. package/test/sap/ui/core/demokit/tutorial/odatav4/02/manifest.json +28 -0
  411. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  412. package/test/sap/ui/core/demokit/tutorial/odatav4/03/Component.js +3 -27
  413. package/test/sap/ui/core/demokit/tutorial/odatav4/03/manifest.json +28 -0
  414. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  415. package/test/sap/ui/core/demokit/tutorial/odatav4/04/Component.js +3 -27
  416. package/test/sap/ui/core/demokit/tutorial/odatav4/04/manifest.json +28 -0
  417. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  418. package/test/sap/ui/core/demokit/tutorial/odatav4/05/Component.js +3 -27
  419. package/test/sap/ui/core/demokit/tutorial/odatav4/05/manifest.json +28 -0
  420. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  421. package/test/sap/ui/core/demokit/tutorial/odatav4/06/Component.js +3 -27
  422. package/test/sap/ui/core/demokit/tutorial/odatav4/06/manifest.json +28 -0
  423. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  424. package/test/sap/ui/core/demokit/tutorial/odatav4/07/Component.js +3 -27
  425. package/test/sap/ui/core/demokit/tutorial/odatav4/07/manifest.json +28 -0
  426. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  427. package/test/sap/ui/core/demokit/tutorial/odatav4/08/Component.js +3 -27
  428. package/test/sap/ui/core/demokit/tutorial/odatav4/08/manifest.json +28 -0
  429. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  430. package/test/sap/ui/core/demokit/tutorial/odatav4/09/Component.js +3 -27
  431. package/test/sap/ui/core/demokit/tutorial/odatav4/09/manifest.json +28 -0
  432. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  433. package/test/sap/ui/core/demokit/tutorial/odatav4/10/Component.js +3 -27
  434. package/test/sap/ui/core/demokit/tutorial/odatav4/10/manifest.json +28 -0
  435. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  436. package/test/sap/ui/core/demokit/tutorial/odatav4/11/Component.js +3 -27
  437. package/test/sap/ui/core/demokit/tutorial/odatav4/11/manifest.json +28 -0
  438. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  439. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/Component.js +9 -29
  440. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/manifest.json +25 -0
  441. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  442. package/test/sap/ui/core/qunit/ClientModel.qunit.js +28 -28
  443. package/test/sap/ui/core/qunit/Lib.qunit.js +42 -0
  444. package/test/sap/ui/core/qunit/ManagedObject.qunit.js +86 -3
  445. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +19 -0
  446. package/test/sap/ui/core/qunit/component/Component.qunit.js +26 -3
  447. package/test/sap/ui/core/qunit/i18n/Islamic.qunit.js +4 -4
  448. package/test/sap/ui/core/qunit/model/ClientListBinding.qunit.js +2 -2
  449. package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +2 -2
  450. package/test/sap/ui/core/qunit/model/FilterProcessor.qunit.js +46 -18
  451. package/test/sap/ui/core/qunit/model/Model.qunit.js +43 -2
  452. package/test/sap/ui/core/qunit/odata/ODataModel_legacyAPIs.qunit.js +22 -22
  453. package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +1 -1
  454. package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +16 -16
  455. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +2 -11
  456. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +17 -17
  457. package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +32 -36
  458. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +19 -9
  459. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +5 -5
  460. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +37 -0
  461. package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +15 -0
  462. package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +11 -2
  463. package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +4 -7
  464. package/test/sap/ui/core/relnotes/changes-1.120.json +82 -0
@@ -3083,21 +3083,17 @@ sap.ui.define([
3083
3083
  });
3084
3084
 
3085
3085
  QUnit.test("createEntry with complex types which have namespace with . characters", function(assert) {
3086
- var done = assert.async();
3087
- var oModel = initModel(sURI, {metadataUrlParams : {test: "complex"}});
3088
- oModel.metadataLoaded().then(function() {
3089
- var oContext = oModel.createEntry("BusinessPartnerSet");
3086
+ const oModel = initModel(sURI, {metadataUrlParams: {test: "complex"}});
3087
+ return oModel.metadataLoaded().then(function() {
3088
+ const oContext = oModel.createEntry("BusinessPartnerSet");
3090
3089
  assert.ok(oContext, "context should be created");
3091
- var oData = oContext.getObject();
3092
- assert.ok(oData, " check context data");
3093
- assert.ok(oData.Address, " check context data");
3094
- assert.ok(oData.Address.hasOwnProperty('AddressType'), " check context data");
3095
- assert.ok(oData.Address.hasOwnProperty('Building'), " check context data");
3096
- assert.ok(oData.Address.hasOwnProperty('City'), " check context data");
3097
- assert.ok(oData.Address.hasOwnProperty('Country'), " check context data");
3098
- assert.ok(oData.Address.hasOwnProperty('Street'), " check context data");
3090
+ assert.ok(oContext.getObject(), "Entity has been created");
3091
+ // properties of complex type can be accessed
3092
+ assert.strictEqual(oContext.getObject("Address"), undefined);
3093
+ assert.strictEqual(oContext.getObject("Address/City"), undefined);
3094
+ oModel.setProperty("Address/City", "Walldorf", oContext);
3095
+ assert.strictEqual(oContext.getObject("Address/City"), "Walldorf");
3099
3096
  oModel.destroy();
3100
- done();
3101
3097
  });
3102
3098
  });
3103
3099
 
@@ -6716,17 +6712,17 @@ sap.ui.define([
6716
6712
  });
6717
6713
 
6718
6714
  QUnit.test("Empty Arguments", function(assert) {
6719
- this.oModel.checkFilterOperation();
6715
+ this.oModel.checkFilter();
6720
6716
  assert.ok(true, "No arguments lead to a positive result");
6721
6717
 
6722
- this.oModel.checkFilterOperation([]);
6718
+ this.oModel.checkFilter([]);
6723
6719
  assert.ok(true, "Empty array lead to a positive result");
6724
6720
  });
6725
6721
 
6726
6722
  QUnit.test("Simple Filters - Supported are OK", function(assert) {
6727
6723
  // comma separated syntax
6728
6724
  var oSupported = new Filter("x", FilterOperator.NE, "Foo");
6729
- this.oModel.checkFilterOperation(oSupported);
6725
+ this.oModel.checkFilter(oSupported);
6730
6726
  assert.ok(true, "Valid operators are supported");
6731
6727
 
6732
6728
  // object syntax
@@ -6735,12 +6731,12 @@ sap.ui.define([
6735
6731
  operator: FilterOperator.NE,
6736
6732
  value1: "FooBar"
6737
6733
  });
6738
- this.oModel.checkFilterOperation(oSupported2);
6734
+ this.oModel.checkFilter(oSupported2);
6739
6735
  assert.ok(true, "Valid operators are supported");
6740
6736
 
6741
6737
  // local fnTest - comma separated (should be ignored)
6742
6738
  var oSupported3 = new Filter("z", function() {});
6743
- this.oModel.checkFilterOperation(oSupported3);
6739
+ this.oModel.checkFilter(oSupported3);
6744
6740
  assert.ok(true, true, "local fnTest is ignored (comma separated syntax)");
6745
6741
 
6746
6742
  // local fnTest - object syntax (should be ignored)
@@ -6748,7 +6744,7 @@ sap.ui.define([
6748
6744
  path: "z",
6749
6745
  test: function() {}
6750
6746
  });
6751
- this.oModel.checkFilterOperation(oSupported4);
6747
+ this.oModel.checkFilter(oSupported4);
6752
6748
  assert.ok(true, "local fnTest is ignored (object syntax)");
6753
6749
  });
6754
6750
 
@@ -6762,7 +6758,7 @@ sap.ui.define([
6762
6758
  });
6763
6759
  assert.throws(
6764
6760
  function() {
6765
- this.oModel.checkFilterOperation(oUnsupported3);
6761
+ this.oModel.checkFilter(oUnsupported3);
6766
6762
  }.bind(this),
6767
6763
  this.getErrorWithMessage(FilterOperator.Any),
6768
6764
  "Invalid operators are not supported (object syntax)"
@@ -6777,7 +6773,7 @@ sap.ui.define([
6777
6773
  });
6778
6774
  assert.throws(
6779
6775
  function() {
6780
- this.oModel.checkFilterOperation(oUnsupported4);
6776
+ this.oModel.checkFilter(oUnsupported4);
6781
6777
  }.bind(this),
6782
6778
  this.getErrorWithMessage(FilterOperator.All),
6783
6779
  "Invalid operators are not supported (object syntax)"
@@ -6794,7 +6790,7 @@ sap.ui.define([
6794
6790
  });
6795
6791
  assert.throws(
6796
6792
  function() {
6797
- this.oModel.checkFilterOperation(oUnsupported3);
6793
+ this.oModel.checkFilter(oUnsupported3);
6798
6794
  }.bind(this),
6799
6795
  this.getErrorWithMessage(FilterOperator.Any),
6800
6796
  "Invalid operators are not supported (object syntax)"
@@ -6809,7 +6805,7 @@ sap.ui.define([
6809
6805
  });
6810
6806
  assert.throws(
6811
6807
  function() {
6812
- this.oModel.checkFilterOperation(oUnsupported4);
6808
+ this.oModel.checkFilter(oUnsupported4);
6813
6809
  }.bind(this),
6814
6810
  this.getErrorWithMessage(FilterOperator.All),
6815
6811
  "Invalid operators are not supported (object syntax)"
@@ -6822,7 +6818,7 @@ sap.ui.define([
6822
6818
 
6823
6819
  // Comma separated syntax
6824
6820
  var oMultiFilter2 = new Filter([oFilter1, oFilter2], false);
6825
- this.oModel.checkFilterOperation(oMultiFilter2);
6821
+ this.oModel.checkFilter(oMultiFilter2);
6826
6822
  assert.ok(true, "Valid operators in multi-filter are supported (comma separated syntax)");
6827
6823
 
6828
6824
  // Object Syntax
@@ -6831,7 +6827,7 @@ sap.ui.define([
6831
6827
  and: true
6832
6828
  });
6833
6829
 
6834
- this.oModel.checkFilterOperation(oMultiFilter);
6830
+ this.oModel.checkFilter(oMultiFilter);
6835
6831
  assert.ok(true, "Valid operators in multi-filter are supported (object syntax)");
6836
6832
  });
6837
6833
 
@@ -6847,7 +6843,7 @@ sap.ui.define([
6847
6843
  });
6848
6844
  assert.throws(
6849
6845
  function() {
6850
- this.oModel.checkFilterOperation(oMultiFilter);
6846
+ this.oModel.checkFilter(oMultiFilter);
6851
6847
  }.bind(this),
6852
6848
  this.getErrorWithMessage(FilterOperator.All),
6853
6849
  "Invalid operators in multi-filter are unsupported (object syntax)"
@@ -6860,7 +6856,7 @@ sap.ui.define([
6860
6856
  });
6861
6857
  assert.throws(
6862
6858
  function() {
6863
- this.oModel.checkFilterOperation(oMultiFilter);
6859
+ this.oModel.checkFilter(oMultiFilter);
6864
6860
  }.bind(this),
6865
6861
  this.getErrorWithMessage(FilterOperator.All),
6866
6862
  "Invalid operators in multi-filter are unsupported (object syntax)"
@@ -6870,7 +6866,7 @@ sap.ui.define([
6870
6866
  var oMultiFilter2 = new Filter([oFilter1, oFilter2], true);
6871
6867
  assert.throws(
6872
6868
  function() {
6873
- this.oModel.checkFilterOperation(oMultiFilter2);
6869
+ this.oModel.checkFilter(oMultiFilter2);
6874
6870
  }.bind(this),
6875
6871
  this.getErrorWithMessage(FilterOperator.All),
6876
6872
  "Invalid operators in multi-filter are unsupported (comma separated syntax)"
@@ -6884,7 +6880,7 @@ sap.ui.define([
6884
6880
  oMultiFilter2 = new Filter([oFilter1, oFilter2], true);
6885
6881
  assert.throws(
6886
6882
  function() {
6887
- this.oModel.checkFilterOperation(oMultiFilter2);
6883
+ this.oModel.checkFilter(oMultiFilter2);
6888
6884
  }.bind(this),
6889
6885
  this.getErrorWithMessage(FilterOperator.Any),
6890
6886
  "Invalid operators in multi-filter are unsupported (comma separated syntax)"
@@ -6903,7 +6899,7 @@ sap.ui.define([
6903
6899
  });
6904
6900
  assert.throws(
6905
6901
  function() {
6906
- this.oModel.checkFilterOperation(oMultiFilter);
6902
+ this.oModel.checkFilter(oMultiFilter);
6907
6903
  }.bind(this),
6908
6904
  this.getErrorWithMessage(FilterOperator.All),
6909
6905
  "Invalid operators in multi-filter are unsupported (object syntax)"
@@ -6916,7 +6912,7 @@ sap.ui.define([
6916
6912
  });
6917
6913
  assert.throws(
6918
6914
  function() {
6919
- this.oModel.checkFilterOperation(oMultiFilter);
6915
+ this.oModel.checkFilter(oMultiFilter);
6920
6916
  }.bind(this),
6921
6917
  this.getErrorWithMessage(FilterOperator.All),
6922
6918
  "Invalid operators in multi-filter are unsupported (object syntax)"
@@ -6926,7 +6922,7 @@ sap.ui.define([
6926
6922
  var oMultiFilter2 = new Filter([oFilter1, oFilter2], true);
6927
6923
  assert.throws(
6928
6924
  function() {
6929
- this.oModel.checkFilterOperation(oMultiFilter2);
6925
+ this.oModel.checkFilter(oMultiFilter2);
6930
6926
  }.bind(this),
6931
6927
  this.getErrorWithMessage(FilterOperator.All),
6932
6928
  "Invalid operators in multi-filter are unsupported (comma separated syntax)"
@@ -6941,7 +6937,7 @@ sap.ui.define([
6941
6937
 
6942
6938
  assert.throws(
6943
6939
  function() {
6944
- this.oModel.checkFilterOperation(oMultiFilter2);
6940
+ this.oModel.checkFilter(oMultiFilter2);
6945
6941
  }.bind(this),
6946
6942
  this.getErrorWithMessage(FilterOperator.Any),
6947
6943
  "Invalid operators in multi-filter are unsupported (comma separated syntax)"
@@ -6962,7 +6958,7 @@ sap.ui.define([
6962
6958
 
6963
6959
  var oMultiFilter3 = new Filter([oMultiFilter2, oFilter4]);
6964
6960
 
6965
- this.oModel.checkFilterOperation(oMultiFilter3);
6961
+ this.oModel.checkFilter(oMultiFilter3);
6966
6962
  assert.ok(true, "Valid operators in multi-filter are supported");
6967
6963
  });
6968
6964
 
@@ -6985,7 +6981,7 @@ sap.ui.define([
6985
6981
 
6986
6982
  assert.throws(
6987
6983
  function() {
6988
- this.oModel.checkFilterOperation(oMultiFilter3);
6984
+ this.oModel.checkFilter(oMultiFilter3);
6989
6985
  }.bind(this),
6990
6986
  this.getErrorWithMessage(FilterOperator.All),
6991
6987
  "Invalid operators in multi-filter are unsupported"
@@ -7019,7 +7015,7 @@ sap.ui.define([
7019
7015
 
7020
7016
  assert.throws(
7021
7017
  function() {
7022
- this.oModel.checkFilterOperation(oMultiFilter3);
7018
+ this.oModel.checkFilter(oMultiFilter3);
7023
7019
  }.bind(this),
7024
7020
  this.getErrorWithMessage(FilterOperator.All),
7025
7021
  "Invalid operators in multi-filter are unsupported"
@@ -985,8 +985,9 @@ sap.ui.define([
985
985
 
986
986
  //*********************************************************************************************
987
987
  [true, false].forEach(function (bCanUseCache) {
988
+ [false, true].forEach(function (bHasQueryOptions) {
988
989
  QUnit.test("fetchOrGetQueryOptionsForOwnCache, auto-$expand/$select: non-parent binding, "
989
- + "can use cache " + bCanUseCache,
990
+ + "can use cache " + bCanUseCache + ", has query=" + bHasQueryOptions,
990
991
  function (assert) {
991
992
  var oBinding = new ODataBinding({
992
993
  doFetchOrGetQueryOptions : function () {},
@@ -998,11 +999,12 @@ sap.ui.define([
998
999
  sPath : "relative",
999
1000
  bRelative : true
1000
1001
  }),
1001
- mLocalQueryOptions = {},
1002
1002
  oParentBinding = {
1003
1003
  fetchIfChildCanUseCache : function () {}
1004
1004
  },
1005
- oQueryOptionsPromise = SyncPromise.resolve(Promise.resolve(mLocalQueryOptions)),
1005
+ vQueryOptions = bHasQueryOptions
1006
+ ? SyncPromise.resolve(Promise.resolve("~mLocalQueryOptions~"))
1007
+ : undefined,
1006
1008
  oContext = Context.create({}, oParentBinding, "/v4Context");
1007
1009
 
1008
1010
  this.mock(oBinding.oModel).expects("resolve")
@@ -1010,21 +1012,29 @@ sap.ui.define([
1010
1012
  .returns("/resolved/path");
1011
1013
  this.mock(oBinding).expects("doFetchOrGetQueryOptions")
1012
1014
  .withExactArgs(sinon.match.same(oContext))
1013
- .returns(oQueryOptionsPromise);
1015
+ .returns(vQueryOptions);
1014
1016
  this.mock(oParentBinding).expects("fetchIfChildCanUseCache")
1015
1017
  .withExactArgs(sinon.match.same(oContext), "relative",
1016
- sinon.match.same(oQueryOptionsPromise), true)
1018
+ sinon.match.same(vQueryOptions), true)
1017
1019
  .returns(SyncPromise.resolve(bCanUseCache ? "/reduced/path" : undefined));
1018
1020
 
1019
1021
  // code under test
1020
1022
  return oBinding.fetchOrGetQueryOptionsForOwnCache(oContext)
1021
1023
  .then(function (oResult) {
1022
- assert.deepEqual(oResult, {
1023
- sReducedPath : bCanUseCache ? "/reduced/path" : "/resolved/path",
1024
- mQueryOptions : bCanUseCache ? undefined : mLocalQueryOptions
1025
- });
1024
+ if (bCanUseCache) {
1025
+ assert.deepEqual(oResult, {
1026
+ sReducedPath : "/reduced/path",
1027
+ mQueryOptions : undefined
1028
+ });
1029
+ } else {
1030
+ assert.deepEqual(oResult, {
1031
+ sReducedPath : "/resolved/path",
1032
+ mQueryOptions : bHasQueryOptions ? "~mLocalQueryOptions~" : {}
1033
+ });
1034
+ }
1026
1035
  });
1027
1036
  });
1037
+ });
1028
1038
  });
1029
1039
 
1030
1040
  //*********************************************************************************************
@@ -1249,20 +1249,20 @@ sap.ui.define([
1249
1249
  FilterOperator.NotContains, FilterOperator.NotEndsWith, FilterOperator.NotStartsWith,
1250
1250
  FilterOperator.StartsWith
1251
1251
  ].forEach(function (sFilterOperator) {
1252
- oMetaModel.checkFilterOperation(new Filter("path", sFilterOperator, "bar"));
1252
+ oMetaModel.checkFilter(new Filter("path", sFilterOperator, "bar"));
1253
1253
  });
1254
- oMetaModel.checkFilterOperation(new Filter("path", FilterOperator.BT, "bar", "foo"));
1255
- oMetaModel.checkFilterOperation(new Filter("path", FilterOperator.NB, "bar", "foo"));
1254
+ oMetaModel.checkFilter(new Filter("path", FilterOperator.BT, "bar", "foo"));
1255
+ oMetaModel.checkFilter(new Filter("path", FilterOperator.NB, "bar", "foo"));
1256
1256
 
1257
1257
  // code under test - unsupported filters
1258
1258
  assert.throws(function () {
1259
- oMetaModel.checkFilterOperation(new Filter({
1259
+ oMetaModel.checkFilter(new Filter({
1260
1260
  path : "path",
1261
1261
  operator : FilterOperator.Any
1262
1262
  }));
1263
1263
  }, /unsupported FilterOperator/, "ClientModel/ClientListBinding doesn't support \"Any\"");
1264
1264
  assert.throws(function () {
1265
- oMetaModel.checkFilterOperation(new Filter({
1265
+ oMetaModel.checkFilter(new Filter({
1266
1266
  path : "path",
1267
1267
  operator : FilterOperator.All,
1268
1268
  variable : "foo",
@@ -7761,6 +7761,43 @@ sap.ui.define([
7761
7761
  });
7762
7762
  });
7763
7763
 
7764
+ //*********************************************************************************************
7765
+ // Scenario: Show properties of various entities in a collection-valued navigation property. The
7766
+ // application in the incident even used different navigation properties via dynamically created
7767
+ // paths based on data it loaded before.
7768
+ // BCP: 2370133257
7769
+ QUnit.test("BCP: 2370133257", async function (assert) {
7770
+ const oModel = this.createSalesOrdersModel({autoExpandSelect : true});
7771
+ const sView = `
7772
+ <FlexBox id="order" binding="{/SalesOrderList('1')}">
7773
+ <Text id="id" text="{SalesOrderID}"/>
7774
+ </FlexBox>
7775
+ <FlexBox id="item">
7776
+ <Text id="note10" text="{SO_2_SOITEM(SalesOrderID='1',ItemPosition='10')/Note}"/>
7777
+ <Text id="note20" text="{SO_2_SOITEM(SalesOrderID='1',ItemPosition='20')/Note}"/>
7778
+ </FlexBox>`;
7779
+
7780
+ this.expectRequest("SalesOrderList('1')?$select=SalesOrderID", {SalesOrderID : "1"})
7781
+ .expectChange("id", "1")
7782
+ .expectChange("note10")
7783
+ .expectChange("note20");
7784
+
7785
+ await this.createView(assert, sView, oModel);
7786
+
7787
+ this.expectRequest(
7788
+ "SalesOrderList('1')/SO_2_SOITEM(SalesOrderID='1',ItemPosition='10')/Note",
7789
+ {value : "Note #10"})
7790
+ .expectRequest(
7791
+ "SalesOrderList('1')/SO_2_SOITEM(SalesOrderID='1',ItemPosition='20')/Note",
7792
+ {value : "Note #20"})
7793
+ .expectChange("note10", "Note #10")
7794
+ .expectChange("note20", "Note #20");
7795
+
7796
+ this.oView.byId("item").setBindingContext(this.oView.byId("order").getBindingContext());
7797
+
7798
+ await this.waitForChanges(assert);
7799
+ });
7800
+
7764
7801
  //*********************************************************************************************
7765
7802
  // Scenario: Modify a property which does not belong to the parent binding's entity, but is
7766
7803
  // related via a navigation property.
@@ -11,6 +11,7 @@ sap.ui.define([
11
11
  "sap/m/TimePicker",
12
12
  "sap/m/Popover",
13
13
  "sap/m/Button",
14
+ "sap/ui/core/Icon",
14
15
  "sap/ui/test/Opa5",
15
16
  "sap/ui/test/opaQunit",
16
17
  "sap/m/library",
@@ -29,6 +30,7 @@ sap.ui.define([
29
30
  TimePicker,
30
31
  Popover,
31
32
  Button,
33
+ Icon,
32
34
  Opa5,
33
35
  opaTest,
34
36
  mobileLibrary,
@@ -363,6 +365,19 @@ sap.ui.define([
363
365
  sinon.assert.calledWith(this.oErrorLog, sinon.match(/Please provide a text/));
364
366
  });
365
367
 
368
+ QUnit.test("Should log a warning and exit early when control is not an input", async function (assert) {
369
+ this.oControl = new Icon({src: "sap-icon://edit"});
370
+
371
+ this.oControl.placeAt("qunit-fixture");
372
+ await nextUIUpdate();
373
+
374
+ // without a safe-check, the line below causes errors with the
375
+ // the current alorithm, when executed on a non-input control:
376
+ this.oEnterText.setText("entering some long enough text on an non-input control");
377
+ this.oEnterText.executeOn(this.oControl);
378
+
379
+ sinon.assert.calledWith(this.oDebugLog, sinon.match(/Cannot enter text in control/));
380
+ });
366
381
 
367
382
  QUnit.test("Should enter number with decimals in input of type number and preserve the value", function (assert) {
368
383
  var fnDone = assert.async();
@@ -47,7 +47,6 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
47
47
  var fnOnBeforeCreated = FESR.onBeforeCreated;
48
48
 
49
49
  FESR.setActive(true);
50
- Interaction.notifyStepStart("startup", true);
51
50
 
52
51
  // implement hook
53
52
  FESR.onBeforeCreated = function(oFESRHandle, oInteraction) {
@@ -96,7 +95,6 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
96
95
 
97
96
  Interaction.end(true);
98
97
  Interaction.clear();
99
- FESR.onBeforeCreated = fnOnBeforeCreated;
100
98
  FESR.setActive(false);
101
99
  FESR.onBeforeCreated = fnOnBeforeCreated;
102
100
  oHeaderSpy.restore();
@@ -234,8 +232,10 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
234
232
 
235
233
  QUnit.test("Beacon strategy", function(assert) {
236
234
  assert.expect(9);
235
+ const oTiming = window.performance.timing;
237
236
  this.clock = sinon.useFakeTimers();
238
237
  window.performance.getEntriesByType = function() { return []; };
238
+ window.performance.timing = oTiming;
239
239
  var sendBeaconStub = sinon.stub(window.navigator, "sendBeacon").returns(true);
240
240
  var fileReader = new FileReader();
241
241
  var done = assert.async();
@@ -279,6 +279,9 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
279
279
 
280
280
  fileReader.readAsText(blobToSend);
281
281
 
282
+ // cleanup
283
+ delete window.performance.getEntriesByType;
284
+ delete window.performance.timing;
282
285
  FESR.setActive(false);
283
286
  sendBeaconStub.restore();
284
287
  this.clock.restore();
@@ -286,9 +289,11 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
286
289
 
287
290
  QUnit.test("Beacon timeout", function(assert) {
288
291
  assert.expect(9);
292
+ const oTiming = window.performance.timing;
289
293
  this.clock = sinon.useFakeTimers();
290
294
  var sendBeaconStub = sinon.stub(window.navigator, "sendBeacon").returns(true);
291
295
  window.performance.getEntriesByType = function() { return []; };
296
+ window.performance.timing = oTiming;
292
297
  var addFakeProcessingTime = function () {
293
298
  // trigger notifyAsyncStep manually in order to avoid removal of interactions without processing time
294
299
  var notifyAsyncStepCallback;
@@ -341,14 +346,17 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
341
346
 
342
347
  // cleanup
343
348
  delete window.performance.getEntriesByType;
349
+ delete window.performance.timing;
344
350
  sendBeaconStub.restore();
345
351
  this.clock.restore();
346
352
  });
347
353
 
348
354
  QUnit.test("Semantic Stepname", function(assert) {
349
355
  assert.expect(3);
356
+ const oTiming = window.performance.timing;
350
357
  this.clock = sinon.useFakeTimers();
351
358
  window.performance.getEntriesByType = function() { return []; };
359
+ window.performance.timing = oTiming;
352
360
  var addFakeProcessingTime = function () {
353
361
  // trigger notifyAsyncStep manually in order to avoid removal of interactions without processing time
354
362
  var notifyAsyncStepCallback;
@@ -379,6 +387,7 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
379
387
 
380
388
  // cleanup
381
389
  delete window.performance.getEntriesByType;
390
+ delete window.performance.timing;
382
391
  this.clock.restore();
383
392
  });
384
393
 
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  var oPendingInteraction = Interaction.getPending();
26
26
  var iBusyDuration = oPendingInteraction.busyDuration;
27
27
 
28
- assert.strictEqual(iBusyDuration, 0, "no busy duration shoudl have been added");
28
+ assert.strictEqual(iBusyDuration, 0, "no busy duration should have been added");
29
29
 
30
30
  //busy indicator adds busy duration - everything is fine
31
31
  Interaction.addBusyDuration(33);
@@ -79,10 +79,11 @@ sap.ui.define([
79
79
 
80
80
  QUnit.module("Interaction API with fake timer", {
81
81
  before: function() {
82
+ const oTiming = window.performance.timing;
82
83
  this.clock = sinon.useFakeTimers();
83
84
  window.performance.getEntriesByType = function() { return []; };
85
+ window.performance.timing = oTiming;
84
86
  Interaction.setActive(true);
85
- this.clock.runAll();
86
87
  },
87
88
  after: function() {
88
89
  Interaction.setActive(false);
@@ -90,6 +91,7 @@ sap.ui.define([
90
91
  // Run all pending setTimeout and restore the timer
91
92
  this.clock.runAll();
92
93
  delete window.performance.getEntriesByType;
94
+ delete window.performance.timing.fetchStart;
93
95
  this.clock.restore();
94
96
  }
95
97
  });
@@ -97,11 +99,6 @@ sap.ui.define([
97
99
  QUnit.test("Semantic Stepname", function(assert) {
98
100
  assert.expect(2);
99
101
 
100
- // Call setActive after activating fakeTimers again, in order to ensure setTimeout calls triggered
101
- // by setActive are also covered by fakeTimers
102
- Interaction.setActive(true);
103
- this.clock.runAll();
104
-
105
102
  return XMLView.create({
106
103
  definition: '<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:fesr="http://schemas.sap.com/sapui5/extension/sap.ui.core.FESR/1">'
107
104
  + ' <Button id="btnWithDeclarativeSemanticAnnotation" text="Create something" fesr:press="create"/> '
@@ -356,5 +356,87 @@
356
356
  "text": " Introduce new sap/ui/core/Security facade and deprecate APIs 'setSecurityTokenHandlers', 'getSecurityTokenHandlers', 'getFrameOptions' and 'getAllowlistService' on sap.ui.core.Configuration."
357
357
  }
358
358
  ]
359
+ },
360
+ "1.120.1": {
361
+ "date": "November 2023",
362
+ "notes": [
363
+ {
364
+ "id": "3bbc19c93a586b7709845dab0d0ebf064981aff0",
365
+ "type": "FIX",
366
+ "text": " Interaction: Fix start time determination",
367
+ "references": [
368
+ {
369
+ "type": "BCP",
370
+ "reference": "2370140056"
371
+ }
372
+ ]
373
+ },
374
+ {
375
+ "id": "13505e606cc13296e78a3bb69b9a2f45248758fb",
376
+ "type": "FIX",
377
+ "text": " Rename sap/ui/core/Component#get to sap/ui/core/Component#getComponentById",
378
+ "references": [
379
+ {
380
+ "type": "BCP",
381
+ "reference": ""
382
+ }
383
+ ]
384
+ },
385
+ {
386
+ "id": "224900a11628b50318b9f112a0ef092fb69a93db",
387
+ "type": "FEATURE",
388
+ "text": " Deprecation of sap/ui/core/search classes",
389
+ "references": [
390
+ {
391
+ "type": "BCP",
392
+ "reference": ""
393
+ }
394
+ ]
395
+ },
396
+ {
397
+ "id": "cccc04332e026bf2e74789d1f70619e8f58d370a",
398
+ "type": "FIX",
399
+ "text": " Rename sap/ui/base/Formatting.(get|set)LegacyDateCalendarCustomizing to sap/ui/base/Formatting.(get|set)CustomIslamicCalendarData",
400
+ "references": [
401
+ {
402
+ "type": "BCP",
403
+ "reference": ""
404
+ }
405
+ ]
406
+ },
407
+ {
408
+ "id": "a36bbebb8765411a33e62e1468879fa81e9d411a",
409
+ "type": "FIX",
410
+ "text": " onlocalizationEvent not fired",
411
+ "references": [
412
+ {
413
+ "type": "BCP",
414
+ "reference": "2370127742"
415
+ }
416
+ ]
417
+ },
418
+ {
419
+ "id": "3a0057ee6707726c4523dfa6a76377d478242f22",
420
+ "type": "FIX",
421
+ "text": " ManagedObjectMetadata: Introduce missing 'defaultClass' setting for aggregations",
422
+ "references": [
423
+ {
424
+ "type": "BCP",
425
+ "reference": ""
426
+ }
427
+ ]
428
+ },
429
+ {
430
+ "id": "07c96430374a9677583d4fc394fe7f543ed36c56",
431
+ "type": "FIX",
432
+ "text": " core/Component: skip the sync processing of i18n before resources are loaded",
433
+ "references": [
434
+ {
435
+ "type": "BCP",
436
+ "reference": "002075129400007495122023"
437
+ }
438
+ ]
439
+ }
440
+ ]
359
441
  }
360
442
  }