@openui5/sap.ui.core 1.116.0 → 1.117.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 (474) hide show
  1. package/.eslintrc.json +1 -22
  2. package/package.json +1 -1
  3. package/src/jquery.sap.global.js +1 -1
  4. package/src/jquery.sap.properties.js +1 -1
  5. package/src/jquery.sap.resources.js +1 -1
  6. package/src/jquery.sap.script.js +1 -1
  7. package/src/jquery.sap.storage.js +3 -3
  8. package/src/sap/base/Event.js +4 -4
  9. package/src/sap/base/Eventing.js +5 -6
  10. package/src/sap/base/config/MemoryConfigurationProvider.js +10 -1
  11. package/src/sap/base/config.js +3 -2
  12. package/src/sap/base/i18n/Formatting.js +30 -32
  13. package/src/sap/base/i18n/LanguageTag.js +2 -2
  14. package/src/sap/base/i18n/Localization.js +19 -20
  15. package/src/sap/base/i18n/date/CalendarType.js +1 -1
  16. package/src/sap/base/i18n/date/CalendarWeekNumbering.js +1 -1
  17. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  18. package/src/sap/base/util/JSTokenizer.js +1 -1
  19. package/src/sap/base/util/fetch.js +4 -4
  20. package/src/sap/base/util/mixedFetch.js +2 -2
  21. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  22. package/src/sap/base/util/restricted/_castArray.js +1 -1
  23. package/src/sap/base/util/restricted/_compact.js +1 -1
  24. package/src/sap/base/util/restricted/_curry.js +1 -1
  25. package/src/sap/base/util/restricted/_debounce.js +1 -1
  26. package/src/sap/base/util/restricted/_difference.js +1 -1
  27. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  28. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  29. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  30. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  31. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  32. package/src/sap/base/util/restricted/_flatten.js +1 -1
  33. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  34. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  35. package/src/sap/base/util/restricted/_intersection.js +1 -1
  36. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  37. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  38. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  39. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  40. package/src/sap/base/util/restricted/_isNil.js +1 -1
  41. package/src/sap/base/util/restricted/_max.js +1 -1
  42. package/src/sap/base/util/restricted/_merge.js +1 -1
  43. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  44. package/src/sap/base/util/restricted/_min.js +1 -1
  45. package/src/sap/base/util/restricted/_omit.js +1 -1
  46. package/src/sap/base/util/restricted/_pick.js +1 -1
  47. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  48. package/src/sap/base/util/restricted/_throttle.js +1 -1
  49. package/src/sap/base/util/restricted/_toArray.js +1 -1
  50. package/src/sap/base/util/restricted/_union.js +1 -1
  51. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  52. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  53. package/src/sap/base/util/restricted/_uniq.js +1 -1
  54. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  55. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  56. package/src/sap/base/util/restricted/_without.js +1 -1
  57. package/src/sap/base/util/restricted/_xor.js +1 -1
  58. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  59. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  60. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  61. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  62. package/src/sap/base/util/syncFetch.js +2 -2
  63. package/src/sap/ui/Device.js +3 -3
  64. package/src/sap/ui/Global.js +4 -4
  65. package/src/sap/ui/base/Event.js +6 -4
  66. package/src/sap/ui/base/EventProvider.js +1 -1
  67. package/src/sap/ui/base/Interface.js +1 -1
  68. package/src/sap/ui/base/ManagedObject.js +2 -4
  69. package/src/sap/ui/base/ManagedObjectMetadata.js +4 -6
  70. package/src/sap/ui/base/Metadata.js +1 -1
  71. package/src/sap/ui/base/Object.js +1 -1
  72. package/src/sap/ui/base/ObjectPool.js +1 -1
  73. package/src/sap/ui/core/.library +2 -2
  74. package/src/sap/ui/core/AnimationMode.js +1 -1
  75. package/src/sap/ui/core/BusyIndicator.js +1 -1
  76. package/src/sap/ui/core/Component.js +1 -1
  77. package/src/sap/ui/core/ComponentContainer.js +1 -1
  78. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  79. package/src/sap/ui/core/ComponentSupport.js +1 -1
  80. package/src/sap/ui/core/ConfigTest.js +17 -0
  81. package/src/sap/ui/core/Configuration.js +2 -14
  82. package/src/sap/ui/core/Control.js +4 -1
  83. package/src/sap/ui/core/ControlBehavior.js +2 -2
  84. package/src/sap/ui/core/Core.js +3 -1
  85. package/src/sap/ui/core/CustomData.js +1 -1
  86. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  87. package/src/sap/ui/core/Element.js +1 -1
  88. package/src/sap/ui/core/ElementMetadata.js +2 -4
  89. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  90. package/src/sap/ui/core/EventBus.js +1 -1
  91. package/src/sap/ui/core/Fragment.js +1 -1
  92. package/src/sap/ui/core/HTML.js +1 -1
  93. package/src/sap/ui/core/History.js +1 -1
  94. package/src/sap/ui/core/Icon.js +1 -1
  95. package/src/sap/ui/core/IconPool.js +1 -2
  96. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  97. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  98. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  99. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  100. package/src/sap/ui/core/InvisibleText.js +1 -1
  101. package/src/sap/ui/core/Item.js +1 -1
  102. package/src/sap/ui/core/LabelEnablement.js +1 -1
  103. package/src/sap/ui/core/LayoutData.js +1 -1
  104. package/src/sap/ui/core/Lib.js +17 -16
  105. package/src/sap/ui/core/ListItem.js +1 -1
  106. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  107. package/src/sap/ui/core/Locale.js +5 -2
  108. package/src/sap/ui/core/LocaleData.js +12 -4
  109. package/src/sap/ui/core/Manifest.js +5 -5
  110. package/src/sap/ui/core/Message.js +1 -1
  111. package/src/sap/ui/core/Popup.js +37 -50
  112. package/src/sap/ui/core/RenderManager.js +1 -1
  113. package/src/sap/ui/core/Renderer.js +1 -1
  114. package/src/sap/ui/core/Rendering.js +1 -1
  115. package/src/sap/ui/core/ResizeHandler.js +1 -1
  116. package/src/sap/ui/core/ScrollBar.js +1 -1
  117. package/src/sap/ui/core/SeparatorItem.js +1 -1
  118. package/src/sap/ui/core/Shortcut.js +11 -9
  119. package/src/sap/ui/core/StaticArea.js +1 -1
  120. package/src/sap/ui/core/Theming.js +16 -9
  121. package/src/sap/ui/core/Title.js +1 -1
  122. package/src/sap/ui/core/TooltipBase.js +1 -1
  123. package/src/sap/ui/core/UIArea.js +1 -1
  124. package/src/sap/ui/core/UIComponent.js +1 -1
  125. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  126. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  127. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  128. package/src/sap/ui/core/XMLComposite.js +1 -1
  129. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  130. package/src/sap/ui/core/XMLTemplateProcessor.js +27 -5
  131. package/src/sap/ui/core/_IconRegistry.js +82 -11
  132. package/src/sap/ui/core/boot/_bootConfig.js +137 -0
  133. package/src/sap/ui/core/boot/_runBoot.js +16 -0
  134. package/src/sap/ui/core/boot/initDOM.js +96 -0
  135. package/src/sap/ui/core/boot/loadCalendar.js +50 -0
  136. package/src/sap/ui/core/boot/loadManifest.js +55 -0
  137. package/src/sap/ui/core/boot/loadModules.js +80 -0
  138. package/src/sap/ui/core/boot/manifest.json +11 -0
  139. package/src/sap/ui/core/boot/onInit.js +44 -0
  140. package/src/sap/ui/core/boot.js +107 -0
  141. package/src/sap/ui/core/date/UI5Date.js +9 -3
  142. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  143. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  144. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  145. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  146. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  147. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  148. package/src/sap/ui/core/format/DateFormat.js +13 -12
  149. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  150. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  151. package/src/sap/ui/core/library.js +32 -6
  152. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  153. package/src/sap/ui/core/message/Message.js +1 -1
  154. package/src/sap/ui/core/message/MessageManager.js +1 -1
  155. package/src/sap/ui/core/message/MessageMixin.js +6 -5
  156. package/src/sap/ui/core/message/MessageParser.js +1 -1
  157. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  158. package/src/sap/ui/core/messagebundle_ar.properties +57 -55
  159. package/src/sap/ui/core/messagebundle_bg.properties +57 -55
  160. package/src/sap/ui/core/messagebundle_ca.properties +30 -28
  161. package/src/sap/ui/core/messagebundle_cs.properties +43 -41
  162. package/src/sap/ui/core/messagebundle_cy.properties +58 -56
  163. package/src/sap/ui/core/messagebundle_da.properties +56 -54
  164. package/src/sap/ui/core/messagebundle_de.properties +58 -56
  165. package/src/sap/ui/core/messagebundle_el.properties +47 -45
  166. package/src/sap/ui/core/messagebundle_en.properties +58 -56
  167. package/src/sap/ui/core/messagebundle_en_GB.properties +58 -56
  168. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +2 -0
  169. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +2 -0
  170. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +3 -0
  171. package/src/sap/ui/core/messagebundle_es.properties +47 -45
  172. package/src/sap/ui/core/messagebundle_es_MX.properties +57 -55
  173. package/src/sap/ui/core/messagebundle_et.properties +54 -52
  174. package/src/sap/ui/core/messagebundle_fi.properties +51 -49
  175. package/src/sap/ui/core/messagebundle_fr.properties +36 -34
  176. package/src/sap/ui/core/messagebundle_fr_CA.properties +21 -19
  177. package/src/sap/ui/core/messagebundle_hi.properties +42 -40
  178. package/src/sap/ui/core/messagebundle_hr.properties +57 -55
  179. package/src/sap/ui/core/messagebundle_hu.properties +58 -56
  180. package/src/sap/ui/core/messagebundle_id.properties +58 -56
  181. package/src/sap/ui/core/messagebundle_it.properties +59 -57
  182. package/src/sap/ui/core/messagebundle_iw.properties +58 -56
  183. package/src/sap/ui/core/messagebundle_ja.properties +50 -48
  184. package/src/sap/ui/core/messagebundle_kk.properties +43 -41
  185. package/src/sap/ui/core/messagebundle_ko.properties +19 -17
  186. package/src/sap/ui/core/messagebundle_lt.properties +58 -56
  187. package/src/sap/ui/core/messagebundle_lv.properties +58 -56
  188. package/src/sap/ui/core/messagebundle_ms.properties +58 -56
  189. package/src/sap/ui/core/messagebundle_nl.properties +57 -55
  190. package/src/sap/ui/core/messagebundle_no.properties +55 -53
  191. package/src/sap/ui/core/messagebundle_pl.properties +55 -53
  192. package/src/sap/ui/core/messagebundle_pt.properties +57 -55
  193. package/src/sap/ui/core/messagebundle_pt_PT.properties +57 -55
  194. package/src/sap/ui/core/messagebundle_ro.properties +58 -56
  195. package/src/sap/ui/core/messagebundle_ru.properties +57 -55
  196. package/src/sap/ui/core/messagebundle_sh.properties +58 -56
  197. package/src/sap/ui/core/messagebundle_sk.properties +57 -55
  198. package/src/sap/ui/core/messagebundle_sl.properties +58 -56
  199. package/src/sap/ui/core/messagebundle_sv.properties +54 -52
  200. package/src/sap/ui/core/messagebundle_th.properties +17 -15
  201. package/src/sap/ui/core/messagebundle_tr.properties +58 -56
  202. package/src/sap/ui/core/messagebundle_uk.properties +58 -56
  203. package/src/sap/ui/core/messagebundle_vi.properties +58 -56
  204. package/src/sap/ui/core/messagebundle_zh_CN.properties +58 -56
  205. package/src/sap/ui/core/messagebundle_zh_TW.properties +58 -56
  206. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  207. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  208. package/src/sap/ui/core/mvc/JSView.js +1 -1
  209. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  210. package/src/sap/ui/core/mvc/View.js +1 -1
  211. package/src/sap/ui/core/mvc/XMLView.js +14 -2
  212. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  213. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  214. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  215. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  216. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  217. package/src/sap/ui/core/rules/Misc.support.js +1 -1
  218. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  219. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  220. package/src/sap/ui/core/service/Service.js +1 -1
  221. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  222. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  223. package/src/sap/ui/core/support/Plugin.js +1 -1
  224. package/src/sap/ui/core/support/Support.js +7 -4
  225. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  226. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  227. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  228. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  229. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  230. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  231. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  232. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  233. package/src/sap/ui/core/themes/base/Icon.less +2 -2
  234. package/src/sap/ui/core/theming/Parameters.js +0 -5
  235. package/src/sap/ui/core/theming/ThemeManager.js +3 -4
  236. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  237. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  238. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  239. package/src/sap/ui/core/tmpl/Template.js +1 -1
  240. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  241. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  242. package/src/sap/ui/core/util/Export.js +1 -1
  243. package/src/sap/ui/core/util/ExportCell.js +1 -1
  244. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  245. package/src/sap/ui/core/util/ExportRow.js +1 -1
  246. package/src/sap/ui/core/util/ExportType.js +1 -1
  247. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  248. package/src/sap/ui/core/util/File.js +1 -1
  249. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  250. package/src/sap/ui/core/util/MockServer.js +4 -5
  251. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  252. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  253. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  254. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  255. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  256. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  257. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  258. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  259. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  260. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  261. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  262. package/src/sap/ui/debug/ControlTree.js +1 -1
  263. package/src/sap/ui/debug/DebugEnv.js +1 -1
  264. package/src/sap/ui/debug/PropertyList.js +1 -1
  265. package/src/sap/ui/model/ClientModel.js +1 -1
  266. package/src/sap/ui/model/CompositeDataState.js +1 -1
  267. package/src/sap/ui/model/CompositeType.js +1 -1
  268. package/src/sap/ui/model/DataState.js +1 -1
  269. package/src/sap/ui/model/MetaModel.js +1 -1
  270. package/src/sap/ui/model/Model.js +1 -1
  271. package/src/sap/ui/model/SelectionModel.js +1 -1
  272. package/src/sap/ui/model/SimpleType.js +1 -1
  273. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  274. package/src/sap/ui/model/Type.js +1 -1
  275. package/src/sap/ui/model/analytics/AnalyticalBinding.js +166 -79
  276. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +4 -3
  277. package/src/sap/ui/model/analytics/BatchResponseCollector.js +2 -2
  278. package/src/sap/ui/model/analytics/ODataModelAdapter.js +14 -27
  279. package/src/sap/ui/model/analytics/odata4analytics.js +6 -12
  280. package/src/sap/ui/model/base/ManagedObjectModel.js +2 -1
  281. package/src/sap/ui/model/json/JSONModel.js +6 -1
  282. package/src/sap/ui/model/message/MessageModel.js +1 -1
  283. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  284. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  285. package/src/sap/ui/model/odata/ODataMetaModel.js +191 -5
  286. package/src/sap/ui/model/odata/ODataMetadata.js +38 -4
  287. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  288. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  289. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  290. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  291. package/src/sap/ui/model/odata/type/Date.js +1 -1
  292. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  293. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  294. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  295. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  296. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  297. package/src/sap/ui/model/odata/type/Double.js +1 -1
  298. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  299. package/src/sap/ui/model/odata/type/Int.js +1 -1
  300. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  301. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  302. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  303. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  304. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  305. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  306. package/src/sap/ui/model/odata/type/Single.js +1 -1
  307. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  308. package/src/sap/ui/model/odata/type/String.js +1 -1
  309. package/src/sap/ui/model/odata/type/Time.js +1 -1
  310. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  311. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  312. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  313. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  314. package/src/sap/ui/model/odata/v2/ODataModel.js +2 -2
  315. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  316. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +4 -4
  317. package/src/sap/ui/model/odata/v4/Context.js +33 -30
  318. package/src/sap/ui/model/odata/v4/ODataBinding.js +18 -14
  319. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +12 -12
  320. package/src/sap/ui/model/odata/v4/ODataListBinding.js +110 -43
  321. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +20 -28
  322. package/src/sap/ui/model/odata/v4/ODataModel.js +40 -31
  323. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +8 -6
  324. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +14 -14
  325. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +93 -9
  326. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +25 -27
  327. package/src/sap/ui/model/odata/v4/lib/_Cache.js +58 -195
  328. package/src/sap/ui/model/odata/v4/lib/_Helper.js +157 -0
  329. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +14 -5
  330. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +27 -15
  331. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  332. package/src/sap/ui/model/type/Boolean.js +1 -1
  333. package/src/sap/ui/model/type/Currency.js +1 -1
  334. package/src/sap/ui/model/type/Date.js +1 -1
  335. package/src/sap/ui/model/type/DateInterval.js +1 -1
  336. package/src/sap/ui/model/type/DateTime.js +1 -1
  337. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  338. package/src/sap/ui/model/type/FileSize.js +1 -1
  339. package/src/sap/ui/model/type/Float.js +1 -1
  340. package/src/sap/ui/model/type/Integer.js +1 -1
  341. package/src/sap/ui/model/type/String.js +1 -1
  342. package/src/sap/ui/model/type/Time.js +1 -1
  343. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  344. package/src/sap/ui/model/type/Unit.js +1 -1
  345. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  346. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  347. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  348. package/src/sap/ui/test/TestUtils.js +1 -1
  349. package/src/sap/ui/test/generic/TestBase.js +1 -1
  350. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +1 -3
  351. package/src/sap/ui/test/matchers/_Visitor.js +6 -1
  352. package/src/sap/ui/test/starter/_setupAndStart.js +2 -5
  353. package/src/sap/ui/thirdparty/qunit-2.js +9 -3
  354. package/src/sap/ui/util/Mobile.js +10 -6
  355. package/src/sap/ui/util/Storage.js +1 -1
  356. package/src/sap-ui-boot.js +23 -6
  357. package/src/ui5-boot.js +50 -0
  358. package/src/ui5loader-autoconfig.js +147 -75
  359. package/src/ui5loader.js +320 -360
  360. package/test/sap/ui/core/Device.js +1 -1
  361. package/test/sap/ui/core/demokit/sample/OpaAction/applicationUnderTest/view/Main.view.xml +1 -0
  362. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +2 -2
  363. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +24 -5
  364. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.view.xml +24 -6
  365. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.view.xml +20 -5
  366. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.js +2 -1
  367. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +2 -1
  368. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +2 -1
  369. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +2 -1
  370. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.view.xml +4 -1
  371. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +2 -1
  372. package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/GridTable.view.xml +12 -3
  373. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Main.controller.js +2 -1
  374. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +2 -1
  375. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +2 -1
  376. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +2 -1
  377. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.js +2 -1
  378. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +2 -1
  379. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +2 -1
  380. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +26 -8
  381. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +4 -0
  382. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +2 -1
  383. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +2 -1
  384. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.js +2 -1
  385. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +18 -0
  386. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/Create.js +10 -6
  387. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.js +2 -1
  388. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/manifest.json +18 -0
  389. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +2 -1
  390. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.js +2 -1
  391. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/pages/Main.js +4 -1
  392. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +2 -1
  393. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/controller/App.controller.js +1 -6
  394. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +1 -0
  395. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/controller/App.controller.js +1 -6
  396. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +1 -0
  397. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +1 -6
  398. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +1 -0
  399. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +1 -6
  400. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +1 -0
  401. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +3 -8
  402. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +1 -0
  403. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +3 -8
  404. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +1 -0
  405. package/test/sap/ui/core/qunit/IconPool.qunit.js +53 -4
  406. package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +43 -5
  407. package/test/sap/ui/core/qunit/Theming.qunit.js +19 -1
  408. package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +510 -185
  409. package/test/sap/ui/core/qunit/analytics/ODataModelAdapter.qunit.js +80 -10
  410. package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +20 -29
  411. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +18 -1
  412. package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +15 -13
  413. package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +35 -12
  414. package/test/sap/ui/core/qunit/bootstrap/Configuration.main.qunit.js +11 -0
  415. package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.html +4 -3
  416. package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +71 -35
  417. package/test/sap/ui/core/qunit/bootstrap/_checkCoreAndLibraryBooted.qunit.js +1 -1
  418. package/test/sap/ui/core/qunit/component/Models.qunit.js +5 -2
  419. package/test/sap/ui/core/qunit/generic/EnforceSemanticRendering.qunit.js +2 -2
  420. package/test/sap/ui/core/qunit/generic/SettersContextReturn.qunit.js +2 -2
  421. package/test/sap/ui/core/qunit/generic/legacy/SettersContextReturn.qunit.js +2 -2
  422. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +48 -13
  423. package/test/sap/ui/core/qunit/i18n/UI5Date.qunit.js +16 -4
  424. package/test/sap/ui/core/qunit/i18n/UniversalDate.qunit.js +73 -103
  425. package/test/sap/ui/core/qunit/i18n/UniversalDateUtils.qunit.js +34 -39
  426. package/test/sap/ui/core/qunit/internal/BeforePush.ODataV4.js +28 -0
  427. package/test/sap/ui/core/qunit/internal/BeforePush.html +1 -0
  428. package/test/sap/ui/core/qunit/internal/BeforePush.js +15 -0
  429. package/test/sap/ui/core/qunit/internal/performance/ExpressionParser.performance.qunit.js +1 -0
  430. package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +2 -2
  431. package/test/sap/ui/core/qunit/loader/asyncMode_unavoidablySync.qunit.js +1 -1
  432. package/test/sap/ui/core/qunit/loader/testsuite.loader.qunit.js +0 -3
  433. package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +2 -0
  434. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +51 -0
  435. package/test/sap/ui/core/qunit/mvc/testdata/Async.view.xml +1 -1
  436. package/test/sap/ui/core/qunit/mvc/testdata/AsyncTypedView.js +5 -1
  437. package/test/sap/ui/core/qunit/odata/ODataMetadataNoFakeService.qunit.js +68 -4
  438. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +232 -37
  439. package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +1 -1
  440. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +10 -5
  441. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +33 -1
  442. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +5 -3
  443. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +186 -65
  444. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +17 -66
  445. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +528 -60
  446. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +48 -8
  447. package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +0 -3
  448. package/test/sap/ui/core/qunit/odata/v4/data/metadata.json +2 -1
  449. package/test/sap/ui/core/qunit/odata/v4/data/metadata.xml +4 -0
  450. package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +2 -0
  451. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +148 -1
  452. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +24 -11
  453. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +196 -404
  454. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +201 -2
  455. package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +7 -3
  456. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +21 -4
  457. package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +4 -2
  458. package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +129 -2
  459. package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +5 -1
  460. package/test/sap/ui/core/qunit/routing/fixture/Async1.view.xml +1 -1
  461. package/test/sap/ui/core/qunit/testdata/xml-require/helper/Formatter.js +7 -4
  462. package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require_in_html.view.xml +36 -0
  463. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +2 -2
  464. package/test/sap/ui/core/qunit/types/DateFormatTimezones.qunit.js +1222 -1201
  465. package/test/sap/ui/core/qunit/util/Popup.qunit.js +7 -11
  466. package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +3 -1
  467. package/test/sap/ui/core/qunit/util/jQuery.sap.Version.qunit.js +3 -0
  468. package/test/sap/ui/core/qunit/util/reflection/BaseTreeModifier.qunit.js +1 -1
  469. package/test/sap/ui/core/relnotes/changes-1.116.json +1 -12
  470. package/test/sap/ui/core/relnotes/changes-1.117.json +127 -0
  471. package/test/sap/ui/core/visual/images/HyphenationPlayground/windows/1600x1200/chrome/horizon/ltr/cozy/19_thirdParty_language_sl.ref.lnk +1 -1
  472. package/ui5.yaml +165 -0
  473. package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +0 -45
  474. /package/test/sap/ui/core/qunit/bootstrap/{GlobalConfigurationSettings.js → Configuration.beforeBootstrap.qunit.js} +0 -0
@@ -8348,10 +8348,14 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
8348
8348
  <t:AnalyticalTable id="table" rows="{path : \'/Items\',\
8349
8349
  parameters : {useBatchRequests : true}, sorter : {path : \'AccountingDocumentItem\', descending : true}}"\
8350
8350
  threshold="10" visibleRowCount="2">\
8351
- <t:AnalyticalColumn grouped="true" leadingProperty="AccountingDocumentItem"\
8352
- template="AccountingDocumentItem"/>\
8353
- <t:AnalyticalColumn leadingProperty="AmountInCompanyCodeCurrency" summed="true"\
8354
- template="AmountInCompanyCodeCurrency"/>\
8351
+ <t:AnalyticalColumn grouped="true" leadingProperty="AccountingDocumentItem">\
8352
+ <Label text="AccountingDocumentItem"/>\
8353
+ <t:template><Text wrapping="false" text="{AccountingDocumentItem}"/></t:template>\
8354
+ </t:AnalyticalColumn>\
8355
+ <t:AnalyticalColumn summed="true" leadingProperty="AmountInCompanyCodeCurrency">\
8356
+ <Label text="AmountInCompanyCodeCurrency"/>\
8357
+ <t:template><Text wrapping="false" text="{AmountInCompanyCodeCurrency}"/></t:template>\
8358
+ </t:AnalyticalColumn>\
8355
8359
  </t:AnalyticalTable>',
8356
8360
  that = this;
8357
8361
 
@@ -8372,6 +8376,11 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
8372
8376
 
8373
8377
  return aItems;
8374
8378
  }
8379
+ this.oLogMock.expects("warning")
8380
+ .withExactArgs("Applying sorters to groups is only possible with auto expand mode 'Sequential';"
8381
+ + " current mode is: Bundled",
8382
+ "/Items", "sap.ui.model.analytics.AnalyticalBinding", undefined)
8383
+ .atLeast(1);
8375
8384
 
8376
8385
  this.expectRequest({
8377
8386
  encodeRequestUri : false,
@@ -8476,14 +8485,26 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
8476
8485
  oModel = createModel("/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS"),
8477
8486
  sView = '\
8478
8487
  <t:AnalyticalTable id="table" threshold="6" visibleRowCount="4">\
8479
- <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode" template="CompanyCode"/>\
8480
- <t:AnalyticalColumn grouped="true" leadingProperty="Customer" template="Customer"/>\
8481
- <t:AnalyticalColumn grouped="true" leadingProperty="AccountingDocument"\
8482
- template="AccountingDocument"/>\
8483
- <t:AnalyticalColumn grouped="false" leadingProperty="AccountingDocumentItem"\
8484
- template="AccountingDocumentItem"/>\
8485
- <t:AnalyticalColumn leadingProperty="AmountInCompanyCodeCurrency" summed="true"\
8486
- template="AmountInCompanyCodeCurrency"/>\
8488
+ <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode">\
8489
+ <Label text="CompanyCode"/>\
8490
+ <t:template><Text wrapping="false" text="{CompanyCode}"/></t:template>\
8491
+ </t:AnalyticalColumn>\
8492
+ <t:AnalyticalColumn grouped="true" leadingProperty="Customer">\
8493
+ <Label text="Customer"/>\
8494
+ <t:template><Text wrapping="false" text="{Customer}"/></t:template>\
8495
+ </t:AnalyticalColumn>\
8496
+ <t:AnalyticalColumn grouped="true" leadingProperty="AccountingDocument">\
8497
+ <Label text="AccountingDocument"/>\
8498
+ <t:template><Text wrapping="false" text="{AccountingDocument}"/></t:template>\
8499
+ </t:AnalyticalColumn>\
8500
+ <t:AnalyticalColumn grouped="false" leadingProperty="AccountingDocumentItem">\
8501
+ <Label text="AccountingDocumentItem"/>\
8502
+ <t:template><Text wrapping="false" text="{AccountingDocumentItem}"/></t:template>\
8503
+ </t:AnalyticalColumn>\
8504
+ <t:AnalyticalColumn summed="true" leadingProperty="AmountInCompanyCodeCurrency">\
8505
+ <Label text="AmountInCompanyCodeCurrency"/>\
8506
+ <t:template><Text wrapping="false" text="{AmountInCompanyCodeCurrency}"/></t:template>\
8507
+ </t:AnalyticalColumn>\
8487
8508
  </t:AnalyticalTable>',
8488
8509
  that = this;
8489
8510
 
@@ -8690,12 +8711,22 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
8690
8711
  oModel = createModel("/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS"),
8691
8712
  sView = '\
8692
8713
  <t:AnalyticalTable id="table" threshold="1" visibleRowCount="4">\
8693
- <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode" template="CompanyCode"/>\
8694
- <t:AnalyticalColumn grouped="true" leadingProperty="Customer" template="Customer"/>\
8695
- <t:AnalyticalColumn grouped="true" leadingProperty="AccountingDocument"\
8696
- template="AccountingDocument"/>\
8697
- <t:AnalyticalColumn leadingProperty="AmountInCompanyCodeCurrency" summed="true"\
8698
- template="AmountInCompanyCodeCurrency"/>\
8714
+ <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode">\
8715
+ <Label text="CompanyCode"/>\
8716
+ <t:template><Text wrapping="false" text="{CompanyCode}"/></t:template>\
8717
+ </t:AnalyticalColumn>\
8718
+ <t:AnalyticalColumn grouped="true" leadingProperty="Customer">\
8719
+ <Label text="Customer"/>\
8720
+ <t:template><Text wrapping="false" text="{Customer}"/></t:template>\
8721
+ </t:AnalyticalColumn>\
8722
+ <t:AnalyticalColumn grouped="true" leadingProperty="AccountingDocument">\
8723
+ <Label text="AccountingDocument"/>\
8724
+ <t:template><Text wrapping="false" text="{AccountingDocument}"/></t:template>\
8725
+ </t:AnalyticalColumn>\
8726
+ <t:AnalyticalColumn summed="true" leadingProperty="AmountInCompanyCodeCurrency">\
8727
+ <Label text="AmountInCompanyCodeCurrency"/>\
8728
+ <t:template><Text wrapping="false" text="{AmountInCompanyCodeCurrency}"/></t:template>\
8729
+ </t:AnalyticalColumn>\
8699
8730
  </t:AnalyticalTable>',
8700
8731
  that = this;
8701
8732
 
@@ -8837,12 +8868,22 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
8837
8868
  oModel = createModel("/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS"),
8838
8869
  sView = '\
8839
8870
  <t:AnalyticalTable id="table" threshold="10" visibleRowCount="4">\
8840
- <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode" template="CompanyCode"/>\
8841
- <t:AnalyticalColumn grouped="true" leadingProperty="Customer" template="Customer"/>\
8842
- <t:AnalyticalColumn grouped="true" leadingProperty="AccountingDocument"\
8843
- template="AccountingDocument"/>\
8844
- <t:AnalyticalColumn leadingProperty="AmountInCompanyCodeCurrency" summed="true"\
8845
- template="AmountInCompanyCodeCurrency"/>\
8871
+ <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode">\
8872
+ <Label text="CompanyCode"/>\
8873
+ <t:template><Text wrapping="false" text="{CompanyCode}"/></t:template>\
8874
+ </t:AnalyticalColumn>\
8875
+ <t:AnalyticalColumn grouped="true" leadingProperty="Customer">\
8876
+ <Label text="Customer"/>\
8877
+ <t:template><Text wrapping="false" text="{Customer}"/></t:template>\
8878
+ </t:AnalyticalColumn>\
8879
+ <t:AnalyticalColumn grouped="true" leadingProperty="AccountingDocument">\
8880
+ <Label text="AccountingDocument"/>\
8881
+ <t:template><Text wrapping="false" text="{AccountingDocument}"/></t:template>\
8882
+ </t:AnalyticalColumn>\
8883
+ <t:AnalyticalColumn summed="true" leadingProperty="AmountInCompanyCodeCurrency">\
8884
+ <Label text="AmountInCompanyCodeCurrency"/>\
8885
+ <t:template><Text wrapping="false" text="{AmountInCompanyCodeCurrency}"/></t:template>\
8886
+ </t:AnalyticalColumn>\
8846
8887
  </t:AnalyticalTable>',
8847
8888
  that = this;
8848
8889
 
@@ -8954,12 +8995,22 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
8954
8995
  oModel = createModel("/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS"),
8955
8996
  sView = '\
8956
8997
  <t:AnalyticalTable id="table" threshold="10" visibleRowCount="4">\
8957
- <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode" template="CompanyCode"/>\
8958
- <t:AnalyticalColumn grouped="false" leadingProperty="Customer" template="Customer"/>\
8959
- <t:AnalyticalColumn grouped="false" leadingProperty="AccountingDocument"\
8960
- template="AccountingDocument"/>\
8961
- <t:AnalyticalColumn leadingProperty="AmountInCompanyCodeCurrency" summed="true"\
8962
- template="AmountInCompanyCodeCurrency"/>\
8998
+ <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode">\
8999
+ <Label text="CompanyCode"/>\
9000
+ <t:template><Text wrapping="false" text="{CompanyCode}"/></t:template>\
9001
+ </t:AnalyticalColumn>\
9002
+ <t:AnalyticalColumn grouped="false" leadingProperty="Customer">\
9003
+ <Label text="Customer"/>\
9004
+ <t:template><Text wrapping="false" text="{Customer}"/></t:template>\
9005
+ </t:AnalyticalColumn>\
9006
+ <t:AnalyticalColumn grouped="false" leadingProperty="AccountingDocument">\
9007
+ <Label text="AccountingDocument"/>\
9008
+ <t:template><Text wrapping="false" text="{AccountingDocument}"/></t:template>\
9009
+ </t:AnalyticalColumn>\
9010
+ <t:AnalyticalColumn summed="true" leadingProperty="AmountInCompanyCodeCurrency">\
9011
+ <Label text="AmountInCompanyCodeCurrency"/>\
9012
+ <t:template><Text wrapping="false" text="{AmountInCompanyCodeCurrency}"/></t:template>\
9013
+ </t:AnalyticalColumn>\
8963
9014
  </t:AnalyticalTable>',
8964
9015
  that = this;
8965
9016
 
@@ -9149,10 +9200,18 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
9149
9200
  oModel = createModel("/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS"),
9150
9201
  sView = '\
9151
9202
  <t:AnalyticalTable id="table" threshold="10" visibleRowCount="4">\
9152
- <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode" template="CompanyCode"/>\
9153
- <t:AnalyticalColumn grouped="false" leadingProperty="Customer" template="Customer"/>\
9154
- <t:AnalyticalColumn leadingProperty="AmountInCompanyCodeCurrency" summed="true"\
9155
- template="AmountInCompanyCodeCurrency"/>\
9203
+ <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode">\
9204
+ <Label text="CompanyCode"/>\
9205
+ <t:template><Text wrapping="false" text="{CompanyCode}"/></t:template>\
9206
+ </t:AnalyticalColumn>\
9207
+ <t:AnalyticalColumn grouped="false" leadingProperty="Customer">\
9208
+ <Label text="Customer"/>\
9209
+ <t:template><Text wrapping="false" text="{Customer}"/></t:template>\
9210
+ </t:AnalyticalColumn>\
9211
+ <t:AnalyticalColumn summed="true" leadingProperty="AmountInCompanyCodeCurrency">\
9212
+ <Label text="AmountInCompanyCodeCurrency"/>\
9213
+ <t:template><Text wrapping="false" text="{AmountInCompanyCodeCurrency}"/></t:template>\
9214
+ </t:AnalyticalColumn>\
9156
9215
  </t:AnalyticalTable>',
9157
9216
  that = this;
9158
9217
 
@@ -9212,6 +9271,137 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
9212
9271
  });
9213
9272
  });
9214
9273
 
9274
+ //*****************************************************************************************************************
9275
+ // Scenario: Sequential mode: Sorting by text properties that are only additionally selected is possible.
9276
+ // JIRA:CPOUI5MODELS-1311
9277
+ QUnit.test("AnalyticalBinding: sort additional selected text properties (Sequential)", function (assert) {
9278
+ const oModel = createModel("/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS");
9279
+ const sView = '\
9280
+ <t:AnalyticalTable id="table" threshold="10" visibleRowCount="4">\
9281
+ <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode" template="CompanyCode"/>\
9282
+ <t:AnalyticalColumn grouped="false" leadingProperty="Customer" template="Customer"/>\
9283
+ <t:AnalyticalColumn leadingProperty="AmountInCompanyCodeCurrency" summed="true"\
9284
+ template="AmountInCompanyCodeCurrency"/>\
9285
+ </t:AnalyticalTable>';
9286
+
9287
+ return this.createView(assert, sView, oModel).then(() => {
9288
+ this.expectHeadRequest()
9289
+ .expectRequest({ // count request
9290
+ encodeRequestUri : false,
9291
+ requestUri : "Items?$select=CompanyCode,Customer&$top=0&$inlinecount=allpages"
9292
+ }, {__count : "20", results : []})
9293
+ .expectRequest({ // first level request
9294
+ encodeRequestUri : false,
9295
+ requestUri : "Items?"
9296
+ + "$select=CompanyCode,CompanyName,AmountInCompanyCodeCurrency,Currency&"
9297
+ + "$orderby=CompanyName%20desc,CompanyCode%20asc&$top=14&$inlinecount=allpages"
9298
+ }, {
9299
+ results : [
9300
+ Object.assign(getFarCustomerLineItem("A0"), {CompanyName: "A0Name"}),
9301
+ Object.assign(getFarCustomerLineItem("A1"), {CompanyName: "A1Name"}),
9302
+ Object.assign(getFarCustomerLineItem("A2"), {CompanyName: "A2Name"}),
9303
+ Object.assign(getFarCustomerLineItem("A3"), {CompanyName: "A2Name"})
9304
+ ]
9305
+ })
9306
+ .expectRequest({ // grand total request
9307
+ encodeRequestUri : false,
9308
+ requestUri : "Items?$select=AmountInCompanyCodeCurrency,Currency&$top=100&$inlinecount=allpages"
9309
+ }, {
9310
+ __count : 1,
9311
+ results : [{
9312
+ __metadata : {uri : "/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS/Items(grandTotal)"},
9313
+ AmountInCompanyCodeCurrency : "140",
9314
+ Currency : "USD"
9315
+ }]
9316
+ });
9317
+
9318
+ // bind it lately, otherwise the binding is constructed without the analytical info and the select parameter
9319
+ // is ignored
9320
+ this.oView.byId("table").bindRows({
9321
+ path : "/Items",
9322
+ parameters : {
9323
+ autoExpandMode : "Sequential",
9324
+ numberOfExpandedLevels : 0,
9325
+ provideGrandTotals : false,
9326
+ select : "CompanyCode,AmountInCompanyCodeCurrency,Currency,Customer,CompanyName",
9327
+ useBatchRequests : true
9328
+ },
9329
+ sorter : [new Sorter("CompanyName", true)]
9330
+ });
9331
+
9332
+ return this.waitForChanges(assert);
9333
+ });
9334
+ });
9335
+
9336
+ //*****************************************************************************************************************
9337
+ // Scenario: Bundled mode: Sorting by text properties that are only additionally selected is possible.
9338
+ // JIRA:CPOUI5MODELS-1311
9339
+ QUnit.test("AnalyticalBinding: sort additional selected text properties (Bundled)", function (assert) {
9340
+ const oModel = createModel("/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS");
9341
+ const sView = '\
9342
+ <t:AnalyticalTable id="table" threshold="10" visibleRowCount="4">\
9343
+ <t:AnalyticalColumn grouped="true" leadingProperty="CompanyCode" template="CompanyCode"/>\
9344
+ <t:AnalyticalColumn grouped="false" leadingProperty="Customer" template="Customer"/>\
9345
+ <t:AnalyticalColumn leadingProperty="AmountInCompanyCodeCurrency" summed="true"\
9346
+ template="AmountInCompanyCodeCurrency"/>\
9347
+ </t:AnalyticalTable>';
9348
+
9349
+ return this.createView(assert, sView, oModel).then(() => {
9350
+ this.expectHeadRequest()
9351
+ .expectRequest({ // count request
9352
+ encodeRequestUri : false,
9353
+ requestUri : "Items?$select=CompanyCode,Customer&$top=0&$inlinecount=allpages"
9354
+ }, {__count : "20", results : []})
9355
+ .expectRequest({ // first level request
9356
+ encodeRequestUri : false,
9357
+ requestUri : "Items?"
9358
+ + "$select=CompanyCode,CompanyName,AmountInCompanyCodeCurrency,Currency&"
9359
+ + "$orderby=CompanyName%20desc,CompanyCode%20asc&$top=7"
9360
+ }, {
9361
+ results : [
9362
+ Object.assign(getFarCustomerLineItem("A0"), {CompanyName: "A0Name"}),
9363
+ Object.assign(getFarCustomerLineItem("A1"), {CompanyName: "A1Name"}),
9364
+ Object.assign(getFarCustomerLineItem("A2"), {CompanyName: "A2Name"}),
9365
+ Object.assign(getFarCustomerLineItem("A3"), {CompanyName: "A2Name"})
9366
+ ]
9367
+ })
9368
+ .expectRequest({ // leaf level request
9369
+ encodeRequestUri : false,
9370
+ requestUri : "Items?"
9371
+ + "$select=CompanyCode,CompanyName,Customer,AmountInCompanyCodeCurrency,Currency&"
9372
+ + "$orderby=CompanyName%20desc,CompanyCode%20asc&$top=12"
9373
+ }, {
9374
+ results : [
9375
+ Object.assign(getFarCustomerLineItem("A0"), {CompanyName: "A0Name"}),
9376
+ Object.assign(getFarCustomerLineItem("A1"), {CompanyName: "A1Name"}),
9377
+ Object.assign(getFarCustomerLineItem("A2"), {CompanyName: "A2Name"}),
9378
+ Object.assign(getFarCustomerLineItem("A3"), {CompanyName: "A2Name"})
9379
+ ]
9380
+ });
9381
+
9382
+ this.oLogMock.expects("warning")
9383
+ .withExactArgs("Applying sorters to groups is only possible with auto expand mode 'Sequential';"
9384
+ + " current mode is: Bundled",
9385
+ "/Items", "sap.ui.model.analytics.AnalyticalBinding", undefined)
9386
+ .atLeast(1);
9387
+
9388
+ // bind it lately, otherwise the binding is constructed without the analytical info and the select parameter
9389
+ // is ignored
9390
+ this.oView.byId("table").bindRows({
9391
+ path : "/Items",
9392
+ parameters : {
9393
+ numberOfExpandedLevels : 1,
9394
+ provideGrandTotals : false,
9395
+ select : "CompanyCode,AmountInCompanyCodeCurrency,Currency,Customer,CompanyName",
9396
+ useBatchRequests : true
9397
+ },
9398
+ sorter : [new Sorter("CompanyName", true)]
9399
+ });
9400
+
9401
+ return this.waitForChanges(assert);
9402
+ });
9403
+ });
9404
+
9215
9405
  //*********************************************************************************************
9216
9406
  // Scenario: If a request for an AnalyticalBinding is cancelled because the analytical info has
9217
9407
  // been updated before the request was processed, a "dataReceived" event has to be fired. Table
@@ -9226,9 +9416,14 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
9226
9416
  oModel = createModel("/sap/opu/odata/sap/FAR_CUSTOMER_LINE_ITEMS"),
9227
9417
  sView = '\
9228
9418
  <t:AnalyticalTable id="table" threshold="10" visibleRowCount="4">\
9229
- <t:AnalyticalColumn grouped="false" leadingProperty="CompanyCode" template="CompanyCode"/>\
9230
- <t:AnalyticalColumn leadingProperty="AmountInCompanyCodeCurrency" summed="true"\
9231
- template="AmountInCompanyCodeCurrency"/>\
9419
+ <t:AnalyticalColumn grouped="false" leadingProperty="CompanyCode">\
9420
+ <Label text="CompanyCode"/>\
9421
+ <t:template><Text wrapping="false" text="{CompanyCode}"/></t:template>\
9422
+ </t:AnalyticalColumn>\
9423
+ <t:AnalyticalColumn summed="true" leadingProperty="AmountInCompanyCodeCurrency">\
9424
+ <Label text="AmountInCompanyCodeCurrency"/>\
9425
+ <t:template><Text wrapping="false" text="{AmountInCompanyCodeCurrency}"/></t:template>\
9426
+ </t:AnalyticalColumn>\
9232
9427
  </t:AnalyticalTable>',
9233
9428
  that = this;
9234
9429
 
@@ -7290,7 +7290,7 @@ sap.ui.define([
7290
7290
  ]
7291
7291
  },
7292
7292
  columns : [
7293
- {label: "ProductID", template: "ProductID"}
7293
+ new Column({label: new Label({text: "ProductID"}), template: new Label({text: "{ProductID}"})})
7294
7294
  ]
7295
7295
  })
7296
7296
  ]
@@ -12,6 +12,8 @@ sap.ui.define([
12
12
 
13
13
  var sClassName = "sap.ui.model.odata.v4.Context";
14
14
 
15
+ function mustBeMocked() { throw new Error("Must be mocked"); }
16
+
15
17
  //*********************************************************************************************
16
18
  QUnit.module("sap.ui.model.odata.v4.Context", {
17
19
  beforeEach : function () {
@@ -1510,6 +1512,11 @@ sap.ui.define([
1510
1512
 
1511
1513
  // code under test
1512
1514
  oContext.checkUpdate();
1515
+
1516
+ oContext.oModel = undefined;
1517
+
1518
+ // code under test
1519
+ oContext.checkUpdate();
1513
1520
  });
1514
1521
 
1515
1522
  //*********************************************************************************************
@@ -1987,7 +1994,7 @@ sap.ui.define([
1987
1994
  isResolved : function () { return true; }
1988
1995
  },
1989
1996
  oMetaModel = {
1990
- getObject : function () { assert.ok(false, "use only when mocked"); }
1997
+ getObject : mustBeMocked
1991
1998
  },
1992
1999
  oModel = {
1993
2000
  getMetaModel : function () { return oMetaModel; }
@@ -3867,9 +3874,7 @@ sap.ui.define([
3867
3874
  oBindingMock = this.mock(oBinding),
3868
3875
  oError = new Error(),
3869
3876
  oMetaModel = {
3870
- fetchObject : function () {
3871
- assert.ok(false); // use only when mocked
3872
- }
3877
+ fetchObject : mustBeMocked
3873
3878
  },
3874
3879
  oModel = {
3875
3880
  bAutoExpandSelect : true,
@@ -4221,7 +4226,7 @@ sap.ui.define([
4221
4226
  QUnit.test("isEffectivelyKeptAlive: implicitly", function (assert) {
4222
4227
  var oBinding = {
4223
4228
  getHeaderContext : function () {},
4224
- isRelative : function () { throw new Error("must be mocked"); },
4229
+ isRelative : mustBeMocked,
4225
4230
  onKeepAliveChanged : function () {},
4226
4231
  mParameters : {}
4227
4232
  },
@@ -16,6 +16,8 @@ sap.ui.define([
16
16
 
17
17
  var sClassName = "sap.ui.model.odata.v4.ODataBinding";
18
18
 
19
+ function mustBeMocked() { throw new Error("Must be mocked"); }
20
+
19
21
  /**
20
22
  * Returns a function which must not be called. Use as a replacment for
21
23
  * {@link sap.ui.model.odata.v4.ODataModel#getReporter} in cases where that reporter must not be
@@ -518,7 +520,7 @@ sap.ui.define([
518
520
  bIgnoreTransient = false,
519
521
  oTemplate = {
520
522
  mParameters : {},
521
- isRoot : function () { throw new Error("must be mocked"); }
523
+ isRoot : mustBeMocked
522
524
  },
523
525
  oWithCachePromise = {unwrap : function () {}};
524
526
 
@@ -748,6 +750,32 @@ sap.ui.define([
748
750
  });
749
751
  });
750
752
 
753
+ //*********************************************************************************************
754
+ QUnit.test("fetchOrGetQueryOptionsForOwnCache: promise rejected", function (assert) {
755
+ var oBinding = new ODataBinding({
756
+ doFetchOrGetQueryOptions : mustBeMocked,
757
+ oModel : {resolve : mustBeMocked},
758
+ sPath : "/absolute",
759
+ bRelative : false
760
+ }),
761
+ oContext = {},
762
+ oError = new Error();
763
+
764
+ this.mock(oBinding.oModel).expects("resolve")
765
+ .withExactArgs("/absolute", sinon.match.same(oContext))
766
+ .returns("/resolved/path");
767
+ this.mock(oBinding).expects("doFetchOrGetQueryOptions")
768
+ .withExactArgs(sinon.match.same(oContext))
769
+ .returns(SyncPromise.reject(oError));
770
+
771
+ // code under test
772
+ oBinding.fetchOrGetQueryOptionsForOwnCache(oContext).then(function () {
773
+ assert.ok(false, "unexpected success");
774
+ }, function (oError0) {
775
+ assert.strictEqual(oError0, oError);
776
+ });
777
+ });
778
+
751
779
  //*********************************************************************************************
752
780
  [
753
781
  {sPath : "unresolvedRelative", bRelative : true},
@@ -1079,6 +1107,7 @@ sap.ui.define([
1079
1107
  return oBinding.oCachePromise.then(function () {
1080
1108
  assert.strictEqual(oBinding.oCachePromise.getResult(), oNewCache);
1081
1109
  assert.strictEqual(oBinding.sReducedPath, "/resolved/path");
1110
+ assert.strictEqual(oBinding.oFetchCacheCallToken, undefined, "cleaned up");
1082
1111
  });
1083
1112
  });
1084
1113
 
@@ -1148,6 +1177,7 @@ sap.ui.define([
1148
1177
  return oBinding.oCachePromise.then(function (oCache0) {
1149
1178
  assert.strictEqual(oCache0, oCache);
1150
1179
  assert.strictEqual(oBinding.sReducedPath, "/resolved/path");
1180
+ assert.strictEqual(oBinding.oFetchCacheCallToken, undefined, "cleaned up");
1151
1181
  });
1152
1182
  });
1153
1183
  });
@@ -1341,6 +1371,8 @@ sap.ui.define([
1341
1371
 
1342
1372
  assert.strictEqual(oBinding.oCache, null);
1343
1373
  assert.strictEqual(oBinding.sReducedPath, "~sReducedPath~", "unchanged");
1374
+ assert.deepEqual(oBinding.oFetchCacheCallToken, {oOldCache : undefined},
1375
+ "no old cache kept");
1344
1376
  });
1345
1377
 
1346
1378
  //*********************************************************************************************
@@ -22,6 +22,8 @@ sap.ui.define([
22
22
  "$$ownRequest", "$$patchWithoutSideEffects", "$$updateGroupId"],
23
23
  sClassName = "sap.ui.model.odata.v4.ODataContextBinding";
24
24
 
25
+ function mustBeMocked() { throw new Error("Must be mocked"); }
26
+
25
27
  //*********************************************************************************************
26
28
  QUnit.module("sap.ui.model.odata.v4.ODataContextBinding", {
27
29
  beforeEach : function () {
@@ -4487,7 +4489,7 @@ sap.ui.define([
4487
4489
  oError = new Error("This call intentionally failed"),
4488
4490
  oNewCache = {},
4489
4491
  oOldCache = {
4490
- setActive : function () { throw new Error("must be mocked"); }
4492
+ setActive : mustBeMocked
4491
4493
  },
4492
4494
  oReturnValueContext = Context.create(this.oModel, oBinding, "/SalesOrderList('77')"),
4493
4495
  that = this;
@@ -4948,7 +4950,7 @@ sap.ui.define([
4948
4950
 
4949
4951
  if (oFixture.name) {
4950
4952
  oBinding.oOperation.bAction = true;
4951
- this.mock(_Cache).expects("makeUpdateData")
4953
+ this.mock(_Helper).expects("makeUpdateData")
4952
4954
  .withExactArgs(oFixture.update, "bar")
4953
4955
  .returns(oUpdateValue);
4954
4956
  this.mock(_Helper).expects("updateAll")
@@ -4972,7 +4974,7 @@ sap.ui.define([
4972
4974
  oUpdateValue = {};
4973
4975
 
4974
4976
  oBinding.oOperation.bAction = true;
4975
- this.mock(_Cache).expects("makeUpdateData").withExactArgs(["foo"], "bar")
4977
+ this.mock(_Helper).expects("makeUpdateData").withExactArgs(["foo"], "bar")
4976
4978
  .returns(oUpdateValue);
4977
4979
  this.mock(_Helper).expects("updateAll")
4978
4980
  .withExactArgs(sinon.match.same(oBinding.oOperation.mChangeListeners), "",