@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
@@ -29,7 +29,38 @@ sap.ui.define([
29
29
  dataRequested : true,
30
30
  DataStateChange : true
31
31
  },
32
- sVirtualPath = "/" + Context.VIRTUAL; // a snippet indicating a virtual path
32
+ sVirtualPath = "/" + Context.VIRTUAL, // a snippet indicating a virtual path
33
+ /**
34
+ * @alias sap.ui.model.odata.v4.ODataPropertyBinding
35
+ * @author SAP SE
36
+ * @class Property binding for an OData V4 model.
37
+ * An event handler can only be attached to this binding for the following events:
38
+ * 'AggregatedDataStateChange', 'change', 'dataReceived', 'dataRequested' and
39
+ * 'DataStateChange'. For unsupported events, an error is thrown.
40
+ * @extends sap.ui.model.PropertyBinding
41
+ * @hideconstructor
42
+ * @mixes sap.ui.model.odata.v4.ODataBinding
43
+ * @public
44
+ * @since 1.37.0
45
+ * @version 1.100.0
46
+ * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
47
+ * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
48
+ * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
49
+ * @borrows sap.ui.model.odata.v4.ODataBinding#hasPendingChanges as #hasPendingChanges
50
+ * @borrows sap.ui.model.odata.v4.ODataBinding#isInitial as #isInitial
51
+ * @borrows sap.ui.model.odata.v4.ODataBinding#refresh as #refresh
52
+ * @borrows sap.ui.model.odata.v4.ODataBinding#requestRefresh as #requestRefresh
53
+ * @borrows sap.ui.model.odata.v4.ODataBinding#resetChanges as #resetChanges
54
+ * @borrows sap.ui.model.odata.v4.ODataBinding#toString as #toString
55
+ */
56
+ ODataPropertyBinding
57
+ = PropertyBinding.extend("sap.ui.model.odata.v4.ODataPropertyBinding", {
58
+ constructor : constructor
59
+ });
60
+
61
+ //*********************************************************************************************
62
+ // ODataPropertyBinding
63
+ //*********************************************************************************************
33
64
 
34
65
  /**
35
66
  * Do <strong>NOT</strong> call this private constructor, but rather use
@@ -45,66 +76,37 @@ sap.ui.define([
45
76
  * Map of binding parameters
46
77
  * @throws {Error}
47
78
  * If disallowed binding parameters are provided
48
- *
49
- * @alias sap.ui.model.odata.v4.ODataPropertyBinding
50
- * @author SAP SE
51
- * @class Property binding for an OData V4 model.
52
- * An event handler can only be attached to this binding for the following events:
53
- * 'AggregatedDataStateChange', 'change', 'dataReceived', 'dataRequested' and
54
- * 'DataStateChange'. For unsupported events, an error is thrown.
55
- * @extends sap.ui.model.PropertyBinding
56
- * @hideconstructor
57
- * @mixes sap.ui.model.odata.v4.ODataBinding
58
- * @public
59
- * @since 1.37.0
60
- * @version 1.97.1
61
- * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
62
- * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
63
- * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
64
- * @borrows sap.ui.model.odata.v4.ODataBinding#hasPendingChanges as #hasPendingChanges
65
- * @borrows sap.ui.model.odata.v4.ODataBinding#isInitial as #isInitial
66
- * @borrows sap.ui.model.odata.v4.ODataBinding#refresh as #refresh
67
- * @borrows sap.ui.model.odata.v4.ODataBinding#requestRefresh as #requestRefresh
68
- * @borrows sap.ui.model.odata.v4.ODataBinding#resetChanges as #resetChanges
69
- * @borrows sap.ui.model.odata.v4.ODataBinding#toString as #toString
70
- */
71
- var ODataPropertyBinding
72
- = PropertyBinding.extend("sap.ui.model.odata.v4.ODataPropertyBinding", {
73
- constructor : function (oModel, sPath, oContext, mParameters) {
74
-
75
- PropertyBinding.call(this, oModel, sPath);
76
- // initialize mixin members
77
- asODataBinding.call(this);
78
-
79
- if (sPath.endsWith("/")) {
80
- throw new Error("Invalid path: " + sPath);
81
- }
82
- if (mParameters) {
83
- this.checkBindingParameters(mParameters,
84
- ["$$groupId", "$$ignoreMessages", "$$noPatch"]);
85
- this.sGroupId = mParameters.$$groupId;
86
- this.bNoPatch = mParameters.$$noPatch;
87
- this.setIgnoreMessages(mParameters.$$ignoreMessages);
88
- } else {
89
- this.sGroupId = undefined;
90
- this.bNoPatch = false;
91
- }
92
- this.oCheckUpdateCallToken = undefined;
93
- this.oContext = oContext;
94
- this.bHasDeclaredType = undefined; // whether the binding info declares a type
95
- this.bInitial = true;
96
- // Note: system query options supported at property binding only for ".../$count"
97
- this.mQueryOptions = this.oModel.buildQueryOptions(_Helper.clone(mParameters),
98
- /*bSystemQueryOptionsAllowed*/sPath.endsWith("$count"));
99
- this.vValue = undefined;
100
- // BEWARE: #doFetchQueryOptions uses #isRoot which relies on this.oContext!
101
- this.fetchCache(oContext);
102
- oModel.bindingCreated(this);
103
- },
104
- metadata : {
105
- publicMethods : []
106
- }
107
- });
79
+ */
80
+ function constructor(oModel, sPath, oContext, mParameters) {
81
+ PropertyBinding.call(this, oModel, sPath);
82
+ // initialize mixin members
83
+ asODataBinding.call(this);
84
+
85
+ if (sPath.endsWith("/")) {
86
+ throw new Error("Invalid path: " + sPath);
87
+ }
88
+ if (mParameters) {
89
+ this.checkBindingParameters(mParameters,
90
+ ["$$groupId", "$$ignoreMessages", "$$noPatch"]);
91
+ this.sGroupId = mParameters.$$groupId;
92
+ this.bNoPatch = mParameters.$$noPatch;
93
+ this.setIgnoreMessages(mParameters.$$ignoreMessages);
94
+ } else {
95
+ this.sGroupId = undefined;
96
+ this.bNoPatch = false;
97
+ }
98
+ this.oCheckUpdateCallToken = undefined;
99
+ this.oContext = oContext;
100
+ this.bHasDeclaredType = undefined; // whether the binding info declares a type
101
+ this.bInitial = true;
102
+ // Note: system query options supported at property binding only for ".../$count"
103
+ this.mQueryOptions = this.oModel.buildQueryOptions(_Helper.clone(mParameters),
104
+ /*bSystemQueryOptionsAllowed*/sPath.endsWith("$count"));
105
+ this.vValue = undefined;
106
+ // BEWARE: #doFetchQueryOptions uses #isRoot which relies on this.oContext!
107
+ this.fetchCache(oContext);
108
+ oModel.bindingCreated(this);
109
+ }
108
110
 
109
111
  asODataBinding(ODataPropertyBinding.prototype);
110
112
 
@@ -230,9 +232,9 @@ sap.ui.define([
230
232
  * The new value obtained from the cache, see {@link #onChange}
231
233
  * @returns {sap.ui.base.SyncPromise}
232
234
  * A promise resolving without a defined result when the check is finished, or rejecting in
233
- * case of an error (e.g. thrown by the change event handler of a control). If the cache is no
234
- * longer the active cache when the response arrives, that response is silently ignored and
235
- * the value remains unchanged.
235
+ * case of an error. If the cache is no longer the active cache when the response arrives,
236
+ * that response is ignored almost silently (that is, with a canceled error) and the value
237
+ * remains unchanged.
236
238
  *
237
239
  * @private
238
240
  * @see sap.ui.model.PropertyBinding#checkDataState
@@ -267,7 +269,8 @@ sap.ui.define([
267
269
  && !bIsMeta) {
268
270
  vType = oMetaModel.fetchUI5Type(sResolvedPath);
269
271
  }
270
- if (arguments.length < 4) {
272
+ if (vValue === undefined) {
273
+ // if called via #onChange, we need to fetch implicit values
271
274
  vValue = this.oCachePromise.then(function (oCache) {
272
275
  var sDataPath, sMetaPath;
273
276
 
@@ -310,20 +313,19 @@ sap.ui.define([
310
313
  || (that.sPath[that.sPath.lastIndexOf("/") + 1] === "#" && !bIsMeta))) {
311
314
  if (bIsMeta) {
312
315
  return vValue;
313
- } else if (that.bRelative){
316
+ } else if (that.bRelative) {
314
317
  return _Helper.publicClone(vValue);
315
318
  }
316
319
  }
317
320
  Log.error("Accessed value is not primitive", sResolvedPath, sClassName);
318
321
  }, function (oError) {
319
- // do not rethrow, ManagedObject doesn't react on this either
320
- // throwing an error would cause "Uncaught (in promise)" in Chrome
321
322
  that.oModel.reportError("Failed to read path " + sResolvedPath, sClassName, oError);
322
323
  if (oError.canceled) { // canceled -> value remains unchanged
323
324
  oCallToken.forceUpdate = false;
324
325
  return that.vValue;
325
326
  }
326
327
  mParametersForDataReceived = {error : oError};
328
+ // oError is re-thrown below
327
329
  });
328
330
  if (bForceUpdate && vValue.isFulfilled()) {
329
331
  if (vType && vType.isFulfilled && vType.isFulfilled()) {
@@ -352,6 +354,9 @@ sap.ui.define([
352
354
  if (bDataRequested) {
353
355
  that.fireDataReceived(mParametersForDataReceived);
354
356
  }
357
+ if (mParametersForDataReceived.error) {
358
+ throw mParametersForDataReceived.error;
359
+ }
355
360
  });
356
361
  };
357
362
 
@@ -493,7 +498,8 @@ sap.ui.define([
493
498
  * @private
494
499
  */
495
500
  ODataPropertyBinding.prototype.onChange = function (vValue) {
496
- this.checkUpdateInternal(undefined, undefined, undefined, vValue);
501
+ this.checkUpdateInternal(undefined, undefined, undefined, vValue)
502
+ .catch(this.oModel.getReporter());
497
503
  };
498
504
 
499
505
  /**
@@ -505,7 +511,7 @@ sap.ui.define([
505
511
  var that = this;
506
512
 
507
513
  if (this.isRootBindingSuspended()) {
508
- this.sResumeChangeReason = ChangeReason.Refresh;
514
+ this.refreshSuspended(sGroupId);
509
515
  return SyncPromise.resolve();
510
516
  }
511
517
  return this.oCachePromise.then(function () {
@@ -522,7 +528,7 @@ sap.ui.define([
522
528
  *
523
529
  * @returns {Promise}
524
530
  * A promise resolving with the resulting value or <code>undefined</code> if it could not be
525
- * determined
531
+ * determined, or rejecting in case of an error
526
532
  *
527
533
  * @public
528
534
  * @since 1.69
@@ -633,7 +639,8 @@ sap.ui.define([
633
639
 
634
640
  this.fetchCache(this.oContext);
635
641
  if (bCheckUpdate) {
636
- this.checkUpdateInternal(bParentHasChanges ? undefined : false, sResumeChangeReason);
642
+ this.checkUpdateInternal(bParentHasChanges ? undefined : false, sResumeChangeReason)
643
+ .catch(this.oModel.getReporter());
637
644
  }
638
645
  };
639
646
 
@@ -660,7 +667,8 @@ sap.ui.define([
660
667
  this.sResumeChangeReason = undefined;
661
668
  if (this.bRelative) {
662
669
  this.fetchCache(this.oContext);
663
- this.checkUpdateInternal(this.bInitial || undefined, ChangeReason.Context);
670
+ this.checkUpdateInternal(this.bInitial || undefined, ChangeReason.Context)
671
+ .catch(this.oModel.getReporter());
664
672
  }
665
673
  }
666
674
  };
@@ -705,15 +713,14 @@ sap.ui.define([
705
713
  * this binding (or its relevant parent binding) is used, see {@link #getUpdateGroupId}.
706
714
  * Valid values are <code>undefined</code>, '$auto', '$auto.*', '$direct' or application group
707
715
  * IDs as specified in {@link sap.ui.model.odata.v4.ODataModel}.
708
- * @throws {Error}
709
- * If one of the following situations occurs:
716
+ * @throws {Error} If
710
717
  * <ul>
711
- * <li> The binding's root binding is suspended.
712
- * <li> The new value is not primitive.
713
- * <li> No value has been read before and the binding does not have the parameter
718
+ * <li> the binding's root binding is suspended.
719
+ * <li> the new value is not primitive.
720
+ * <li> no value has been read before and the binding does not have the parameter
714
721
  * <code>$$noPatch</code>.
715
- * <li> The binding is not relative to a {@link sap.ui.model.odata.v4.Context}.
716
- * <li> The binding has the parameter <code>$$noPatch</code> and a group ID has been given.
722
+ * <li> the binding is not relative to a {@link sap.ui.model.odata.v4.Context}.
723
+ * <li> the binding has the parameter <code>$$noPatch</code> and a group ID has been given.
717
724
  * </ul>
718
725
  *
719
726
  * @public
@@ -116,13 +116,13 @@ sap.ui.define([
116
116
  * </ul>
117
117
  * If the specified <code>sResponseBody</code> contains responses for change sets,
118
118
  * then the corresponding response objects will be returned in a nested array.
119
- * @throws {Error}
119
+ * @throws {Error} If
120
120
  * <ul>
121
- * <li> If the <code>sContentType</code> parameter does not represent a
121
+ * <li> the <code>sContentType</code> parameter does not represent a
122
122
  * "multipart/mixed" media type with "boundary" parameter
123
- * <li> If the "charset" parameter of the "Content-Type" header of a nested response
123
+ * <li> the "charset" parameter of the "Content-Type" header of a nested response
124
124
  * has a value other than "UTF-8"
125
- * <li> If there is no "Content-ID" header for a change set response or its value is
125
+ * <li> there is no "Content-ID" header for a change set response or its value is
126
126
  * not a number
127
127
  * </ul>
128
128
  *
@@ -241,7 +241,7 @@ sap.ui.define([
241
241
  // "round" to millis: "HH:mm:ss.SSS"
242
242
  sTimeOfDay = sTimeOfDay.slice(0, 12);
243
243
  }
244
- oTimeOfDay = oTimeFormatter.parse(sTimeOfDay);
244
+ oTimeOfDay = oTimeFormatter.parse(sTimeOfDay);
245
245
  }
246
246
  if (!oTimeOfDay) {
247
247
  throw new Error("Not a valid Edm.TimeOfDay value: " + sTimeOfDay);
@@ -39,5 +39,4 @@ sap.ui.define(function () {
39
39
  };
40
40
 
41
41
  return SubmitMode;
42
-
43
42
  }, /* bExport= */ true);
@@ -50,5 +50,4 @@ sap.ui.define(function () {
50
50
  };
51
51
 
52
52
  return ValueListType;
53
-
54
53
  }, /* bExport= */ true);
@@ -14,7 +14,7 @@ sap.ui.define([
14
14
  "sap/ui/base/SyncPromise",
15
15
  "sap/ui/performance/Measurement"
16
16
  ], function (Basics, Log, BindingParser, ManagedObject, SyncPromise, Measurement) {
17
- 'use strict';
17
+ "use strict";
18
18
 
19
19
  // see http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/abnf/odata-abnf-construction-rules.txt
20
20
  var sAnnotationHelper = "sap.ui.model.odata.v4.AnnotationHelper",
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  Bool : "Edm.Boolean",
58
58
  Float : "Edm.Double",
59
59
  Date : "Edm.Date",
60
- DateTimeOffset :"Edm.DateTimeOffset",
60
+ DateTimeOffset : "Edm.DateTimeOffset",
61
61
  Decimal : "Edm.Decimal",
62
62
  Guid : "Edm.Guid",
63
63
  Int : "Edm.Int64",
@@ -66,13 +66,13 @@ sap.ui.define([
66
66
  TimeOfDay : "Edm.TimeOfDay"
67
67
  },
68
68
  mTypeCategoryNeedsCompare = {
69
- "boolean" : false,
70
- "Date" : false,
71
- "DateTimeOffset" : true,
72
- "Decimal" : true,
73
- "number" : false,
74
- "string" : false,
75
- "TimeOfDay" : false
69
+ boolean : false,
70
+ Date : false,
71
+ DateTimeOffset : true,
72
+ Decimal : true,
73
+ number : false,
74
+ string : false,
75
+ TimeOfDay : false
76
76
  },
77
77
  /**
78
78
  * This object contains helper functions to process an expression in OData V4 annotations.
@@ -248,7 +248,7 @@ sap.ui.define([
248
248
  // convert the results to strings after we know whether the result is expression
249
249
  aParts = aParameters.filter(function (oParameter) {
250
250
  // ignore null (otherwise the string 'null' would appear in expressions)
251
- return oParameter.type !== 'edm:Null';
251
+ return oParameter.type !== "edm:Null";
252
252
  }).map(function (oParameter) {
253
253
  if (bExpression) {
254
254
  // the expression might have a lower operator precedence than '+'
@@ -405,7 +405,8 @@ sap.ui.define([
405
405
  return Expression.path(oPathValue);
406
406
  }
407
407
 
408
- ["$And", "$Apply", "$Date", "$DateTimeOffset", "$Decimal", "$Float", "$Eq",
408
+ [
409
+ "$And", "$Apply", "$Date", "$DateTimeOffset", "$Decimal", "$Float", "$Eq",
409
410
  "$Ge", "$Gt", "$Guid", "$If", "$Int", "$Le", "$Lt", "$Name", "$Ne", "$Not",
410
411
  "$Null", "$Or", "$Path", "$PropertyPath", "$TimeOfDay", "$LabeledElement"
411
412
  ].forEach(function (sProperty) {
@@ -488,7 +489,7 @@ sap.ui.define([
488
489
  * the type of the property referenced by <code>oPathValue.path</code>
489
490
  * @param {object} mConstraints
490
491
  * the type constraints for the property referenced by <code>oPathValue.path</code>
491
- * @returns {sap.ui.base.SyncPromise}
492
+ * @returns {sap.ui.base.SyncPromise|undefined}
492
493
  * a sync promise which resolves with a result object for the currency or unit, or is
493
494
  * rejected with an error; <code>undefined</code> if there are no unit and currency
494
495
  * annotations for the property referenced by <code>oPathValue.path</code>
@@ -516,8 +517,8 @@ sap.ui.define([
516
517
  return undefined;
517
518
  }
518
519
  return oModel.fetchObject(sPath + "/$").then(function (oTarget) {
519
- var sCompositeConstraints =
520
- oModel.getObject(oPathValue.path
520
+ var sCompositeConstraints
521
+ = oModel.getObject(oPathValue.path
521
522
  + "@com.sap.vocabularies.UI.v1.DoNotCheckScaleOfMeasureQuantity")
522
523
  ? ",constraints:{'skipDecimalsValidation':true}"
523
524
  : "";
@@ -568,9 +569,9 @@ sap.ui.define([
568
569
  aParts = [],
569
570
  sPrefix = "";
570
571
 
571
- aParts.push('odata.fillUriTemplate(',
572
+ aParts.push("odata.fillUriTemplate(",
572
573
  Basics.resultToString(aResults[0], true, false, true),
573
- ',{');
574
+ ",{");
574
575
  for (i = 1; i < oPathValue.value.length; i += 1) {
575
576
  sName = Basics.property(aParameters[i], "$Name", "string");
576
577
  aParts.push(sPrefix, Basics.toJSON(sName), ":",
@@ -618,7 +619,7 @@ sap.ui.define([
618
619
  *
619
620
  * @param {object} oPathValue
620
621
  * path and value information pointing to the expression (see Expression object)
621
- * @returns {Promise|string}
622
+ * @returns {Promise|string|undefined}
622
623
  * the expression value or "Unsupported: oRawValue" in case of an error or
623
624
  * <code>undefined</code> in case the raw value is undefined; may instead return a
624
625
  * <code>Promise</code> resolving with that result.
@@ -851,10 +852,10 @@ sap.ui.define([
851
852
  type : "Edm.String",
852
853
  value : oResult.type === "Edm.String"
853
854
  // Note: odata.uriEncode() is V2, but safe for Edm.String!
854
- ? 'odata.uriEncode(' + Basics.resultToString(oResult, true, false, true)
855
+ ? "odata.uriEncode(" + Basics.resultToString(oResult, true, false, true)
855
856
  + "," + Basics.toJSON(oResult.type) + ")"
856
857
  // Note: see _Helper.formatLiteral()
857
- : 'String(' + Basics.resultToString(oResult, true, false, true) + ")"
858
+ : "String(" + Basics.resultToString(oResult, true, false, true) + ")"
858
859
  };
859
860
  });
860
861
  },
@@ -878,5 +879,4 @@ sap.ui.define([
878
879
  };
879
880
 
880
881
  return Expression;
881
-
882
882
  }, /* bExport= */ false);
@@ -209,8 +209,6 @@ sap.ui.define([
209
209
  }
210
210
  _Helper.setPrivateAnnotation(oGroupNode, "spliced", aElements.splice(iIndex + 1, iCount));
211
211
  aElements.$count -= iCount;
212
- _Helper.updateAll(this.mChangeListeners, sGroupNodePath, oGroupNode,
213
- {"@$ui5.node.groupLevelCount" : undefined});
214
212
 
215
213
  return iCount;
216
214
  };
@@ -700,7 +698,7 @@ sap.ui.define([
700
698
  * A map from meta paths to entity types (as delivered by {@link #fetchTypes})
701
699
  * @param {string} sMetaPath
702
700
  * The meta path for the given element
703
- * @returns {string}
701
+ * @returns {string|undefined}
704
702
  * The key predicate or <code>undefined</code>, if key predicate cannot be determined
705
703
  *
706
704
  * @public
@@ -823,7 +821,7 @@ sap.ui.define([
823
821
  }
824
822
 
825
823
  if (mQueryOptions.$$filterBeforeAggregate) {
826
- mQueryOptions.$apply = "filter(" + mQueryOptions.$$filterBeforeAggregate + ")/"
824
+ mQueryOptions.$apply = "filter(" + mQueryOptions.$$filterBeforeAggregate + ")/"
827
825
  + mQueryOptions.$apply;
828
826
  delete mQueryOptions.$$filterBeforeAggregate;
829
827
  }
@@ -833,4 +831,4 @@ sap.ui.define([
833
831
  };
834
832
 
835
833
  return _AggregationCache;
836
- }, /* bExport= */false);
834
+ }, /* bExport= */false);
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  name : "string",
22
22
  subtotals : "boolean",
23
23
  unit : "string",
24
- "with" : "string"
24
+ with : "string"
25
25
  }
26
26
  },
27
27
  "grandTotal like 1.84" : "boolean",
@@ -62,7 +62,8 @@ sap.ui.define([
62
62
  * @param {string[]} aAliases - Array of all applicable aggregatable property names/aliases
63
63
  * @throws {Error} If "average" or "countdistinct" are used together with grand totals like 1.84
64
64
  */
65
- function aggregate(oAggregation, aGroupBy, aAggregate, bGrandTotalLike184, sAlias, i, aAliases) {
65
+ function aggregate(oAggregation, aGroupBy, aAggregate, bGrandTotalLike184, sAlias, i,
66
+ aAliases) {
66
67
  var oDetails = oAggregation.aggregate[sAlias],
67
68
  sAggregate = oDetails.name || sAlias,
68
69
  sUnit = oDetails.unit,
@@ -527,8 +528,8 @@ sap.ui.define([
527
528
  * (see {@link .buildApply})
528
529
  * @param {number} [iLevel=0]
529
530
  * The current level; use <code>0</code> to bypass group levels
530
- * @returns {string}
531
- * The filtered "$orderby" system query option
531
+ * @returns {string|undefined}
532
+ * The filtered "$orderby" system query option or <code>undefined</code>
532
533
  *
533
534
  * @private
534
535
  */
@@ -11,7 +11,7 @@ sap.ui.define([
11
11
  ], function (_Helper, escapeRegExp) {
12
12
  "use strict";
13
13
 
14
- var mAllowedChangeSetMethods = {"POST" : true, "PUT" : true, "PATCH" : true, "DELETE" : true},
14
+ var mAllowedChangeSetMethods = {POST : true, PUT : true, PATCH : true, DELETE : true},
15
15
  rContentIdReference = /^\$\d+/,
16
16
  rHeaderParameter = /(\S*?)=(?:"(.+)"|(\S+))/;
17
17
 
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
 
35
35
  // escape RegExp-related characters
36
36
  sBatchBoundary = escapeRegExp(sBatchBoundary);
37
- return new RegExp('--' + sBatchBoundary + '(?:[ \t]*\r\n|--)');
37
+ return new RegExp("--" + sBatchBoundary + "(?:[ \t]*\r\n|--)");
38
38
  }
39
39
 
40
40
  /**
@@ -45,7 +45,8 @@ sap.ui.define([
45
45
  * HTTP header value e.g. "application/json;charset=utf-8"
46
46
  * @param {string} sParameterName
47
47
  * Name of HTTP header parameter e.g. "charset"
48
- * @returns {string} The HTTP header parameter value
48
+ * @returns {string|undefined} The HTTP header parameter value or <code>undefined</code> if the
49
+ * parameter is not found
49
50
  */
50
51
  function getHeaderParameterValue(sHeaderValue, sParameterName) {
51
52
  var iParamIndex,
@@ -69,11 +70,12 @@ sap.ui.define([
69
70
  *
70
71
  * @param {string} sMimeTypeHeaders
71
72
  * Section of MIME part representing HTTP headers
72
- * @returns {string} Content-Type header value e.g.
73
- * "multipart/mixed; boundary=batch_id-0123456789012-345" or undefined
73
+ * @returns {string|undefined} Content-Type header value e.g.
74
+ * "multipart/mixed; boundary=batch_id-0123456789012-345" or <code>undefined</code>
74
75
  */
75
76
  function getChangeSetContentType(sMimeTypeHeaders) {
76
77
  var sContentType = getHeaderValue(sMimeTypeHeaders, "content-type");
78
+
77
79
  return sContentType.startsWith("multipart/mixed;") ? sContentType : undefined;
78
80
  }
79
81
 
@@ -112,7 +114,7 @@ sap.ui.define([
112
114
  * Section of MIME part representing HTTP headers
113
115
  * @param {string} sHeaderName
114
116
  * Name of HTTP header in lower case
115
- * @returns {string} The HTTP header value
117
+ * @returns {string|undefined} The HTTP header value or <code>undefined</code>
116
118
  */
117
119
  function getHeaderValue(sHeaders, sHeaderName) {
118
120
  var aHeaderParts,
@@ -179,14 +181,14 @@ sap.ui.define([
179
181
  aHttpStatusInfos = aHttpHeaders[0].split(" ");
180
182
 
181
183
  oResponse.status = parseInt(aHttpStatusInfos[1]);
182
- oResponse.statusText = aHttpStatusInfos.slice(2).join(' ');
184
+ oResponse.statusText = aHttpStatusInfos.slice(2).join(" ");
183
185
  oResponse.headers = {};
184
186
 
185
187
  // start with index 1 to skip status line
186
188
  for (i = 1; i < aHttpHeaders.length; i += 1) {
187
189
  // e.g. Content-Type: application/json;odata.metadata=minimal
188
190
  sHeader = aHttpHeaders[i];
189
- iColonIndex = sHeader.indexOf(':');
191
+ iColonIndex = sHeader.indexOf(":");
190
192
  sHeaderName = sHeader.slice(0, iColonIndex).trim();
191
193
  sHeaderValue = sHeader.slice(iColonIndex + 1).trim();
192
194
  oResponse.headers[sHeaderName] = sHeaderValue;
@@ -276,14 +278,14 @@ sap.ui.define([
276
278
  aRequestBody.push("--", sBatchBoundary, "\r\n");
277
279
  if (Array.isArray(oRequest)) {
278
280
  if (bIsChangeSet) {
279
- throw new Error('Change set must not contain a nested change set.');
281
+ throw new Error("Change set must not contain a nested change set.");
280
282
  }
281
283
  aRequestBody = aRequestBody.concat(
282
284
  _serializeBatchRequest(oRequest, iRequestIndex).body);
283
285
  } else {
284
286
  if (bIsChangeSet && !mAllowedChangeSetMethods[oRequest.method]) {
285
- throw new Error("Invalid HTTP request method: " + oRequest.method +
286
- ". Change set must contain only POST, PUT, PATCH, or DELETE requests.");
287
+ throw new Error("Invalid HTTP request method: " + oRequest.method
288
+ + ". Change set must contain only POST, PUT, PATCH, or DELETE requests.");
287
289
  }
288
290
 
289
291
  if (iChangeSetIndex !== undefined && sUrl[0] === "$") {
@@ -305,7 +307,6 @@ sap.ui.define([
305
307
  });
306
308
  aRequestBody.push("--", sBatchBoundary, "--\r\n", sEpilogue);
307
309
 
308
-
309
310
  return {body : aRequestBody, batchBoundary : sBatchBoundary};
310
311
  }
311
312
 
@@ -331,14 +332,14 @@ sap.ui.define([
331
332
  * </ul>
332
333
  * If the specified <code>sResponseBody</code> contains responses for change sets, then
333
334
  * the corresponding response objects will be returned in a nested array.
334
- * @throws {Error}
335
+ * @throws {Error} If
335
336
  * <ul>
336
- * <li> If the <code>sContentType</code> parameter does not represent a
337
- * "multipart/mixed" media type with "boundary" parameter
338
- * <li> If the "charset" parameter of the "Content-Type" header of a nested response has
339
- * a value other than "UTF-8"
340
- * <li> If there is no "Content-ID" header for a change set response or its value is not
341
- * a number
337
+ * <li> the <code>sContentType</code> parameter does not represent a "multipart/mixed"
338
+ * media type with "boundary" parameter
339
+ * <li> the "charset" parameter of the "Content-Type" header of a nested response has a
340
+ * value other than "UTF-8"
341
+ * <li> there is no "Content-ID" header for a change set response or its value is not a
342
+ * number
342
343
  * </ul>
343
344
  */
344
345
  deserializeBatchResponse : function (sContentType, sResponseBody) {
@@ -387,4 +388,4 @@ sap.ui.define([
387
388
  };
388
389
  }
389
390
  };
390
- }, /* bExport= */false);
391
+ }, /* bExport= */false);