@openui5/sap.ui.core 1.97.1 → 1.100.0

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 (441) hide show
  1. package/.eslintrc.json +92 -2
  2. package/.reuse/dep5 +25 -30
  3. package/THIRDPARTY.txt +15 -22
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +6 -3
  6. package/src/jquery.sap.mobile.js +29 -19
  7. package/src/jquery.sap.properties.js +1 -1
  8. package/src/jquery.sap.resources.js +1 -1
  9. package/src/jquery.sap.script.js +1 -1
  10. package/src/jquery.sap.storage.js +3 -3
  11. package/src/sap/base/Log.js +1 -1
  12. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  13. package/src/sap/base/util/LoaderExtensions.js +1 -10
  14. package/src/sap/base/util/UriParameters.js +2 -2
  15. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  16. package/src/sap/base/util/restricted/_castArray.js +1 -1
  17. package/src/sap/base/util/restricted/_compact.js +1 -1
  18. package/src/sap/base/util/restricted/_curry.js +1 -1
  19. package/src/sap/base/util/restricted/_debounce.js +1 -1
  20. package/src/sap/base/util/restricted/_difference.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  22. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  26. package/src/sap/base/util/restricted/_flatten.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  28. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  29. package/src/sap/base/util/restricted/_intersection.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  31. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  33. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  34. package/src/sap/base/util/restricted/_isNil.js +1 -1
  35. package/src/sap/base/util/restricted/_max.js +1 -1
  36. package/src/sap/base/util/restricted/_merge.js +1 -1
  37. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  38. package/src/sap/base/util/restricted/_min.js +1 -1
  39. package/src/sap/base/util/restricted/_omit.js +1 -1
  40. package/src/sap/base/util/restricted/_pick.js +1 -1
  41. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  42. package/src/sap/base/util/restricted/_throttle.js +1 -1
  43. package/src/sap/base/util/restricted/_toArray.js +1 -1
  44. package/src/sap/base/util/restricted/_union.js +1 -1
  45. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  46. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  47. package/src/sap/base/util/restricted/_uniq.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  49. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  50. package/src/sap/base/util/restricted/_without.js +1 -1
  51. package/src/sap/base/util/restricted/_xor.js +1 -1
  52. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  53. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  55. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  56. package/src/sap/ui/Device.js +80 -168
  57. package/src/sap/ui/Global.js +4 -4
  58. package/src/sap/ui/VersionInfo.js +13 -10
  59. package/src/sap/ui/base/BindingParser.js +34 -7
  60. package/src/sap/ui/base/Event.js +1 -1
  61. package/src/sap/ui/base/EventProvider.js +1 -1
  62. package/src/sap/ui/base/ExpressionParser.js +1 -1
  63. package/src/sap/ui/base/Interface.js +1 -1
  64. package/src/sap/ui/base/ManagedObject.js +48 -27
  65. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  66. package/src/sap/ui/base/ManagedObjectObserver.js +2 -0
  67. package/src/sap/ui/base/Metadata.js +1 -1
  68. package/src/sap/ui/base/Object.js +1 -1
  69. package/src/sap/ui/base/ObjectPool.js +1 -1
  70. package/src/sap/ui/core/.library +2 -2
  71. package/src/sap/ui/core/BusyIndicator.js +1 -1
  72. package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
  73. package/src/sap/ui/core/Component.js +3 -3
  74. package/src/sap/ui/core/ComponentContainer.js +1 -1
  75. package/src/sap/ui/core/ComponentMetadata.js +2 -2
  76. package/src/sap/ui/core/ComponentSupport.js +1 -1
  77. package/src/sap/ui/core/Configuration.js +82 -15
  78. package/src/sap/ui/core/Control.js +3 -2
  79. package/src/sap/ui/core/Core.js +5 -6
  80. package/src/sap/ui/core/CustomData.js +1 -1
  81. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  82. package/src/sap/ui/core/Element.js +5 -7
  83. package/src/sap/ui/core/ElementMetadata.js +1 -1
  84. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  85. package/src/sap/ui/core/EventBus.js +1 -1
  86. package/src/sap/ui/core/ExtensionPoint.js +1 -1
  87. package/src/sap/ui/core/FocusHandler.js +1 -1
  88. package/src/sap/ui/core/Fragment.js +1 -1
  89. package/src/sap/ui/core/HTML.js +1 -1
  90. package/src/sap/ui/core/HTMLRenderer.js +1 -1
  91. package/src/sap/ui/core/History.js +1 -1
  92. package/src/sap/ui/core/Icon.js +18 -5
  93. package/src/sap/ui/core/IconRenderer.js +1 -1
  94. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  95. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  96. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  97. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  98. package/src/sap/ui/core/InvisibleText.js +1 -1
  99. package/src/sap/ui/core/Item.js +1 -1
  100. package/src/sap/ui/core/LabelEnablement.js +9 -2
  101. package/src/sap/ui/core/LayoutData.js +1 -1
  102. package/src/sap/ui/core/ListItem.js +1 -1
  103. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  104. package/src/sap/ui/core/LocalBusyIndicatorRenderer.js +2 -2
  105. package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
  106. package/src/sap/ui/core/Locale.js +1 -1
  107. package/src/sap/ui/core/LocaleData.js +60 -6
  108. package/src/sap/ui/core/Manifest.js +1 -1
  109. package/src/sap/ui/core/Message.js +1 -1
  110. package/src/sap/ui/core/Patcher.js +3 -3
  111. package/src/sap/ui/core/Placeholder.js +28 -28
  112. package/src/sap/ui/core/Popup.js +12 -9
  113. package/src/sap/ui/core/RenderManager.js +1 -1
  114. package/src/sap/ui/core/Renderer.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/ScrollBarRenderer.js +1 -1
  118. package/src/sap/ui/core/SeparatorItem.js +1 -1
  119. package/src/sap/ui/core/Title.js +1 -1
  120. package/src/sap/ui/core/TooltipBase.js +2 -2
  121. package/src/sap/ui/core/UIArea.js +1 -1
  122. package/src/sap/ui/core/UIComponent.js +1 -1
  123. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  124. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  125. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  126. package/src/sap/ui/core/XMLComposite.js +1 -1
  127. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  128. package/src/sap/ui/core/XMLTemplateProcessor.js +7 -6
  129. package/src/sap/ui/core/_IconRegistry.js +13 -3
  130. package/src/sap/ui/core/cache/CacheManager.js +1 -1
  131. package/src/sap/ui/core/cache/LRUPersistentCache.js +2 -1
  132. package/src/sap/ui/core/cldr/en_AU.json +1 -1
  133. package/src/sap/ui/core/date/Buddhist.js +3 -3
  134. package/src/sap/ui/core/date/Japanese.js +4 -4
  135. package/src/sap/ui/core/date/UniversalDate.js +10 -0
  136. package/src/sap/ui/core/date/UniversalDateUtils.js +175 -5
  137. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  138. package/src/sap/ui/core/delegate/ScrollEnablement.js +9 -6
  139. package/src/sap/ui/core/dnd/DragAndDrop.js +21 -18
  140. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  141. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  142. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  143. package/src/sap/ui/core/dnd/DropInfo.js +3 -3
  144. package/src/sap/ui/core/format/DateFormat.js +654 -202
  145. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +44 -0
  146. package/src/sap/ui/core/format/ListFormat.js +2 -2
  147. package/src/sap/ui/core/format/NumberFormat.js +502 -216
  148. package/src/sap/ui/core/format/TimezoneUtil.js +248 -0
  149. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  150. package/src/sap/ui/core/library.js +126 -53
  151. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  152. package/src/sap/ui/core/message/Message.js +1 -1
  153. package/src/sap/ui/core/message/MessageManager.js +1 -1
  154. package/src/sap/ui/core/message/MessageMixin.js +2 -1
  155. package/src/sap/ui/core/message/MessageParser.js +1 -1
  156. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  157. package/src/sap/ui/core/messagebundle.properties +2 -0
  158. package/src/sap/ui/core/messagebundle_ar.properties +1 -0
  159. package/src/sap/ui/core/messagebundle_bg.properties +6 -5
  160. package/src/sap/ui/core/messagebundle_ca.properties +1 -0
  161. package/src/sap/ui/core/messagebundle_cs.properties +1 -0
  162. package/src/sap/ui/core/messagebundle_cy.properties +1 -0
  163. package/src/sap/ui/core/messagebundle_da.properties +1 -0
  164. package/src/sap/ui/core/messagebundle_de.properties +2 -1
  165. package/src/sap/ui/core/messagebundle_el.properties +1 -0
  166. package/src/sap/ui/core/messagebundle_en.properties +1 -0
  167. package/src/sap/ui/core/messagebundle_en_GB.properties +1 -0
  168. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
  169. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  170. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +1 -0
  171. package/src/sap/ui/core/messagebundle_es.properties +1 -0
  172. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -0
  173. package/src/sap/ui/core/messagebundle_et.properties +1 -0
  174. package/src/sap/ui/core/messagebundle_fi.properties +1 -0
  175. package/src/sap/ui/core/messagebundle_fr.properties +1 -0
  176. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -0
  177. package/src/sap/ui/core/messagebundle_hi.properties +1 -0
  178. package/src/sap/ui/core/messagebundle_hr.properties +1 -0
  179. package/src/sap/ui/core/messagebundle_hu.properties +1 -0
  180. package/src/sap/ui/core/messagebundle_id.properties +3 -2
  181. package/src/sap/ui/core/messagebundle_it.properties +2 -1
  182. package/src/sap/ui/core/messagebundle_iw.properties +1 -0
  183. package/src/sap/ui/core/messagebundle_ja.properties +1 -0
  184. package/src/sap/ui/core/messagebundle_kk.properties +1 -0
  185. package/src/sap/ui/core/messagebundle_ko.properties +2 -1
  186. package/src/sap/ui/core/messagebundle_lt.properties +1 -0
  187. package/src/sap/ui/core/messagebundle_lv.properties +2 -1
  188. package/src/sap/ui/core/messagebundle_ms.properties +1 -0
  189. package/src/sap/ui/core/messagebundle_nl.properties +1 -0
  190. package/src/sap/ui/core/messagebundle_no.properties +5 -4
  191. package/src/sap/ui/core/messagebundle_pl.properties +1 -0
  192. package/src/sap/ui/core/messagebundle_pt.properties +1 -0
  193. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -0
  194. package/src/sap/ui/core/messagebundle_ro.properties +1 -0
  195. package/src/sap/ui/core/messagebundle_ru.properties +1 -0
  196. package/src/sap/ui/core/messagebundle_sh.properties +1 -0
  197. package/src/sap/ui/core/messagebundle_sk.properties +1 -0
  198. package/src/sap/ui/core/messagebundle_sl.properties +1 -0
  199. package/src/sap/ui/core/messagebundle_sv.properties +1 -0
  200. package/src/sap/ui/core/messagebundle_th.properties +1 -0
  201. package/src/sap/ui/core/messagebundle_tr.properties +1 -0
  202. package/src/sap/ui/core/messagebundle_uk.properties +1 -0
  203. package/src/sap/ui/core/messagebundle_vi.properties +1 -0
  204. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -0
  205. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -0
  206. package/src/sap/ui/core/mvc/Controller.js +1 -1
  207. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
  208. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  209. package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
  210. package/src/sap/ui/core/mvc/JSONView.js +2 -1
  211. package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
  212. package/src/sap/ui/core/mvc/JSView.js +1 -1
  213. package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
  214. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  215. package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
  216. package/src/sap/ui/core/mvc/View.js +2 -1
  217. package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
  218. package/src/sap/ui/core/mvc/XMLView.js +24 -3
  219. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  220. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  221. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  222. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  223. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  224. package/src/sap/ui/core/routing/Route.js +6 -6
  225. package/src/sap/ui/core/routing/Router.js +4 -3
  226. package/src/sap/ui/core/routing/Targets.js +17 -13
  227. package/src/sap/ui/core/rules/Misc.support.js +8 -3
  228. package/src/sap/ui/core/rules/Model.support.js +95 -8
  229. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  230. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  231. package/src/sap/ui/core/service/Service.js +1 -1
  232. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  233. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  234. package/src/sap/ui/core/support/Plugin.js +1 -1
  235. package/src/sap/ui/core/support/Support.js +3 -3
  236. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  237. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  238. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  239. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  240. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  241. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  242. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  243. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  244. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +1 -5
  245. package/src/sap/ui/core/themes/base/CommandShortcutHints.less +1 -1
  246. package/src/sap/ui/core/themes/base/base.less +1108 -35
  247. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  248. package/src/sap/ui/core/themes/base/global.less +158 -4
  249. package/src/sap/ui/core/themes/base/parameterClasses.less +21 -21
  250. package/src/sap/ui/core/themes/sap_hcb/global.less +157 -2
  251. package/src/sap/ui/core/theming/Parameters.js +22 -142
  252. package/src/sap/ui/core/theming/ThemeHelper.js +26 -37
  253. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  254. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  255. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  256. package/src/sap/ui/core/tmpl/Template.js +1 -1
  257. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  258. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  259. package/src/sap/ui/core/util/DraftEnabledMockServer.js +21 -16
  260. package/src/sap/ui/core/util/Export.js +1 -1
  261. package/src/sap/ui/core/util/ExportCell.js +1 -1
  262. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  263. package/src/sap/ui/core/util/ExportRow.js +1 -1
  264. package/src/sap/ui/core/util/ExportType.js +1 -1
  265. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  266. package/src/sap/ui/core/util/File.js +1 -1
  267. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  268. package/src/sap/ui/core/util/MockServer.js +157 -57
  269. package/src/sap/ui/core/util/PasteHelper.js +5 -5
  270. package/src/sap/ui/core/util/XMLPreprocessor.js +17 -4
  271. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +4 -0
  272. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +26 -16
  273. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -1
  274. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  275. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  276. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  277. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  278. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  279. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  280. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  281. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  282. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  283. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  284. package/src/sap/ui/debug/ControlTree.js +1 -1
  285. package/src/sap/ui/debug/DebugEnv.js +1 -1
  286. package/src/sap/ui/debug/LogViewer.js +2 -2
  287. package/src/sap/ui/debug/PropertyList.js +1 -1
  288. package/src/sap/ui/dom/includeStylesheet.js +8 -3
  289. package/src/sap/ui/events/jquery/EventExtension.js +1 -1
  290. package/src/sap/ui/events/jquery/EventSimulation.js +3 -13
  291. package/src/sap/ui/model/Binding.js +4 -3
  292. package/src/sap/ui/model/ClientModel.js +1 -1
  293. package/src/sap/ui/model/ClientTreeBinding.js +1 -1
  294. package/src/sap/ui/model/CompositeBinding.js +4 -1
  295. package/src/sap/ui/model/CompositeDataState.js +26 -4
  296. package/src/sap/ui/model/CompositeType.js +13 -1
  297. package/src/sap/ui/model/ContextBinding.js +1 -1
  298. package/src/sap/ui/model/DataState.js +27 -6
  299. package/src/sap/ui/model/ListBinding.js +2 -2
  300. package/src/sap/ui/model/MetaModel.js +2 -3
  301. package/src/sap/ui/model/Model.js +2 -2
  302. package/src/sap/ui/model/SelectionModel.js +1 -1
  303. package/src/sap/ui/model/SimpleType.js +1 -1
  304. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  305. package/src/sap/ui/model/Type.js +1 -1
  306. package/src/sap/ui/model/_Helper.js +22 -0
  307. package/src/sap/ui/model/analytics/AnalyticalBinding.js +68 -42
  308. package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -15
  309. package/src/sap/ui/model/base/ManagedObjectModel.js +9 -7
  310. package/src/sap/ui/model/json/JSONListBinding.js +1 -1
  311. package/src/sap/ui/model/json/JSONModel.js +15 -8
  312. package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
  313. package/src/sap/ui/model/message/MessageListBinding.js +1 -1
  314. package/src/sap/ui/model/message/MessageModel.js +1 -1
  315. package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
  316. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  317. package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
  318. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  319. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  320. package/src/sap/ui/model/odata/ODataMetadata.js +3 -3
  321. package/src/sap/ui/model/odata/ODataModel.js +2 -2
  322. package/src/sap/ui/model/odata/ODataPropertyBinding.js +3 -1
  323. package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
  324. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  325. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +1 -1
  326. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
  327. package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +1 -1
  328. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  329. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  330. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  331. package/src/sap/ui/model/odata/type/Date.js +1 -1
  332. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  333. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  334. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  335. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +346 -0
  336. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  337. package/src/sap/ui/model/odata/type/Double.js +1 -1
  338. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  339. package/src/sap/ui/model/odata/type/Int.js +1 -1
  340. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  341. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  342. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  343. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  344. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  345. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  346. package/src/sap/ui/model/odata/type/Single.js +1 -1
  347. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  348. package/src/sap/ui/model/odata/type/String.js +1 -1
  349. package/src/sap/ui/model/odata/type/Time.js +1 -1
  350. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  351. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  352. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  353. package/src/sap/ui/model/odata/v2/Context.js +62 -5
  354. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  355. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +8 -4
  356. package/src/sap/ui/model/odata/v2/ODataListBinding.js +324 -112
  357. package/src/sap/ui/model/odata/v2/ODataModel.js +324 -94
  358. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -4
  359. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +65 -5
  360. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +21 -22
  361. package/src/sap/ui/model/odata/v4/Context.js +224 -101
  362. package/src/sap/ui/model/odata/v4/ODataBinding.js +99 -55
  363. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +272 -210
  364. package/src/sap/ui/model/odata/v4/ODataListBinding.js +557 -258
  365. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +131 -100
  366. package/src/sap/ui/model/odata/v4/ODataModel.js +503 -260
  367. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +106 -138
  368. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +87 -80
  369. package/src/sap/ui/model/odata/v4/ODataUtils.js +5 -5
  370. package/src/sap/ui/model/odata/v4/SubmitMode.js +0 -1
  371. package/src/sap/ui/model/odata/v4/ValueListType.js +0 -1
  372. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +20 -20
  373. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +3 -5
  374. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -4
  375. package/src/sap/ui/model/odata/v4/lib/_Batch.js +21 -20
  376. package/src/sap/ui/model/odata/v4/lib/_Cache.js +322 -127
  377. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +5 -1
  378. package/src/sap/ui/model/odata/v4/lib/_Helper.js +28 -21
  379. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +62 -61
  380. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
  381. package/src/sap/ui/model/odata/v4/lib/_Parser.js +52 -43
  382. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +216 -51
  383. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +147 -147
  384. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +14 -13
  385. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +66 -67
  386. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  387. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  388. package/src/sap/ui/model/type/Boolean.js +1 -1
  389. package/src/sap/ui/model/type/Currency.js +1 -1
  390. package/src/sap/ui/model/type/Date.js +1 -1
  391. package/src/sap/ui/model/type/DateInterval.js +1 -1
  392. package/src/sap/ui/model/type/DateTime.js +1 -1
  393. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  394. package/src/sap/ui/model/type/FileSize.js +1 -1
  395. package/src/sap/ui/model/type/Float.js +1 -1
  396. package/src/sap/ui/model/type/Integer.js +1 -1
  397. package/src/sap/ui/model/type/String.js +1 -1
  398. package/src/sap/ui/model/type/Time.js +1 -1
  399. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  400. package/src/sap/ui/model/type/Unit.js +1 -1
  401. package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
  402. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  403. package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
  404. package/src/sap/ui/performance/trace/FESR.js +1 -1
  405. package/src/sap/ui/performance/trace/FESRHelper.js +72 -0
  406. package/src/sap/ui/performance/trace/Interaction.js +6 -2
  407. package/src/sap/ui/performance/trace/Passport.js +3 -3
  408. package/src/sap/ui/qunit/qunit-2-css.js +4 -4
  409. package/src/sap/ui/qunit/qunit-css.js +4 -4
  410. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  411. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  412. package/src/sap/ui/test/BlanketReporter.js +1 -1
  413. package/src/sap/ui/test/BranchTracking.js +1 -0
  414. package/src/sap/ui/test/Opa5.js +1 -1
  415. package/src/sap/ui/test/OpaBuilder.js +7 -7
  416. package/src/sap/ui/test/TestUtils.js +12 -2
  417. package/src/sap/ui/test/_LogCollector.js +1 -1
  418. package/src/sap/ui/test/_UsageReport.js +1 -1
  419. package/src/sap/ui/test/actions/Action.js +4 -2
  420. package/src/sap/ui/test/actions/Press.js +51 -2
  421. package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
  422. package/src/sap/ui/test/generic/GenericTestCollection.js +176 -0
  423. package/src/sap/ui/test/generic/TestBase.js +151 -0
  424. package/src/sap/ui/test/generic/Utils.js +284 -0
  425. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +9 -8
  426. package/src/sap/ui/test/selectors/_ControlSelectorValidator.js +1 -1
  427. package/src/sap/ui/test/starter/_setupAndStart.js +4 -0
  428. package/src/sap/ui/test/starter/createSuite.js +3 -3
  429. package/src/sap/ui/thirdparty/IPv6.js +1 -1
  430. package/src/sap/ui/thirdparty/SecondLevelDomains.js +1 -1
  431. package/src/sap/ui/thirdparty/URI.js +7 -3
  432. package/src/sap/ui/thirdparty/URITemplate.js +1 -1
  433. package/src/sap/ui/thirdparty/jquery-mobile-custom.js +3 -6
  434. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-datepicker.js +143 -3
  435. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-position.js +8 -1
  436. package/src/sap/ui/thirdparty/jszip.js +17 -7
  437. package/src/sap/ui/thirdparty/mobify-carousel.js +1 -1
  438. package/src/sap/ui/util/Mobile.js +17 -0
  439. package/src/sap/ui/util/Storage.js +1 -1
  440. package/src/sap/ui/util/XMLHelper.js +53 -30
  441. package/src/ui5loader.js +4 -4
@@ -35,7 +35,7 @@ sap.ui.define('sap/ui/debug/PropertyList', [
35
35
  *
36
36
  * @extends sap.ui.base.EventProvider
37
37
  * @author Martin Schaus
38
- * @version 1.97.1
38
+ * @version 1.100.0
39
39
  *
40
40
  * @param {sap.ui.core.Core}
41
41
  * oCore Core instance of the app; version might differ!
@@ -81,9 +81,14 @@ sap.ui.define(["sap/base/assert"],
81
81
  }
82
82
 
83
83
  /**
84
- * Includes the specified stylesheet via a <link>-tag in the head of the current document. If there is call to
85
- * <code>includeStylesheet</code> providing the sId of an already included stylesheet, the existing element will be
86
- * replaced.
84
+ * Includes the specified stylesheet via a &lt;link&gt;-tag in the head of the current document.
85
+ *
86
+ * If <code>includeStylesheet</code> is called with an <code>sId</code> of an already included stylesheet and:
87
+ * <ul>
88
+ * <li>either <code>fnLoadCallback</code> or <code>fnErrorCallback</code> is given: the old stylesheet is deleted and a new one is inserted</li>
89
+ * <li><code>vUrl</code> is different from the existing one's: the old stylesheet is deleted and a new one is inserted</li>
90
+ * <li>otherwise: no action</li>
91
+ * </ul>
87
92
  *
88
93
  * @param {string|object} vUrl the URL of the stylesheet to load or a configuration object
89
94
  * @param {string} vUrl.url the URL of the stylesheet to load
@@ -46,7 +46,7 @@ sap.ui.define(["sap/ui/thirdparty/jquery", "sap/ui/events/PseudoEvents"
46
46
  /**
47
47
  * Returns an array of names (as strings) identifying {@link module:sap/ui/events/PseudoEvents} that are fulfilled by this very Event instance.
48
48
  *
49
- * @returns {String[]} Array of names identifying {@link module:sap/ui/events/PseudoEvents} that are fulfilled by this very Event instance.
49
+ * @returns {string[]} Array of names identifying {@link module:sap/ui/events/PseudoEvents} that are fulfilled by this very Event instance.
50
50
  * @public
51
51
  */
52
52
  jQuery.Event.prototype.getPseudoTypes = function() {
@@ -229,13 +229,12 @@ sap.ui.define([
229
229
  };
230
230
 
231
231
  // Simulate mouse events on browsers firing touch events
232
- oEventSimulation._initMouseEventSimulation = function(bBlackberryDevice) {
232
+ oEventSimulation._initMouseEventSimulation = function() {
233
233
 
234
234
  var bFingerIsMoved = false,
235
235
  iMoveThreshold = jQuery.vmouse.moveDistanceThreshold,
236
236
  iStartX, iStartY,
237
- iOffsetX, iOffsetY,
238
- iLastTouchMoveTime;
237
+ iOffsetX, iOffsetY;
239
238
 
240
239
  var fnCreateNewEvent = function(oEvent, oConfig, oMappedEvent) {
241
240
  var oNewEvent = jQuery.event.fix(oEvent.originalEvent || oEvent);
@@ -280,14 +279,6 @@ sap.ui.define([
280
279
  Math.abs(oTouch.pageY - iStartY) > iMoveThreshold);
281
280
  }
282
281
 
283
- if (bBlackberryDevice) {
284
- //Blackberry sends many touchmoves -> create a simulated mousemove every 50ms
285
- if (iLastTouchMoveTime && oEvent.timeStamp - iLastTouchMoveTime < 50) {
286
- return;
287
- }
288
- iLastTouchMoveTime = oEvent.timeStamp;
289
- }
290
-
291
282
  var oNewEvent = fnCreateNewEvent(oEvent, oConfig, oEvent.touches[0]);
292
283
 
293
284
  setTimeout(function() {
@@ -321,7 +312,6 @@ sap.ui.define([
321
312
 
322
313
  var oTouch = oEvent.originalEvent.touches[0];
323
314
  bFingerIsMoved = false;
324
- iLastTouchMoveTime = 0;
325
315
  iStartX = oTouch.pageX;
326
316
  iStartY = oTouch.pageY;
327
317
  iOffsetX = Math.round(oTouch.pageX - jQuery(oEvent.target).offset().left);
@@ -438,7 +428,7 @@ sap.ui.define([
438
428
  if (Device.support.touch) {
439
429
  // Deregister the previous touch to mouse event simulation (see line 25 in this file)
440
430
  oEventSimulation.disableTouchToMouseHandling();
441
- oEventSimulation._initMouseEventSimulation(Device.os.blackberry);
431
+ oEventSimulation._initMouseEventSimulation();
442
432
  }
443
433
  ControlEvents.events = oEventSimulation._init(ControlEvents.events);
444
434
  }());
@@ -547,7 +547,8 @@ sap.ui.define([
547
547
  * of the binding is fired. The default implementation just fires the change event when the
548
548
  * method is called. Subclasses should implement this, if possible.
549
549
  *
550
- * @param {boolean} bForceUpdate Whether the event should be fired when the binding is suspended
550
+ * @param {boolean} [bForceUpdate] Whether the event should be fired when the binding is
551
+ * suspended
551
552
  *
552
553
  * @private
553
554
  */
@@ -564,7 +565,7 @@ sap.ui.define([
564
565
  * To update a control, even if no data has been changed, e.g. to reset a control after failed
565
566
  * validation, please use the parameter <code>bForceUpdate</code>.
566
567
  *
567
- * @param {boolean} bForceUpdate Update the bound control even if no data has been changed
568
+ * @param {boolean} [bForceUpdate] Update the bound control even if no data has been changed
568
569
  *
569
570
  * @public
570
571
  */
@@ -591,7 +592,7 @@ sap.ui.define([
591
592
  /**
592
593
  * _refresh for compatibility
593
594
  *
594
- * @param {boolean} bForceUpdate Whether an update should be forced
595
+ * @param {boolean} [bForceUpdate] Whether an update should be forced
595
596
  * @private
596
597
  */
597
598
  Binding.prototype._refresh = function(bForceUpdate) {
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.ui.model.Model
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.97.1
32
+ * @version 1.100.0
33
33
  *
34
34
  * @param {string} [oData] URL where to load the data from
35
35
  * @public
@@ -413,7 +413,7 @@ sap.ui.define([
413
413
  * Check whether this Binding would provide new values and in case it changed,
414
414
  * inform interested parties about this.
415
415
  *
416
- * @param {boolean} bForceupdate Not used in this method
416
+ * @param {boolean} [bForceupdate] Not used in this method
417
417
  *
418
418
  */
419
419
  ClientTreeBinding.prototype.checkUpdate = function(bForceupdate){
@@ -148,6 +148,9 @@ sap.ui.define([
148
148
 
149
149
  this.bRawValues = this.oType.getUseRawValues();
150
150
  this.bInternalValues = this.oType.getUseInternalValues();
151
+ this.oType.processPartTypes(this.aBindings.map(function (oBinding) {
152
+ return oBinding.getType();
153
+ }));
151
154
 
152
155
  if (this.bRawValues && this.bInternalValues) {
153
156
  throw new Error(this.oType + " has both 'bUseRawValues' & 'bUseInternalValues' set to true. Only one of them is allowed to be true");
@@ -825,7 +828,7 @@ sap.ui.define([
825
828
  * Check whether this Binding would provide new values and in case it changed,
826
829
  * inform interested parties about this.
827
830
  *
828
- * @param {boolean} bForceUpdate Whether an update should be forced
831
+ * @param {boolean} [bForceUpdate] Whether an update should be forced
829
832
  *
830
833
  */
831
834
  CompositeBinding.prototype.checkUpdate = function(bForceUpdate){
@@ -14,7 +14,7 @@ sap.ui.define(['./DataState', "sap/base/util/deepEqual", "sap/base/util/each"],
14
14
  * @extends sap.ui.model.DataState
15
15
  *
16
16
  * @author SAP SE
17
- * @version 1.97.1
17
+ * @version 1.100.0
18
18
  *
19
19
  * @public
20
20
  * @alias sap.ui.model.CompositeDataState
@@ -105,9 +105,10 @@ sap.ui.define(['./DataState', "sap/base/util/deepEqual", "sap/base/util/each"],
105
105
  };
106
106
 
107
107
  /**
108
- * Returns the array of state messages of the model or undefined.
108
+ * Returns the array of current state messages of the model.
109
109
  *
110
110
  * @returns {sap.ui.core.Message[]} The array of messages of the model
111
+ *
111
112
  * @public
112
113
  */
113
114
  CompositeDataState.prototype.getModelMessages = function() {
@@ -115,9 +116,10 @@ sap.ui.define(['./DataState', "sap/base/util/deepEqual", "sap/base/util/each"],
115
116
  };
116
117
 
117
118
  /**
118
- * Returns the array of state messages of the control.
119
+ * Returns the array of current state messages of the control.
119
120
  *
120
121
  * @return {sap.ui.core.Message[]} The array of control messages
122
+ *
121
123
  * @public
122
124
  */
123
125
  CompositeDataState.prototype.getControlMessages = function() {
@@ -125,9 +127,29 @@ sap.ui.define(['./DataState', "sap/base/util/deepEqual", "sap/base/util/each"],
125
127
  };
126
128
 
127
129
  /**
128
- * Returns the array of all state messages combining the model and control messages.
130
+ * Returns an array of all model and control messages of all parts of the composite binding,
131
+ * regardless of whether they are old or new.
129
132
  *
130
133
  * @returns {sap.ui.core.Message[]} The array of all messages
134
+ *
135
+ * @public
136
+ * @since 1.98.0
137
+ */
138
+ CompositeDataState.prototype.getAllMessages = function () {
139
+ var oResultSet = new Set();
140
+
141
+ this.aDataStates.forEach(function(oDataState) {
142
+ oDataState.getAllMessages().forEach(oResultSet.add.bind(oResultSet));
143
+ });
144
+
145
+ return Array.from(oResultSet);
146
+ };
147
+
148
+ /**
149
+ * Returns the array of all current state messages combining the model and control messages.
150
+ *
151
+ * @returns {sap.ui.core.Message[]} The array of all messages
152
+ *
131
153
  * @public
132
154
  */
133
155
  CompositeDataState.prototype.getMessages = function() {
@@ -39,7 +39,7 @@ sap.ui.define(['./SimpleType'],
39
39
  * <code>true</code>.
40
40
  * @extends sap.ui.model.SimpleType
41
41
  * @public
42
- * @version 1.97.1
42
+ * @version 1.100.0
43
43
  */
44
44
  var CompositeType = SimpleType.extend("sap.ui.model.CompositeType", /** @lends sap.ui.model.CompositeType.prototype */ {
45
45
 
@@ -175,5 +175,17 @@ sap.ui.define(['./SimpleType'],
175
175
  return this.bParseWithValues;
176
176
  };
177
177
 
178
+ /**
179
+ * Processes the types of the parts of this composite type. A concrete composite type may
180
+ * override this method if it needs to derive information from the types of the parts.
181
+ *
182
+ * @param {sap.ui.model.SimpleType[]} aPartTypes Types of the composite binding's parts
183
+ *
184
+ * @protected
185
+ * @since 1.100.0
186
+ */
187
+ CompositeType.prototype.processPartTypes = function (aPartTypes) {
188
+ };
189
+
178
190
  return CompositeType;
179
191
  });
@@ -46,7 +46,7 @@ sap.ui.define(['./Binding'],
46
46
  * Check whether this Binding would provide new values and in case it changed, inform interested
47
47
  * parties about this.
48
48
  *
49
- * @param {boolean} bForceupdate Ignored in this method
49
+ * @param {boolean} [bForceupdate] Ignored in this method
50
50
  */
51
51
  ContextBinding.prototype.checkUpdate = function(bForceupdate) {
52
52
  // nothing to do here, data changes can not change the context
@@ -65,7 +65,7 @@ sap.ui.define([
65
65
  * @extends sap.ui.base.Object
66
66
  *
67
67
  * @author SAP SE
68
- * @version 1.97.1
68
+ * @version 1.100.0
69
69
  *
70
70
  * @public
71
71
  * @alias sap.ui.model.DataState
@@ -123,10 +123,29 @@ sap.ui.define([
123
123
  };
124
124
 
125
125
  /**
126
- * Returns the array of this data state's messages combining the model and control messages.
127
- * The array is sorted descendingly by message severity.
126
+ * Returns an array of all model and control messages, regardless of whether they are old or
127
+ * new.
128
+ *
129
+ * @returns {sap.ui.core.Message[]} The array of all messages
130
+ *
131
+ * @public
132
+ * @since 1.98.0
133
+ */
134
+ DataState.prototype.getAllMessages = function () {
135
+ var oResultSet = new Set();
136
+
137
+ this.getMessages().forEach(oResultSet.add.bind(oResultSet));
138
+ this._getOldMessages().forEach(oResultSet.add.bind(oResultSet));
139
+
140
+ return Array.from(oResultSet);
141
+ };
142
+
143
+ /**
144
+ * Returns the array of this data state's current messages combining the model and control
145
+ * messages. The array is sorted descendingly by message severity.
128
146
  *
129
147
  * @returns {sap.ui.core.Message[]} The sorted array of all messages
148
+ *
130
149
  * @public
131
150
  */
132
151
  DataState.prototype.getMessages = function () {
@@ -179,9 +198,10 @@ sap.ui.define([
179
198
  };
180
199
 
181
200
  /**
182
- * Returns the array of state messages of the model or undefined.
201
+ * Returns the array of this data state's current model messages.
183
202
  *
184
203
  * @returns {sap.ui.core.Message[]} The array of messages of the model
204
+ *
185
205
  * @public
186
206
  */
187
207
  DataState.prototype.getModelMessages = function() {
@@ -201,9 +221,10 @@ sap.ui.define([
201
221
  };
202
222
 
203
223
  /**
204
- * Returns the array of state messages of the control.
224
+ * Returns the array of this data state's current control messages.
225
+ *
226
+ * @returns {sap.ui.core.Message[]} The array of control messages
205
227
  *
206
- * @return {sap.ui.core.Message[]} The array of control messages
207
228
  * @public
208
229
  */
209
230
  DataState.prototype.getControlMessages = function() {
@@ -74,8 +74,8 @@ sap.ui.define(['./Binding', './Filter', './FilterType', './Sorter', 'sap/base/ut
74
74
  * Returns all current contexts of this list binding in no special order. Just like
75
75
  * {@link #getCurrentContexts}, this method does not request any data from a back end and does
76
76
  * not change the binding's state. In contrast to {@link #getCurrentContexts}, it does not only
77
- * return the contexts as last requested by a control, but all that are currently available in
78
- * the binding.
77
+ * return those contexts that were last requested by a control, but all contexts that are
78
+ * currently available in the binding.
79
79
  *
80
80
  * @returns {sap.ui.model.Context[]}
81
81
  * All current contexts of this list binding, in no special order
@@ -16,7 +16,7 @@ sap.ui.define(['./Model'],
16
16
  * @extends sap.ui.model.Model
17
17
  *
18
18
  * @author SAP SE
19
- * @version 1.97.1
19
+ * @version 1.100.0
20
20
  *
21
21
  * @public
22
22
  * @alias sap.ui.model.MetaModel
@@ -39,8 +39,7 @@ sap.ui.define(['./Model'],
39
39
  * @param {boolean} [bReload]
40
40
  * force reload even if data is already available. For server side models this should
41
41
  * refetch the data from the server
42
- * @return {sap.ui.model.Context} the binding context, if it could be created synchronously
43
-
42
+ * @return {sap.ui.model.Context|undefined} the binding context, if it could be created synchronously
44
43
  * @see sap.ui.model.Model.prototype.createBindingContext
45
44
  *
46
45
  */
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  * @extends sap.ui.core.message.MessageProcessor
50
50
  *
51
51
  * @author SAP SE
52
- * @version 1.97.1
52
+ * @version 1.100.0
53
53
  *
54
54
  * @public
55
55
  * @alias sap.ui.model.Model
@@ -686,7 +686,7 @@ sap.ui.define([
686
686
  * Force reload even if data is already available; for server-side models this should refetch
687
687
  * the data from the server
688
688
  *
689
- * @return {sap.ui.model.Context}
689
+ * @return {sap.ui.model.Context|undefined}
690
690
  * The binding context, if it could be created synchronously
691
691
  * @public
692
692
  */
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/EventProvider', "sap/base/assert"],
20
20
  * @extends sap.ui.base.EventProvider
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.97.1
23
+ * @version 1.100.0
24
24
  *
25
25
  * @param {int} iSelectionMode <code>sap.ui.model.SelectionModel.SINGLE_SELECTION</code> or <code>sap.ui.model.SelectionModel.MULTI_SELECTION</code>
26
26
  *
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  *
47
47
  * @extends sap.ui.model.Type
48
48
  * @public
49
- * @version 1.97.1
49
+ * @version 1.100.0
50
50
  */
51
51
  var SimpleType = Type.extend("sap.ui.model.SimpleType", /** @lends sap.ui.model.SimpleType.prototype */ {
52
52
 
@@ -12,7 +12,7 @@ sap.ui.define([],
12
12
  /**
13
13
  * Different modes for setting the auto expand mode on tree or analytical bindings.
14
14
  *
15
- * @version 1.97.1
15
+ * @version 1.100.0
16
16
  * @enum {string}
17
17
  * @alias sap.ui.model.TreeAutoExpandMode
18
18
  * @protected
@@ -19,7 +19,7 @@ sap.ui.define(['sap/ui/base/Object'],
19
19
  *
20
20
  * @extends sap.ui.base.Object
21
21
  * @public
22
- * @version 1.97.1
22
+ * @version 1.100.0
23
23
  */
24
24
  var Type = BaseObject.extend("sap.ui.model.Type", /** @lends sap.ui.model.Type.prototype */ {
25
25
 
@@ -0,0 +1,22 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ sap.ui.define([
7
+ "sap/base/util/extend"
8
+ ], function (extend) {
9
+ "use strict";
10
+
11
+ /**
12
+ * @alias sap.ui.model._Helper
13
+ * @private
14
+ */
15
+ var _Helper = {
16
+ // Trampoline property to allow for mocking in unit tests.
17
+ // @see sap.base.util.extend
18
+ extend : extend
19
+ };
20
+
21
+ return _Helper;
22
+ }, /* bExport= */false);
@@ -52,7 +52,9 @@ sap.ui.define([
52
52
  * <li>if an associated property (e.g. text property) of an additional measure is contained in
53
53
  * the select binding parameter
54
54
  * <li>if a dimension or a measure of the current analytical info is not contained in the select
55
- * binding parameter
55
+ * binding parameter, unless the dimension or measure has been added automatically by the
56
+ * binding, because a property associated to the dimension or measure has been added as a
57
+ * "visible" or "inResult" column
56
58
  * </ul>
57
59
  *
58
60
  * @param {sap.ui.model.analytics.AnalyticalBinding} oBinding
@@ -61,16 +63,10 @@ sap.ui.define([
61
63
  * array if there are no additional select properties needed
62
64
  */
63
65
  function getAdditionalSelects(oBinding) {
64
- var oAnalyticalQueryRequest
66
+ var oColumn, aComputedSelect, sComputedSelect, oDimension, i, j, oMeasure, n, sPropertyName,
67
+ oAnalyticalQueryRequest
65
68
  = new odata4analytics.QueryResultRequest(oBinding.oAnalyticalQueryResult),
66
- aComputedSelect,
67
- sComputedSelect,
68
- oDimension,
69
- i,
70
- j,
71
- oMeasure,
72
- n,
73
- sPropertyName,
69
+
74
70
  aSelect = oBinding.mParameters.select.split(","),
75
71
  bError = trimAndCheckForDuplicates(aSelect, oBinding.sPath);
76
72
 
@@ -106,6 +102,10 @@ sap.ui.define([
106
102
  sPropertyName = aComputedSelect[i];
107
103
  j = aSelect.indexOf(sPropertyName);
108
104
  if (j < 0) {
105
+ oColumn = oBinding.mAnalyticalInfoByProperty[sPropertyName];
106
+ if (!oColumn || (!oColumn.visible && !oColumn.inResult)) {
107
+ continue; // ignore automatically added columns
108
+ }
109
109
  oLogger.warning("Ignored the 'select' binding parameter, because"
110
110
  + " it does not contain the property '" + sPropertyName + "'",
111
111
  oBinding.sPath);
@@ -248,10 +248,10 @@ sap.ui.define([
248
248
  * A comma-separated list of property names that need to be selected.<br/>
249
249
  * If the <code>select</code> parameter is given, it has to contain all properties that are
250
250
  * contained in the analytical information (see
251
- * {@link sap.ui.model.analytics.AnalyticalBinding#updateAnalyticalInfo}) and their associated
252
- * dimensions and measures. It must not contain additional dimensions or measures or
253
- * associated properties for additional dimensions or measures. But it may contain additional
254
- * properties like a text property of a dimension that is also selected.<br/>
251
+ * {@link sap.ui.model.analytics.AnalyticalBinding#updateAnalyticalInfo}). It must not contain
252
+ * additional dimensions or measures or associated properties for additional dimensions or
253
+ * measures. But it may contain additional properties like a text property of a dimension that
254
+ * is also selected.<br/>
255
255
  * All properties of the <code>select</code> parameter are also considered in
256
256
  * {@link sap.ui.model.analytics.AnalyticalBinding#getDownloadUrl}.<br/>
257
257
  * The <code>select</code> parameter must not contain any duplicate entry.<br/>
@@ -587,18 +587,31 @@ sap.ui.define([
587
587
  *
588
588
  * @function
589
589
  * @name sap.ui.model.analytics.AnalyticalBinding.prototype.getNodeContexts
590
- * @param {object}
591
- * mParameters specifying the aggregation level for which contexts shall be fetched. Supported parameters are:
592
- * <ul>
593
- * <li>oContext: parent context identifying the requested group of child contexts</li>
594
- * <li>level: level number for oContext, because it might occur at multiple levels; context with group ID <code>"/"</code> has level 0</li>
595
- * <li>numberOfExpandedLevels: number of child levels that shall be fetched automatically</li>
596
- * <li>startIndex: index of first child entry to return from the parent context (zero-based)</li>
597
- * <li>length: number of entries to return; counting begins at the given start index</li>
598
- * <li>threshold: number of additional entries that shall be locally available in the binding for subsequent
599
- * accesses to child entries of the given parent context. </li>
600
- * </ul>
601
- * @return {array}
590
+ * @param {sap.ui.model.Context} oContext
591
+ * Parent context identifying the requested group of child contexts
592
+ * @param {object|int} mParameters
593
+ * Parameters, specifying the aggregation level for which contexts shall be fetched
594
+ * or (legacy signature variant) index of first child entry to return from the parent context (zero-based)
595
+ * @param {int} mParameters.level
596
+ * Level number for oContext, because it might occur at multiple levels; context with group ID <code>"/"</code> has level 0
597
+ * @param {int} [mParameters.numberOfExpandedLevels=0]
598
+ * Number of child levels that shall be fetched automatically
599
+ * @param {int} [mParameters.startIndex=0]
600
+ * Index of first child entry to return from the parent context (zero-based)
601
+ * @param {int} [mParameters.length=<model size limit>]
602
+ * Number of entries to return; counting begins at the given start index
603
+ * @param {int} [mParameters.threshold=0]
604
+ * Number of additional entries that shall be locally available in the binding for subsequent
605
+ * accesses to child entries of the given parent context
606
+ * @param {int} [iLength=<model size limit>]
607
+ * Same meaning as <code>mParameters.length</code>, legacy signature variant only
608
+ * @param {int} [iThreshold=0]
609
+ * Same meaning as <code>mParameters.threshold</code>, legacy signature variant only
610
+ * @param {int} [iLevel]
611
+ * Same meaning as <code>mParameters.level</code>, legacy signature variant only
612
+ * @param {int} [iNumberOfExpandedLevels=0]
613
+ * Same meaning as <code>mParameters.numberOfExpandedLevels</code>, legacy signature variant only
614
+ * @returns {sap.ui.model.Context[]}
602
615
  * Array containing the requested contexts of class sap.ui.model.Context, limited by the number of entries contained
603
616
  * in the entity set at that aggregation level.
604
617
  * The array will contain less than the requested number of contexts, if some are not locally available and an OData request is
@@ -1128,42 +1141,53 @@ sap.ui.define([
1128
1141
  /**
1129
1142
  * Updates the binding's structure with new analytical information.
1130
1143
  *
1131
- * Analytical information is the mapping of UI columns to properties in the bound OData entity set. Every column object contains
1132
- * the name of the bound property and in addition:
1144
+ * Analytical information is the mapping of UI columns to properties in the bound OData entity
1145
+ * set. Every column object contains the <code>name</code> of the bound property and in
1146
+ * addition:
1133
1147
  * <ol>
1134
1148
  * <li>A column bound to a dimension property has further boolean properties:
1135
1149
  * <ul>
1136
- * <li>grouped: dimension will be used for building groups</li>
1137
- * <li>visible: if the column is visible, values for the related property will be fetched from the OData service</li>
1138
- * <li>inResult: if the column is not visible, but declared to be part of the result, values for the related property
1139
- * will also be fetched from the OData service</li>
1150
+ * <li>grouped: dimension is used for building groups</li>
1151
+ * <li>inResult: if the column is not visible, but declared to be part of the result,
1152
+ * values for the related property are also fetched from the OData service</li>
1153
+ * <li>visible: if the column is visible, values for the related property are fetched from
1154
+ * the OData service</li>
1140
1155
  * </ul>
1141
1156
  * </li>
1142
1157
  * <li>A column bound to a measure property has further boolean properties:
1143
1158
  * <ul>
1144
- * <li>total: totals and sub-totals will be provided for the measure at all aggregation levels</li>
1159
+ * <li>inResult: if the column is not visible, but declared to be part of the result,
1160
+ * values for the related property are also fetched from the OData service</li>
1161
+ * <li>total: totals and sub-totals are provided for the measure at all aggregation
1162
+ * levels</li>
1163
+ * <li>visible: if the column is visible, values for the related property are fetched from
1164
+ * the OData service</li>
1145
1165
  * </ul>
1146
1166
  * </li>
1147
1167
  * <li>A column bound to a hierarchy property has further properties:
1148
1168
  * <ul>
1149
- * <li>grouped: boolean value; indicates whether the hierarchy will be used for building
1169
+ * <li>grouped: boolean value; indicates whether the hierarchy is used for building
1150
1170
  * groups</li>
1151
1171
  * <li>level: integer value; the hierarchy level is mandatory for at least one of those
1152
- * columns that represent the same hierarchy.</li>
1172
+ * columns that represent the same hierarchy</li>
1153
1173
  * </ul>
1154
1174
  * </li>
1155
1175
  * </ol>
1156
1176
  *
1157
- * Invoking this function resets the state of the binding and subsequent data requests such as calls to getNodeContexts() will
1158
- * need to trigger OData requests in order to fetch the data that are in line with this analytical information.
1177
+ * Invoking this function resets the state of the binding and subsequent data requests such as
1178
+ * calls to getNodeContexts() trigger OData requests in order to fetch the data that are in line
1179
+ * with this analytical information.
1159
1180
  *
1160
- * Please be aware that a call of this function might lead to additional back-end requests, as well as a control re-rendering later on.
1181
+ * Be aware that a call of this function might lead to additional back-end requests, as well as
1182
+ * a control re-rendering later on.
1161
1183
  * Whenever possible use the API of the analytical control, instead of relying on the binding.
1162
1184
  *
1163
1185
  * @function
1164
1186
  * @name sap.ui.model.analytics.AnalyticalBinding.prototype.updateAnalyticalInfo
1165
- * @param {array}
1166
- * aColumns an array with objects holding the analytical information for every column, from left to right.
1187
+ * @param {object[]} aColumns
1188
+ * An array with objects holding the analytical information for every column
1189
+ * @param {boolean} bForceChange
1190
+ * Whether to fire a change event asynchronously even if columns didn't change
1167
1191
  * @protected
1168
1192
  */
1169
1193
  AnalyticalBinding.prototype.updateAnalyticalInfo = function(aColumns, bForceChange) {
@@ -2557,9 +2581,11 @@ sap.ui.define([
2557
2581
  };
2558
2582
 
2559
2583
  /**
2584
+ * @param {object} oAnalyticalQueryRequest
2560
2585
  * @param {boolean} bAddAdditionalSelects
2561
2586
  * Whether additional selects, computed from select binding parameter, shall be added to the
2562
2587
  * $select query option.
2588
+ * @param {object} mParameters
2563
2589
  * @private
2564
2590
  */
2565
2591
  AnalyticalBinding.prototype._getQueryODataRequestOptions = function(oAnalyticalQueryRequest,
@@ -3788,6 +3814,7 @@ sap.ui.define([
3788
3814
  };
3789
3815
 
3790
3816
  /**
3817
+ * @param {string} sGroupId
3791
3818
  * @param {int} iNumLevels anchestors starting at the root if greater than 0, or starting at the parent of sGroupId if less than 0.
3792
3819
  * @private
3793
3820
  */
@@ -4624,8 +4651,7 @@ sap.ui.define([
4624
4651
  /**
4625
4652
  * Check whether this Binding would provide new values and in case it changed, inform interested parties about this.
4626
4653
  *
4627
- * @param {boolean}
4628
- * bForceUpdate
4654
+ * @param {boolean} [bForceUpdate]
4629
4655
  * @param {object} mChangedEntities
4630
4656
  * @private
4631
4657
  */