@openui5/sap.ui.core 1.96.5 → 1.99.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 (426) hide show
  1. package/.eslintrc.json +93 -3
  2. package/.reuse/dep5 +26 -31
  3. package/THIRDPARTY.txt +15 -21
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +1 -1
  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 +2 -2
  9. package/src/jquery.sap.script.js +1 -1
  10. package/src/jquery.sap.storage.js +3 -3
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  12. package/src/sap/base/util/restricted/_castArray.js +1 -1
  13. package/src/sap/base/util/restricted/_compact.js +1 -1
  14. package/src/sap/base/util/restricted/_curry.js +1 -1
  15. package/src/sap/base/util/restricted/_debounce.js +1 -1
  16. package/src/sap/base/util/restricted/_difference.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  22. package/src/sap/base/util/restricted/_flatten.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_intersection.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isNil.js +1 -1
  31. package/src/sap/base/util/restricted/_max.js +1 -1
  32. package/src/sap/base/util/restricted/_merge.js +1 -1
  33. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  34. package/src/sap/base/util/restricted/_min.js +1 -1
  35. package/src/sap/base/util/restricted/_omit.js +1 -1
  36. package/src/sap/base/util/restricted/_pick.js +1 -1
  37. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  38. package/src/sap/base/util/restricted/_throttle.js +1 -1
  39. package/src/sap/base/util/restricted/_toArray.js +1 -1
  40. package/src/sap/base/util/restricted/_union.js +1 -1
  41. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  42. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  43. package/src/sap/base/util/restricted/_uniq.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  46. package/src/sap/base/util/restricted/_without.js +1 -1
  47. package/src/sap/base/util/restricted/_xor.js +1 -1
  48. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  49. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  52. package/src/sap/ui/Device.js +81 -169
  53. package/src/sap/ui/Global.js +11 -16
  54. package/src/sap/ui/VersionInfo.js +13 -10
  55. package/src/sap/ui/base/BindingParser.js +34 -7
  56. package/src/sap/ui/base/Event.js +1 -1
  57. package/src/sap/ui/base/EventProvider.js +1 -1
  58. package/src/sap/ui/base/Interface.js +1 -1
  59. package/src/sap/ui/base/ManagedObject.js +50 -29
  60. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  61. package/src/sap/ui/base/Metadata.js +1 -3
  62. package/src/sap/ui/base/Object.js +1 -1
  63. package/src/sap/ui/base/ObjectPool.js +1 -1
  64. package/src/sap/ui/core/.library +1 -27
  65. package/src/sap/ui/core/AppCacheBuster.js +4 -4
  66. package/src/sap/ui/core/BusyIndicator.js +1 -1
  67. package/src/sap/ui/core/BusyIndicatorUtils.js +1 -1
  68. package/src/sap/ui/core/Component.js +33 -11
  69. package/src/sap/ui/core/ComponentContainer.js +1 -1
  70. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  71. package/src/sap/ui/core/ComponentSupport.js +1 -1
  72. package/src/sap/ui/core/Configuration.js +79 -13
  73. package/src/sap/ui/core/Control.js +4 -3
  74. package/src/sap/ui/core/Core.js +4 -7
  75. package/src/sap/ui/core/CustomData.js +1 -1
  76. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  77. package/src/sap/ui/core/Element.js +6 -12
  78. package/src/sap/ui/core/ElementMetadata.js +1 -1
  79. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  80. package/src/sap/ui/core/EventBus.js +1 -1
  81. package/src/sap/ui/core/ExtensionPoint.js +1 -1
  82. package/src/sap/ui/core/FocusHandler.js +1 -1
  83. package/src/sap/ui/core/Fragment.js +1 -1
  84. package/src/sap/ui/core/HTML.js +3 -3
  85. package/src/sap/ui/core/HTMLRenderer.js +1 -1
  86. package/src/sap/ui/core/History.js +1 -1
  87. package/src/sap/ui/core/Icon.js +2 -3
  88. package/src/sap/ui/core/IconRenderer.js +1 -1
  89. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  90. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  91. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  92. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  93. package/src/sap/ui/core/InvisibleText.js +1 -1
  94. package/src/sap/ui/core/Item.js +1 -1
  95. package/src/sap/ui/core/LabelEnablement.js +9 -2
  96. package/src/sap/ui/core/LayoutData.js +1 -1
  97. package/src/sap/ui/core/ListItem.js +1 -1
  98. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  99. package/src/sap/ui/core/LocalBusyIndicatorRenderer.js +2 -2
  100. package/src/sap/ui/core/LocalBusyIndicatorSupport.js +1 -1
  101. package/src/sap/ui/core/Locale.js +1 -1
  102. package/src/sap/ui/core/LocaleData.js +39 -4
  103. package/src/sap/ui/core/Manifest.js +1 -1
  104. package/src/sap/ui/core/Message.js +1 -1
  105. package/src/sap/ui/core/Placeholder.js +28 -28
  106. package/src/sap/ui/core/Popup.js +3 -3
  107. package/src/sap/ui/core/RenderManager.js +3 -3
  108. package/src/sap/ui/core/Renderer.js +1 -1
  109. package/src/sap/ui/core/ResizeHandler.js +1 -1
  110. package/src/sap/ui/core/ScrollBar.js +4 -3
  111. package/src/sap/ui/core/ScrollBarRenderer.js +1 -1
  112. package/src/sap/ui/core/SeparatorItem.js +1 -1
  113. package/src/sap/ui/core/ThemeCheck.js +2 -2
  114. package/src/sap/ui/core/Title.js +1 -1
  115. package/src/sap/ui/core/TooltipBase.js +2 -2
  116. package/src/sap/ui/core/UIArea.js +3 -3
  117. package/src/sap/ui/core/UIComponent.js +1 -1
  118. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  119. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  120. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  121. package/src/sap/ui/core/XMLComposite.js +1 -1
  122. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  123. package/src/sap/ui/core/XMLTemplateProcessor.js +26 -5
  124. package/src/sap/ui/core/_IconRegistry.js +10 -1
  125. package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -2
  126. package/src/sap/ui/core/date/Japanese.js +1 -1
  127. package/src/sap/ui/core/date/UniversalDateUtils.js +205 -2
  128. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  129. package/src/sap/ui/core/delegate/ScrollEnablement.js +9 -6
  130. package/src/sap/ui/core/dnd/DragAndDrop.js +2 -2
  131. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  132. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  133. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  134. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  135. package/src/sap/ui/core/format/DateFormat.js +562 -174
  136. package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +43 -0
  137. package/src/sap/ui/core/format/ListFormat.js +2 -2
  138. package/src/sap/ui/core/format/NumberFormat.js +1 -1
  139. package/src/sap/ui/core/format/TimezoneUtil.js +248 -0
  140. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  141. package/src/sap/ui/core/library.js +47 -10
  142. package/src/sap/ui/core/message/ControlMessageProcessor.js +5 -5
  143. package/src/sap/ui/core/message/Message.js +1 -1
  144. package/src/sap/ui/core/message/MessageManager.js +1 -1
  145. package/src/sap/ui/core/message/MessageMixin.js +2 -1
  146. package/src/sap/ui/core/message/MessageParser.js +1 -1
  147. package/src/sap/ui/core/message/MessageProcessor.js +22 -12
  148. package/src/sap/ui/core/messagebundle.properties +4 -0
  149. package/src/sap/ui/core/messagebundle_ar.properties +2 -0
  150. package/src/sap/ui/core/messagebundle_bg.properties +7 -5
  151. package/src/sap/ui/core/messagebundle_ca.properties +2 -0
  152. package/src/sap/ui/core/messagebundle_cs.properties +2 -0
  153. package/src/sap/ui/core/messagebundle_cy.properties +2 -0
  154. package/src/sap/ui/core/messagebundle_da.properties +2 -0
  155. package/src/sap/ui/core/messagebundle_de.properties +3 -1
  156. package/src/sap/ui/core/messagebundle_el.properties +2 -0
  157. package/src/sap/ui/core/messagebundle_en.properties +2 -0
  158. package/src/sap/ui/core/messagebundle_en_GB.properties +2 -0
  159. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +2 -0
  160. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  161. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +2 -0
  162. package/src/sap/ui/core/messagebundle_es.properties +2 -0
  163. package/src/sap/ui/core/messagebundle_es_MX.properties +2 -0
  164. package/src/sap/ui/core/messagebundle_et.properties +2 -0
  165. package/src/sap/ui/core/messagebundle_fi.properties +2 -0
  166. package/src/sap/ui/core/messagebundle_fr.properties +9 -7
  167. package/src/sap/ui/core/messagebundle_fr_CA.properties +2 -0
  168. package/src/sap/ui/core/messagebundle_hi.properties +2 -0
  169. package/src/sap/ui/core/messagebundle_hr.properties +2 -0
  170. package/src/sap/ui/core/messagebundle_hu.properties +2 -0
  171. package/src/sap/ui/core/messagebundle_id.properties +4 -2
  172. package/src/sap/ui/core/messagebundle_it.properties +3 -1
  173. package/src/sap/ui/core/messagebundle_iw.properties +2 -0
  174. package/src/sap/ui/core/messagebundle_ja.properties +2 -0
  175. package/src/sap/ui/core/messagebundle_kk.properties +2 -0
  176. package/src/sap/ui/core/messagebundle_ko.properties +2 -0
  177. package/src/sap/ui/core/messagebundle_lt.properties +2 -0
  178. package/src/sap/ui/core/messagebundle_lv.properties +3 -1
  179. package/src/sap/ui/core/messagebundle_ms.properties +2 -0
  180. package/src/sap/ui/core/messagebundle_nl.properties +2 -0
  181. package/src/sap/ui/core/messagebundle_no.properties +6 -4
  182. package/src/sap/ui/core/messagebundle_pl.properties +2 -0
  183. package/src/sap/ui/core/messagebundle_pt.properties +2 -0
  184. package/src/sap/ui/core/messagebundle_pt_PT.properties +2 -0
  185. package/src/sap/ui/core/messagebundle_ro.properties +2 -0
  186. package/src/sap/ui/core/messagebundle_ru.properties +23 -21
  187. package/src/sap/ui/core/messagebundle_sh.properties +2 -0
  188. package/src/sap/ui/core/messagebundle_sk.properties +2 -0
  189. package/src/sap/ui/core/messagebundle_sl.properties +2 -0
  190. package/src/sap/ui/core/messagebundle_sv.properties +2 -0
  191. package/src/sap/ui/core/messagebundle_th.properties +2 -0
  192. package/src/sap/ui/core/messagebundle_tr.properties +2 -0
  193. package/src/sap/ui/core/messagebundle_uk.properties +2 -0
  194. package/src/sap/ui/core/messagebundle_vi.properties +2 -0
  195. package/src/sap/ui/core/messagebundle_zh_CN.properties +2 -0
  196. package/src/sap/ui/core/messagebundle_zh_TW.properties +2 -0
  197. package/src/sap/ui/core/mvc/Controller.js +4 -4
  198. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  199. package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
  200. package/src/sap/ui/core/mvc/JSONView.js +2 -1
  201. package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
  202. package/src/sap/ui/core/mvc/JSView.js +1 -1
  203. package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
  204. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  205. package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
  206. package/src/sap/ui/core/mvc/View.js +2 -1
  207. package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
  208. package/src/sap/ui/core/mvc/XMLView.js +16 -3
  209. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  210. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  211. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  212. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  213. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  214. package/src/sap/ui/core/routing/Route.js +6 -6
  215. package/src/sap/ui/core/routing/Router.js +4 -3
  216. package/src/sap/ui/core/routing/Targets.js +17 -13
  217. package/src/sap/ui/core/rules/Misc.support.js +51 -1
  218. package/src/sap/ui/core/rules/Model.support.js +95 -8
  219. package/src/sap/ui/core/rules/Rendering.support.js +1 -4
  220. package/src/sap/ui/core/rules/View.support.js +14 -46
  221. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  222. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  223. package/src/sap/ui/core/service/Service.js +1 -1
  224. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  225. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  226. package/src/sap/ui/core/support/Plugin.js +2 -2
  227. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +0 -1
  228. package/src/sap/ui/core/support/Support.js +1 -1
  229. package/src/sap/ui/core/support/controls/TreeViewer.js +1 -1
  230. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  231. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  232. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  233. package/src/sap/ui/core/support/plugins/Performance.js +1 -2
  234. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  235. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  236. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  237. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  238. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +2 -6
  239. package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
  240. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  241. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  242. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  243. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  244. package/src/sap/ui/core/tmpl/Template.js +1 -1
  245. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  246. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  247. package/src/sap/ui/core/util/DraftEnabledMockServer.js +21 -16
  248. package/src/sap/ui/core/util/Export.js +1 -1
  249. package/src/sap/ui/core/util/ExportCell.js +1 -1
  250. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  251. package/src/sap/ui/core/util/ExportRow.js +1 -1
  252. package/src/sap/ui/core/util/ExportType.js +1 -1
  253. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  254. package/src/sap/ui/core/util/File.js +1 -1
  255. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  256. package/src/sap/ui/core/util/MockServer.js +157 -58
  257. package/src/sap/ui/core/util/PasteHelper.js +4 -4
  258. package/src/sap/ui/core/util/XMLPreprocessor.js +16 -4
  259. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -1
  260. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  261. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  262. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  263. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  264. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  265. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  266. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  267. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  268. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  269. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  270. package/src/sap/ui/debug/ControlTree.js +1 -1
  271. package/src/sap/ui/debug/DebugEnv.js +1 -1
  272. package/src/sap/ui/debug/PropertyList.js +1 -1
  273. package/src/sap/ui/dom/includeStylesheet.js +8 -3
  274. package/src/sap/ui/events/jquery/EventExtension.js +1 -1
  275. package/src/sap/ui/events/jquery/EventSimulation.js +3 -13
  276. package/src/sap/ui/model/Binding.js +4 -3
  277. package/src/sap/ui/model/ChangeReason.js +1 -1
  278. package/src/sap/ui/model/ClientListBinding.js +7 -0
  279. package/src/sap/ui/model/ClientModel.js +6 -5
  280. package/src/sap/ui/model/ClientTreeBinding.js +1 -1
  281. package/src/sap/ui/model/ClientTreeBindingAdapter.js +1 -1
  282. package/src/sap/ui/model/CompositeBinding.js +1 -1
  283. package/src/sap/ui/model/CompositeDataState.js +26 -4
  284. package/src/sap/ui/model/CompositeType.js +1 -1
  285. package/src/sap/ui/model/ContextBinding.js +1 -1
  286. package/src/sap/ui/model/DataState.js +27 -6
  287. package/src/sap/ui/model/ListBinding.js +24 -5
  288. package/src/sap/ui/model/MetaModel.js +2 -3
  289. package/src/sap/ui/model/Model.js +6 -11
  290. package/src/sap/ui/model/SelectionModel.js +1 -1
  291. package/src/sap/ui/model/SimpleType.js +1 -1
  292. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  293. package/src/sap/ui/model/TreeBindingAdapter.js +0 -2
  294. package/src/sap/ui/model/TreeBindingUtils.js +2 -0
  295. package/src/sap/ui/model/Type.js +1 -1
  296. package/src/sap/ui/model/analytics/AnalyticalBinding.js +13 -8
  297. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +16 -18
  298. package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -15
  299. package/src/sap/ui/model/base/ManagedObjectModel.js +1 -1
  300. package/src/sap/ui/model/json/JSONListBinding.js +1 -1
  301. package/src/sap/ui/model/json/JSONModel.js +7 -7
  302. package/src/sap/ui/model/json/JSONPropertyBinding.js +2 -2
  303. package/src/sap/ui/model/message/MessageListBinding.js +1 -1
  304. package/src/sap/ui/model/message/MessageModel.js +3 -3
  305. package/src/sap/ui/model/message/MessagePropertyBinding.js +2 -2
  306. package/src/sap/ui/model/odata/AnnotationHelper.js +2 -2
  307. package/src/sap/ui/model/odata/AnnotationParser.js +4 -2
  308. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  309. package/src/sap/ui/model/odata/ODataListBinding.js +62 -39
  310. package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
  311. package/src/sap/ui/model/odata/ODataMetaModel.js +3 -3
  312. package/src/sap/ui/model/odata/ODataMetadata.js +138 -87
  313. package/src/sap/ui/model/odata/ODataModel.js +443 -216
  314. package/src/sap/ui/model/odata/ODataPropertyBinding.js +7 -5
  315. package/src/sap/ui/model/odata/ODataTreeBinding.js +1 -1
  316. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +27 -17
  317. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +440 -260
  318. package/src/sap/ui/model/odata/ODataUtils.js +24 -9
  319. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +3 -2
  320. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +11 -9
  321. package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +7 -5
  322. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  323. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  324. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  325. package/src/sap/ui/model/odata/type/Date.js +1 -1
  326. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  327. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  328. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  329. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +338 -0
  330. package/src/sap/ui/model/odata/type/Decimal.js +5 -1
  331. package/src/sap/ui/model/odata/type/Double.js +1 -1
  332. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  333. package/src/sap/ui/model/odata/type/Int.js +1 -1
  334. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  335. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  336. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  337. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  338. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  339. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  340. package/src/sap/ui/model/odata/type/Single.js +1 -1
  341. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  342. package/src/sap/ui/model/odata/type/String.js +1 -1
  343. package/src/sap/ui/model/odata/type/Time.js +1 -1
  344. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  345. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  346. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -2
  347. package/src/sap/ui/model/odata/v2/Context.js +98 -14
  348. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  349. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +8 -4
  350. package/src/sap/ui/model/odata/v2/ODataListBinding.js +418 -172
  351. package/src/sap/ui/model/odata/v2/ODataModel.js +242 -138
  352. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +164 -92
  353. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +117 -7
  354. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +21 -22
  355. package/src/sap/ui/model/odata/v4/Context.js +249 -83
  356. package/src/sap/ui/model/odata/v4/ODataBinding.js +100 -43
  357. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +309 -228
  358. package/src/sap/ui/model/odata/v4/ODataListBinding.js +573 -278
  359. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +131 -100
  360. package/src/sap/ui/model/odata/v4/ODataModel.js +342 -259
  361. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +113 -100
  362. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +87 -81
  363. package/src/sap/ui/model/odata/v4/ODataUtils.js +5 -5
  364. package/src/sap/ui/model/odata/v4/SubmitMode.js +0 -1
  365. package/src/sap/ui/model/odata/v4/ValueListType.js +0 -1
  366. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +20 -20
  367. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +3 -5
  368. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -4
  369. package/src/sap/ui/model/odata/v4/lib/_Batch.js +21 -20
  370. package/src/sap/ui/model/odata/v4/lib/_Cache.js +278 -103
  371. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +1 -1
  372. package/src/sap/ui/model/odata/v4/lib/_Helper.js +55 -21
  373. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +62 -61
  374. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +1 -1
  375. package/src/sap/ui/model/odata/v4/lib/_Parser.js +52 -43
  376. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +61 -41
  377. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +147 -147
  378. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +14 -13
  379. package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.js +66 -67
  380. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  381. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  382. package/src/sap/ui/model/type/Boolean.js +1 -1
  383. package/src/sap/ui/model/type/Currency.js +1 -1
  384. package/src/sap/ui/model/type/Date.js +1 -1
  385. package/src/sap/ui/model/type/DateInterval.js +1 -1
  386. package/src/sap/ui/model/type/DateTime.js +1 -1
  387. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  388. package/src/sap/ui/model/type/FileSize.js +1 -1
  389. package/src/sap/ui/model/type/Float.js +1 -1
  390. package/src/sap/ui/model/type/Integer.js +1 -1
  391. package/src/sap/ui/model/type/String.js +1 -1
  392. package/src/sap/ui/model/type/Time.js +1 -1
  393. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  394. package/src/sap/ui/model/type/Unit.js +1 -1
  395. package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
  396. package/src/sap/ui/model/xml/XMLModel.js +5 -5
  397. package/src/sap/ui/model/xml/XMLPropertyBinding.js +2 -2
  398. package/src/sap/ui/performance/trace/Passport.js +3 -3
  399. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  400. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  401. package/src/sap/ui/test/BlanketReporter.js +1 -1
  402. package/src/sap/ui/test/Opa5.js +1 -1
  403. package/src/sap/ui/test/TestUtils.js +2 -2
  404. package/src/sap/ui/test/_LogCollector.js +1 -1
  405. package/src/sap/ui/test/actions/Action.js +11 -2
  406. package/src/sap/ui/test/actions/Press.js +79 -3
  407. package/src/sap/ui/test/autowaiter/_XHRWaiter.js +1 -1
  408. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +111 -0
  409. package/src/sap/ui/test/starter/createSuite.js +1 -2
  410. package/src/sap/ui/thirdparty/jquery-mobile-custom.js +3 -6
  411. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-datepicker.js +143 -3
  412. package/src/sap/ui/thirdparty/jqueryui/jquery-ui-position.js +8 -1
  413. package/src/sap/ui/util/Mobile.js +28 -39
  414. package/src/sap/ui/util/Storage.js +1 -1
  415. package/src/sap/ui/util/XMLHelper.js +53 -30
  416. package/src/ui5loader.js +9 -9
  417. package/ui5.yaml +244 -1
  418. package/src/sap/ui/core/CustomizingConfiguration.js +0 -47
  419. package/src/sap/ui/thirdparty/baseuri.js +0 -1
  420. package/src/sap/ui/thirdparty/es6-object-assign.js +0 -1
  421. package/src/sap/ui/thirdparty/es6-promise.js +0 -1
  422. package/src/sap/ui/thirdparty/es6-shim-nopromise.js +0 -1
  423. package/src/sap/ui/thirdparty/es6-string-methods.js +0 -1
  424. package/src/sap/ui/thirdparty/flexie.js +0 -1
  425. package/src/sap/ui/thirdparty/unorm.js +0 -1
  426. package/src/sap/ui/thirdparty/unormdata.js +0 -1
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * @extends sap.ui.model.TreeBinding
93
93
  * @hideconstructor
94
94
  * @public
95
- * @version 1.96.5
95
+ * @version 1.99.0
96
96
  */
97
97
  var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
98
98
 
@@ -102,8 +102,8 @@ sap.ui.define([
102
102
  //make sure we have at least an empty parameter object
103
103
  this.mParameters = this.mParameters || mParameters || {};
104
104
 
105
- this.sGroupId;
106
- this.sRefreshGroupId;
105
+ this.sGroupId = undefined;
106
+ this.sRefreshGroupId = undefined;
107
107
  this.oFinalLengths = {};
108
108
  this.oLengths = {};
109
109
  this.oKeys = {};
@@ -158,14 +158,9 @@ sap.ui.define([
158
158
  }
159
159
 
160
160
  // internal operation mode switch, default is the same as "OperationMode.Server"
161
- this.bClientOperation = false;
162
-
163
- // the internal operation mode might change, the external operation mode (this.sOperationMode) will always be the original value
164
- switch (this.sOperationMode) {
165
- case OperationMode.Server: this.bClientOperation = false; break;
166
- case OperationMode.Client: this.bClientOperation = true; break;
167
- case OperationMode.Auto: this.bClientOperation = false; break; //initially start the same as the server mode
168
- }
161
+ // the internal operation mode might change, the external operation mode
162
+ // (this.sOperationMode) will always be the original value
163
+ this.bClientOperation = this.sOperationMode === OperationMode.Client;
169
164
 
170
165
  // the threshold for the OperationMode.Auto
171
166
  this.iThreshold = (mParameters && mParameters.threshold) || 0;
@@ -206,19 +201,30 @@ sap.ui.define([
206
201
  /**
207
202
  * Builds a node filter string.
208
203
  * mParams.id holds the ID value for filtering on the hierarchy node.
204
+ *
205
+ * @param {object} mParams The filter params
206
+ * @returns {string} The filter to use with <code>$filter</code>
209
207
  */
210
208
  ODataTreeBinding.prototype._getNodeFilterParams = function (mParams) {
211
- var sPropName = mParams.isRoot ? this.oTreeProperties["hierarchy-node-for"] : this.oTreeProperties["hierarchy-parent-node-for"];
209
+ var sPropName = mParams.isRoot ? this.oTreeProperties["hierarchy-node-for"]
210
+ : this.oTreeProperties["hierarchy-parent-node-for"];
212
211
  var oEntityType = this._getEntityType();
213
- return ODataUtils._createFilterParams(new Filter(sPropName, "EQ", mParams.id), this.oModel.oMetadata, oEntityType);
212
+ return ODataUtils._createFilterParams(new Filter(sPropName, "EQ", mParams.id),
213
+ this.oModel.oMetadata, oEntityType);
214
214
  };
215
215
 
216
216
  /**
217
217
  * Builds the Level-Filter string
218
+ *
219
+ * @param {string} sOperator The filter operator
220
+ * @param {number} iLevel The filter level
221
+ * @returns {string} The filter to use with <code>$filter</code>
218
222
  */
219
223
  ODataTreeBinding.prototype._getLevelFilterParams = function (sOperator, iLevel) {
220
224
  var oEntityType = this._getEntityType();
221
- return ODataUtils._createFilterParams(new Filter(this.oTreeProperties["hierarchy-level-for"], sOperator, iLevel), this.oModel.oMetadata, oEntityType);
225
+ return ODataUtils._createFilterParams(
226
+ new Filter(this.oTreeProperties["hierarchy-level-for"], sOperator, iLevel),
227
+ this.oModel.oMetadata, oEntityType);
222
228
  };
223
229
 
224
230
  /**
@@ -411,19 +417,22 @@ sap.ui.define([
411
417
  * @public
412
418
  */
413
419
  ODataTreeBinding.prototype.hasChildren = function(oContext) {
420
+ var iLength;
421
+
414
422
  if (this.bHasTreeAnnotations) {
415
423
  if (!oContext) {
416
424
  return false;
417
425
  }
418
- var sDrilldownState = oContext.getProperty(this.oTreeProperties["hierarchy-drill-state-for"]);
426
+ var sDrilldownState = oContext.getProperty(
427
+ this.oTreeProperties["hierarchy-drill-state-for"]);
419
428
 
420
429
  var sNodeKey = this.oModel.getKey(oContext);
421
- //var sHierarchyNode = oContext.getProperty(this.oTreeProperties["hierarchy-node-for"]);
422
430
 
423
- var iLength = this.oLengths[sNodeKey];
431
+ iLength = this.oLengths[sNodeKey];
424
432
 
425
- // if the server returned no children for a node (even though it has a DrilldownState of "expanded"),
426
- // the length for this node is set to 0 and finalized -> no children available
433
+ // if the server returned no children for a node (even though it has a DrilldownState of
434
+ // "expanded"), the length for this node is set to 0 and finalized
435
+ // -> no children available
427
436
  if (iLength === 0 && this.oFinalLengths[sNodeKey]) {
428
437
  return false;
429
438
  }
@@ -435,8 +444,10 @@ sap.ui.define([
435
444
  } else if (sDrilldownState === "leaf"){
436
445
  return false;
437
446
  } else {
438
- Log.warning("The entity '" + oContext.getPath() + "' has not specified Drilldown State property value.");
439
- //fault tolerance for empty property values (we optimistically say that those nodes can be expanded/collapsed)
447
+ Log.warning("The entity '" + oContext.getPath() +
448
+ "' has not specified Drilldown State property value.");
449
+ //fault tolerance for empty property values (we optimistically say that those nodes
450
+ // can be expanded/collapsed)
440
451
  if (sDrilldownState === undefined || sDrilldownState === "") {
441
452
  return true;
442
453
  }
@@ -446,9 +457,10 @@ sap.ui.define([
446
457
  if (!oContext) {
447
458
  return this.oLengths[this.getPath()] > 0;
448
459
  }
449
- var iLength = this.oLengths[oContext.getPath() + "/" + this._getNavPath(oContext.getPath())];
460
+ iLength = this.oLengths[oContext.getPath() + "/" + this._getNavPath(oContext.getPath())];
450
461
 
451
- //only return false if we definitely know that the length is 0, otherwise, we have either a known length or none at all (undefined)
462
+ //only return false if we definitely know that the length is 0, otherwise, we have
463
+ // either a known length or none at all (undefined)
452
464
  return iLength !== 0;
453
465
  }
454
466
  };
@@ -558,6 +570,7 @@ sap.ui.define([
558
570
  }
559
571
  }
560
572
 
573
+ return false;
561
574
  // check requested sections where we still wait for an answer
562
575
  };
563
576
 
@@ -603,7 +616,7 @@ sap.ui.define([
603
616
  i = Math.max((aMissingSections[0].startIndex - iThreshold - this._iPageSize), 0);
604
617
  var iFirstStartIndex = aMissingSections[0].startIndex;
605
618
  for (i; i < iFirstStartIndex; i++) {
606
- var sKey = this.oKeys[sNodeId][i];
619
+ sKey = this.oKeys[sNodeId][i];
607
620
  if (!sKey) {
608
621
  if (!fnFindInLoadedSections(i)) {
609
622
  aMissingSections = TreeBindingUtils.mergeSections(aMissingSections, {startIndex: i, length: 1});
@@ -620,7 +633,7 @@ sap.ui.define([
620
633
  }
621
634
 
622
635
  for (i; i < iEndIndex; i++) {
623
- var sKey = this.oKeys[sNodeId][i];
636
+ sKey = this.oKeys[sNodeId][i];
624
637
  if (!sKey) {
625
638
  if (!fnFindInLoadedSections(i)) {
626
639
  aMissingSections = TreeBindingUtils.mergeSections(aMissingSections, {startIndex: i, length: 1});
@@ -628,14 +641,13 @@ sap.ui.define([
628
641
  }
629
642
  }
630
643
  }
631
- } else {
632
644
  // for initial loading of a node use this shortcut.
633
- if (!fnFindInLoadedSections(iStartIndex)) {
634
- // "i" is our shifted forward startIndex for the "negative" thresholding
635
- // in this case i is always smaller than iStartIndex, but minimum is 0
636
- var iLengthShift = iStartIndex - i;
637
- aMissingSections = TreeBindingUtils.mergeSections(aMissingSections, {startIndex: i, length: iLength + iLengthShift + iThreshold});
638
- }
645
+ } else if (!fnFindInLoadedSections(iStartIndex)) {
646
+ // "i" is our shifted forward startIndex for the "negative" thresholding
647
+ // in this case i is always smaller than iStartIndex, but minimum is 0
648
+ var iLengthShift = iStartIndex - i;
649
+ aMissingSections = TreeBindingUtils.mergeSections(aMissingSections,
650
+ {startIndex: i, length: iLength + iLengthShift + iThreshold});
639
651
  }
640
652
 
641
653
  // check if metadata are already available
@@ -701,17 +713,23 @@ sap.ui.define([
701
713
  // request the missing sections and manage the loaded sections map
702
714
  for (i = 0; i < aMissingSections.length; i++) {
703
715
  var oRequestedSection = aMissingSections[i];
704
- this._mLoadedSections[sNodeId] = TreeBindingUtils.mergeSections(this._mLoadedSections[sNodeId], {startIndex: oRequestedSection.startIndex, length: oRequestedSection.length});
705
- this._loadSubNodes(sNodeId, oRequestedSection.startIndex, oRequestedSection.length, 0, aParams, mRequestParameters, oRequestedSection);
716
+ this._mLoadedSections[sNodeId] = TreeBindingUtils.mergeSections(
717
+ this._mLoadedSections[sNodeId],
718
+ {
719
+ startIndex: oRequestedSection.startIndex,
720
+ length: oRequestedSection.length
721
+ });
722
+ this._loadSubNodes(sNodeId, oRequestedSection.startIndex,
723
+ oRequestedSection.length, 0, aParams, mRequestParameters,
724
+ oRequestedSection);
706
725
  }
707
- } else {
708
- // OperationMode is set to "Client" AND we have something missing (should only happen once, at the very first loading request)
726
+ } else if (!this.oAllKeys
727
+ && !this.mRequestHandles[ODataTreeBinding.REQUEST_KEY_CLIENT]) {
728
+ // OperationMode is set to "Client" AND we have something missing (should only
729
+ // happen once, at the very first loading request)
709
730
  // of course also make sure no request is running already
710
- if (!this.oAllKeys && !this.mRequestHandles[ODataTreeBinding.REQUEST_KEY_CLIENT]) {
711
- this._loadCompleteTreeWithAnnotations(aParams);
712
- }
731
+ this._loadCompleteTreeWithAnnotations(aParams);
713
732
  }
714
-
715
733
  }
716
734
  }
717
735
 
@@ -775,7 +793,7 @@ sap.ui.define([
775
793
  // if necessary we add all other filters to the count request
776
794
  var sFilterParams = "";
777
795
  if (this.bUseServersideApplicationFilters) {
778
- var sFilterParams = this.getFilterParams();
796
+ sFilterParams = this.getFilterParams();
779
797
  }
780
798
 
781
799
  //only build filter statement if necessary
@@ -809,10 +827,13 @@ sap.ui.define([
809
827
 
810
828
  /**
811
829
  * Issues a $count request for the given node-id/odata-key.
812
- * Only used when running in CountMode.Request. Inlinecounts are appended directly when issuing a loading request.
830
+ * Only used when running in <code>CountMode.Request</code>. Inlinecounts are appended directly
831
+ * when issuing a loading request.
832
+ *
833
+ * @param {string} sNodeId The node's ID
813
834
  * @private
814
835
  */
815
- ODataTreeBinding.prototype._getCountForNodeId = function(sNodeId, iStartIndex, iLength, iThreshold, mParameters) {
836
+ ODataTreeBinding.prototype._getCountForNodeId = function(sNodeId) {
816
837
  var that = this,
817
838
  sGroupId;
818
839
 
@@ -885,8 +906,7 @@ sap.ui.define([
885
906
  * Retrieves parent ids from a given data set
886
907
  *
887
908
  * @param {Array} aData Lookup array to search for parent ids
888
- * @param {boolean} bExcludeRootNodes Can be set to exclude root node elements
889
- * @returns {Array} Array of all parent ids
909
+ * @returns {Object<string,string>} Map of all parent ids
890
910
  *
891
911
  * @private
892
912
  */
@@ -908,8 +928,12 @@ sap.ui.define([
908
928
  /**
909
929
  * Creates key map for given data
910
930
  *
911
- * @param {Array} aData data which should be preprocessed
912
- * @returns {Object<string,string[]>} Map of parent and child keys
931
+ * @param {Array} aData
932
+ * Data which should be preprocessed
933
+ * @param {boolean} bSkipFirstNode
934
+ * Whether to skip the first node
935
+ * @returns {Object<string,string[]>|undefined}
936
+ * Map of parent and child keys or <code>undefined</code> when <code>aData</code> is empty
913
937
  *
914
938
  * @private
915
939
  */
@@ -935,6 +959,8 @@ sap.ui.define([
935
959
 
936
960
  return mKeys;
937
961
  }
962
+
963
+ return undefined;
938
964
  };
939
965
 
940
966
  /**
@@ -961,8 +987,8 @@ sap.ui.define([
961
987
  /**
962
988
  * Update node key in case if it changes
963
989
  *
964
- * @param {object} oNode
965
- * @param {string} sNewKey
990
+ * @param {object} oNode The node
991
+ * @param {string} sNewKey The new key
966
992
  *
967
993
  * @private
968
994
  */
@@ -1066,17 +1092,27 @@ sap.ui.define([
1066
1092
  /**
1067
1093
  * Triggers backend requests to load the child nodes of the node with the given sNodeId.
1068
1094
  *
1069
- * @param {string} sNodeId the value of the hierarchy node property on which a parent node filter will be performed
1070
- * @param {int} iStartIndex start index of the page
1071
- * @param {int} iLength length of the page
1072
- * @param {int} iThreshold additionally loaded entities
1073
- * @param {array} aParams OData URL parameters, already concatenated with "="
1074
- * @param {object} mParameters additional request parameters
1075
- * @param {object} mParameters.navPath the navigation path
1095
+ * @param {string} sNodeId
1096
+ * The value of the hierarchy node property on which a parent node filter will be performed
1097
+ * @param {int} iStartIndex
1098
+ * Start index of the page
1099
+ * @param {int} iLength
1100
+ * Length of the page
1101
+ * @param {int} iThreshold
1102
+ * Additionally loaded entities
1103
+ * @param {array} aParams
1104
+ * OData URL parameters, already concatenated with "="
1105
+ * @param {object} mParameters
1106
+ * Additional request parameters
1107
+ * @param {object} mParameters.navPath
1108
+ * The navigation path
1109
+ * @param {object} oRequestedSection
1110
+ * The requested section
1076
1111
  *
1077
1112
  * @private
1078
1113
  */
1079
- ODataTreeBinding.prototype._loadSubNodes = function(sNodeId, iStartIndex, iLength, iThreshold, aParams, mParameters, oRequestedSection) {
1114
+ ODataTreeBinding.prototype._loadSubNodes = function(sNodeId, iStartIndex, iLength, iThreshold,
1115
+ aParams, mParameters, oRequestedSection) {
1080
1116
  var that = this,
1081
1117
  sGroupId,
1082
1118
  bInlineCountRequested = false;
@@ -1102,6 +1138,7 @@ sap.ui.define([
1102
1138
  var sRequestKey = "" + sNodeId + "-" + iStartIndex + "-" + this._iPageSize + "-" + iThreshold;
1103
1139
 
1104
1140
  function fnSuccess(oData) {
1141
+ var oEntry, i;
1105
1142
 
1106
1143
  if (oData) {
1107
1144
  // make sure we have a keys array
@@ -1123,8 +1160,8 @@ sap.ui.define([
1123
1160
  if (that.bHasTreeAnnotations) {
1124
1161
  var mLastNodeIdIndices = {};
1125
1162
 
1126
- for (var i = 0; i < oData.results.length; i++) {
1127
- var oEntry = oData.results[i];
1163
+ for (i = 0; i < oData.results.length; i++) {
1164
+ oEntry = oData.results[i];
1128
1165
 
1129
1166
  if (i == 0) {
1130
1167
  mLastNodeIdIndices[sNodeId] = iStartIndex;
@@ -1137,8 +1174,8 @@ sap.ui.define([
1137
1174
  }
1138
1175
  } else {
1139
1176
  // Case 1b: Navigation Properties
1140
- for (var i = 0; i < oData.results.length; i++) {
1141
- var oEntry = oData.results[i];
1177
+ for (i = 0; i < oData.results.length; i++) {
1178
+ oEntry = oData.results[i];
1142
1179
  var sKey = that.oModel._getKey(oEntry);
1143
1180
  that._processODataObject(oEntry, "/" + sKey, mParameters.navPath);
1144
1181
  that.oKeys[sNodeId][i + iStartIndex] = sKey;
@@ -1225,9 +1262,11 @@ sap.ui.define([
1225
1262
  ODataTreeBinding.REQUEST_KEY_CLIENT = "_OPERATIONMODE_CLIENT_TREE_LOADING";
1226
1263
 
1227
1264
  /**
1228
- * Loads the complete collection from the given binding path.
1229
- * The tree is then reconstructed from the response entries based on the properties with hierarchy annotations.
1265
+ * Loads the complete collection from the given binding path. The tree is then reconstructed
1266
+ * from the response entries based on the properties with hierarchy annotations.
1230
1267
  * Adds additional URL parameters.
1268
+ *
1269
+ * @param {string[]} aURLParams Additional URL parameters
1231
1270
  */
1232
1271
  ODataTreeBinding.prototype._loadCompleteTreeWithAnnotations = function (aURLParams) {
1233
1272
  var that = this;
@@ -1375,16 +1414,11 @@ sap.ui.define([
1375
1414
  } else {
1376
1415
  this.oKeys = {};
1377
1416
 
1378
- // the internal operation mode might change, the external operation mode (this.sOperationMode) will always be the original value
1417
+ // the internal operation mode might change, the external operation mode
1418
+ // (this.sOperationMode) will always be the original value
1379
1419
  // internal operation mode switch, default is the same as "OperationMode.Server"
1380
- this.bClientOperation = false;
1420
+ this.bClientOperation = this.sOperationMode === OperationMode.Client;
1381
1421
 
1382
- // the internal operation mode might change, the external operation mode (this.sOperationMode) will always be the original value
1383
- switch (this.sOperationMode) {
1384
- case OperationMode.Server: this.bClientOperation = false; break;
1385
- case OperationMode.Client: this.bClientOperation = true; break;
1386
- case OperationMode.Auto: this.bClientOperation = false; break; //initially start the same as the server mode
1387
- }
1388
1422
  // if no data is available after the reset we can't be sure the threshold is met or rejected
1389
1423
  this.bThresholdRejected = false;
1390
1424
 
@@ -1439,8 +1473,8 @@ sap.ui.define([
1439
1473
  * validation, use the parameter <code>bForceUpdate</code>.
1440
1474
  *
1441
1475
  * @param {boolean} [bForceUpdate] Update the bound control even if no data has been changed
1442
- * @param {object} [mChangedEntities]
1443
- * @param {string} [mEntityTypes]
1476
+ * @param {object} [mChangedEntities] A map of changed entities
1477
+ * @param {string} [mEntityTypes] A map of entity types
1444
1478
  *
1445
1479
  * @private
1446
1480
  */
@@ -1527,7 +1561,12 @@ sap.ui.define([
1527
1561
  * @param {sap.ui.model.FilterType} sFilterType
1528
1562
  * Type of the filter which should be adjusted. If it is not given,
1529
1563
  * the type <code>FilterType.Control</code> is assumed
1530
- * @return {this} Returns <code>this</code> to facilitate method chaining
1564
+ * @param {boolean} [bReturnSuccess]
1565
+ * Whether to return <code>true</code> or <code>false</code>, instead of <code>this</code>,
1566
+ * depending on whether the filtering has been done
1567
+ * @return {this}
1568
+ * Returns <code>this</code> to facilitate method chaining
1569
+ *
1531
1570
  * @see sap.ui.model.TreeBinding.prototype.filter
1532
1571
  * @public
1533
1572
  */
@@ -1542,7 +1581,8 @@ sap.ui.define([
1542
1581
  if (sFilterType == FilterType.Control && (!this.bClientOperation || this.sOperationMode == OperationMode.Server)) {
1543
1582
  Log.warning("Filtering with ControlFilters is ONLY possible if the ODataTreeBinding is running in OperationMode.Client or " +
1544
1583
  "OperationMode.Auto, in case the given threshold is lower than the total number of tree nodes.");
1545
- return;
1584
+
1585
+ return this;
1546
1586
  }
1547
1587
 
1548
1588
  // empty filters
@@ -1678,11 +1718,17 @@ sap.ui.define([
1678
1718
  };
1679
1719
 
1680
1720
  /**
1681
- * Sorts the Tree according to the given Sorter(s).
1682
- * In OperationMode.Client or OperationMode.Auto (if the given threshold is satisfied), the sorters are applied locally on the client.
1683
- *
1684
- * @param {sap.ui.model.Sorter[]|sap.ui.model.Sorter} aSorters the Sorter or an Array of sap.ui.model.Sorter instances
1721
+ * Sorts the Tree according to the given Sorter(s). In <code>OperationMode.Client</code> or
1722
+ * <code>OperationMode.Auto</code> (if the given threshold is satisfied), the sorters are
1723
+ * applied locally on the client.
1724
+ *
1725
+ * @param {sap.ui.model.Sorter[]|sap.ui.model.Sorter} aSorters
1726
+ * The Sorter or an Array of sap.ui.model.Sorter instances
1727
+ * @param {boolean} [bReturnSuccess]
1728
+ * Whether to return <code>true</code> or <code>false</code>, instead of <code>this</code>,
1729
+ * depending on whether the sorting has been done
1685
1730
  * @return {this} returns <code>this</code> to facilitate method chaining
1731
+ *
1686
1732
  * @public
1687
1733
  */
1688
1734
  ODataTreeBinding.prototype.sort = function(aSorters, bReturnSuccess) {
@@ -1726,6 +1772,10 @@ sap.ui.define([
1726
1772
  /**
1727
1773
  * Sets the comparator for each sorter in the sorters array according to the
1728
1774
  * Edm type of the sort property
1775
+ *
1776
+ * @param {sap.ui.model.Sorter[]} aSorters The sorters
1777
+ * @param {object} oEntityType The entity type of the collection
1778
+ *
1729
1779
  * @private
1730
1780
  */
1731
1781
  ODataTreeBinding.prototype.addSortComparators = function(aSorters, oEntityType) {
@@ -1767,10 +1817,13 @@ sap.ui.define([
1767
1817
  };
1768
1818
 
1769
1819
  /**
1770
- * Check whether this Binding would provide new values and in case it changed,
1771
- * inform interested parties about this.
1820
+ * Check whether this Binding would provide new values and in case it changed,fire a change
1821
+ * event.
1772
1822
  *
1773
- * @param {boolean} bForceUpdate
1823
+ * @param {boolean} [bForceUpdate]
1824
+ * Whether to fire the event regardless of the bindings state
1825
+ * @param {object} mChangedEntities
1826
+ * A map of changed entities
1774
1827
  *
1775
1828
  * @private
1776
1829
  */
@@ -1788,10 +1841,14 @@ sap.ui.define([
1788
1841
  bChangeDetected = true;
1789
1842
  return false;
1790
1843
  }
1844
+
1845
+ return true;
1791
1846
  });
1792
1847
  if (bChangeDetected) {
1793
1848
  return false;
1794
1849
  }
1850
+
1851
+ return true;
1795
1852
  });
1796
1853
  }
1797
1854
  }
@@ -1807,7 +1864,9 @@ sap.ui.define([
1807
1864
  * Splits the given path along the navigation properties.
1808
1865
  * Only used when bound against a service, which describes the tree via navigation properties.
1809
1866
  *
1810
- * @param {string} sPath
1867
+ * @param {string} sPath The path
1868
+ * @returns {string} The split path
1869
+ *
1811
1870
  * @private
1812
1871
  */
1813
1872
  ODataTreeBinding.prototype._getNavPath = function(sPath) {
@@ -1815,7 +1874,7 @@ sap.ui.define([
1815
1874
  var sAbsolutePath = this.oModel.resolve(sPath, this.getContext());
1816
1875
 
1817
1876
  if (!sAbsolutePath) {
1818
- return;
1877
+ return undefined;
1819
1878
  }
1820
1879
 
1821
1880
  var aPathParts = sAbsolutePath.split("/"),
@@ -1828,6 +1887,7 @@ sap.ui.define([
1828
1887
  //Replace context with subitems context
1829
1888
  sNavPath = this.oNavigationPaths[sCurrent];
1830
1889
  }
1890
+
1831
1891
  return sNavPath;
1832
1892
  };
1833
1893
 
@@ -1879,6 +1939,8 @@ sap.ui.define([
1879
1939
  *
1880
1940
  * The extracted hierarchy information will be stored in "this.oTreeProperties" (if any)
1881
1941
  *
1942
+ * @returns {boolean} Whether the metadata has tree annotations
1943
+ *
1882
1944
  * @private
1883
1945
  */
1884
1946
  ODataTreeBinding.prototype._hasTreeAnnotations = function() {
@@ -1955,6 +2017,8 @@ sap.ui.define([
1955
2017
  that.oTreeProperties[sName] = oProperty.name;
1956
2018
  }
1957
2019
  });
2020
+
2021
+ return true;
1958
2022
  });
1959
2023
 
1960
2024
  return fnSanityCheckTreeAnnotations();
@@ -2038,10 +2102,12 @@ sap.ui.define([
2038
2102
  /**
2039
2103
  * Initially only apply the Adapter interface.
2040
2104
  * The real adapter will be applied after the initialize.
2105
+ *
2106
+ * @returns {this} A reference to itself
2041
2107
  * @private
2042
2108
  */
2043
2109
  ODataTreeBinding.prototype.applyAdapterInterface = function () {
2044
- /**
2110
+ /*
2045
2111
  * Data Interface.
2046
2112
  * Documentation, see the corresponding Adapter classes.
2047
2113
  */
@@ -2060,7 +2126,7 @@ sap.ui.define([
2060
2126
  this.getContextByIndex = this.getContextByIndex || function () {
2061
2127
  return;
2062
2128
  };
2063
- /**
2129
+ /*
2064
2130
  * Event Interface.
2065
2131
  * Documentation, see the corresponding Adapter classes.
2066
2132
  */
@@ -2121,6 +2187,8 @@ sap.ui.define([
2121
2187
  that.oTreeProperties[sName] = oProperty.name;
2122
2188
  }
2123
2189
  });
2190
+
2191
+ return true;
2124
2192
  });
2125
2193
  //perform magnitude annotation check
2126
2194
  this.oTreeProperties[sMagnitudeAnnotation] = this.oTreeProperties[sMagnitudeAnnotation]
@@ -2285,9 +2353,7 @@ sap.ui.define([
2285
2353
 
2286
2354
  sPath = this.getResolvedPath();
2287
2355
 
2288
- if (sPath) {
2289
- return this.oModel._createRequestUrl(sPath, null, aParams);
2290
- }
2356
+ return sPath && this.oModel._createRequestUrl(sPath, null, aParams);
2291
2357
  };
2292
2358
 
2293
2359
  /**
@@ -2330,7 +2396,8 @@ sap.ui.define([
2330
2396
  * annotation specification,
2331
2397
  * or when providing the annotation information locally as a binding parameter.
2332
2398
  * For more information, see {@link sap.ui.model.odata.v2.ODataModel#bindTree}.
2333
- * @param {int} iRootLevel
2399
+ *
2400
+ * @param {int} iRootLevel The new <code>rootLevel</code>
2334
2401
  *
2335
2402
  * @public
2336
2403
  */
@@ -2347,7 +2414,8 @@ sap.ui.define([
2347
2414
 
2348
2415
  /**
2349
2416
  * Returns the rootLevel
2350
- * @returns {int}
2417
+ *
2418
+ * @returns {int} The root level
2351
2419
  *
2352
2420
  * @public
2353
2421
  */
@@ -2357,9 +2425,13 @@ sap.ui.define([
2357
2425
 
2358
2426
  /**
2359
2427
  * Retrieves the EntityType of the bindings path, resolved with the current context.
2428
+ *
2429
+ * @returns {object|undefined}
2430
+ * The entity type or <code>undefined</code>, if the bindings path can't be resolved
2431
+ *
2360
2432
  * @private
2361
2433
  */
2362
- ODataTreeBinding.prototype._getEntityType = function(){
2434
+ ODataTreeBinding.prototype._getEntityType = function() {
2363
2435
  var sResolvedPath = this.getResolvedPath();
2364
2436
 
2365
2437
  if (sResolvedPath) {