@openui5/sap.ui.core 1.112.0 → 1.113.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 (327) hide show
  1. package/.dtsgenrc +16 -1
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -1
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +7 -7
  9. package/src/sap/base/security/URLWhitelist.js +1 -1
  10. package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
  11. package/src/sap/base/util/restricted/_castArray.js +1 -1
  12. package/src/sap/base/util/restricted/_compact.js +1 -1
  13. package/src/sap/base/util/restricted/_curry.js +1 -1
  14. package/src/sap/base/util/restricted/_debounce.js +1 -1
  15. package/src/sap/base/util/restricted/_difference.js +1 -1
  16. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  18. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  21. package/src/sap/base/util/restricted/_flatten.js +1 -1
  22. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  24. package/src/sap/base/util/restricted/_intersection.js +1 -1
  25. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  27. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  29. package/src/sap/base/util/restricted/_isNil.js +1 -1
  30. package/src/sap/base/util/restricted/_max.js +1 -1
  31. package/src/sap/base/util/restricted/_merge.js +1 -1
  32. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  33. package/src/sap/base/util/restricted/_min.js +1 -1
  34. package/src/sap/base/util/restricted/_omit.js +1 -1
  35. package/src/sap/base/util/restricted/_pick.js +1 -1
  36. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  37. package/src/sap/base/util/restricted/_throttle.js +1 -1
  38. package/src/sap/base/util/restricted/_toArray.js +1 -1
  39. package/src/sap/base/util/restricted/_union.js +1 -1
  40. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  41. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  42. package/src/sap/base/util/restricted/_uniq.js +1 -1
  43. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  45. package/src/sap/base/util/restricted/_without.js +1 -1
  46. package/src/sap/base/util/restricted/_xor.js +1 -1
  47. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  48. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  49. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  51. package/src/sap/ui/Device.js +3 -3
  52. package/src/sap/ui/Global.js +4 -4
  53. package/src/sap/ui/base/Event.js +1 -1
  54. package/src/sap/ui/base/EventProvider.js +1 -1
  55. package/src/sap/ui/base/ExpressionParser.js +15 -5
  56. package/src/sap/ui/base/Interface.js +1 -1
  57. package/src/sap/ui/base/ManagedObject.js +4 -2
  58. package/src/sap/ui/base/ManagedObjectMetadata.js +10 -12
  59. package/src/sap/ui/base/Metadata.js +23 -12
  60. package/src/sap/ui/base/Object.js +1 -1
  61. package/src/sap/ui/base/ObjectPool.js +1 -1
  62. package/src/sap/ui/core/.library +1 -1
  63. package/src/sap/ui/core/BusyIndicator.js +1 -1
  64. package/src/sap/ui/core/Component.js +8 -5
  65. package/src/sap/ui/core/ComponentContainer.js +1 -1
  66. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  67. package/src/sap/ui/core/ComponentSupport.js +1 -1
  68. package/src/sap/ui/core/Configuration.js +58 -9
  69. package/src/sap/ui/core/Control.js +22 -5
  70. package/src/sap/ui/core/Core.js +1 -1
  71. package/src/sap/ui/core/CustomData.js +1 -1
  72. package/src/sap/ui/core/CustomStyleClassSupport.js +5 -2
  73. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  74. package/src/sap/ui/core/Element.js +1 -1
  75. package/src/sap/ui/core/ElementMetadata.js +3 -2
  76. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  77. package/src/sap/ui/core/EventBus.js +1 -1
  78. package/src/sap/ui/core/Fragment.js +1 -1
  79. package/src/sap/ui/core/HTML.js +1 -1
  80. package/src/sap/ui/core/History.js +1 -1
  81. package/src/sap/ui/core/Icon.js +1 -1
  82. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  83. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  84. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  85. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  86. package/src/sap/ui/core/InvisibleText.js +1 -1
  87. package/src/sap/ui/core/Item.js +1 -1
  88. package/src/sap/ui/core/LabelEnablement.js +10 -2
  89. package/src/sap/ui/core/LayoutData.js +1 -1
  90. package/src/sap/ui/core/Lib.js +1 -1
  91. package/src/sap/ui/core/ListItem.js +1 -1
  92. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  93. package/src/sap/ui/core/Locale.js +2 -2
  94. package/src/sap/ui/core/LocaleData.js +87 -19
  95. package/src/sap/ui/core/Manifest.js +4 -4
  96. package/src/sap/ui/core/Message.js +1 -1
  97. package/src/sap/ui/core/Popup.js +19 -27
  98. package/src/sap/ui/core/RenderManager.js +7 -1
  99. package/src/sap/ui/core/Renderer.js +1 -1
  100. package/src/sap/ui/core/ResizeHandler.js +1 -1
  101. package/src/sap/ui/core/ScrollBar.js +1 -1
  102. package/src/sap/ui/core/SeparatorItem.js +1 -1
  103. package/src/sap/ui/core/Title.js +1 -1
  104. package/src/sap/ui/core/TooltipBase.js +1 -1
  105. package/src/sap/ui/core/UIArea.js +1 -1
  106. package/src/sap/ui/core/UIComponent.js +3 -2
  107. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  108. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  109. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  110. package/src/sap/ui/core/XMLComposite.js +1 -1
  111. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  112. package/src/sap/ui/core/cache/CacheManager.js +1 -1
  113. package/src/sap/ui/core/cache/LRUPersistentCache.js +1 -1
  114. package/src/sap/ui/core/date/CalendarUtils.js +14 -26
  115. package/src/sap/ui/core/date/CalendarWeekNumbering.js +32 -0
  116. package/src/sap/ui/core/date/UI5Date.js +1 -1
  117. package/src/sap/ui/core/date/UniversalDateUtils.js +4 -4
  118. package/src/sap/ui/core/date/_Calendars.js +1 -1
  119. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  120. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  121. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  122. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  123. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  124. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  125. package/src/sap/ui/core/format/DateFormat.js +103 -30
  126. package/src/sap/ui/core/format/NumberFormat.js +40 -5
  127. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  128. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  129. package/src/sap/ui/core/library.js +3 -3
  130. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  131. package/src/sap/ui/core/message/Message.js +1 -1
  132. package/src/sap/ui/core/message/MessageManager.js +1 -1
  133. package/src/sap/ui/core/message/MessageParser.js +1 -1
  134. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  135. package/src/sap/ui/core/messagebundle_ar.properties +1 -1
  136. package/src/sap/ui/core/messagebundle_cs.properties +1 -1
  137. package/src/sap/ui/core/messagebundle_cy.properties +1 -1
  138. package/src/sap/ui/core/messagebundle_da.properties +1 -1
  139. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  140. package/src/sap/ui/core/messagebundle_el.properties +1 -1
  141. package/src/sap/ui/core/messagebundle_en.properties +1 -1
  142. package/src/sap/ui/core/messagebundle_en_GB.properties +1 -1
  143. package/src/sap/ui/core/messagebundle_es.properties +4 -4
  144. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -1
  145. package/src/sap/ui/core/messagebundle_et.properties +1 -1
  146. package/src/sap/ui/core/messagebundle_fi.properties +1 -1
  147. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  148. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -1
  149. package/src/sap/ui/core/messagebundle_hi.properties +1 -1
  150. package/src/sap/ui/core/messagebundle_hr.properties +1 -1
  151. package/src/sap/ui/core/messagebundle_hu.properties +1 -1
  152. package/src/sap/ui/core/messagebundle_id.properties +1 -1
  153. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  154. package/src/sap/ui/core/messagebundle_iw.properties +1 -1
  155. package/src/sap/ui/core/messagebundle_kk.properties +1 -1
  156. package/src/sap/ui/core/messagebundle_lt.properties +1 -1
  157. package/src/sap/ui/core/messagebundle_lv.properties +1 -1
  158. package/src/sap/ui/core/messagebundle_nl.properties +1 -1
  159. package/src/sap/ui/core/messagebundle_no.properties +1 -1
  160. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  161. package/src/sap/ui/core/messagebundle_pt.properties +1 -1
  162. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -1
  163. package/src/sap/ui/core/messagebundle_ro.properties +1 -1
  164. package/src/sap/ui/core/messagebundle_ru.properties +1 -1
  165. package/src/sap/ui/core/messagebundle_sh.properties +1 -1
  166. package/src/sap/ui/core/messagebundle_sk.properties +1 -1
  167. package/src/sap/ui/core/messagebundle_sl.properties +1 -1
  168. package/src/sap/ui/core/messagebundle_sv.properties +1 -1
  169. package/src/sap/ui/core/messagebundle_th.properties +1 -1
  170. package/src/sap/ui/core/messagebundle_tr.properties +1 -1
  171. package/src/sap/ui/core/messagebundle_uk.properties +1 -1
  172. package/src/sap/ui/core/messagebundle_vi.properties +1 -1
  173. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -1
  174. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -1
  175. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  176. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  177. package/src/sap/ui/core/mvc/JSView.js +1 -1
  178. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  179. package/src/sap/ui/core/mvc/View.js +3 -3
  180. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  181. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  182. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  183. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  184. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  185. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  186. package/src/sap/ui/core/routing/Target.js +1 -1
  187. package/src/sap/ui/core/routing/Targets.js +1 -1
  188. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  189. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  190. package/src/sap/ui/core/service/Service.js +1 -1
  191. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  192. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  193. package/src/sap/ui/core/support/Plugin.js +1 -1
  194. package/src/sap/ui/core/support/Support.js +1 -1
  195. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  196. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  197. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  198. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  199. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  200. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  201. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  202. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  203. package/src/sap/ui/core/themes/base/base.less +3256 -19
  204. package/src/sap/ui/core/theming/ThemeManager.js +6 -3
  205. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  206. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  207. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  208. package/src/sap/ui/core/tmpl/Template.js +1 -1
  209. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  210. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  211. package/src/sap/ui/core/util/Export.js +1 -1
  212. package/src/sap/ui/core/util/ExportCell.js +1 -1
  213. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  214. package/src/sap/ui/core/util/ExportRow.js +1 -1
  215. package/src/sap/ui/core/util/ExportType.js +1 -1
  216. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  217. package/src/sap/ui/core/util/File.js +1 -1
  218. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  219. package/src/sap/ui/core/util/MockServer.js +1 -1
  220. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  221. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  222. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  223. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  224. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  225. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  226. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  227. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  228. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  229. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  230. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  231. package/src/sap/ui/debug/ControlTree.js +1 -1
  232. package/src/sap/ui/debug/DebugEnv.js +1 -1
  233. package/src/sap/ui/debug/PropertyList.js +1 -1
  234. package/src/sap/ui/model/ClientModel.js +1 -1
  235. package/src/sap/ui/model/CompositeBinding.js +1 -1
  236. package/src/sap/ui/model/CompositeDataState.js +1 -1
  237. package/src/sap/ui/model/CompositeType.js +1 -1
  238. package/src/sap/ui/model/DataState.js +1 -1
  239. package/src/sap/ui/model/MetaModel.js +1 -1
  240. package/src/sap/ui/model/Model.js +1 -1
  241. package/src/sap/ui/model/SelectionModel.js +1 -1
  242. package/src/sap/ui/model/SimpleType.js +7 -3
  243. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  244. package/src/sap/ui/model/Type.js +1 -1
  245. package/src/sap/ui/model/json/JSONModel.js +1 -1
  246. package/src/sap/ui/model/message/MessageModel.js +1 -1
  247. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  248. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  249. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  250. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  251. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  252. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  253. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  254. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  255. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  256. package/src/sap/ui/model/odata/type/Date.js +19 -1
  257. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  258. package/src/sap/ui/model/odata/type/DateTimeBase.js +36 -1
  259. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  260. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +4 -1
  261. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  262. package/src/sap/ui/model/odata/type/Double.js +1 -1
  263. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  264. package/src/sap/ui/model/odata/type/Int.js +1 -1
  265. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  266. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  267. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  268. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  269. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  270. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  271. package/src/sap/ui/model/odata/type/Single.js +1 -1
  272. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  273. package/src/sap/ui/model/odata/type/String.js +1 -1
  274. package/src/sap/ui/model/odata/type/Time.js +32 -1
  275. package/src/sap/ui/model/odata/type/TimeOfDay.js +19 -1
  276. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  277. package/src/sap/ui/model/odata/v2/Context.js +72 -28
  278. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +5 -4
  279. package/src/sap/ui/model/odata/v2/ODataListBinding.js +29 -10
  280. package/src/sap/ui/model/odata/v2/ODataModel.js +29 -17
  281. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +8 -1
  282. package/src/sap/ui/model/odata/v4/Context.js +33 -20
  283. package/src/sap/ui/model/odata/v4/ODataBinding.js +50 -21
  284. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  285. package/src/sap/ui/model/odata/v4/ODataListBinding.js +167 -65
  286. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -1
  287. package/src/sap/ui/model/odata/v4/ODataModel.js +4 -3
  288. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +35 -25
  289. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  290. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +87 -18
  291. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +1 -1
  292. package/src/sap/ui/model/odata/v4/lib/_Cache.js +99 -64
  293. package/src/sap/ui/model/odata/v4/lib/_Helper.js +57 -2
  294. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +3 -0
  295. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  296. package/src/sap/ui/model/type/Boolean.js +1 -1
  297. package/src/sap/ui/model/type/Currency.js +1 -1
  298. package/src/sap/ui/model/type/Date.js +1 -1
  299. package/src/sap/ui/model/type/DateInterval.js +1 -1
  300. package/src/sap/ui/model/type/DateTime.js +1 -1
  301. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  302. package/src/sap/ui/model/type/FileSize.js +1 -1
  303. package/src/sap/ui/model/type/Float.js +1 -1
  304. package/src/sap/ui/model/type/Integer.js +1 -1
  305. package/src/sap/ui/model/type/String.js +1 -1
  306. package/src/sap/ui/model/type/Time.js +1 -1
  307. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  308. package/src/sap/ui/model/type/Unit.js +1 -1
  309. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  310. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +180 -0
  311. package/src/sap/ui/qunit/qunit-coverage.js +9 -4
  312. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  313. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  314. package/src/sap/ui/test/Opa.js +54 -21
  315. package/src/sap/ui/test/Opa5.js +181 -131
  316. package/src/sap/ui/test/OpaBuilder.js +106 -73
  317. package/src/sap/ui/test/OpaPlugin.js +8 -3
  318. package/src/sap/ui/test/RecordReplay.js +7 -3
  319. package/src/sap/ui/test/actions/EnterText.js +3 -2
  320. package/src/sap/ui/test/generic/TestBase.js +1 -1
  321. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +3 -1
  322. package/src/sap/ui/test/pipelines/PipelineFactory.js +2 -2
  323. package/src/sap/ui/test/starter/_configureLoader.js +7 -5
  324. package/src/sap/ui/test/starter/_setupAndStart.js +113 -27
  325. package/src/sap/ui/test/starter/_utils.js +4 -1
  326. package/src/sap/ui/util/Storage.js +1 -1
  327. package/src/ui5loader-autoconfig.js +3 -1
@@ -23,7 +23,7 @@ sap.ui.define(['./Object', "sap/base/assert"],
23
23
  * @extends sap.ui.base.Object
24
24
  * @implements sap.ui.base.Poolable
25
25
  * @author SAP SE
26
- * @version 1.112.0
26
+ * @version 1.113.0
27
27
  * @alias sap.ui.base.Event
28
28
  * @public
29
29
  */
@@ -18,7 +18,7 @@ sap.ui.define(['./Event', './Object', './ObjectPool', "sap/base/assert"],
18
18
  * @abstract
19
19
  * @extends sap.ui.base.Object
20
20
  * @author SAP SE
21
- * @version 1.112.0
21
+ * @version 1.113.0
22
22
  * @public
23
23
  * @alias sap.ui.base.EventProvider
24
24
  */
@@ -332,7 +332,7 @@ sap.ui.define([
332
332
  * @returns {any} the binding value
333
333
  */
334
334
  function BINDING(i, aParts) {
335
- return aParts[i];
335
+ return clean(aParts[i]);
336
336
  }
337
337
 
338
338
  /**
@@ -374,7 +374,7 @@ sap.ui.define([
374
374
  if (oReference) {
375
375
  oReference.base = oParent;
376
376
  }
377
- return vChild;
377
+ return clean(vChild);
378
378
  }
379
379
 
380
380
  /**
@@ -388,10 +388,10 @@ sap.ui.define([
388
388
  var oReference = {};
389
389
 
390
390
  // evaluate function expression and call it
391
- return fnLeft(aParts, oReference).apply(oReference.base,
391
+ return clean(fnLeft(aParts, oReference).apply(oReference.base,
392
392
  aArguments.map(function (fnArgument) {
393
393
  return fnArgument(aParts); // evaluate argument
394
- }));
394
+ })));
395
395
  }
396
396
 
397
397
  /**
@@ -443,7 +443,7 @@ sap.ui.define([
443
443
  if (oReference) {
444
444
  oReference.base = oParent;
445
445
  }
446
- return vChild;
446
+ return clean(vChild);
447
447
  }
448
448
 
449
449
  /**
@@ -485,6 +485,16 @@ sap.ui.define([
485
485
  return mSymbols[sId];
486
486
  }
487
487
 
488
+ /**
489
+ * Cleans the given <code>vValue</code>.
490
+ *
491
+ * @param {any} vValue - the value to be cleaned
492
+ * @returns {any} the cleaned value
493
+ */
494
+ function clean(vValue) {
495
+ return vValue === Function ? undefined : vValue;
496
+ }
497
+
488
498
  /**
489
499
  * Throws a SyntaxError with the given <code>sMessage</code> as <code>message</code>, its
490
500
  * <code>at</code> property set to <code>iAt</code> and its <code>text</code> property to
@@ -28,7 +28,7 @@ sap.ui.define(['sap/ui/base/Object'], function(BaseObject) {
28
28
  * no internals of the class can be accessed.
29
29
  *
30
30
  * @author Malte Wedel, Daniel Brinkmann
31
- * @version 1.112.0
31
+ * @version 1.113.0
32
32
  * @param {sap.ui.base.Object} oObject
33
33
  * Object for which a facade should be created
34
34
  * @param {string[]} aMethods
@@ -45,6 +45,8 @@ sap.ui.define([
45
45
  // Binding info factory symbol
46
46
  var BINDING_INFO_FACTORY_SYMBOL = Symbol("bindingInfoFactory");
47
47
 
48
+ var Object_hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty);
49
+
48
50
  /**
49
51
  * Constructs and initializes a managed object with the given <code>sId</code> and settings.
50
52
  *
@@ -251,7 +253,7 @@ sap.ui.define([
251
253
  *
252
254
  * @extends sap.ui.base.EventProvider
253
255
  * @author SAP SE
254
- * @version 1.112.0
256
+ * @version 1.113.0
255
257
  * @public
256
258
  * @alias sap.ui.base.ManagedObject
257
259
  */
@@ -1587,7 +1589,7 @@ sap.ui.define([
1587
1589
  * @protected
1588
1590
  */
1589
1591
  ManagedObject.prototype.isPropertyInitial = function(sPropertyName) {
1590
- return !Object.prototype.hasOwnProperty.call(this.mProperties, sPropertyName) && !this.isBound(sPropertyName);
1592
+ return !Object_hasOwn(this.mProperties, sPropertyName) && !this.isBound(sPropertyName);
1591
1593
  };
1592
1594
 
1593
1595
  /**
@@ -8,9 +8,10 @@
8
8
  sap.ui.define([
9
9
  './DataType',
10
10
  './Metadata',
11
+ './Object',
11
12
  'sap/base/Log',
12
13
  'sap/base/assert',
13
- 'sap/base/util/ObjectPath',
14
+ 'sap/base/strings/capitalize',
14
15
  'sap/base/strings/escapeRegExp',
15
16
  'sap/base/util/merge',
16
17
  'sap/base/util/isPlainObject',
@@ -19,9 +20,10 @@ sap.ui.define([
19
20
  function(
20
21
  DataType,
21
22
  Metadata,
23
+ BaseObject,
22
24
  Log,
23
25
  assert,
24
- ObjectPath,
26
+ capitalize,
25
27
  escapeRegExp,
26
28
  merge,
27
29
  isPlainObject,
@@ -75,7 +77,7 @@ function(
75
77
  *
76
78
  *
77
79
  * @author Frank Weigel
78
- * @version 1.112.0
80
+ * @version 1.113.0
79
81
  * @since 0.8.6
80
82
  * @alias sap.ui.base.ManagedObjectMetadata
81
83
  * @extends sap.ui.base.Metadata
@@ -92,11 +94,7 @@ function(
92
94
  ManagedObjectMetadata.prototype = Object.create(Metadata.prototype);
93
95
  ManagedObjectMetadata.prototype.constructor = ManagedObjectMetadata;
94
96
 
95
- var hasOwnProperty = Object.prototype.hasOwnProperty;
96
-
97
- function capitalize(sName) {
98
- return sName.charAt(0).toUpperCase() + sName.slice(1);
99
- }
97
+ var Object_hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty);
100
98
 
101
99
  var rPlural = /(children|ies|ves|oes|ses|ches|shes|xes|s)$/i;
102
100
  var mSingular = {'children' : -3, 'ies' : 'y', 'ves' : 'f', 'oes' : -2, 'ses' : -2, 'ches' : -2, 'shes' : -2, 'xes' : -2, 's' : -1 };
@@ -119,7 +117,7 @@ function(
119
117
  var result = null;
120
118
 
121
119
  for (var n in info) {
122
- if ( hasOwnProperty.call(info, n) && typeof obj[n] === 'undefined' ) {
120
+ if ( Object_hasOwn(info, n) && typeof obj[n] === 'undefined' ) {
123
121
  result = result || {};
124
122
  result[n] = info[n];
125
123
  }
@@ -837,7 +835,7 @@ function(
837
835
 
838
836
  if ( mInfoMap ) {
839
837
  for (sName in mInfoMap) {
840
- if ( hasOwnProperty.call(mInfoMap, sName) ) {
838
+ if ( Object_hasOwn(mInfoMap, sName) ) {
841
839
  mResult[sName] = new FNClass(that, sName, mInfoMap[sName]);
842
840
  }
843
841
  }
@@ -1747,7 +1745,7 @@ function(
1747
1745
  sName;
1748
1746
 
1749
1747
  for ( sName in mSettings ) {
1750
- if ( hasOwnProperty.call(mValidKeys, sName) ) {
1748
+ if ( Object_hasOwn(mValidKeys, sName) ) {
1751
1749
  mResult[sName] = mSettings[sName];
1752
1750
  }
1753
1751
  }
@@ -1867,7 +1865,7 @@ function(
1867
1865
  */
1868
1866
  function loadInstanceDesignTime(oInstance) {
1869
1867
  var sInstanceSpecificModule =
1870
- oInstance instanceof ObjectPath.get('sap.ui.base.ManagedObject')
1868
+ BaseObject.isA(oInstance, "sap.ui.base.ManagedObject")
1871
1869
  && typeof oInstance.data === "function"
1872
1870
  && oInstance.data("sap-ui-custom-settings")
1873
1871
  && oInstance.data("sap-ui-custom-settings")["sap.ui.dt"]
@@ -14,6 +14,9 @@ sap.ui.define([
14
14
  function(ObjectPath, assert, Log, uniqueSort) {
15
15
  "use strict";
16
16
 
17
+ function isFunction(obj) {
18
+ return typeof obj === "function";
19
+ }
17
20
 
18
21
  /**
19
22
  * Creates a new metadata object from the given static infos.
@@ -26,7 +29,7 @@ sap.ui.define([
26
29
  *
27
30
  * @class Metadata for a class.
28
31
  * @author Frank Weigel
29
- * @version 1.112.0
32
+ * @version 1.113.0
30
33
  * @since 0.8.6
31
34
  * @public
32
35
  * @alias sap.ui.base.Metadata
@@ -46,7 +49,7 @@ sap.ui.define([
46
49
  oClassInfo.metadata.__version = 1.0;
47
50
  }
48
51
  oClassInfo.metadata.__version = oClassInfo.metadata.__version || 2.0;
49
- if ( typeof oClassInfo.constructor !== "function" ) {
52
+ if ( !isFunction(oClassInfo.constructor) ) {
50
53
  throw Error("constructor for class " + sClassName + " must have been declared before creating metadata for it");
51
54
  }
52
55
 
@@ -76,17 +79,25 @@ sap.ui.define([
76
79
  oPrototype;
77
80
 
78
81
  if ( oStaticInfo.baseType ) {
79
- // lookup base class by its name - same reasoning as above
80
- var oParentClass = ObjectPath.get(oStaticInfo.baseType);
81
- if ( typeof oParentClass !== "function" ) {
82
- Log.fatal("base class '" + oStaticInfo.baseType + "' does not exist");
82
+ var oParentClass;
83
+ if ( isFunction(oStaticInfo.baseType) ) {
84
+ oParentClass = oStaticInfo.baseType;
85
+ if ( !isFunction(oParentClass.getMetadata) ) {
86
+ throw new TypeError("baseType must be a UI5 class with a static getMetadata function");
87
+ }
88
+ } else {
89
+ // lookup base class by its name - same reasoning as above
90
+ oParentClass = ObjectPath.get(oStaticInfo.baseType);
91
+ if ( !isFunction(oParentClass) ) {
92
+ Log.fatal("base class '" + oStaticInfo.baseType + "' does not exist");
93
+ }
83
94
  }
84
95
  // link metadata with base metadata
85
96
  if ( oParentClass.getMetadata ) {
86
97
  this._oParent = oParentClass.getMetadata();
87
98
  assert(oParentClass === oParentClass.getMetadata().getClass(), "Metadata: oParentClass must match the class in the parent metadata");
88
99
  } else {
89
- // fallback, if base class has no metadata
100
+ // fallback, if base class has no metadata - can only happen if baseType is a string
90
101
  this._oParent = new Metadata(oStaticInfo.baseType, {});
91
102
  }
92
103
  } else {
@@ -417,14 +428,14 @@ sap.ui.define([
417
428
  fnBaseClass = null;
418
429
  }
419
430
 
420
- assert(!fnBaseClass || typeof fnBaseClass === "function");
431
+ assert(!fnBaseClass || isFunction(fnBaseClass));
421
432
  assert(typeof sClassName === "string" && !!sClassName);
422
433
  assert(!oClassInfo || typeof oClassInfo === "object");
423
- assert(!FNMetaImpl || typeof FNMetaImpl === "function");
434
+ assert(!FNMetaImpl || isFunction(FNMetaImpl));
424
435
 
425
436
  // allow metadata class to preprocess
426
437
  FNMetaImpl = FNMetaImpl || Metadata;
427
- if ( typeof FNMetaImpl.preprocessClassInfo === "function" ) {
438
+ if ( isFunction(FNMetaImpl.preprocessClassInfo) ) {
428
439
  oClassInfo = FNMetaImpl.preprocessClassInfo(oClassInfo);
429
440
  }
430
441
 
@@ -436,7 +447,7 @@ sap.ui.define([
436
447
  }
437
448
 
438
449
  var fnClass = oClassInfo.constructor;
439
- assert(!fnClass || typeof fnClass === "function");
450
+ assert(!fnClass || isFunction(fnClass));
440
451
 
441
452
  // ensure defaults
442
453
  if ( fnBaseClass ) {
@@ -459,7 +470,7 @@ sap.ui.define([
459
470
  fnClass.prototype = Object.create(fnBaseClass.prototype);
460
471
  fnClass.prototype.constructor = fnClass;
461
472
  // enforce correct baseType
462
- oClassInfo.metadata.baseType = fnBaseClass.getMetadata().getName();
473
+ oClassInfo.metadata.baseType = fnBaseClass;
463
474
  } else {
464
475
  // default constructor does nothing
465
476
  fnClass = fnClass || function() { };
@@ -26,7 +26,7 @@ sap.ui.define(['./Metadata', "sap/base/Log"],
26
26
  * @class Base class for all SAPUI5 Objects.
27
27
  * @abstract
28
28
  * @author Malte Wedel
29
- * @version 1.112.0
29
+ * @version 1.113.0
30
30
  * @public
31
31
  * @alias sap.ui.base.Object
32
32
  * @throws {Error} When an instance of the class or its subclasses is created without the <code>new</code> operator.
@@ -59,7 +59,7 @@ sap.ui.define(['./Object'],
59
59
  *
60
60
  * @extends sap.ui.base.Object
61
61
  * @author SAP SE
62
- * @version 1.112.0
62
+ * @version 1.113.0
63
63
  * @alias sap.ui.base.ObjectPool
64
64
  * @public
65
65
  */
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.112.0</version>
9
+ <version>1.113.0</version>
10
10
 
11
11
  <documentation>The SAPUI5 Core Runtime.
12
12
 
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * Provides methods to show or hide a waiting animation covering the whole
41
41
  * page and blocking user interaction.
42
42
  * @namespace
43
- * @version 1.112.0
43
+ * @version 1.113.0
44
44
  * @public
45
45
  * @alias sap.ui.core.BusyIndicator
46
46
  */
@@ -225,7 +225,7 @@ sap.ui.define([
225
225
  * @extends sap.ui.base.ManagedObject
226
226
  * @abstract
227
227
  * @author SAP SE
228
- * @version 1.112.0
228
+ * @version 1.113.0
229
229
  * @alias sap.ui.core.Component
230
230
  * @since 1.9.2
231
231
  */
@@ -2022,9 +2022,12 @@ sap.ui.define([
2022
2022
  for (var sModelName in mModelConfigurations) {
2023
2023
  var oModelConfig = mModelConfigurations[sModelName];
2024
2024
 
2025
- // The tests for the Model creation make use of a constructor stub,
2026
- // and this only works from the global namespace export.
2027
- var fnModelClass = ObjectPath.get(oModelConfig.type);
2025
+ // TODO The tests for the Model creation make use of a constructor stub,
2026
+ // and this only works from the global namespace export, not via probing require.
2027
+ // To keep those tests working, the global name is checked first. Only in a context
2028
+ // where global names don't exist or when the model is unknown, the fallback will be used.
2029
+ var fnModelClass = ObjectPath.get(oModelConfig.type)
2030
+ || sap.ui.require(oModelConfig.type.replace(/\./g, "/"));
2028
2031
 
2029
2032
  // create arguments array with leading "null" value so that it can be passed to the apply function
2030
2033
  var aArgs = [null].concat(oModelConfig.settings || []);
@@ -3053,7 +3056,7 @@ sap.ui.define([
3053
3056
 
3054
3057
  try {
3055
3058
  sPreloadName = sController + '-preload'; // Module name
3056
- sap.ui.requireSync(sPreloadName.replace(/\./g, "/"));
3059
+ sap.ui.requireSync(sPreloadName.replace(/\./g, "/")); // legacy-relevant: Sync path
3057
3060
  } catch (e) {
3058
3061
  errorLogging(sPreloadName, false)(e);
3059
3062
  }
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * See also {@link module:sap/ui/core/ComponentSupport}.
62
62
  *
63
63
  * @extends sap.ui.core.Control
64
- * @version 1.112.0
64
+ * @version 1.113.0
65
65
  *
66
66
  * @public
67
67
  * @alias sap.ui.core.ComponentContainer
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @public
30
30
  * @class
31
31
  * @author SAP SE
32
- * @version 1.112.0
32
+ * @version 1.113.0
33
33
  * @since 1.9.2
34
34
  * @alias sap.ui.core.ComponentMetadata
35
35
  * @extends sap.ui.base.ManagedObjectMetadata
@@ -97,7 +97,7 @@ sap.ui.define([
97
97
  * @author SAP SE
98
98
  * @public
99
99
  * @since 1.58.0
100
- * @version 1.112.0
100
+ * @version 1.113.0
101
101
  * @namespace
102
102
  * @alias module:sap/ui/core/ComponentSupport
103
103
  */
@@ -13,6 +13,7 @@ sap.ui.define([
13
13
  "./format/TimezoneUtil",
14
14
  'sap/ui/thirdparty/URI',
15
15
  "sap/ui/core/_ConfigurationProvider",
16
+ "sap/ui/core/date/CalendarWeekNumbering",
16
17
  "sap/base/util/UriParameters",
17
18
  "sap/base/util/deepEqual",
18
19
  "sap/base/util/Version",
@@ -30,6 +31,7 @@ sap.ui.define([
30
31
  TimezoneUtil,
31
32
  URI,
32
33
  _ConfigurationProvider,
34
+ CalendarWeekNumbering,
33
35
  UriParameters,
34
36
  deepEqual,
35
37
  Version,
@@ -44,9 +46,11 @@ sap.ui.define([
44
46
  // Singleton instance for configuration
45
47
  var oConfiguration;
46
48
  var M_SETTINGS;
47
- var VERSION = "1.112.0";
49
+ var VERSION = "1.113.0";
48
50
 
49
51
  // Helper Functions
52
+ var Object_hasOwn = Function.prototype.call.bind(Object.prototype.hasOwnProperty);
53
+
50
54
  function detectLanguage() {
51
55
 
52
56
  function navigatorLanguage() {
@@ -210,6 +214,7 @@ sap.ui.define([
210
214
  "timezone" : { type : "string", defaultValue : TimezoneUtil.getLocalTimezone() },
211
215
  "formatLocale" : { type : "Locale", defaultValue : null },
212
216
  "calendarType" : { type : "string", defaultValue : null },
217
+ "calendarWeekNumbering" : { type : CalendarWeekNumbering, defaultValue : CalendarWeekNumbering.Default},
213
218
  "trailingCurrencyCode" : { type : "boolean", defaultValue : true },
214
219
  "accessibility" : { type : "boolean", defaultValue : true },
215
220
  "autoAriaBodyRole" : { type : "boolean", defaultValue : false, noUrl:true }, //whether the framework automatically adds the ARIA role 'application' to the html body
@@ -342,7 +347,7 @@ sap.ui.define([
342
347
  init: function() {
343
348
  this.bInitialized = true;
344
349
 
345
- this.oFormatSettings = new Configuration.FormatSettings(this);
350
+ this.oFormatSettings = new FormatSettings(this);
346
351
 
347
352
  /* Object that carries the real configuration data */
348
353
  var config = this; // eslint-disable-line consistent-this
@@ -385,10 +390,12 @@ sap.ui.define([
385
390
  this._compatversion[n] = _getCVers(n);
386
391
  }
387
392
 
393
+ var oUriParams;
394
+
388
395
  // apply the settings from the url (only if not blocked by app configuration)
389
396
  if ( !config.ignoreUrlParams ) {
390
397
  var sUrlPrefix = "sap-ui-";
391
- var oUriParams = UriParameters.fromQuery(window.location.search);
398
+ oUriParams = UriParameters.fromQuery(window.location.search);
392
399
 
393
400
  // first map SAP parameters, can be overwritten by "sap-ui-*" parameters
394
401
  if ( oUriParams.has('sap-language') ) {
@@ -1075,6 +1082,46 @@ sap.ui.define([
1075
1082
  return this;
1076
1083
  },
1077
1084
 
1085
+ /**
1086
+ * Returns the calendar week numbering algorithm used to determine the first day of the week
1087
+ * and the first calendar week of the year, see {@link sap.ui.core.date.CalendarWeekNumbering}.
1088
+ *
1089
+ * @returns {sap.ui.core.date.CalendarWeekNumbering} The calendar week numbering algorithm
1090
+ *
1091
+ * @public
1092
+ * @since 1.113.0
1093
+ */
1094
+ getCalendarWeekNumbering: function() {
1095
+ return this.getValue("calendarWeekNumbering");
1096
+ },
1097
+
1098
+ /**
1099
+ * Sets the calendar week numbering algorithm which is used to determine the first day of the week
1100
+ * and the first calendar week of the year, see {@link sap.ui.core.date.CalendarWeekNumbering}.
1101
+ *
1102
+ * @param {sap.ui.core.date.CalendarWeekNumbering} sCalendarWeekNumbering
1103
+ * The calendar week numbering algorithm
1104
+ * @returns {this}
1105
+ * <code>this</code> to allow method chaining
1106
+ * @throws {Error}
1107
+ * If <code>sCalendarWeekNumbering</code> is not a valid calendar week numbering algorithm,
1108
+ * defined in {@link sap.ui.core.date.CalendarWeekNumbering}
1109
+ *
1110
+ * @public
1111
+ * @since 1.113.0
1112
+ */
1113
+ setCalendarWeekNumbering: function(sCalendarWeekNumbering) {
1114
+ checkEnum(CalendarWeekNumbering, sCalendarWeekNumbering, "calendarWeekNumbering");
1115
+
1116
+ if (this.calendarWeekNumbering !== sCalendarWeekNumbering) {
1117
+ var mChanges = this._collect();
1118
+ this.calendarWeekNumbering = mChanges.calendarWeekNumbering = sCalendarWeekNumbering;
1119
+ this._endCollect();
1120
+ }
1121
+
1122
+ return this;
1123
+ },
1124
+
1078
1125
  /**
1079
1126
  * Returns the format locale string with language and region code. Falls back to
1080
1127
  * language configuration, in case it has not been explicitly defined.
@@ -1882,7 +1929,7 @@ sap.ui.define([
1882
1929
  */
1883
1930
  getValue: function(sName) {
1884
1931
  var vValue;
1885
- if (typeof sName !== "string" || !Object.prototype.hasOwnProperty.call(M_SETTINGS, sName)) {
1932
+ if (typeof sName !== "string" || !Object_hasOwn(M_SETTINGS, sName)) {
1886
1933
  throw new TypeError(
1887
1934
  "Parameter 'sName' must be the name of a valid configuration option (one of "
1888
1935
  + Object.keys(M_SETTINGS).map(function(key) {
@@ -2036,11 +2083,11 @@ sap.ui.define([
2036
2083
  * the modifications. To be on the safe side, applications should do any modifications
2037
2084
  * early in their lifecycle or recreate any model/UI that is locale dependent.
2038
2085
  *
2039
- * @name sap.ui.core.Configuration.FormatSettings
2086
+ * @alias sap.ui.core.Configuration.FormatSettings
2040
2087
  * @extends sap.ui.base.Object
2041
2088
  * @public
2042
2089
  */
2043
- BaseObject.extend("sap.ui.core.Configuration.FormatSettings", /** @lends sap.ui.core.Configuration.FormatSettings.prototype */ {
2090
+ var FormatSettings = BaseObject.extend("sap.ui.core.Configuration.FormatSettings", /** @lends sap.ui.core.Configuration.FormatSettings.prototype */ {
2044
2091
  constructor : function(oConfiguration) {
2045
2092
  this.oConfiguration = oConfiguration;
2046
2093
  this.mSettings = {};
@@ -2064,10 +2111,11 @@ sap.ui.define([
2064
2111
  * @public
2065
2112
  */
2066
2113
  getFormatLocale : function() {
2067
- function fallback(that) {
2068
- var oLocale = that.oConfiguration.getValue("language");
2114
+ function fallback(oFormatSettings) {
2115
+ var oLocale = oFormatSettings.oConfiguration.getValue("language");
2069
2116
  // if any user settings have been defined, add the private use subtag "sapufmt"
2070
- if ( !isEmptyObject(that.mSettings) ) {
2117
+ if (!isEmptyObject(oFormatSettings.mSettings)
2118
+ || oFormatSettings.oConfiguration.getCalendarWeekNumbering() !== CalendarWeekNumbering.Default) {
2071
2119
  // TODO move to Locale/LocaleData
2072
2120
  var l = oLocale.toString();
2073
2121
  if ( l.indexOf("-x-") < 0 ) {
@@ -2436,6 +2484,7 @@ sap.ui.define([
2436
2484
  * @param {int} iValue must be an integer value between 0 and 6
2437
2485
  * @returns {this} Returns <code>this</code> to allow method chaining
2438
2486
  * @public
2487
+ * @deprecated Since 1.113.0. Use {@link sap.ui.core.Configuration#setCalendarWeekNumbering} instead.
2439
2488
  */
2440
2489
  setFirstDayOfWeek : function(iValue) {
2441
2490
  check(typeof iValue == "number" && iValue >= 0 && iValue <= 6, "iValue must be an integer value between 0 and 6");
@@ -79,7 +79,7 @@ sap.ui.define([
79
79
  * @extends sap.ui.core.Element
80
80
  * @abstract
81
81
  * @author SAP SE
82
- * @version 1.112.0
82
+ * @version 1.113.0
83
83
  * @alias sap.ui.core.Control
84
84
  */
85
85
  var Control = Element.extend("sap.ui.core.Control", /** @lends sap.ui.core.Control.prototype */ {
@@ -306,6 +306,22 @@ sap.ui.define([
306
306
  return document.getElementById(this.sId) != null;
307
307
  };
308
308
 
309
+ /**
310
+ * Determines whether the control is in rendering phase.
311
+ *
312
+ * @returns {boolean}
313
+ * @private
314
+ */
315
+ function isInRenderingPhase(oControl) {
316
+ if (!oControl || !oControl.isA) {
317
+ return false;
318
+ }
319
+ if (oControl.isA("sap.ui.core.Control")) {
320
+ return oControl._bRenderingPhase;
321
+ }
322
+ return isInRenderingPhase(oControl.getParent());
323
+ }
324
+
309
325
  /**
310
326
  * Marks this control and its children for a re-rendering, usually because its state has changed and now differs
311
327
  * from the rendered DOM.
@@ -327,8 +343,8 @@ sap.ui.define([
327
343
  Control.prototype.invalidate = function(oOrigin) {
328
344
  var oUIArea;
329
345
 
330
- // invalidations that happen in the onBeforeRendering hook of controls can be ignored
331
- // since the rendering of the control has not yet been started
346
+ // Invalidations that happen in the onBeforeRendering hook of controls can be ignored
347
+ // since the rendering of the control is about to start.
332
348
  if ( this._bOnBeforeRenderingPhase ) {
333
349
  return;
334
350
  }
@@ -339,8 +355,10 @@ sap.ui.define([
339
355
  // This will be cleared by the RenderManager when the control is rendered completely.
340
356
  this._bNeedsRendering = true;
341
357
 
342
- if ( this.bOutput && (oUIArea = this.getUIArea()) ) {
358
+ var oParent = this.getParent();
359
+ if ( (this.bOutput || isInRenderingPhase(oParent)) && (oUIArea = this.getUIArea()) ) {
343
360
  // if this control has been rendered before (bOutput)
361
+ // or if the invalidation happens while parent rendering (isInRenderingPhase(oParent))
344
362
  // and if it is contained in a UIArea (!!oUIArea)
345
363
  // then control re-rendering can be used (see UIArea.rerender() for details)
346
364
  //
@@ -358,7 +376,6 @@ sap.ui.define([
358
376
  }
359
377
  } else {
360
378
  // else we bubble up the hierarchy
361
- var oParent = this.getParent();
362
379
  if (oParent && (
363
380
  this.bOutput /* && !this.getUIArea() */ ||
364
381
  /* !this.bOutput && */ !(this.getVisible && this.getVisible() === false))) {
@@ -170,7 +170,7 @@ sap.ui.define([
170
170
  * @extends sap.ui.base.Object
171
171
  * @final
172
172
  * @author SAP SE
173
- * @version 1.112.0
173
+ * @version 1.113.0
174
174
  * @alias sap.ui.core.Core
175
175
  * @public
176
176
  * @hideconstructor
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * in the documentation.
25
25
  *
26
26
  * @extends sap.ui.core.Element
27
- * @version 1.112.0
27
+ * @version 1.113.0
28
28
  *
29
29
  * @public
30
30
  * @alias sap.ui.core.CustomData
@@ -40,8 +40,11 @@ sap.ui.define(['./Element', "sap/base/assert", "sap/base/Log"],
40
40
  * }, true);
41
41
  * </pre>
42
42
  *
43
- * Furthermore, the function <code>oRenderManager.writeClasses(oElement);</code> ({@link sap.ui.core.RenderManager#writeClasses}) must be called within
44
- * the renderer of the control to which the element belongs, when writing the root tag of the element. This ensures the classes are written to the HTML.
43
+ * The classes are written to the HTML automatically when using the {@link sap.ui.core.RenderManager
44
+ * Semantic Rendering API}. To ensure that the classes are written to the HTML with the traditional
45
+ * string-based rendering, when writing the root tag of the element you must call the function
46
+ * <code>oRenderManager.writeClasses(oElement);</code> ({@link sap.ui.core.RenderManager#writeClasses})
47
+ * within the renderer of the control to which the element belongs.
45
48
  *
46
49
  * This function adds the following functions to the elements prototype:
47
50
  * <ul>
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @class Static class for enabling declarative UI support.
41
41
  *
42
42
  * @author Peter Muessig, Tino Butz
43
- * @version 1.112.0
43
+ * @version 1.113.0
44
44
  * @since 1.7.0
45
45
  * @public
46
46
  * @alias sap.ui.core.DeclarativeSupport
@@ -130,7 +130,7 @@ sap.ui.define([
130
130
  *
131
131
  * @extends sap.ui.base.ManagedObject
132
132
  * @author SAP SE
133
- * @version 1.112.0
133
+ * @version 1.113.0
134
134
  * @public
135
135
  * @alias sap.ui.core.Element
136
136
  */