@openui5/sap.ui.core 1.96.20 → 1.96.21

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 (292) hide show
  1. package/.eslintrc.json +1 -1
  2. package/package.json +1 -1
  3. package/src/jquery.sap.global.js +1 -1
  4. package/src/jquery.sap.properties.js +1 -1
  5. package/src/jquery.sap.resources.js +1 -1
  6. package/src/jquery.sap.script.js +1 -1
  7. package/src/jquery.sap.storage.js +3 -3
  8. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  9. package/src/sap/base/util/restricted/_castArray.js +1 -1
  10. package/src/sap/base/util/restricted/_compact.js +1 -1
  11. package/src/sap/base/util/restricted/_curry.js +1 -1
  12. package/src/sap/base/util/restricted/_debounce.js +1 -1
  13. package/src/sap/base/util/restricted/_difference.js +1 -1
  14. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  15. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  16. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  17. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  18. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  19. package/src/sap/base/util/restricted/_flatten.js +1 -1
  20. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  21. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  22. package/src/sap/base/util/restricted/_intersection.js +1 -1
  23. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  24. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  25. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  26. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  27. package/src/sap/base/util/restricted/_isNil.js +1 -1
  28. package/src/sap/base/util/restricted/_max.js +1 -1
  29. package/src/sap/base/util/restricted/_merge.js +1 -1
  30. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  31. package/src/sap/base/util/restricted/_min.js +1 -1
  32. package/src/sap/base/util/restricted/_omit.js +1 -1
  33. package/src/sap/base/util/restricted/_pick.js +1 -1
  34. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  35. package/src/sap/base/util/restricted/_throttle.js +1 -1
  36. package/src/sap/base/util/restricted/_toArray.js +1 -1
  37. package/src/sap/base/util/restricted/_union.js +1 -1
  38. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  39. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  40. package/src/sap/base/util/restricted/_uniq.js +1 -1
  41. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  42. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  43. package/src/sap/base/util/restricted/_without.js +1 -1
  44. package/src/sap/base/util/restricted/_xor.js +1 -1
  45. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  46. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  47. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  48. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  49. package/src/sap/ui/Device.js +3 -3
  50. package/src/sap/ui/Global.js +4 -4
  51. package/src/sap/ui/base/Event.js +1 -1
  52. package/src/sap/ui/base/EventProvider.js +1 -1
  53. package/src/sap/ui/base/Interface.js +1 -1
  54. package/src/sap/ui/base/ManagedObject.js +1 -1
  55. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  56. package/src/sap/ui/base/Metadata.js +1 -1
  57. package/src/sap/ui/base/Object.js +1 -1
  58. package/src/sap/ui/base/ObjectPool.js +1 -1
  59. package/src/sap/ui/core/.library +1 -1
  60. package/src/sap/ui/core/BusyIndicator.js +1 -1
  61. package/src/sap/ui/core/Component.js +1 -1
  62. package/src/sap/ui/core/ComponentContainer.js +1 -1
  63. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  64. package/src/sap/ui/core/ComponentSupport.js +1 -1
  65. package/src/sap/ui/core/Control.js +1 -1
  66. package/src/sap/ui/core/Core.js +1 -1
  67. package/src/sap/ui/core/CustomData.js +1 -1
  68. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  69. package/src/sap/ui/core/Element.js +1 -1
  70. package/src/sap/ui/core/ElementMetadata.js +1 -1
  71. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  72. package/src/sap/ui/core/EventBus.js +1 -1
  73. package/src/sap/ui/core/Fragment.js +1 -1
  74. package/src/sap/ui/core/HTML.js +1 -1
  75. package/src/sap/ui/core/History.js +1 -1
  76. package/src/sap/ui/core/Icon.js +1 -1
  77. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  78. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  79. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  80. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  81. package/src/sap/ui/core/InvisibleText.js +1 -1
  82. package/src/sap/ui/core/Item.js +1 -1
  83. package/src/sap/ui/core/LabelEnablement.js +1 -1
  84. package/src/sap/ui/core/LayoutData.js +1 -1
  85. package/src/sap/ui/core/ListItem.js +1 -1
  86. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  87. package/src/sap/ui/core/Locale.js +1 -1
  88. package/src/sap/ui/core/LocaleData.js +1 -1
  89. package/src/sap/ui/core/Manifest.js +1 -1
  90. package/src/sap/ui/core/Message.js +1 -1
  91. package/src/sap/ui/core/RenderManager.js +1 -1
  92. package/src/sap/ui/core/Renderer.js +1 -1
  93. package/src/sap/ui/core/ResizeHandler.js +1 -1
  94. package/src/sap/ui/core/ScrollBar.js +1 -1
  95. package/src/sap/ui/core/SeparatorItem.js +1 -1
  96. package/src/sap/ui/core/Title.js +1 -1
  97. package/src/sap/ui/core/TooltipBase.js +1 -1
  98. package/src/sap/ui/core/UIArea.js +1 -1
  99. package/src/sap/ui/core/UIComponent.js +1 -1
  100. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  101. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  102. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  103. package/src/sap/ui/core/XMLComposite.js +1 -1
  104. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  105. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  106. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  107. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  108. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  109. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  110. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  111. package/src/sap/ui/core/format/DateFormat.js +43 -0
  112. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  113. package/src/sap/ui/core/library.js +3 -3
  114. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  115. package/src/sap/ui/core/message/Message.js +1 -1
  116. package/src/sap/ui/core/message/MessageManager.js +1 -1
  117. package/src/sap/ui/core/message/MessageParser.js +1 -1
  118. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  119. package/src/sap/ui/core/messagebundle.properties +2 -0
  120. package/src/sap/ui/core/messagebundle_ar.properties +1 -0
  121. package/src/sap/ui/core/messagebundle_bg.properties +7 -6
  122. package/src/sap/ui/core/messagebundle_ca.properties +1 -0
  123. package/src/sap/ui/core/messagebundle_cs.properties +1 -0
  124. package/src/sap/ui/core/messagebundle_cy.properties +1 -0
  125. package/src/sap/ui/core/messagebundle_da.properties +1 -0
  126. package/src/sap/ui/core/messagebundle_de.properties +1 -0
  127. package/src/sap/ui/core/messagebundle_el.properties +1 -0
  128. package/src/sap/ui/core/messagebundle_en.properties +1 -0
  129. package/src/sap/ui/core/messagebundle_en_GB.properties +1 -0
  130. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  131. package/src/sap/ui/core/messagebundle_es.properties +1 -0
  132. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -0
  133. package/src/sap/ui/core/messagebundle_et.properties +1 -0
  134. package/src/sap/ui/core/messagebundle_fi.properties +1 -0
  135. package/src/sap/ui/core/messagebundle_fr.properties +1 -0
  136. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -0
  137. package/src/sap/ui/core/messagebundle_hi.properties +1 -0
  138. package/src/sap/ui/core/messagebundle_hr.properties +1 -0
  139. package/src/sap/ui/core/messagebundle_hu.properties +1 -0
  140. package/src/sap/ui/core/messagebundle_id.properties +1 -0
  141. package/src/sap/ui/core/messagebundle_it.properties +1 -0
  142. package/src/sap/ui/core/messagebundle_iw.properties +1 -0
  143. package/src/sap/ui/core/messagebundle_ja.properties +1 -0
  144. package/src/sap/ui/core/messagebundle_kk.properties +1 -0
  145. package/src/sap/ui/core/messagebundle_ko.properties +1 -0
  146. package/src/sap/ui/core/messagebundle_lt.properties +1 -0
  147. package/src/sap/ui/core/messagebundle_lv.properties +1 -0
  148. package/src/sap/ui/core/messagebundle_ms.properties +1 -0
  149. package/src/sap/ui/core/messagebundle_nl.properties +1 -0
  150. package/src/sap/ui/core/messagebundle_no.properties +1 -0
  151. package/src/sap/ui/core/messagebundle_pl.properties +1 -0
  152. package/src/sap/ui/core/messagebundle_pt.properties +1 -0
  153. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -0
  154. package/src/sap/ui/core/messagebundle_ro.properties +1 -0
  155. package/src/sap/ui/core/messagebundle_ru.properties +1 -0
  156. package/src/sap/ui/core/messagebundle_sh.properties +1 -0
  157. package/src/sap/ui/core/messagebundle_sk.properties +1 -0
  158. package/src/sap/ui/core/messagebundle_sl.properties +1 -0
  159. package/src/sap/ui/core/messagebundle_sv.properties +1 -0
  160. package/src/sap/ui/core/messagebundle_th.properties +1 -0
  161. package/src/sap/ui/core/messagebundle_tr.properties +1 -0
  162. package/src/sap/ui/core/messagebundle_uk.properties +20 -19
  163. package/src/sap/ui/core/messagebundle_vi.properties +1 -0
  164. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -0
  165. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -0
  166. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  167. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  168. package/src/sap/ui/core/mvc/JSView.js +1 -1
  169. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  170. package/src/sap/ui/core/mvc/View.js +1 -1
  171. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  172. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  173. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  174. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  175. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  176. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  177. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  178. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  179. package/src/sap/ui/core/service/Service.js +1 -1
  180. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  181. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  182. package/src/sap/ui/core/support/Plugin.js +1 -1
  183. package/src/sap/ui/core/support/Support.js +1 -1
  184. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  185. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  186. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  187. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  188. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  189. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  190. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  191. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  192. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  193. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  194. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  195. package/src/sap/ui/core/tmpl/Template.js +1 -1
  196. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  197. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  198. package/src/sap/ui/core/util/Export.js +1 -1
  199. package/src/sap/ui/core/util/ExportCell.js +1 -1
  200. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  201. package/src/sap/ui/core/util/ExportRow.js +1 -1
  202. package/src/sap/ui/core/util/ExportType.js +1 -1
  203. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  204. package/src/sap/ui/core/util/File.js +1 -1
  205. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  206. package/src/sap/ui/core/util/MockServer.js +1 -1
  207. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  208. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  209. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  210. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  211. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  212. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  213. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  214. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  215. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  216. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  217. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  218. package/src/sap/ui/debug/ControlTree.js +1 -1
  219. package/src/sap/ui/debug/DebugEnv.js +1 -1
  220. package/src/sap/ui/debug/PropertyList.js +1 -1
  221. package/src/sap/ui/model/ClientModel.js +1 -1
  222. package/src/sap/ui/model/CompositeDataState.js +1 -1
  223. package/src/sap/ui/model/CompositeType.js +1 -1
  224. package/src/sap/ui/model/DataState.js +1 -1
  225. package/src/sap/ui/model/MetaModel.js +1 -1
  226. package/src/sap/ui/model/Model.js +1 -1
  227. package/src/sap/ui/model/SelectionModel.js +1 -1
  228. package/src/sap/ui/model/SimpleType.js +1 -1
  229. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  230. package/src/sap/ui/model/Type.js +1 -1
  231. package/src/sap/ui/model/json/JSONModel.js +1 -1
  232. package/src/sap/ui/model/message/MessageModel.js +1 -1
  233. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  234. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  235. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  236. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  237. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  238. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  239. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  240. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  241. package/src/sap/ui/model/odata/type/Date.js +8 -1
  242. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  243. package/src/sap/ui/model/odata/type/DateTimeBase.js +8 -1
  244. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  245. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  246. package/src/sap/ui/model/odata/type/Double.js +1 -1
  247. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  248. package/src/sap/ui/model/odata/type/Int.js +1 -1
  249. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  250. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  251. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  252. package/src/sap/ui/model/odata/type/ODataType.js +28 -1
  253. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  254. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  255. package/src/sap/ui/model/odata/type/Single.js +1 -1
  256. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  257. package/src/sap/ui/model/odata/type/String.js +1 -1
  258. package/src/sap/ui/model/odata/type/Time.js +8 -1
  259. package/src/sap/ui/model/odata/type/TimeOfDay.js +8 -1
  260. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  261. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  262. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  263. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  264. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  265. package/src/sap/ui/model/odata/v4/Context.js +1 -1
  266. package/src/sap/ui/model/odata/v4/ODataBinding.js +5 -3
  267. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  268. package/src/sap/ui/model/odata/v4/ODataListBinding.js +21 -8
  269. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -1
  270. package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
  271. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +17 -12
  272. package/src/sap/ui/model/odata/v4/lib/_Helper.js +1 -1
  273. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  274. package/src/sap/ui/model/type/Boolean.js +1 -1
  275. package/src/sap/ui/model/type/Currency.js +1 -1
  276. package/src/sap/ui/model/type/Date.js +15 -1
  277. package/src/sap/ui/model/type/DateInterval.js +15 -1
  278. package/src/sap/ui/model/type/DateTime.js +1 -1
  279. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  280. package/src/sap/ui/model/type/FileSize.js +1 -1
  281. package/src/sap/ui/model/type/Float.js +1 -1
  282. package/src/sap/ui/model/type/Integer.js +1 -1
  283. package/src/sap/ui/model/type/String.js +1 -1
  284. package/src/sap/ui/model/type/Time.js +1 -1
  285. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  286. package/src/sap/ui/model/type/Unit.js +1 -1
  287. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  288. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  289. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  290. package/src/sap/ui/thirdparty/qunit-2.js +4 -1
  291. package/src/sap/ui/thirdparty/qunit.js +41 -11
  292. package/src/sap/ui/util/Storage.js +1 -1
@@ -84,7 +84,7 @@ var sClassName = "sap.ui.model.odata.ODataMessageParser",
84
84
  * @extends sap.ui.core.message.MessageParser
85
85
  *
86
86
  * @author SAP SE
87
- * @version 1.96.20
87
+ * @version 1.96.21
88
88
  * @public
89
89
  * @alias sap.ui.model.odata.ODataMessageParser
90
90
  */
@@ -209,7 +209,7 @@ sap.ui.define([
209
209
  * {@link #loaded loaded} has been resolved!
210
210
  *
211
211
  * @author SAP SE
212
- * @version 1.96.20
212
+ * @version 1.96.21
213
213
  * @alias sap.ui.model.odata.ODataMetaModel
214
214
  * @extends sap.ui.model.MetaModel
215
215
  * @public
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * Implementation to access OData metadata
45
45
  *
46
46
  * @author SAP SE
47
- * @version 1.96.20
47
+ * @version 1.96.21
48
48
  *
49
49
  * @public
50
50
  * @alias sap.ui.model.odata.ODataMetadata
@@ -76,7 +76,7 @@ sap.ui.define([
76
76
  *
77
77
  *
78
78
  * @author SAP SE
79
- * @version 1.96.20
79
+ * @version 1.96.21
80
80
  *
81
81
  * @public
82
82
  * @deprecated As of version 1.48, please use {@link sap.ui.model.odata.v2.ODataModel} instead.
@@ -87,7 +87,7 @@ sap.ui.define([
87
87
  * @extends sap.ui.model.odata.type.ODataType
88
88
  *
89
89
  * @author SAP SE
90
- * @version 1.96.20
90
+ * @version 1.96.21
91
91
  *
92
92
  * @alias sap.ui.model.odata.type.Boolean
93
93
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.96.20
27
+ * @version 1.96.21
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Byte
30
30
  * @param {object} [oFormatOptions]
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * @extends sap.ui.model.type.Currency
62
62
  * @public
63
63
  * @since 1.63.0
64
- * @version 1.96.20
64
+ * @version 1.96.21
65
65
  */
66
66
  var Currency = BaseCurrency.extend("sap.ui.model.odata.type.Currency", {
67
67
  constructor : function (oFormatOptions, oConstraints) {
@@ -106,7 +106,7 @@ sap.ui.define([
106
106
  * @extends sap.ui.model.odata.type.ODataType
107
107
  *
108
108
  * @author SAP SE
109
- * @version 1.96.20
109
+ * @version 1.96.21
110
110
  *
111
111
  * @alias sap.ui.model.odata.type.Date
112
112
  * @param {object} [oFormatOptions]
@@ -180,6 +180,13 @@ sap.ui.define([
180
180
  }
181
181
  };
182
182
 
183
+ /**
184
+ * @override
185
+ */
186
+ EdmDate.prototype.getFormat = function () {
187
+ return getFormatter(this);
188
+ };
189
+
183
190
  /**
184
191
  * Returns a formatter that converts between the model format and a Javascript Date. It has two
185
192
  * methods: <code>format</code> takes a Date and returns a date as a String in the format
@@ -59,7 +59,7 @@ sap.ui.define([
59
59
  * @extends sap.ui.model.odata.type.DateTimeBase
60
60
  *
61
61
  * @author SAP SE
62
- * @version 1.96.20
62
+ * @version 1.96.21
63
63
  *
64
64
  * @alias sap.ui.model.odata.type.DateTime
65
65
  * @param {object} [oFormatOptions]
@@ -132,7 +132,7 @@ sap.ui.define([
132
132
  * @extends sap.ui.model.odata.type.ODataType
133
133
  * @public
134
134
  * @since 1.27.0
135
- * @version 1.96.20
135
+ * @version 1.96.21
136
136
  */
137
137
  var DateTimeBase = ODataType.extend("sap.ui.model.odata.type.DateTimeBase", {
138
138
  constructor : function (oFormatOptions, oConstraints) {
@@ -185,6 +185,13 @@ sap.ui.define([
185
185
  }
186
186
  };
187
187
 
188
+ /**
189
+ * @override
190
+ */
191
+ DateTimeBase.prototype.getFormat = function () {
192
+ return getFormatter(this);
193
+ };
194
+
188
195
  /**
189
196
  * Parses the given value to a <code>Date</code> instance (OData V2).
190
197
  *
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.model.odata.type.DateTimeBase
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.96.20
31
+ * @version 1.96.21
32
32
  *
33
33
  * @alias sap.ui.model.odata.type.DateTimeOffset
34
34
  * @param {object} [oFormatOptions]
@@ -197,7 +197,7 @@ sap.ui.define([
197
197
  * @extends sap.ui.model.odata.type.ODataType
198
198
  *
199
199
  * @author SAP SE
200
- * @version 1.96.20
200
+ * @version 1.96.21
201
201
  *
202
202
  * @alias sap.ui.model.odata.type.Decimal
203
203
  * @param {object} [oFormatOptions]
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.model.odata.type.ODataType
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.96.20
98
+ * @version 1.96.21
99
99
  *
100
100
  * @alias sap.ui.model.odata.type.Double
101
101
  * @param {object} [oFormatOptions]
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  * @extends sap.ui.model.odata.type.ODataType
63
63
  *
64
64
  * @author SAP SE
65
- * @version 1.96.20
65
+ * @version 1.96.21
66
66
  *
67
67
  * @alias sap.ui.model.odata.type.Guid
68
68
  * @param {object} [oFormatOptions]
@@ -80,7 +80,7 @@ sap.ui.define([
80
80
  * @extends sap.ui.model.odata.type.ODataType
81
81
  *
82
82
  * @author SAP SE
83
- * @version 1.96.20
83
+ * @version 1.96.21
84
84
  *
85
85
  * @abstract
86
86
  * @alias sap.ui.model.odata.type.Int
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.96.20
27
+ * @version 1.96.21
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Int16
30
30
  * @param {object} [oFormatOptions]
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.96.20
27
+ * @version 1.96.21
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.Int32
30
30
  * @param {object} [oFormatOptions]
@@ -137,7 +137,7 @@ sap.ui.define([
137
137
  * @extends sap.ui.model.odata.type.ODataType
138
138
  *
139
139
  * @author SAP SE
140
- * @version 1.96.20
140
+ * @version 1.96.21
141
141
  *
142
142
  * @alias sap.ui.model.odata.type.Int64
143
143
  * @param {object} [oFormatOptions]
@@ -115,7 +115,7 @@ sap.ui.define([
115
115
  * @extends sap.ui.model.SimpleType
116
116
  *
117
117
  * @author SAP SE
118
- * @version 1.96.20
118
+ * @version 1.96.21
119
119
  *
120
120
  * @abstract
121
121
  * @alias sap.ui.model.odata.type.ODataType
@@ -136,6 +136,33 @@ sap.ui.define([
136
136
  }
137
137
  );
138
138
 
139
+ /**
140
+ * Returns a format converting between the internal and external representation of a value for this type. The
141
+ * implementation of this method by subclasses is optional.
142
+ *
143
+ * @returns {object}
144
+ * A format converting between the internal and external representation
145
+ *
146
+ * @abstract
147
+ * @function
148
+ * @name sap.ui.model.ODataType.prototype.getFormat
149
+ * @private
150
+ */
151
+
152
+ /**
153
+ * Returns a language-dependent placeholder text such as "e.g. <sample value>" where <sample value> is formatted
154
+ * using this type.
155
+ *
156
+ * @returns {string|undefined}
157
+ * The language-dependent placeholder text or <code>undefined</code> if the type does not offer a placeholder
158
+ *
159
+ * @private
160
+ * @ui5-restricted sap.m
161
+ */
162
+ ODataType.prototype.getPlaceholderText = function () {
163
+ return this.getFormat && this.getFormat().getPlaceholderText && this.getFormat().getPlaceholderText();
164
+ };
165
+
139
166
  /**
140
167
  * ODataTypes are immutable and do not allow modifying the type's constraints.
141
168
  * This function overwrites the <code>setConstraints</code> of
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.model.odata.type.ODataType
31
31
  * @public
32
32
  * @since 1.37.0
33
- * @version 1.96.20
33
+ * @version 1.96.21
34
34
  */
35
35
  var Raw = ODataType.extend("sap.ui.model.odata.type.Raw", {
36
36
  constructor : function (oFormatOptions, oConstraints) {
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.model.odata.type.Int
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.96.20
27
+ * @version 1.96.21
28
28
  *
29
29
  * @alias sap.ui.model.odata.type.SByte
30
30
  * @param {object} [oFormatOptions]
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.model.odata.type.ODataType
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.96.20
98
+ * @version 1.96.21
99
99
  *
100
100
  * @alias sap.ui.model.odata.type.Single
101
101
  * @param {object} [oFormatOptions]
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @extends sap.ui.model.odata.type.ODataType
61
61
  * @public
62
62
  * @since 1.51.0
63
- * @version 1.96.20
63
+ * @version 1.96.21
64
64
  */
65
65
  var Stream = ODataType.extend("sap.ui.model.odata.type.Stream", {
66
66
  constructor : function (oFormatOptions, oConstraints) {
@@ -84,7 +84,7 @@ sap.ui.define([
84
84
  * @extends sap.ui.model.odata.type.ODataType
85
85
  *
86
86
  * @author SAP SE
87
- * @version 1.96.20
87
+ * @version 1.96.21
88
88
  *
89
89
  * @alias sap.ui.model.odata.type.String
90
90
  * @param {object} [oFormatOptions]
@@ -154,7 +154,7 @@ sap.ui.define([
154
154
  * @extends sap.ui.model.odata.type.ODataType
155
155
  *
156
156
  * @author SAP SE
157
- * @version 1.96.20
157
+ * @version 1.96.21
158
158
  *
159
159
  * @alias sap.ui.model.odata.type.Time
160
160
  * @param {object} [oFormatOptions]
@@ -211,6 +211,13 @@ sap.ui.define([
211
211
  }
212
212
  };
213
213
 
214
+ /**
215
+ * @override
216
+ */
217
+ Time.prototype.getFormat = function () {
218
+ return getFormatter(this);
219
+ };
220
+
214
221
  /**
215
222
  * Returns a formatter that converts between the model format and a Javascript Date. It has two
216
223
  * methods: <code>format</code> takes a Date and returns an object as described in
@@ -110,7 +110,7 @@ sap.ui.define([
110
110
  * @extends sap.ui.model.odata.type.ODataType
111
111
  * @public
112
112
  * @since 1.37.0
113
- * @version 1.96.20
113
+ * @version 1.96.21
114
114
  */
115
115
  var TimeOfDay = ODataType.extend("sap.ui.model.odata.type.TimeOfDay", {
116
116
  constructor : function (oFormatOptions, oConstraints) {
@@ -196,6 +196,13 @@ sap.ui.define([
196
196
  }
197
197
  };
198
198
 
199
+ /**
200
+ * @override
201
+ */
202
+ TimeOfDay.prototype.getFormat = function () {
203
+ return getUiFormat(this);
204
+ };
205
+
199
206
  /**
200
207
  * Returns a formatter that converts between the model format and a Javascript Date. It has two
201
208
  * methods: <code>format</code> takes a Date and returns a date as a String in the format
@@ -63,7 +63,7 @@ sap.ui.define([
63
63
  * @extends sap.ui.model.type.Unit
64
64
  * @public
65
65
  * @since 1.63.0
66
- * @version 1.96.20
66
+ * @version 1.96.21
67
67
  */
68
68
  var Unit = BaseUnit.extend("sap.ui.model.odata.type.Unit", {
69
69
  constructor : function (oFormatOptions, oConstraints, aDynamicFormatOptionNames) {
@@ -52,7 +52,7 @@ sap.ui.define([
52
52
  * @hideconstructor
53
53
  * @public
54
54
  * @since 1.93.0
55
- * @version 1.96.20
55
+ * @version 1.96.21
56
56
  */
57
57
  var Context = BaseContext.extend("sap.ui.model.odata.v2.Context", {
58
58
  constructor : function (oModel, sPath, sDeepPath, oCreatePromise) {
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @class Annotation loader for OData V2 services
36
36
  *
37
37
  * @author SAP SE
38
- * @version 1.96.20
38
+ * @version 1.96.21
39
39
  *
40
40
  * @public
41
41
  * @since 1.37.0
@@ -201,7 +201,7 @@ sap.ui.define([
201
201
  * This model is not prepared to be inherited from.
202
202
  *
203
203
  * @author SAP SE
204
- * @version 1.96.20
204
+ * @version 1.96.21
205
205
  *
206
206
  * @public
207
207
  * @alias sap.ui.model.odata.v2.ODataModel
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * @extends sap.ui.model.TreeBinding
93
93
  * @hideconstructor
94
94
  * @public
95
- * @version 1.96.20
95
+ * @version 1.96.21
96
96
  */
97
97
  var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
98
98
 
@@ -98,7 +98,7 @@ sap.ui.define([
98
98
  * @hideconstructor
99
99
  * @public
100
100
  * @since 1.39.0
101
- * @version 1.96.20
101
+ * @version 1.96.21
102
102
  */
103
103
  var Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
104
104
  constructor : function (oModel, oBinding, sPath, iIndex, oCreatePromise, iGeneration) {
@@ -367,8 +367,8 @@ sap.ui.define([
367
367
  * Hook method for {@link #fetchQueryOptionsForOwnCache} to determine the query options for this
368
368
  * binding.
369
369
  *
370
- * @param {sap.ui.model.Context} oContext
371
- * The context instance to be used
370
+ * @param {sap.ui.model.Context} [oContext]
371
+ * The context instance to be used for a relative binding
372
372
  * @returns {sap.ui.base.SyncPromise}
373
373
  * A promise resolving with the binding's query options
374
374
  *
@@ -438,7 +438,9 @@ sap.ui.define([
438
438
  this.oCachePromise = SyncPromise.all(aPromises).then(function (aResult) {
439
439
  var mQueryOptions = aResult[0].mQueryOptions;
440
440
 
441
- that.sReducedPath = aResult[0].sReducedPath;
441
+ if (aResult[0].sReducedPath) {
442
+ that.sReducedPath = aResult[0].sReducedPath;
443
+ }
442
444
 
443
445
  // Note: do not create a cache for a virtual context
444
446
  if (mQueryOptions && !(oContext && oContext.iIndex === Context.VIRTUAL)) {
@@ -106,7 +106,7 @@ sap.ui.define([
106
106
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
107
107
  * @public
108
108
  * @since 1.37.0
109
- * @version 1.96.20
109
+ * @version 1.96.21
110
110
  *
111
111
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
112
112
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
@@ -76,7 +76,7 @@ sap.ui.define([
76
76
  * @mixes sap.ui.model.odata.v4.ODataParentBinding
77
77
  * @public
78
78
  * @since 1.37.0
79
- * @version 1.96.20
79
+ * @version 1.96.21
80
80
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
81
81
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
82
82
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -380,6 +380,7 @@ sap.ui.define([
380
380
  sApply = _AggregationHelper.buildApply(mParameters.$$aggregation).$apply;
381
381
  }
382
382
  this.mQueryOptions = this.oModel.buildQueryOptions(mParameters, true);
383
+ this.oQueryOptionsPromise = undefined; // @see #doFetchQueryOptions
383
384
  this.mParameters = mParameters; // store mParameters at binding after validation
384
385
  if (sApply) {
385
386
  this.mQueryOptions.$apply = sApply;
@@ -949,6 +950,7 @@ sap.ui.define([
949
950
  this.mPreviousContextsByPath = undefined;
950
951
  this.aPreviousData = undefined;
951
952
  this.mQueryOptions = undefined;
953
+ this.oQueryOptionsPromise = undefined;
952
954
  this.aSorters = undefined;
953
955
 
954
956
  asODataParentBinding.prototype.destroy.call(this);
@@ -1041,14 +1043,23 @@ sap.ui.define([
1041
1043
  * @see sap.ui.model.odata.v4.ODataBinding#doFetchQueryOptions
1042
1044
  */
1043
1045
  ODataListBinding.prototype.doFetchQueryOptions = function (oContext) {
1044
- var that = this;
1046
+ // Note: an absolute binding needs no parent context :-)
1047
+ var sMetaPath = oContext && _Helper.getMetaPath(oContext.getPath()),
1048
+ that = this;
1045
1049
 
1046
- return this.fetchResolvedQueryOptions(oContext).then(function (mQueryOptions) {
1047
- return that.fetchFilter(oContext, mQueryOptions.$filter).then(function (aFilters) {
1048
- return _Helper.mergeQueryOptions(mQueryOptions,
1049
- that.getOrderby(mQueryOptions.$orderby), aFilters);
1050
- });
1051
- });
1050
+ if (!(this.oQueryOptionsPromise && this.oQueryOptionsPromise.$metaPath === sMetaPath)) {
1051
+ this.oQueryOptionsPromise
1052
+ = this.fetchResolvedQueryOptions(oContext).then(function (mQueryOptions) {
1053
+ return that.fetchFilter(oContext, mQueryOptions.$filter)
1054
+ .then(function (aFilters) {
1055
+ return _Helper.mergeQueryOptions(mQueryOptions,
1056
+ that.getOrderby(mQueryOptions.$orderby), aFilters);
1057
+ });
1058
+ });
1059
+ this.oQueryOptionsPromise.$metaPath = sMetaPath;
1060
+ }
1061
+
1062
+ return this.oQueryOptionsPromise;
1052
1063
  };
1053
1064
 
1054
1065
  /**
@@ -1573,6 +1584,7 @@ sap.ui.define([
1573
1584
  } else {
1574
1585
  this.aApplicationFilters = _Helper.toArray(vFilters);
1575
1586
  }
1587
+ this.oQueryOptionsPromise = undefined;
1576
1588
 
1577
1589
  if (this.isRootBindingSuspended()) {
1578
1590
  this.setResumeChangeReason(ChangeReason.Filter);
@@ -3137,6 +3149,7 @@ sap.ui.define([
3137
3149
  }
3138
3150
 
3139
3151
  this.aSorters = _Helper.toArray(vSorters);
3152
+ this.oQueryOptionsPromise = undefined;
3140
3153
 
3141
3154
  if (this.isRootBindingSuspended()) {
3142
3155
  this.setResumeChangeReason(ChangeReason.Sort);
@@ -658,7 +658,7 @@ sap.ui.define([
658
658
  * @hideconstructor
659
659
  * @public
660
660
  * @since 1.37.0
661
- * @version 1.96.20
661
+ * @version 1.96.21
662
662
  */
663
663
  var ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
664
664
  /*
@@ -2157,6 +2157,9 @@ sap.ui.define([
2157
2157
  if (oProperty.$Nullable === false) {
2158
2158
  setConstraint("nullable", false);
2159
2159
  }
2160
+ if (oProperty.$Type === "Edm.DateTimeOffset") {
2161
+ setConstraint("V4", true);
2162
+ }
2160
2163
  }
2161
2164
  return mConstraints;
2162
2165
  };
@@ -210,7 +210,7 @@ sap.ui.define([
210
210
  * @extends sap.ui.model.Model
211
211
  * @public
212
212
  * @since 1.37.0
213
- * @version 1.96.20
213
+ * @version 1.96.21
214
214
  */
215
215
  var ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
216
216
  /** @lends sap.ui.model.odata.v4.ODataModel.prototype */
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * @mixes sap.ui.model.odata.v4.ODataBinding
58
58
  * @public
59
59
  * @since 1.37.0
60
- * @version 1.96.20
60
+ * @version 1.96.21
61
61
  * @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
62
62
  * @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
63
63
  * @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
@@ -260,12 +260,9 @@ sap.ui.define([
260
260
  that = this;
261
261
 
262
262
  this.oCheckUpdateCallToken = oCallToken;
263
- if (this.bHasDeclaredType === undefined) {
264
- this.bHasDeclaredType = !!vType;
265
- }
266
- if (sResolvedPath && !this.bHasDeclaredType && this.sInternalType !== "any"
267
- && !bIsMeta) {
268
- vType = oMetaModel.fetchUI5Type(sResolvedPath);
263
+ if (!vType && sResolvedPath && this.sInternalType !== "any" && !bIsMeta
264
+ && !sResolvedPath.includes(sVirtualPath)) {
265
+ vType = oMetaModel.fetchUI5Type(this.sReducedPath || sResolvedPath);
269
266
  }
270
267
  if (arguments.length < 4) {
271
268
  vValue = this.oCachePromise.then(function (oCache) {
@@ -283,9 +280,7 @@ sap.ui.define([
283
280
  return vResult;
284
281
  });
285
282
  }
286
- if (!that.sReducedPath || !that.isResolved()) {
287
- // binding is unresolved or context was reset by another call to
288
- // checkUpdateInternal
283
+ if (!that.isResolved()) {
289
284
  return undefined;
290
285
  }
291
286
  if (sResolvedPath.includes(sVirtualPath)) {
@@ -327,7 +322,7 @@ sap.ui.define([
327
322
  });
328
323
  if (bForceUpdate && vValue.isFulfilled()) {
329
324
  if (vType && vType.isFulfilled && vType.isFulfilled()) {
330
- this.setType(vType.getResult(), this.sInternalType);
325
+ this.oType = vType.getResult();
331
326
  }
332
327
  this.vValue = vValue.getResult();
333
328
  }
@@ -341,7 +336,7 @@ sap.ui.define([
341
336
 
342
337
  if (oCallToken === that.oCheckUpdateCallToken) { // latest call to checkUpdateInternal
343
338
  that.oCheckUpdateCallToken = undefined;
344
- that.setType(oType, that.sInternalType);
339
+ that.oType = oType;
345
340
  if (oCallToken.forceUpdate || that.vValue !== vValue) {
346
341
  that.bInitial = false;
347
342
  that.vValue = vValue;
@@ -655,6 +650,15 @@ sap.ui.define([
655
650
  if (this.bRelative) {
656
651
  this.checkSuspended(true);
657
652
  this.deregisterChange();
653
+ if (oContext) {
654
+ if (this.oType && !this.bHasDeclaredType
655
+ // Note: this.oType => this.sReducedPath
656
+ && _Helper.getMetaPath(this.oModel.resolve(this.sPath, oContext))
657
+ !== _Helper.getMetaPath(this.sReducedPath)) {
658
+ this.oType = undefined;
659
+ }
660
+ this.sReducedPath = undefined;
661
+ }
658
662
  }
659
663
  this.oContext = oContext;
660
664
  this.sResumeChangeReason = undefined;
@@ -684,6 +688,7 @@ sap.ui.define([
684
688
  ODataPropertyBinding.prototype.setType = function (oType, _sInternalType) {
685
689
  var oOldType = this.oType;
686
690
 
691
+ this.bHasDeclaredType = !!oType;
687
692
  if (oType && oType.getName() === "sap.ui.model.odata.type.DateTimeOffset") {
688
693
  oType.setV4();
689
694
  }
@@ -1466,7 +1466,7 @@ sap.ui.define([
1466
1466
  }
1467
1467
 
1468
1468
  if (aPaths.indexOf("*") >= 0) {
1469
- aSelects = mCacheQueryOptions && mCacheQueryOptions.$select || [];
1469
+ aSelects = (mCacheQueryOptions && mCacheQueryOptions.$select || []).slice();
1470
1470
  } else if (mCacheQueryOptions && mCacheQueryOptions.$select
1471
1471
  && mCacheQueryOptions.$select.indexOf("*") < 0) {
1472
1472
  _Helper.addChildrenWithAncestor(aPaths, mCacheQueryOptions.$select, mSelects);
@@ -228,7 +228,7 @@ sap.ui.define([
228
228
  *
229
229
  * @extends sap.ui.model.Model
230
230
  * @public
231
- * @version 1.96.20
231
+ * @version 1.96.21
232
232
  */
233
233
  var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
234
234
 
@@ -19,7 +19,7 @@ sap.ui.define(['sap/ui/model/SimpleType', 'sap/ui/model/FormatException', 'sap/u
19
19
  * @extends sap.ui.model.SimpleType
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.96.20
22
+ * @version 1.96.21
23
23
  *
24
24
  * @public
25
25
  * @param {object} [oFormatOptions]