@openui5/sap.ui.core 1.103.1 → 1.106.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 (405) hide show
  1. package/.reuse/dep5 +35 -15
  2. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
  3. package/THIRDPARTY.txt +64 -21
  4. package/package.json +1 -1
  5. package/src/jquery.sap.dom.js +10 -10
  6. package/src/jquery.sap.global.js +24 -216
  7. package/src/jquery.sap.history.js +1 -1
  8. package/src/jquery.sap.properties.js +2 -2
  9. package/src/jquery.sap.resources.js +1 -1
  10. package/src/jquery.sap.script.js +1 -1
  11. package/src/jquery.sap.storage.js +4 -4
  12. package/src/sap/base/i18n/ResourceBundle.js +7 -11
  13. package/src/sap/base/util/LoaderExtensions.js +69 -61
  14. package/src/sap/base/util/ObjectPath.js +1 -1
  15. package/src/sap/base/util/Properties.js +1 -1
  16. package/src/sap/base/util/fetch.js +228 -0
  17. package/src/sap/base/util/mixedFetch.js +69 -0
  18. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  19. package/src/sap/base/util/restricted/_castArray.js +1 -1
  20. package/src/sap/base/util/restricted/_compact.js +1 -1
  21. package/src/sap/base/util/restricted/_curry.js +1 -1
  22. package/src/sap/base/util/restricted/_debounce.js +1 -1
  23. package/src/sap/base/util/restricted/_difference.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  25. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  28. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  29. package/src/sap/base/util/restricted/_flatten.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  31. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  32. package/src/sap/base/util/restricted/_intersection.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  34. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  36. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  37. package/src/sap/base/util/restricted/_isNil.js +1 -1
  38. package/src/sap/base/util/restricted/_max.js +1 -1
  39. package/src/sap/base/util/restricted/_merge.js +1 -1
  40. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  41. package/src/sap/base/util/restricted/_min.js +1 -1
  42. package/src/sap/base/util/restricted/_omit.js +1 -1
  43. package/src/sap/base/util/restricted/_pick.js +1 -1
  44. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  45. package/src/sap/base/util/restricted/_throttle.js +1 -1
  46. package/src/sap/base/util/restricted/_toArray.js +1 -1
  47. package/src/sap/base/util/restricted/_union.js +1 -1
  48. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  49. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  50. package/src/sap/base/util/restricted/_uniq.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  52. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  53. package/src/sap/base/util/restricted/_without.js +1 -1
  54. package/src/sap/base/util/restricted/_xor.js +1 -1
  55. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  56. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  58. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  59. package/src/sap/base/util/syncFetch.js +66 -0
  60. package/src/sap/ui/Device.js +5 -5
  61. package/src/sap/ui/Global.js +7 -14
  62. package/src/sap/ui/VersionInfo.js +57 -54
  63. package/src/sap/ui/base/BindingInfo.js +198 -0
  64. package/src/sap/ui/base/DataType.js +1 -1
  65. package/src/sap/ui/base/Event.js +2 -2
  66. package/src/sap/ui/base/EventProvider.js +2 -2
  67. package/src/sap/ui/base/Interface.js +1 -1
  68. package/src/sap/ui/base/ManagedObject.js +209 -979
  69. package/src/sap/ui/base/ManagedObjectMetadata.js +6 -6
  70. package/src/sap/ui/base/ManagedObjectObserver.js +2 -2
  71. package/src/sap/ui/base/Metadata.js +1 -1
  72. package/src/sap/ui/base/Object.js +1 -1
  73. package/src/sap/ui/base/ObjectPool.js +1 -1
  74. package/src/sap/ui/core/.library +72 -50
  75. package/src/sap/ui/core/AccessKeysEnablement.js +173 -0
  76. package/src/sap/ui/core/AppCacheBuster.js +65 -51
  77. package/src/sap/ui/core/BusyIndicator.js +1 -1
  78. package/src/sap/ui/core/Component.js +52 -25
  79. package/src/sap/ui/core/ComponentContainer.js +1 -1
  80. package/src/sap/ui/core/ComponentMetadata.js +16 -23
  81. package/src/sap/ui/core/ComponentSupport.js +1 -1
  82. package/src/sap/ui/core/Configuration.js +598 -358
  83. package/src/sap/ui/core/Control.js +1 -1
  84. package/src/sap/ui/core/Core.js +126 -185
  85. package/src/sap/ui/core/CustomData.js +1 -1
  86. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  87. package/src/sap/ui/core/Element.js +68 -4
  88. package/src/sap/ui/core/ElementMetadata.js +6 -4
  89. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  90. package/src/sap/ui/core/EventBus.js +1 -1
  91. package/src/sap/ui/core/ExtensionPoint.js +2 -2
  92. package/src/sap/ui/core/FocusHandler.js +84 -39
  93. package/src/sap/ui/core/Fragment.js +1 -1
  94. package/src/sap/ui/core/HTML.js +1 -1
  95. package/src/sap/ui/core/History.js +1 -1
  96. package/src/sap/ui/core/Icon.js +1 -1
  97. package/src/sap/ui/core/IconPool.js +8 -8
  98. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  99. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  100. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  101. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  102. package/src/sap/ui/core/InvisibleText.js +4 -1
  103. package/src/sap/ui/core/Item.js +1 -1
  104. package/src/sap/ui/core/LabelEnablement.js +1 -1
  105. package/src/sap/ui/core/LayoutData.js +1 -1
  106. package/src/sap/ui/core/ListItem.js +1 -1
  107. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  108. package/src/sap/ui/core/Locale.js +1 -1
  109. package/src/sap/ui/core/LocaleData.js +8 -51
  110. package/src/sap/ui/core/Manifest.js +3 -5
  111. package/src/sap/ui/core/Message.js +1 -1
  112. package/src/sap/ui/core/Popup.js +13 -8
  113. package/src/sap/ui/core/RenderManager.js +17 -21
  114. package/src/sap/ui/core/Renderer.js +1 -1
  115. package/src/sap/ui/core/ResizeHandler.js +28 -49
  116. package/src/sap/ui/core/ScrollBar.js +1 -1
  117. package/src/sap/ui/core/SeparatorItem.js +1 -1
  118. package/src/sap/ui/core/Title.js +1 -1
  119. package/src/sap/ui/core/TooltipBase.js +12 -13
  120. package/src/sap/ui/core/UIArea.js +13 -12
  121. package/src/sap/ui/core/UIComponent.js +3 -3
  122. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  123. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  124. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  125. package/src/sap/ui/core/XMLComposite.js +5 -2
  126. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  127. package/src/sap/ui/core/XMLTemplateProcessor.js +7 -7
  128. package/src/sap/ui/core/_ConfigurationProvider.js +187 -0
  129. package/src/sap/ui/core/_IconRegistry.js +66 -55
  130. package/src/sap/ui/core/cache/CacheManager.js +20 -16
  131. package/src/sap/ui/core/cache/CacheManagerNOP.js +5 -2
  132. package/src/sap/ui/core/cache/LRUPersistentCache.js +15 -8
  133. package/src/sap/ui/core/cldr/en.json +0 -1
  134. package/src/sap/ui/core/cldr/es_BO.json +3 -3
  135. package/src/sap/ui/core/cldr/es_CL.json +3 -3
  136. package/src/sap/ui/core/cldr/es_MX.json +3 -3
  137. package/src/sap/ui/core/cldr/es_PE.json +3 -3
  138. package/src/sap/ui/core/cldr/es_UY.json +3 -3
  139. package/src/sap/ui/core/cldr/es_VE.json +2 -2
  140. package/src/sap/ui/core/date/Buddhist.js +15 -13
  141. package/src/sap/ui/core/date/Japanese.js +0 -6
  142. package/src/sap/ui/core/date/UniversalDate.js +144 -34
  143. package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
  144. package/src/sap/ui/core/delegate/ScrollEnablement.js +7 -6
  145. package/src/sap/ui/core/dnd/DragAndDrop.js +13 -9
  146. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  147. package/src/sap/ui/core/dnd/DragDropInfo.js +3 -3
  148. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  149. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  150. package/src/sap/ui/core/format/DateFormat.js +36 -9
  151. package/src/sap/ui/core/format/NumberFormat.js +92 -26
  152. package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
  153. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  154. package/src/sap/ui/core/library.js +44 -3
  155. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  156. package/src/sap/ui/core/message/Message.js +1 -1
  157. package/src/sap/ui/core/message/MessageManager.js +1 -1
  158. package/src/sap/ui/core/message/MessageParser.js +1 -1
  159. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  160. package/src/sap/ui/core/messagebundle.properties +2 -0
  161. package/src/sap/ui/core/messagebundle_ar.properties +54 -53
  162. package/src/sap/ui/core/messagebundle_bg.properties +54 -53
  163. package/src/sap/ui/core/messagebundle_ca.properties +28 -27
  164. package/src/sap/ui/core/messagebundle_cs.properties +37 -36
  165. package/src/sap/ui/core/messagebundle_cy.properties +57 -56
  166. package/src/sap/ui/core/messagebundle_da.properties +53 -52
  167. package/src/sap/ui/core/messagebundle_de.properties +54 -53
  168. package/src/sap/ui/core/messagebundle_el.properties +46 -45
  169. package/src/sap/ui/core/messagebundle_en.properties +57 -56
  170. package/src/sap/ui/core/messagebundle_en_GB.properties +57 -56
  171. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
  172. package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
  173. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +1 -0
  174. package/src/sap/ui/core/messagebundle_es.properties +42 -41
  175. package/src/sap/ui/core/messagebundle_es_MX.properties +54 -53
  176. package/src/sap/ui/core/messagebundle_et.properties +51 -50
  177. package/src/sap/ui/core/messagebundle_fi.properties +48 -47
  178. package/src/sap/ui/core/messagebundle_fr.properties +37 -36
  179. package/src/sap/ui/core/messagebundle_fr_CA.properties +22 -21
  180. package/src/sap/ui/core/messagebundle_hi.properties +42 -41
  181. package/src/sap/ui/core/messagebundle_hr.properties +55 -54
  182. package/src/sap/ui/core/messagebundle_hu.properties +56 -55
  183. package/src/sap/ui/core/messagebundle_id.properties +55 -54
  184. package/src/sap/ui/core/messagebundle_it.properties +55 -54
  185. package/src/sap/ui/core/messagebundle_iw.properties +55 -54
  186. package/src/sap/ui/core/messagebundle_ja.properties +48 -47
  187. package/src/sap/ui/core/messagebundle_kk.properties +41 -40
  188. package/src/sap/ui/core/messagebundle_ko.properties +21 -20
  189. package/src/sap/ui/core/messagebundle_lt.properties +55 -54
  190. package/src/sap/ui/core/messagebundle_lv.properties +55 -54
  191. package/src/sap/ui/core/messagebundle_ms.properties +52 -51
  192. package/src/sap/ui/core/messagebundle_nl.properties +53 -52
  193. package/src/sap/ui/core/messagebundle_no.properties +53 -52
  194. package/src/sap/ui/core/messagebundle_pl.properties +52 -51
  195. package/src/sap/ui/core/messagebundle_pt.properties +54 -53
  196. package/src/sap/ui/core/messagebundle_pt_PT.properties +55 -54
  197. package/src/sap/ui/core/messagebundle_ro.properties +56 -55
  198. package/src/sap/ui/core/messagebundle_ru.properties +52 -51
  199. package/src/sap/ui/core/messagebundle_sh.properties +57 -56
  200. package/src/sap/ui/core/messagebundle_sk.properties +54 -53
  201. package/src/sap/ui/core/messagebundle_sl.properties +56 -55
  202. package/src/sap/ui/core/messagebundle_sv.properties +52 -51
  203. package/src/sap/ui/core/messagebundle_th.properties +25 -24
  204. package/src/sap/ui/core/messagebundle_tr.properties +56 -55
  205. package/src/sap/ui/core/messagebundle_uk.properties +55 -54
  206. package/src/sap/ui/core/messagebundle_vi.properties +56 -55
  207. package/src/sap/ui/core/messagebundle_zh_CN.properties +55 -54
  208. package/src/sap/ui/core/messagebundle_zh_TW.properties +55 -54
  209. package/src/sap/ui/core/mvc/Controller.js +17 -12
  210. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  211. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  212. package/src/sap/ui/core/mvc/JSView.js +2 -2
  213. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  214. package/src/sap/ui/core/mvc/View.js +7 -7
  215. package/src/sap/ui/core/mvc/XMLView.js +1 -2
  216. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  217. package/src/sap/ui/core/plugin/LessSupport.js +16 -14
  218. package/src/sap/ui/core/plugin/TemplatingSupport.js +2 -1
  219. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  220. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  221. package/src/sap/ui/core/routing/Router.js +4 -4
  222. package/src/sap/ui/core/routing/async/TargetCache.js +4 -0
  223. package/src/sap/ui/core/rules/App.support.js +11 -13
  224. package/src/sap/ui/core/rules/Config.support.js +14 -14
  225. package/src/sap/ui/core/rules/CoreHelper.support.js +3 -3
  226. package/src/sap/ui/core/rules/Model.support.js +8 -8
  227. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  228. package/src/sap/ui/core/rules/Theming.support.js +8 -8
  229. package/src/sap/ui/core/rules/View.support.js +20 -13
  230. package/src/sap/ui/core/search/OpenSearchProvider.js +25 -12
  231. package/src/sap/ui/core/search/SearchProvider.js +2 -2
  232. package/src/sap/ui/core/service/Service.js +1 -1
  233. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  234. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  235. package/src/sap/ui/core/support/Hotkeys.js +2 -3
  236. package/src/sap/ui/core/support/Plugin.js +1 -1
  237. package/src/sap/ui/core/support/Support.js +3 -4
  238. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  239. package/src/sap/ui/core/support/plugins/Debugging.js +4 -4
  240. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  241. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  242. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  243. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  244. package/src/sap/ui/core/support/plugins/TechInfo.js +46 -33
  245. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  246. package/src/sap/ui/core/support/plugins/ViewInfo.js +3 -4
  247. package/src/sap/ui/core/support/support.html +1 -1
  248. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +3 -3
  249. package/src/sap/ui/core/themes/base/Icon.less +4 -0
  250. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +1 -1
  251. package/src/sap/ui/core/themes/base/base.less +26 -26
  252. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  253. package/src/sap/ui/core/themes/base/global.less +5 -1
  254. package/src/sap/ui/core/themes/base/shared.less +6 -0
  255. package/src/sap/ui/core/theming/Parameters.js +52 -53
  256. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  257. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  258. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  259. package/src/sap/ui/core/tmpl/Template.js +7 -5
  260. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  261. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  262. package/src/sap/ui/core/util/Export.js +1 -1
  263. package/src/sap/ui/core/util/ExportCell.js +1 -1
  264. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  265. package/src/sap/ui/core/util/ExportRow.js +1 -1
  266. package/src/sap/ui/core/util/ExportType.js +1 -1
  267. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  268. package/src/sap/ui/core/util/File.js +1 -1
  269. package/src/sap/ui/core/util/LibraryInfo.js +61 -42
  270. package/src/sap/ui/core/util/MockServer.js +45 -71
  271. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  272. package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +4 -3
  273. package/src/sap/ui/core/util/XMLPreprocessor.js +3 -3
  274. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +1 -4
  275. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  276. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  277. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  278. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  279. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  280. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  281. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  282. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  283. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  284. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  285. package/src/sap/ui/debug/ControlTree.js +1 -1
  286. package/src/sap/ui/debug/DebugEnv.js +1 -1
  287. package/src/sap/ui/debug/PropertyList.css +1 -31
  288. package/src/sap/ui/debug/PropertyList.js +6 -240
  289. package/src/sap/ui/dom/getScrollbarSize.js +1 -1
  290. package/src/sap/ui/dom/jquery/control.js +1 -0
  291. package/src/sap/ui/events/jquery/EventSimulation.js +4 -4
  292. package/src/sap/ui/model/ClientModel.js +1 -1
  293. package/src/sap/ui/model/CompositeDataState.js +1 -1
  294. package/src/sap/ui/model/CompositeType.js +1 -1
  295. package/src/sap/ui/model/Context.js +3 -0
  296. package/src/sap/ui/model/ContextBinding.js +1 -1
  297. package/src/sap/ui/model/DataState.js +3 -3
  298. package/src/sap/ui/model/ListBinding.js +2 -2
  299. package/src/sap/ui/model/ManagedObjectBindingSupport.js +871 -0
  300. package/src/sap/ui/model/MetaModel.js +1 -1
  301. package/src/sap/ui/model/Model.js +16 -5
  302. package/src/sap/ui/model/SelectionModel.js +1 -1
  303. package/src/sap/ui/model/SimpleType.js +2 -2
  304. package/src/sap/ui/model/Sorter.js +2 -2
  305. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  306. package/src/sap/ui/model/Type.js +1 -1
  307. package/src/sap/ui/model/_Helper.js +3 -1
  308. package/src/sap/ui/model/analytics/odata4analytics.js +2 -2
  309. package/src/sap/ui/model/base/ManagedObjectModel.js +2 -2
  310. package/src/sap/ui/model/json/JSONModel.js +2 -2
  311. package/src/sap/ui/model/message/MessageModel.js +1 -1
  312. package/src/sap/ui/model/odata/AnnotationHelper.js +4 -4
  313. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  314. package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
  315. package/src/sap/ui/model/odata/ODataMetaModel.js +10 -10
  316. package/src/sap/ui/model/odata/ODataMetadata.js +6 -3
  317. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  318. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +459 -268
  319. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  320. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  321. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  322. package/src/sap/ui/model/odata/type/Date.js +1 -1
  323. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  324. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  325. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  326. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  327. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  328. package/src/sap/ui/model/odata/type/Double.js +1 -1
  329. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  330. package/src/sap/ui/model/odata/type/Int.js +1 -1
  331. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  332. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  333. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  334. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  335. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  336. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  337. package/src/sap/ui/model/odata/type/Single.js +1 -1
  338. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  339. package/src/sap/ui/model/odata/type/String.js +1 -1
  340. package/src/sap/ui/model/odata/type/Time.js +1 -1
  341. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  342. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  343. package/src/sap/ui/model/odata/v2/Context.js +5 -5
  344. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  345. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +5 -2
  346. package/src/sap/ui/model/odata/v2/ODataListBinding.js +26 -1
  347. package/src/sap/ui/model/odata/v2/ODataModel.js +164 -125
  348. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +18 -2
  349. package/src/sap/ui/model/odata/v4/AnnotationHelper.js +3 -3
  350. package/src/sap/ui/model/odata/v4/Context.js +169 -79
  351. package/src/sap/ui/model/odata/v4/ODataBinding.js +51 -12
  352. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +111 -92
  353. package/src/sap/ui/model/odata/v4/ODataListBinding.js +206 -150
  354. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +13 -10
  355. package/src/sap/ui/model/odata/v4/ODataModel.js +249 -28
  356. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +33 -18
  357. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +17 -11
  358. package/src/sap/ui/model/odata/v4/ODataUtils.js +7 -4
  359. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +142 -35
  360. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +167 -16
  361. package/src/sap/ui/model/odata/v4/lib/_Cache.js +388 -188
  362. package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +2 -3
  363. package/src/sap/ui/model/odata/v4/lib/_Helper.js +119 -43
  364. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +2 -3
  365. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +13 -6
  366. package/src/sap/ui/model/resource/ResourceModel.js +2 -2
  367. package/src/sap/ui/model/type/Boolean.js +1 -1
  368. package/src/sap/ui/model/type/Currency.js +2 -2
  369. package/src/sap/ui/model/type/Date.js +1 -1
  370. package/src/sap/ui/model/type/DateInterval.js +1 -1
  371. package/src/sap/ui/model/type/DateTime.js +1 -1
  372. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  373. package/src/sap/ui/model/type/FileSize.js +1 -1
  374. package/src/sap/ui/model/type/Float.js +1 -1
  375. package/src/sap/ui/model/type/Integer.js +1 -1
  376. package/src/sap/ui/model/type/String.js +2 -2
  377. package/src/sap/ui/model/type/Time.js +1 -1
  378. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  379. package/src/sap/ui/model/type/Unit.js +1 -1
  380. package/src/sap/ui/model/xml/XMLModel.js +4 -2
  381. package/src/sap/ui/performance/trace/FESR.js +27 -24
  382. package/src/sap/ui/performance/trace/Interaction.js +66 -16
  383. package/src/sap/ui/qunit/QUnitUtils.js +1 -2
  384. package/src/sap/ui/qunit/sinon-qunit-bridge.js +1 -1
  385. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  386. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  387. package/src/sap/ui/test/Opa5.js +1 -1
  388. package/src/sap/ui/test/OpaBuilder.js +1 -1
  389. package/src/sap/ui/test/TestUtils.js +35 -2
  390. package/src/sap/ui/test/actions/Press.js +7 -0
  391. package/src/sap/ui/test/generic/TestBase.js +1 -1
  392. package/src/sap/ui/test/matchers/AggregationContainsPropertyEqual.js +2 -3
  393. package/src/sap/ui/test/matchers/AggregationFilled.js +2 -3
  394. package/src/sap/ui/test/matchers/AggregationLengthEquals.js +2 -3
  395. package/src/sap/ui/test/matchers/Matcher.js +9 -11
  396. package/src/sap/ui/test/opaQunit.js +15 -9
  397. package/src/sap/ui/test/pipelines/ActionPipeline.js +2 -3
  398. package/src/sap/ui/test/pipelines/MatcherPipeline.js +2 -3
  399. package/src/sap/ui/test/pipelines/PipelineFactory.js +2 -3
  400. package/src/sap/ui/thirdparty/IPv6.js +1 -1
  401. package/src/sap/ui/thirdparty/SecondLevelDomains.js +1 -1
  402. package/src/sap/ui/thirdparty/URI.js +8 -2
  403. package/src/sap/ui/thirdparty/URITemplate.js +1 -1
  404. package/src/sap/ui/util/Storage.js +1 -1
  405. package/src/sap/ui/util/XMLHelper.js +1 -1
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  /**
19
19
  * @classdesc
20
20
  * This object provides persistent caching functionality.
21
- * The component is both private and experimental. It is currently supported to a limited set of environments:
21
+ * The component is both private and restricted to framework core usage. It is currently supported to a limited set of environments:
22
22
  * <ul>
23
23
  * <li>Google Chrome(version >=49) for desktop</li>
24
24
  * <li>Internet Explorer(version >=11) for desktop.</li>
@@ -55,7 +55,7 @@ sap.ui.define([
55
55
  * </ul>
56
56
  * @see sap.ui.core.Configuration
57
57
  * @private
58
- * @experimental
58
+ * @ui5-restricted sap.ui.core
59
59
  * @since 1.40.0
60
60
  * @namespace
61
61
  * @alias sap.ui.core.cache.CacheManager
@@ -129,10 +129,10 @@ sap.ui.define([
129
129
  Log.debug("Cache Manager: Setting value of type[" + typeof value + "] with key [" + key + "]");
130
130
 
131
131
  pSet = this._callInstanceMethod("set", arguments).then(function callInstanceHandler() {
132
- Log.debug("Cache Manager: Setting key [" + key + "] completed successfully");
132
+ this.logResolved("set");
133
133
  oMsr.endAsync();
134
134
  //nothing to return, just logging.
135
- }, function (e) {
135
+ }.bind(this), function (e) {
136
136
  Log.error("Cache Manager: Setting key [" + key + "] failed. Error:" + e);
137
137
  oMsr.endAsync();
138
138
  throw e;
@@ -144,11 +144,11 @@ sap.ui.define([
144
144
  /**
145
145
  * Retrieves a value for given key.
146
146
  * @param key the key to retrieve a value for
147
- * @returns {Promise} a promise that would be resolved in case of successful operation or rejected with
147
+ * @returns {Promise<any|undefined>} a promise that would be resolved in case of successful operation or rejected with
148
148
  * value of the error message if the operation fails. It resolves with a value that is either:
149
149
  * <ul>
150
150
  * <li>undefined - the entry does not exist</li>
151
- * <li>any other - the entry exists and value contains the actually one</li>
151
+ * <li>any other - the entry exists and value contains the actual one</li>
152
152
  * </ul>
153
153
  * @public
154
154
  */
@@ -159,10 +159,10 @@ sap.ui.define([
159
159
 
160
160
  Log.debug("Cache Manager: Getting key [" + key + "]");
161
161
  pGet = this._callInstanceMethod("get", arguments).then(function callInstanceHandler(v) {
162
- Log.debug("Cache Manager: Getting key [" + key + "] done");
162
+ this.logResolved("get");
163
163
  oMsr.endAsync();
164
164
  return v;
165
- }, function (e) {
165
+ }.bind(this), function (e) {
166
166
  Log.debug("Cache Manager: Getting key [" + key + "] failed. Error: " + e);
167
167
  oMsr.endAsync();
168
168
  throw e;
@@ -184,10 +184,10 @@ sap.ui.define([
184
184
  Log.debug("Cache Manager: has key [" + key + "] called");
185
185
 
186
186
  pHas = this._callInstanceMethod("has", arguments).then(function callInstanceHandler(result) {
187
+ this.logResolved("has");
187
188
  oMsr.endAsync();
188
- Log.debug("Cache Manager: has key [" + key + "] returned " + result);
189
189
  return result;
190
- });
190
+ }.bind(this));
191
191
  oMsr.endSync();
192
192
  return pHas;
193
193
  },
@@ -204,10 +204,10 @@ sap.ui.define([
204
204
  Log.debug("Cache Manager: del called.");
205
205
 
206
206
  pDel = this._callInstanceMethod("del", arguments).then(function callInstanceHandler() {
207
- Log.debug("Cache Manager: del completed successfully.");
207
+ this.logResolved("del");
208
208
  oMsr.endAsync();
209
209
  //nothing to return, just logging.
210
- }, function (e) {
210
+ }.bind(this), function (e) {
211
211
  Log.debug("Cache Manager: del failed. Error: " + e);
212
212
  oMsr.endAsync();
213
213
  throw e;
@@ -234,8 +234,8 @@ sap.ui.define([
234
234
  Log.debug("Cache Manager: delWithFilters called.");
235
235
 
236
236
  pDel = this._callInstanceMethod("delWithFilters", arguments).then(function callInstanceHandler() {
237
- Log.debug("Cache Manager: delWithFilters completed successfully.");
238
- }, function (e) {
237
+ this.logResolved("delWithFilters");
238
+ }.bind(this), function (e) {
239
239
  Log.debug("Cache Manager: delWithFilters failed. Error: " + e);
240
240
  throw e;
241
241
  });
@@ -254,10 +254,10 @@ sap.ui.define([
254
254
  Log.debug("Cache Manager: Reset called.");
255
255
 
256
256
  pReset = this._callInstanceMethod("reset", arguments).then(function callInstanceHandler() {
257
- Log.debug("Cache Manager: Reset completed successfully.");
257
+ this.logResolved("reset");
258
258
  oMsr.endAsync();
259
259
  //nothing to return, just logging.
260
- }, function (e) {
260
+ }.bind(this), function (e) {
261
261
  Log.debug("Cache Manager: Reset failed. Error: " + e);
262
262
  oMsr.endAsync();
263
263
  throw e;
@@ -379,6 +379,10 @@ sap.ui.define([
379
379
  });
380
380
  }
381
381
  return this._bSupportedEnvironment;
382
+ },
383
+
384
+ logResolved: function(sFnName) {
385
+ this._instance.logResolved && this._instance.logResolved(sFnName);
382
386
  }
383
387
  };
384
388
 
@@ -4,8 +4,8 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- sap.ui.define([],
8
- function () {
7
+ sap.ui.define(["sap/base/Log"],
8
+ function (Log) {
9
9
  "use strict";
10
10
 
11
11
  /**
@@ -20,6 +20,9 @@ sap.ui.define([],
20
20
  */
21
21
  var CacheManagerNOP = {
22
22
  name: "CacheManagerNOP",
23
+ logResolved: function(sFnName) {
24
+ Log.debug("Cache Manager is not supported on this environment.");
25
+ },
23
26
  set: function () {
24
27
  return Promise.resolve();
25
28
  },
@@ -4,14 +4,14 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
8
- function(Log, Measurement) {
7
+ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement", "sap/ui/Global"],
8
+ function(Log, Measurement, Global) {
9
9
  "use strict";
10
10
 
11
11
  /**
12
12
  * @classdesc
13
13
  * This object provides cache functionality with persistence in IndexedDB.
14
- * The component is an experimental and private.
14
+ * The component is private and restricted to the factory class sap.ui.core.cache.CacheManager.
15
15
  * Do not use outside UI5 framework itself.
16
16
  * This implementation works with entries corresponding to a single ui5 version.
17
17
  * If the cache is loaded with different ui5 version, all previous entries will be deleted. The latter behavior is about of a further changes (feature requests)
@@ -20,7 +20,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
20
20
  *
21
21
  * Do not use it directly, use {@link sap.ui.core.cache.CacheManager} instead
22
22
  * @private
23
- * @experimental
23
+ * @ui5-restricted sap.ui.core.cache.CacheManager, sap.ui.core.Configuration
24
24
  * @since 1.40.0
25
25
  * @namespace
26
26
  * @alias sap.ui.core.cache.LRUPersistentCache
@@ -28,6 +28,9 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
28
28
 
29
29
  var LRUPersistentCache = {
30
30
  name: "LRUPersistentCache",
31
+ logResolved: function(sFnName) {
32
+ Log.debug("Cache Manager: " + sFnName + " completed successfully.");
33
+ },
31
34
 
32
35
  defaultOptions: {
33
36
  databaseName: "ui5-cachemanager-db",
@@ -166,8 +169,12 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
166
169
  Log.warning("Cache Manager ignored 'has' for key [" + key + "]");
167
170
  return Promise.resolve(false);
168
171
  }
169
- return this.get(key).then(function (value) {
170
- return typeof value !== "undefined";
172
+ return this.get(key).then(function(value) {
173
+ var result = typeof value !== "undefined";
174
+
175
+ Log.debug("Cache Manager: has key [" + key + "] returned " + result);
176
+
177
+ return result;
171
178
  });
172
179
  },
173
180
 
@@ -366,7 +373,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
366
373
  transaction.abort();
367
374
  };
368
375
  clearMetadataStoreReq.onsuccess = function () {
369
- self._metadata = initMetadata(sap.ui.version);
376
+ self._metadata = initMetadata(Global.version);
370
377
  assignRUCounters(self);
371
378
  };
372
379
  };
@@ -664,7 +671,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/performance/Measurement"],
664
671
  }
665
672
 
666
673
  function initIndexedDB(instance) {
667
- instance._ui5version = sap.ui.version;
674
+ instance._ui5version = Global.version;
668
675
  return new Promise(function executorInitIndexedDB(resolve, reject) {
669
676
  var DBOpenRequest;
670
677
 
@@ -5393,7 +5393,6 @@
5393
5393
  "weekData-firstDay": 0,
5394
5394
  "weekData-weekendStart": 6,
5395
5395
  "weekData-weekendEnd": 0,
5396
- "weekData-algorithm": "FIRSTDAY_STARTS_FIRSTWEEK",
5397
5396
  "timeData": {
5398
5397
  "_allowed": "h hb H hB",
5399
5398
  "_preferred": "h"
@@ -1107,9 +1107,9 @@
1107
1107
  "yMd": "d/M/y",
1108
1108
  "yMEd": "E d/M/y",
1109
1109
  "yMM": "M/y",
1110
- "yMMM": "MMMM 'de' y",
1111
- "yMMMd": "d 'de' MMMM 'de' y",
1112
- "yMMMEd": "E, d 'de' MMM 'de' y",
1110
+ "yMMM": "MMM y",
1111
+ "yMMMd": "d MMM y",
1112
+ "yMMMEd": "E, d MMM y",
1113
1113
  "yMMMM": "MMMM 'de' y",
1114
1114
  "yMMMMd": "d 'de' MMMM 'de' y",
1115
1115
  "yMMMMEd": "EEE, d 'de' MMMM 'de' y",
@@ -1107,9 +1107,9 @@
1107
1107
  "yMd": "dd-MM-y",
1108
1108
  "yMEd": "E dd-MM-y",
1109
1109
  "yMM": "M/y",
1110
- "yMMM": "MMMM 'de' y",
1111
- "yMMMd": "d 'de' MMMM 'de' y",
1112
- "yMMMEd": "E, d 'de' MMM 'de' y",
1110
+ "yMMM": "MMM y",
1111
+ "yMMMd": "d MMM y",
1112
+ "yMMMEd": "E, d MMM y",
1113
1113
  "yMMMM": "MMMM 'de' y",
1114
1114
  "yMMMMd": "d 'de' MMMM 'de' y",
1115
1115
  "yMMMMEd": "EEE, d 'de' MMMM 'de' y",
@@ -1107,9 +1107,9 @@
1107
1107
  "yMd": "d/M/y",
1108
1108
  "yMEd": "E, d/M/y",
1109
1109
  "yMM": "MM/y",
1110
- "yMMM": "MMMM 'de' y",
1111
- "yMMMd": "d 'de' MMMM 'de' y",
1112
- "yMMMEd": "EEE, d 'de' MMMM 'de' y",
1110
+ "yMMM": "MMM y",
1111
+ "yMMMd": "d MMM y",
1112
+ "yMMMEd": "EEE, d 'de' MMM 'de' y",
1113
1113
  "yMMMM": "MMMM 'de' y",
1114
1114
  "yMMMMd": "d 'de' MMMM 'de' y",
1115
1115
  "yMMMMEd": "EEE, d 'de' MMMM 'de' y",
@@ -1107,9 +1107,9 @@
1107
1107
  "yMd": "d/M/y",
1108
1108
  "yMEd": "E d/M/y",
1109
1109
  "yMM": "M/y",
1110
- "yMMM": "MMMM 'de' y",
1111
- "yMMMd": "d 'de' MMMM 'de' y",
1112
- "yMMMEd": "E, d 'de' MMM 'de' y",
1110
+ "yMMM": "MMM y",
1111
+ "yMMMd": "d MMM y",
1112
+ "yMMMEd": "E, d MMM y",
1113
1113
  "yMMMM": "MMMM 'de' y",
1114
1114
  "yMMMMd": "d 'de' MMMM 'de' y",
1115
1115
  "yMMMMEd": "EEE, d 'de' MMMM 'de' y",
@@ -1107,9 +1107,9 @@
1107
1107
  "yMd": "d/M/y",
1108
1108
  "yMEd": "E d/M/y",
1109
1109
  "yMM": "M/y",
1110
- "yMMM": "MMMM 'de' y",
1111
- "yMMMd": "d 'de' MMMM 'de' y",
1112
- "yMMMEd": "E, d 'de' MMM 'de' y",
1110
+ "yMMM": "MMM y",
1111
+ "yMMMd": "d MMM y",
1112
+ "yMMMEd": "E, d MMM y",
1113
1113
  "yMMMM": "MMMM 'de' y",
1114
1114
  "yMMMMd": "d 'de' MMMM 'de' y",
1115
1115
  "yMMMMEd": "EEE, d 'de' MMMM 'de' y",
@@ -1107,9 +1107,9 @@
1107
1107
  "yMd": "d/M/y",
1108
1108
  "yMEd": "E d/M/y",
1109
1109
  "yMM": "M/y",
1110
- "yMMM": "MMMM 'de' y",
1110
+ "yMMM": "MMM y",
1111
1111
  "yMMMd": "d MMM y",
1112
- "yMMMEd": "E, d 'de' MMM 'de' y",
1112
+ "yMMMEd": "E, d MMM y",
1113
1113
  "yMMMM": "MMMM 'de' y",
1114
1114
  "yMMMMd": "d 'de' MMMM 'de' y",
1115
1115
  "yMMMMEd": "EEE, d 'de' MMMM 'de' y",
@@ -9,13 +9,21 @@ sap.ui.define(['./UniversalDate', '../CalendarType', './_Calendars'],
9
9
  function(UniversalDate, CalendarType, _Calendars) {
10
10
  "use strict";
11
11
 
12
-
13
12
  /**
14
13
  * The Buddhist date class
15
14
  *
16
15
  * @class
17
- * The Buddhist date implements the Thai solar calendar (BE). In this calendar the year is offset by 543 compared to the
18
- * Gregorian calendar. Before 1941 the year start was 1st of April, so Januar to March belong to the previous year.
16
+ * The Buddhist date implements the Thai solar calendar (BE - Buddhist Era). In this calendar
17
+ * the year is offset by 543 compared to the Gregorian calendar.
18
+ * e.g. Year 2022 CE corresponds to 2565 BE
19
+ *
20
+ *
21
+ * Before 1941 CE the year start was 1st of April, so Januar to March belong to the previous year.
22
+ * <pre>
23
+ * Month | 1-3 | 4-6 | 7-9 | 10-12 | 1-3 | 4-6 | 7-9 | 10-12 | 1-3 | 4-6 | 7-9 | 10-12 | 1-3 | 4-6 | 7-9 | 10-12 |
24
+ * CE | 1939 | 1940 | 1941 | 1942 |
25
+ * BE 2481 | 2482 | 2483 | 2484 | 2485 |
26
+ * </pre>
19
27
  *
20
28
  * @private
21
29
  * @alias sap.ui.core.date.Buddhist
@@ -44,8 +52,8 @@ sap.ui.define(['./UniversalDate', '../CalendarType', './_Calendars'],
44
52
  /**
45
53
  * Find the matching Buddhist date for the given gregorian date
46
54
  *
47
- * @param {object} oGregorian
48
- * @return {object}
55
+ * @param {{year: int, month: int, day: int}} oGregorian Gregorian date
56
+ * @return {{year: int, month: int, day: int}} the resulting Buddhist date
49
57
  */
50
58
  function toBuddhist(oGregorian) {
51
59
  var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Buddhist, 0).year,
@@ -67,8 +75,8 @@ sap.ui.define(['./UniversalDate', '../CalendarType', './_Calendars'],
67
75
  /**
68
76
  * Calculate gregorian year from Buddhist year and month
69
77
  *
70
- * @param {object} oBuddhist
71
- * @return {int}
78
+ * @param {{year: int, month: int, day: int}} oBuddhist Buddhist date
79
+ * @return {{year: int, month: int, day: int}} the resulting Gregorian date
72
80
  */
73
81
  function toGregorian(oBuddhist) {
74
82
  var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Buddhist, 0).year,
@@ -188,12 +196,6 @@ sap.ui.define(['./UniversalDate', '../CalendarType', './_Calendars'],
188
196
  }
189
197
  return this._setUTCBuddhist(oBuddhist);
190
198
  };
191
- Buddhist.prototype.getWeek = function() {
192
- return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());
193
- };
194
- Buddhist.prototype.getUTCWeek = function() {
195
- return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());
196
- };
197
199
 
198
200
  _Calendars.set(CalendarType.Buddhist, Buddhist);
199
201
 
@@ -230,12 +230,6 @@ sap.ui.define(['./UniversalDate', '../CalendarType', './_Calendars'],
230
230
  }
231
231
  return this._setUTCJapanese(oJapanese);
232
232
  };
233
- Japanese.prototype.getWeek = function() {
234
- return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());
235
- };
236
- Japanese.prototype.getUTCWeek = function() {
237
- return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());
238
- };
239
233
 
240
234
  _Calendars.set(CalendarType.Japanese, Japanese);
241
235
 
@@ -153,18 +153,64 @@ sap.ui.define(['sap/ui/base/Object', 'sap/ui/core/LocaleData', './_Calendars'],
153
153
  UniversalDate.prototype.setUTCEra = function(iEra) {
154
154
  // The default implementation does not support setting the era
155
155
  };
156
- UniversalDate.prototype.getWeek = function() {
157
- return UniversalDate.getWeekByDate(this.sCalendarType, this.getFullYear(), this.getMonth(), this.getDate());
156
+
157
+ /**
158
+ * Retrieves the calendar week
159
+ *
160
+ * @param {sap.ui.core.Locale} oLocale the locale used to get the calendar week calculation properties, defaults to the formatLocale
161
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} oWeekConfig calendar week calculation parameters,
162
+ * defaults to oLocale but has precedence over oLocale if both are provided.
163
+ * @returns {{week: number, year: number}} resulting calendar week, note: week index starts with <code>0</code>
164
+ * @private
165
+ */
166
+ UniversalDate.prototype.getWeek = function(oLocale, oWeekConfig) {
167
+ checkWeekConfig(oWeekConfig);
168
+ return UniversalDate.getWeekByDate(this.sCalendarType, this.getFullYear(), this.getMonth(), this.getDate(), oLocale, oWeekConfig);
158
169
  };
159
- UniversalDate.prototype.setWeek = function(oWeek) {
160
- var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week);
170
+
171
+ /**
172
+ * Sets the calendar week
173
+ *
174
+ * @param {{week: number, year: number}} oWeek the calendar week, note: week index starts with <code>0</code>,
175
+ * <code>oWeek.year</code> is optional and defaults to {@link sap.ui.core.date.UniversalDate#getFullYear}
176
+ * @param {sap.ui.core.Locale} oLocale the locale used to get the calendar week calculation properties, defaults to the formatLocale
177
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} oWeekConfig calendar week calculation parameters,
178
+ * defaults to oLocale but has precedence over oLocale if both are provided.
179
+ * @private
180
+ */
181
+ UniversalDate.prototype.setWeek = function(oWeek, oLocale, oWeekConfig) {
182
+ checkWeekConfig(oWeekConfig);
183
+ var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week, oLocale, oWeekConfig);
161
184
  this.setFullYear(oDate.year, oDate.month, oDate.day);
162
185
  };
163
- UniversalDate.prototype.getUTCWeek = function() {
164
- return UniversalDate.getWeekByDate(this.sCalendarType, this.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());
186
+
187
+ /**
188
+ * Retrieves the UTC calendar week
189
+ *
190
+ * @param {sap.ui.core.Locale} oLocale the locale used to get the calendar week calculation properties, defaults to the formatLocale
191
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} oWeekConfig calendar week calculation parameters,
192
+ * defaults to oLocale but has precedence over oLocale if both are provided.
193
+ * @returns {{week: number, year: number}} resulting calendar week, note: week index starts with <code>0</code>
194
+ * @private
195
+ */
196
+ UniversalDate.prototype.getUTCWeek = function(oLocale, oWeekConfig) {
197
+ checkWeekConfig(oWeekConfig);
198
+ return UniversalDate.getWeekByDate(this.sCalendarType, this.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate(), oLocale, oWeekConfig);
165
199
  };
166
- UniversalDate.prototype.setUTCWeek = function(oWeek) {
167
- var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week);
200
+
201
+ /**
202
+ * Sets the UTC calendar week
203
+ *
204
+ * @param {{week: number, year: number}} oWeek the calendar week, note: week index starts with <code>0</code>,
205
+ * <code>oWeek.year</code> is optional and defaults to {@link sap.ui.core.date.UniversalDate#getFullYear}
206
+ * @param {sap.ui.core.Locale} oLocale the locale used to get the calendar week calculation properties, defaults to the formatLocale
207
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} oWeekConfig calendar week calculation parameters,
208
+ * defaults to oLocale but has precedence over oLocale if both are provided.
209
+ * @private
210
+ */
211
+ UniversalDate.prototype.setUTCWeek = function(oWeek, oLocale, oWeekConfig) {
212
+ checkWeekConfig(oWeekConfig);
213
+ var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week, oLocale, oWeekConfig);
168
214
  this.setUTCFullYear(oDate.year, oDate.month, oDate.day);
169
215
  };
170
216
  UniversalDate.prototype.getQuarter = function() {
@@ -207,22 +253,40 @@ sap.ui.define(['sap/ui/base/Object', 'sap/ui/core/LocaleData', './_Calendars'],
207
253
  */
208
254
  var iMillisecondsInWeek = 7 * 24 * 60 * 60 * 1000;
209
255
 
210
- UniversalDate.getWeekByDate = function(sCalendarType, iYear, iMonth, iDay) {
211
- var oLocale = sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale(),
212
- oLocaleData = LocaleData.getInstance(oLocale),
213
- clDate = this.getClass(sCalendarType),
214
- oFirstDay = getFirstDayOfFirstWeek(clDate, iYear),
215
- oDate = new clDate(clDate.UTC(iYear, iMonth, iDay)),
216
- iWeek, iLastYear, iNextYear, oLastFirstDay, oNextFirstDay;
256
+ /**
257
+ * Retrieves the calendar week for a given date, specified by year, month, and day.
258
+ *
259
+ * @param {string} sCalendarType the calendar type, e.g. <code>"Gregorian"</code>
260
+ * @param {int} iYear year, e.g. <code>2016</code>
261
+ * @param {int} iMonth the month, e.g. <code>2</code>
262
+ * @param {int} iDay the date, e.g. <code>3</code>
263
+ * @param {sap.ui.core.Locale} [oLocale] the locale used for the week calculation, if oWeekConfig is not provided (falls back to the formatLocale)
264
+ * e.g. <code>new Locale("de-DE")</code>
265
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} [oWeekConfig] calendar week calculation parameters,
266
+ * defaults to oLocale but has precedence over oLocale if both are provided.
267
+ * Both properties firstDayOfWeek and minimalDaysInFirstWeek must be provided, otherwise it will be ignored.
268
+ * If provided US split week is ignored.
269
+ * e.g. <code>{firstDayOfWeek: 1, minimalDaysInFirstWeek: 4}</code>
270
+ * @returns {{week: number, year: number}} resulting calendar week, note: week index starts with <code>0</code>, e.g. <code>{year: 2016, week: 8}</code>
271
+ * @private
272
+ */
273
+ UniversalDate.getWeekByDate = function(sCalendarType, iYear, iMonth, iDay, oLocale, oWeekConfig) {
274
+ oLocale = oLocale || sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale();
275
+ var oLocaleData = LocaleData.getInstance(oLocale);
276
+ var clDate = this.getClass(sCalendarType);
277
+ var oFirstDay = getFirstDayOfFirstWeek(clDate, iYear, oLocale, oWeekConfig);
278
+ var oDate = new clDate(clDate.UTC(iYear, iMonth, iDay));
279
+ var iWeek, iLastYear, iNextYear, oLastFirstDay, oNextFirstDay;
217
280
  // If region is US, always calculate the week for the current year, otherwise
218
281
  // the week might be the last week of the previous year or first week of next year
219
- if (oLocaleData.firstDayStartsFirstWeek()) {
282
+ var bSplitWeek = (!oWeekConfig || oWeekConfig.minimalDaysInFirstWeek === undefined || oWeekConfig.firstDayOfWeek === undefined) && oLocaleData.firstDayStartsFirstWeek();
283
+ if (bSplitWeek) {
220
284
  iWeek = calculateWeeks(oFirstDay, oDate);
221
285
  } else {
222
286
  iLastYear = iYear - 1;
223
287
  iNextYear = iYear + 1;
224
- oLastFirstDay = getFirstDayOfFirstWeek(clDate, iLastYear);
225
- oNextFirstDay = getFirstDayOfFirstWeek(clDate, iNextYear);
288
+ oLastFirstDay = getFirstDayOfFirstWeek(clDate, iLastYear, oLocale, oWeekConfig);
289
+ oNextFirstDay = getFirstDayOfFirstWeek(clDate, iNextYear, oLocale, oWeekConfig);
226
290
  if (oDate >= oNextFirstDay) {
227
291
  iYear = iNextYear;
228
292
  iWeek = 0;
@@ -239,17 +303,32 @@ sap.ui.define(['sap/ui/base/Object', 'sap/ui/core/LocaleData', './_Calendars'],
239
303
  };
240
304
  };
241
305
 
242
- UniversalDate.getFirstDateOfWeek = function(sCalendarType, iYear, iWeek) {
243
- var oLocale = sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale(),
244
- oLocaleData = LocaleData.getInstance(oLocale),
245
- clDate = this.getClass(sCalendarType),
246
- oFirstDay = getFirstDayOfFirstWeek(clDate, iYear),
247
- oDate = new clDate(oFirstDay.valueOf() + iWeek * iMillisecondsInWeek),
248
- bIsRegionUS = oLocaleData.firstDayStartsFirstWeek();
306
+ /**
307
+ * Retrieves the first day's date of the given week in the given year.
308
+ *
309
+ * @param {string} sCalendarType the calendar type, e.g. <code>"Gregorian"</code>
310
+ * @param {int} iYear year, e.g. <code>2016</code>
311
+ * @param {int} iWeek the calendar week index, e.g. <code>8</code>
312
+ * @param {sap.ui.core.Locale} [oLocale] the locale used for the week calculation, if oWeekConfig is not provided (falls back to the formatLocale)
313
+ * e.g. <code>new Locale("de-DE")</code>
314
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} [oWeekConfig] calendar week calculation parameters,
315
+ * defaults to oLocale but has precedence over oLocale if both are provided.
316
+ * Both properties firstDayOfWeek and minimalDaysInFirstWeek must be provided, otherwise it will be ignored.
317
+ * If provided US split week is ignored.
318
+ * e.g. <code>{firstDayOfWeek: 1, minimalDaysInFirstWeek: 4}</code>
319
+ * @returns {{month: number, year: number, day: number}} the resulting date, e.g. <code>{year: 2016, month: 1, day: 29}</code>
320
+ * @private
321
+ */
322
+ UniversalDate.getFirstDateOfWeek = function(sCalendarType, iYear, iWeek, oLocale, oWeekConfig) {
323
+ oLocale = oLocale || sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale();
324
+ var oLocaleData = LocaleData.getInstance(oLocale);
325
+ var clDate = this.getClass(sCalendarType);
326
+ var oFirstDay = getFirstDayOfFirstWeek(clDate, iYear, oLocale, oWeekConfig);
327
+ var oDate = new clDate(oFirstDay.valueOf() + iWeek * iMillisecondsInWeek);
249
328
  //If first day of week is in last year and region is US, return the
250
329
  //1st of January instead for symmetric behaviour
251
-
252
- if (bIsRegionUS && iWeek === 0 && oFirstDay.getUTCFullYear() < iYear) {
330
+ var bSplitWeek = (!oWeekConfig || oWeekConfig.minimalDaysInFirstWeek === undefined || oWeekConfig.firstDayOfWeek === undefined) && oLocaleData.firstDayStartsFirstWeek();
331
+ if (bSplitWeek && iWeek === 0 && oFirstDay.getUTCFullYear() < iYear) {
253
332
  return {
254
333
  year: iYear,
255
334
  month: 0,
@@ -263,13 +342,44 @@ sap.ui.define(['sap/ui/base/Object', 'sap/ui/core/LocaleData', './_Calendars'],
263
342
  };
264
343
  };
265
344
 
266
- function getFirstDayOfFirstWeek(clDate, iYear) {
267
- var oLocale = sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale(),
268
- oLocaleData = LocaleData.getInstance(oLocale),
269
- iMinDays = oLocaleData.getMinimalDaysInFirstWeek(),
270
- iFirstDayOfWeek = oLocaleData.getFirstDayOfWeek(),
271
- oFirstDay = new clDate(clDate.UTC(iYear, 0, 1)),
272
- iDayCount = 7;
345
+ function checkWeekConfig(oWeekConfig) {
346
+ if (oWeekConfig) {
347
+ if (oWeekConfig.firstDayOfWeek === undefined && oWeekConfig.minimalDaysInFirstWeek !== undefined
348
+ || oWeekConfig.firstDayOfWeek !== undefined && oWeekConfig.minimalDaysInFirstWeek === undefined) {
349
+ throw new Error("Week config requires both firstDayOfWeek and minimalDaysInFirstWeek to be set");
350
+ }
351
+ }
352
+ }
353
+
354
+ /**
355
+ * Returns the first day of the first week in the given year.
356
+ *
357
+ * @param {UniversalDate} clDate the date class
358
+ * @param {int} iYear year, e.g. <code>2016</code>
359
+ * @param {sap.ui.core.Locale} [oLocale] the locale used for the week calculation, if oWeekConfig is not provided (falls back to the formatLocale)
360
+ * e.g. <code>new Locale("de-DE")</code>
361
+ * @param {{firstDayOfWeek: int, minimalDaysInFirstWeek: int}} [oWeekConfig] calendar week calculation parameters,
362
+ * defaults to oLocale but has precedence over oLocale if both are provided.
363
+ * Both properties firstDayOfWeek and minimalDaysInFirstWeek must be provided, otherwise it will be ignored.
364
+ * If provided US split week is ignored.
365
+ * e.g. <code>{firstDayOfWeek: 1, minimalDaysInFirstWeek: 4}</code>
366
+ * @returns {Date} first day of the first week in the given year, e.g. <code>Mon Jan 04 2016 01:00:00 GMT+0100</code>
367
+ * @private
368
+ */
369
+ function getFirstDayOfFirstWeek(clDate, iYear, oLocale, oWeekConfig) {
370
+ oLocale = oLocale || sap.ui.getCore().getConfiguration().getFormatSettings().getFormatLocale();
371
+ var oLocaleData = LocaleData.getInstance(oLocale);
372
+ var iMinDays;
373
+ var iFirstDayOfWeek;
374
+ if (oWeekConfig && oWeekConfig.minimalDaysInFirstWeek !== undefined && oWeekConfig.firstDayOfWeek !== undefined) {
375
+ iMinDays = oWeekConfig.minimalDaysInFirstWeek;
376
+ iFirstDayOfWeek = oWeekConfig.firstDayOfWeek;
377
+ } else {
378
+ iMinDays = oLocaleData.getMinimalDaysInFirstWeek();
379
+ iFirstDayOfWeek = oLocaleData.getFirstDayOfWeek();
380
+ }
381
+ var oFirstDay = new clDate(clDate.UTC(iYear, 0, 1));
382
+ var iDayCount = 7;
273
383
 
274
384
  if (isNaN(oFirstDay.getTime())) {
275
385
  throw new Error("Could not determine the first day of the week, because the date " +
@@ -81,7 +81,7 @@ sap.ui.define([
81
81
  * @param {Element[]} aItemDomRefs Array of DOM references representing the items for the navigation
82
82
  * @param {boolean} [bNotInTabChain=false] Whether the selected element should be in the tab chain or not
83
83
  *
84
- * @version 1.103.1
84
+ * @version 1.106.0
85
85
  * @alias sap.ui.core.delegate.ItemNavigation
86
86
  * @public
87
87
  */
@@ -257,7 +257,7 @@ sap.ui.define([
257
257
  /**
258
258
  * Sets the root DOM reference surrounding the items
259
259
  *
260
- * @param {object} oDomRef Root DOM reference
260
+ * @param {Element} oDomRef Root DOM reference
261
261
  * @return {this} <code>this</code> to allow method chaining
262
262
  * @public
263
263
  */
@@ -58,7 +58,7 @@ sap.ui.define([
58
58
  *
59
59
  * @protected
60
60
  * @alias sap.ui.core.delegate.ScrollEnablement
61
- * @version 1.103.1
61
+ * @version 1.106.0
62
62
  * @author SAP SE
63
63
  */
64
64
  var ScrollEnablement = BaseObject.extend("sap.ui.core.delegate.ScrollEnablement", /** @lends sap.ui.core.delegate.ScrollEnablement.prototype */ {
@@ -226,7 +226,7 @@ sap.ui.define([
226
226
  * @param {int} [time=0]
227
227
  * The duration of animated scrolling in milliseconds. To scroll immediately without animation,
228
228
  * give 0 as value.
229
- * @param {function} fnScrollEndCallback
229
+ * @param {function} fnScrollEndCallback Called when the scroll completes or stops without completing
230
230
  * @returns {this}
231
231
  * @public
232
232
  */
@@ -785,10 +785,11 @@ sap.ui.define([
785
785
  _scrollTo: function(x, y, time, fnScrollEndCallback) {
786
786
  if (this._$Container.length > 0) {
787
787
  if (time > 0) {
788
- this._$Container.finish().animate({ scrollTop: y, scrollLeft: x }, time, function() {
789
- this._readActualScrollPosition();
790
- fnScrollEndCallback && fnScrollEndCallback();
791
- }.bind(this));
788
+ this._$Container.finish().animate({ scrollTop: y, scrollLeft: x }, {
789
+ duration: time,
790
+ complete: this._readActualScrollPosition.bind(this),
791
+ always: fnScrollEndCallback
792
+ });
792
793
  } else {
793
794
  this._$Container.scrollTop(y);
794
795
  this._$Container.scrollLeft(x);