@openui5/sap.ui.core 1.101.0 → 1.102.2

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 (362) hide show
  1. package/.eslintrc.json +26 -5
  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 +3 -3
  9. package/src/sap/base/assert.js +1 -1
  10. package/src/sap/base/strings/whitespaceReplacer.js +1 -1
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +2 -2
  12. package/src/sap/base/util/restricted/_castArray.js +1 -1
  13. package/src/sap/base/util/restricted/_compact.js +1 -1
  14. package/src/sap/base/util/restricted/_curry.js +1 -1
  15. package/src/sap/base/util/restricted/_debounce.js +1 -1
  16. package/src/sap/base/util/restricted/_difference.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  22. package/src/sap/base/util/restricted/_flatten.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_intersection.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isNil.js +1 -1
  31. package/src/sap/base/util/restricted/_max.js +1 -1
  32. package/src/sap/base/util/restricted/_merge.js +1 -1
  33. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  34. package/src/sap/base/util/restricted/_min.js +1 -1
  35. package/src/sap/base/util/restricted/_omit.js +1 -1
  36. package/src/sap/base/util/restricted/_pick.js +1 -1
  37. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  38. package/src/sap/base/util/restricted/_throttle.js +1 -1
  39. package/src/sap/base/util/restricted/_toArray.js +1 -1
  40. package/src/sap/base/util/restricted/_union.js +1 -1
  41. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  42. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  43. package/src/sap/base/util/restricted/_uniq.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  46. package/src/sap/base/util/restricted/_without.js +1 -1
  47. package/src/sap/base/util/restricted/_xor.js +1 -1
  48. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  49. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  52. package/src/sap/ui/Device.js +3 -3
  53. package/src/sap/ui/Global.js +4 -4
  54. package/src/sap/ui/base/Event.js +1 -1
  55. package/src/sap/ui/base/EventProvider.js +1 -1
  56. package/src/sap/ui/base/Interface.js +1 -1
  57. package/src/sap/ui/base/ManagedObject.js +1 -1
  58. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  59. package/src/sap/ui/base/Metadata.js +1 -1
  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 +2 -1
  63. package/src/sap/ui/core/BusyIndicator.js +1 -1
  64. package/src/sap/ui/core/CommandExecution.js +15 -12
  65. package/src/sap/ui/core/Component.js +31 -12
  66. package/src/sap/ui/core/ComponentContainer.js +1 -1
  67. package/src/sap/ui/core/ComponentMetadata.js +27 -12
  68. package/src/sap/ui/core/ComponentSupport.js +1 -1
  69. package/src/sap/ui/core/Configuration.js +22 -8
  70. package/src/sap/ui/core/Control.js +2 -3
  71. package/src/sap/ui/core/Core.js +95 -27
  72. package/src/sap/ui/core/CustomData.js +1 -1
  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 +1 -1
  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/ExtensionPoint.js +1 -1
  79. package/src/sap/ui/core/FocusHandler.js +2 -3
  80. package/src/sap/ui/core/Fragment.js +1 -1
  81. package/src/sap/ui/core/HTML.js +1 -1
  82. package/src/sap/ui/core/History.js +1 -1
  83. package/src/sap/ui/core/Icon.js +2 -2
  84. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  85. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  86. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  87. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  88. package/src/sap/ui/core/InvisibleText.js +1 -1
  89. package/src/sap/ui/core/Item.js +1 -1
  90. package/src/sap/ui/core/LabelEnablement.js +1 -1
  91. package/src/sap/ui/core/LayoutData.js +1 -1
  92. package/src/sap/ui/core/ListItem.js +1 -1
  93. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  94. package/src/sap/ui/core/Locale.js +1 -1
  95. package/src/sap/ui/core/LocaleData.js +119 -1
  96. package/src/sap/ui/core/Manifest.js +1 -1
  97. package/src/sap/ui/core/Message.js +1 -1
  98. package/src/sap/ui/core/Popup.js +12 -14
  99. package/src/sap/ui/core/RenderManager.js +1 -1
  100. package/src/sap/ui/core/Renderer.js +1 -1
  101. package/src/sap/ui/core/ResizeHandler.js +1 -1
  102. package/src/sap/ui/core/ScrollBar.js +21 -15
  103. package/src/sap/ui/core/SeparatorItem.js +1 -1
  104. package/src/sap/ui/core/ShortcutHintsMixin.js +2 -4
  105. package/src/sap/ui/core/Title.js +1 -1
  106. package/src/sap/ui/core/TooltipBase.js +1 -1
  107. package/src/sap/ui/core/UIArea.js +3 -5
  108. package/src/sap/ui/core/UIComponent.js +1 -1
  109. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  110. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  111. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  112. package/src/sap/ui/core/XMLComposite.js +1 -1
  113. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  114. package/src/sap/ui/core/XMLTemplateProcessor.js +512 -387
  115. package/src/sap/ui/core/cache/CacheManager.js +27 -0
  116. package/src/sap/ui/core/cache/CacheManagerNOP.js +3 -0
  117. package/src/sap/ui/core/cache/LRUPersistentCache.js +74 -3
  118. package/src/sap/ui/core/cldr/ar.json +469 -1
  119. package/src/sap/ui/core/cldr/ar_EG.json +469 -1
  120. package/src/sap/ui/core/cldr/ar_SA.json +469 -1
  121. package/src/sap/ui/core/cldr/bg.json +469 -1
  122. package/src/sap/ui/core/cldr/ca.json +469 -1
  123. package/src/sap/ui/core/cldr/cs.json +469 -1
  124. package/src/sap/ui/core/cldr/cy.json +469 -1
  125. package/src/sap/ui/core/cldr/da.json +469 -1
  126. package/src/sap/ui/core/cldr/de.json +469 -1
  127. package/src/sap/ui/core/cldr/de_AT.json +469 -1
  128. package/src/sap/ui/core/cldr/de_CH.json +469 -1
  129. package/src/sap/ui/core/cldr/el.json +469 -1
  130. package/src/sap/ui/core/cldr/el_CY.json +469 -1
  131. package/src/sap/ui/core/cldr/en.json +469 -1
  132. package/src/sap/ui/core/cldr/en_AU.json +469 -1
  133. package/src/sap/ui/core/cldr/en_GB.json +469 -1
  134. package/src/sap/ui/core/cldr/en_HK.json +469 -1
  135. package/src/sap/ui/core/cldr/en_IE.json +469 -1
  136. package/src/sap/ui/core/cldr/en_IN.json +469 -1
  137. package/src/sap/ui/core/cldr/en_NZ.json +469 -1
  138. package/src/sap/ui/core/cldr/en_PG.json +469 -1
  139. package/src/sap/ui/core/cldr/en_SG.json +469 -1
  140. package/src/sap/ui/core/cldr/en_ZA.json +469 -1
  141. package/src/sap/ui/core/cldr/es.json +469 -1
  142. package/src/sap/ui/core/cldr/es_AR.json +469 -1
  143. package/src/sap/ui/core/cldr/es_BO.json +469 -1
  144. package/src/sap/ui/core/cldr/es_CL.json +469 -1
  145. package/src/sap/ui/core/cldr/es_CO.json +469 -1
  146. package/src/sap/ui/core/cldr/es_MX.json +469 -1
  147. package/src/sap/ui/core/cldr/es_PE.json +469 -1
  148. package/src/sap/ui/core/cldr/es_UY.json +469 -1
  149. package/src/sap/ui/core/cldr/es_VE.json +469 -1
  150. package/src/sap/ui/core/cldr/et.json +469 -1
  151. package/src/sap/ui/core/cldr/fa.json +469 -1
  152. package/src/sap/ui/core/cldr/fi.json +469 -1
  153. package/src/sap/ui/core/cldr/fr.json +469 -1
  154. package/src/sap/ui/core/cldr/fr_BE.json +469 -1
  155. package/src/sap/ui/core/cldr/fr_CA.json +469 -1
  156. package/src/sap/ui/core/cldr/fr_CH.json +469 -1
  157. package/src/sap/ui/core/cldr/fr_LU.json +469 -1
  158. package/src/sap/ui/core/cldr/he.json +469 -1
  159. package/src/sap/ui/core/cldr/hi.json +469 -1
  160. package/src/sap/ui/core/cldr/hr.json +469 -1
  161. package/src/sap/ui/core/cldr/hu.json +469 -1
  162. package/src/sap/ui/core/cldr/id.json +469 -1
  163. package/src/sap/ui/core/cldr/it.json +469 -1
  164. package/src/sap/ui/core/cldr/it_CH.json +469 -1
  165. package/src/sap/ui/core/cldr/ja.json +469 -1
  166. package/src/sap/ui/core/cldr/kk.json +469 -1
  167. package/src/sap/ui/core/cldr/ko.json +469 -1
  168. package/src/sap/ui/core/cldr/lt.json +469 -1
  169. package/src/sap/ui/core/cldr/lv.json +469 -1
  170. package/src/sap/ui/core/cldr/ms.json +469 -1
  171. package/src/sap/ui/core/cldr/nb.json +469 -1
  172. package/src/sap/ui/core/cldr/nl.json +469 -1
  173. package/src/sap/ui/core/cldr/nl_BE.json +469 -1
  174. package/src/sap/ui/core/cldr/pl.json +469 -1
  175. package/src/sap/ui/core/cldr/pt.json +469 -1
  176. package/src/sap/ui/core/cldr/pt_PT.json +469 -1
  177. package/src/sap/ui/core/cldr/ro.json +469 -1
  178. package/src/sap/ui/core/cldr/ru.json +469 -1
  179. package/src/sap/ui/core/cldr/ru_UA.json +469 -1
  180. package/src/sap/ui/core/cldr/sk.json +469 -1
  181. package/src/sap/ui/core/cldr/sl.json +469 -1
  182. package/src/sap/ui/core/cldr/sr.json +469 -1
  183. package/src/sap/ui/core/cldr/sr_Latn.json +469 -1
  184. package/src/sap/ui/core/cldr/sv.json +469 -1
  185. package/src/sap/ui/core/cldr/th.json +469 -1
  186. package/src/sap/ui/core/cldr/tr.json +469 -1
  187. package/src/sap/ui/core/cldr/uk.json +469 -1
  188. package/src/sap/ui/core/cldr/vi.json +469 -1
  189. package/src/sap/ui/core/cldr/zh_CN.json +470 -2
  190. package/src/sap/ui/core/cldr/zh_HK.json +470 -2
  191. package/src/sap/ui/core/cldr/zh_SG.json +470 -2
  192. package/src/sap/ui/core/cldr/zh_TW.json +469 -1
  193. package/src/sap/ui/core/delegate/ItemNavigation.js +13 -14
  194. package/src/sap/ui/core/delegate/ScrollEnablement.js +11 -7
  195. package/src/sap/ui/core/dnd/DragAndDrop.js +2 -2
  196. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  197. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  198. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  199. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  200. package/src/sap/ui/core/format/DateFormat.js +41 -26
  201. package/src/sap/ui/core/format/NumberFormat.js +119 -53
  202. package/src/sap/ui/core/format/TimezoneUtil.js +48 -16
  203. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  204. package/src/sap/ui/core/library.js +3 -3
  205. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  206. package/src/sap/ui/core/message/Message.js +1 -1
  207. package/src/sap/ui/core/message/MessageManager.js +1 -1
  208. package/src/sap/ui/core/message/MessageParser.js +1 -1
  209. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  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 +2 -1
  215. package/src/sap/ui/core/mvc/XMLView.js +12 -20
  216. package/src/sap/ui/core/mvc/XMLViewRenderer.js +81 -62
  217. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  218. package/src/sap/ui/core/plugin/LessSupport.js +3 -3
  219. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  220. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  221. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  222. package/src/sap/ui/core/routing/Router.js +1 -1
  223. package/src/sap/ui/core/rules/App.support.js +8 -8
  224. package/src/sap/ui/core/rules/Config.support.js +12 -12
  225. package/src/sap/ui/core/rules/Model.support.js +8 -8
  226. package/src/sap/ui/core/rules/Rendering.support.js +1 -1
  227. package/src/sap/ui/core/rules/Theming.support.js +4 -4
  228. package/src/sap/ui/core/rules/View.support.js +9 -9
  229. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  230. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  231. package/src/sap/ui/core/service/Service.js +1 -1
  232. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  233. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  234. package/src/sap/ui/core/support/Plugin.js +1 -1
  235. package/src/sap/ui/core/support/Support.js +2 -2
  236. package/src/sap/ui/core/support/plugins/ControlTree.js +7 -3
  237. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  238. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  239. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  240. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  241. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  242. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  243. package/src/sap/ui/core/support/plugins/ViewInfo.js +8 -22
  244. package/src/sap/ui/core/support/support.html +1 -1
  245. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +15 -1
  246. package/src/sap/ui/core/themes/base/base.less +4 -4
  247. package/src/sap/ui/core/themes/base/global.less +2 -0
  248. package/src/sap/ui/core/themes/sap_hcb/global.less +2 -0
  249. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  250. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  251. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  252. package/src/sap/ui/core/tmpl/Template.js +1 -1
  253. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  254. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  255. package/src/sap/ui/core/util/Export.js +1 -1
  256. package/src/sap/ui/core/util/ExportCell.js +1 -1
  257. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  258. package/src/sap/ui/core/util/ExportRow.js +1 -1
  259. package/src/sap/ui/core/util/ExportType.js +1 -1
  260. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  261. package/src/sap/ui/core/util/File.js +1 -1
  262. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  263. package/src/sap/ui/core/util/MockServer.js +2 -2
  264. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  265. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  266. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  267. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  268. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  269. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  270. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  271. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  272. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  273. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  274. package/src/sap/ui/core/ws/WebSocket.js +7 -8
  275. package/src/sap/ui/debug/ControlTree.js +1 -1
  276. package/src/sap/ui/debug/DebugEnv.js +1 -1
  277. package/src/sap/ui/debug/PropertyList.js +1 -1
  278. package/src/sap/ui/model/ClientListBinding.js +127 -21
  279. package/src/sap/ui/model/ClientModel.js +1 -1
  280. package/src/sap/ui/model/CompositeDataState.js +1 -1
  281. package/src/sap/ui/model/CompositeType.js +1 -1
  282. package/src/sap/ui/model/DataState.js +1 -1
  283. package/src/sap/ui/model/ListBinding.js +32 -13
  284. package/src/sap/ui/model/MetaModel.js +1 -1
  285. package/src/sap/ui/model/Model.js +1 -1
  286. package/src/sap/ui/model/SelectionModel.js +1 -1
  287. package/src/sap/ui/model/SimpleType.js +1 -1
  288. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  289. package/src/sap/ui/model/Type.js +1 -1
  290. package/src/sap/ui/model/_Helper.js +3 -1
  291. package/src/sap/ui/model/json/JSONListBinding.js +0 -58
  292. package/src/sap/ui/model/json/JSONModel.js +1 -1
  293. package/src/sap/ui/model/message/MessageListBinding.js +0 -42
  294. package/src/sap/ui/model/message/MessageModel.js +1 -1
  295. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  296. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  297. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  298. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  299. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  300. package/src/sap/ui/model/odata/OperationMode.js +6 -0
  301. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  302. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  303. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  304. package/src/sap/ui/model/odata/type/Date.js +1 -1
  305. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  306. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  307. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  308. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -2
  309. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  310. package/src/sap/ui/model/odata/type/Double.js +1 -1
  311. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  312. package/src/sap/ui/model/odata/type/Int.js +1 -1
  313. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  314. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  315. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  316. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  317. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  318. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  319. package/src/sap/ui/model/odata/type/Single.js +1 -1
  320. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  321. package/src/sap/ui/model/odata/type/String.js +1 -1
  322. package/src/sap/ui/model/odata/type/Time.js +1 -1
  323. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  324. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  325. package/src/sap/ui/model/odata/type/UnitMixin.js +1 -1
  326. package/src/sap/ui/model/odata/v2/Context.js +13 -4
  327. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  328. package/src/sap/ui/model/odata/v2/ODataListBinding.js +107 -34
  329. package/src/sap/ui/model/odata/v2/ODataModel.js +70 -22
  330. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +8 -4
  331. package/src/sap/ui/model/odata/v4/Context.js +25 -1
  332. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  333. package/src/sap/ui/model/odata/v4/ODataListBinding.js +55 -26
  334. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +13 -6
  335. package/src/sap/ui/model/odata/v4/ODataModel.js +111 -5
  336. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  337. package/src/sap/ui/model/odata/v4/lib/_Cache.js +74 -74
  338. package/src/sap/ui/model/odata/v4/lib/_Helper.js +109 -39
  339. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +60 -29
  340. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  341. package/src/sap/ui/model/type/Boolean.js +1 -1
  342. package/src/sap/ui/model/type/Currency.js +1 -1
  343. package/src/sap/ui/model/type/Date.js +1 -1
  344. package/src/sap/ui/model/type/DateInterval.js +1 -1
  345. package/src/sap/ui/model/type/DateTime.js +1 -1
  346. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  347. package/src/sap/ui/model/type/FileSize.js +1 -1
  348. package/src/sap/ui/model/type/Float.js +1 -1
  349. package/src/sap/ui/model/type/Integer.js +1 -1
  350. package/src/sap/ui/model/type/String.js +1 -1
  351. package/src/sap/ui/model/type/Time.js +1 -1
  352. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  353. package/src/sap/ui/model/type/Unit.js +1 -1
  354. package/src/sap/ui/model/xml/XMLListBinding.js +0 -53
  355. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  356. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  357. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  358. package/src/sap/ui/test/actions/Action.js +3 -3
  359. package/src/sap/ui/test/actions/Press.js +1 -1
  360. package/src/sap/ui/test/generic/TestBase.js +1 -1
  361. package/src/sap/ui/util/Storage.js +1 -1
  362. package/ui5.yaml +1 -1
@@ -8,10 +8,10 @@ sap.ui.define([], function() {
8
8
  "use strict";
9
9
 
10
10
  /**
11
- * Static collection of utility functions to handle timezone related conversions
11
+ * Static collection of utility functions to handle time zone related conversions
12
12
  *
13
13
  * @author SAP SE
14
- * @version 1.101.0
14
+ * @version 1.102.2
15
15
  * @namespace
16
16
  * @alias sap.ui.core.format.TimezoneUtil
17
17
  * @private
@@ -19,8 +19,20 @@ sap.ui.define([], function() {
19
19
  */
20
20
  var TimezoneUtil = {};
21
21
 
22
+ /**
23
+ * Cache for the (browser's) local IANA timezone ID
24
+ *
25
+ * @type {string}
26
+ */
22
27
  var sLocalTimezone = "";
23
28
 
29
+ /**
30
+ * Cache for valid time zones provided by <code>Intl.supportedValuesOf("timeZone")</code>
31
+ *
32
+ * @type {Array}
33
+ */
34
+ var aSupportedTimezoneIDs;
35
+
24
36
  /**
25
37
  * Cache for Intl.DateTimeFormat instances
26
38
  */
@@ -68,11 +80,17 @@ sap.ui.define([], function() {
68
80
  };
69
81
 
70
82
  /**
71
- * Uses the <code>Intl.DateTimeFormat</code> API to check if it can handle the given
72
- * IANA timezone ID.
83
+ * Uses the <code>Intl.supportedValuesOf('timeZone')</code> and <code>Intl.DateTimeFormat</code>
84
+ * API to check if the browser can handle the given IANA timezone ID.
85
+ * <code>Intl.supportedValuesOf('timeZone')</code> offers direct access to the list of supported
86
+ * time zones. It is not yet supported by all browsers but if it is supported and the given time
87
+ * zone is in the list it is faster than probing.
88
+ *
89
+ * <code>Intl.supportedValuesOf('timeZone')</code> does not return all IANA timezone IDs which
90
+ * the <code>Intl.DateTimeFormat</code> can handle, e.g. "Japan", "Etc/UTC".
73
91
  *
74
92
  * @param {string} sTimezone The IANA timezone ID which is checked, e.g <code>"Europe/Berlin"</code>
75
- * @returns {boolean} Whether the timezone is a valid IANA timezone ID
93
+ * @returns {boolean} Whether the time zone is a valid IANA timezone ID
76
94
  * @private
77
95
  * @ui5-restricted sap.ui.core.Configuration, sap.ui.core.format.DateFormat
78
96
  */
@@ -81,6 +99,19 @@ sap.ui.define([], function() {
81
99
  return false;
82
100
  }
83
101
 
102
+ if (Intl.supportedValuesOf) {
103
+ try {
104
+ aSupportedTimezoneIDs = aSupportedTimezoneIDs || Intl.supportedValuesOf('timeZone');
105
+ if (aSupportedTimezoneIDs.includes(sTimezone)) {
106
+ return true;
107
+ }
108
+ // although not contained in the supportedValues it still can be valid, therefore continue
109
+ } catch (oError) {
110
+ // ignore error
111
+ aSupportedTimezoneIDs = [];
112
+ }
113
+ }
114
+
84
115
  try {
85
116
  oIntlDateTimeFormatCache.get(sTimezone);
86
117
  return true;
@@ -90,19 +121,19 @@ sap.ui.define([], function() {
90
121
  };
91
122
 
92
123
  /**
93
- * Converts a date to a specific timezone.
94
- * The resulting date reflects the given timezone such that the "UTC" Date methods
95
- * can be used, e.g. Date#getUTCHours() to display the hours in the given timezone.
124
+ * Converts a date to a specific time zone.
125
+ * The resulting date reflects the given time zone such that the "UTC" Date methods
126
+ * can be used, e.g. Date#getUTCHours() to display the hours in the given time zone.
96
127
  *
97
128
  * @example
98
129
  * var oDate = new Date("2021-10-13T15:22:33Z"); // UTC
99
- * // Timezone difference UTC-4 (DST)
130
+ * // time zone difference UTC-4 (DST)
100
131
  * TimezoneUtil.convertToTimezone(oDate, "America/New_York");
101
132
  * // 2021-10-13 11:22:33 in America/New_York
102
133
  *
103
134
  * @param {Date} oDate The date which should be converted.
104
135
  * @param {string} sTargetTimezone The target IANA timezone ID, e.g <code>"Europe/Berlin"</code>
105
- * @returns {Date} The new date in the target timezone.
136
+ * @returns {Date} The new date in the target time zone.
106
137
  * @private
107
138
  * @ui5-restricted sap.ui.core.format.DateFormat, sap.ui.unified, sap.m
108
139
  */
@@ -112,7 +143,7 @@ sap.ui.define([], function() {
112
143
  };
113
144
 
114
145
  /**
115
- * Uses the <code>Intl.DateTimeFormat</code> API to convert a date to a specific timezone.
146
+ * Uses the <code>Intl.DateTimeFormat</code> API to convert a date to a specific time zone.
116
147
  *
117
148
  * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts
118
149
  * @param {Date} oDate The date which should be converted.
@@ -127,7 +158,7 @@ sap.ui.define([], function() {
127
158
  * era: string,
128
159
  * fractionalSecond: string,
129
160
  * timeZoneName: string
130
- * }} An object containing the date and time fields considering the target timezone.
161
+ * }} An object containing the date and time fields considering the target time zone.
131
162
  * @private
132
163
  */
133
164
  TimezoneUtil._getParts = function(oDate, sTargetTimezone) {
@@ -186,7 +217,7 @@ sap.ui.define([], function() {
186
217
  };
187
218
 
188
219
  /**
189
- * Gets the offset to UTC in seconds for a given date in the timezone specified.
220
+ * Gets the offset to UTC in seconds for a given date in the time zone specified.
190
221
  *
191
222
  * For non-unique points in time, the daylight saving time takes precedence over the standard
192
223
  * time shortly after the switch back (e.g. clock gets set back 1 hour, duplicate hour).
@@ -200,7 +231,7 @@ sap.ui.define([], function() {
200
231
  * // => -7200 seconds (-2 * 60 * 60 seconds)
201
232
  *
202
233
  * // daylight saving time (2018 Sun, 25 Mar, 02:00 CET → CEST +1 hour (DST start) UTC+2h)
203
- * // the given date is taken as it is in the timezone
234
+ * // the given date is taken as it is in the time zone
204
235
  * TimezoneUtil.calculateOffset(new Date("2018-03-25T00:00:00Z"), "Europe/Berlin");
205
236
  * // => -3600 seconds (-1 * 60 * 60 seconds), interpreted as: 2018-03-25 00:00:00 (CET)
206
237
  *
@@ -211,9 +242,9 @@ sap.ui.define([], function() {
211
242
  * TimezoneUtil.calculateOffset(oHistoricalDate, "Europe/Berlin");
212
243
  * // => -3208 seconds (-3208 seconds)
213
244
  *
214
- * @param {Date} oDate The date in the timezone used to calculate the offset to UTC.
245
+ * @param {Date} oDate The date in the time zone used to calculate the offset to UTC.
215
246
  * @param {string} sTimezoneSource The source IANA timezone ID, e.g <code>"Europe/Berlin"</code>
216
- * @returns {number} The difference to UTC between the date in the timezone.
247
+ * @returns {number} The difference to UTC between the date in the time zone.
217
248
  * @private
218
249
  * @ui5-restricted sap.ui.core.format.DateFormat
219
250
  */
@@ -244,5 +275,6 @@ sap.ui.define([], function() {
244
275
  return sLocalTimezone;
245
276
  };
246
277
 
278
+
247
279
  return TimezoneUtil;
248
280
  });
@@ -398,7 +398,7 @@ sap.ui.define([
398
398
  * @see {@link topic:6322164936f047de941ec522b95d7b70 Hyphenation for Text Controls}
399
399
  * @extends sap.ui.base.ManagedObject
400
400
  * @author SAP SE
401
- * @version 1.101.0
401
+ * @version 1.102.2
402
402
  * @hideconstructor
403
403
  * @public
404
404
  * @since 1.60
@@ -25,13 +25,13 @@ sap.ui.define([
25
25
  * @namespace
26
26
  * @alias sap.ui.core
27
27
  * @author SAP SE
28
- * @version 1.101.0
28
+ * @version 1.102.2
29
29
  * @since 0.8
30
30
  * @public
31
31
  */
32
32
  var thisLib = sap.ui.getCore().initLibrary({
33
33
  name : "sap.ui.core",
34
- version: "1.101.0",
34
+ version: "1.102.2",
35
35
  designtime: "sap/ui/core/designtime/library.designtime",
36
36
  types: [
37
37
 
@@ -1509,7 +1509,7 @@ sap.ui.define([
1509
1509
  /**
1510
1510
  * Sort order of a column.
1511
1511
  *
1512
- * @version 1.101.0
1512
+ * @version 1.102.2
1513
1513
  * @enum {string}
1514
1514
  * @public
1515
1515
  * @since 1.61.0
@@ -29,7 +29,7 @@ sap.ui.define(['sap/ui/core/message/MessageProcessor'],
29
29
  * @extends sap.ui.core.message.MessageProcessor
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.101.0
32
+ * @version 1.102.2
33
33
  *
34
34
  * @public
35
35
  * @alias sap.ui.core.message.ControlMessageProcessor
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @extends sap.ui.base.Object
36
36
  *
37
37
  * @author SAP SE
38
- * @version 1.101.0
38
+ * @version 1.102.2
39
39
  *
40
40
  * @param {object} [mParameters] a map which contains the following parameter properties:
41
41
  * @param {string} [mParameters.id] The message id: will be generated if no id is set
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @extends sap.ui.base.EventProvider
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.101.0
49
+ * @version 1.102.2
50
50
  *
51
51
  * @public
52
52
  * @alias sap.ui.core.message.MessageManager
@@ -24,7 +24,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/Log"],
24
24
  * @extends sap.ui.base.Object
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.101.0
27
+ * @version 1.102.2
28
28
  * @public
29
29
  * @abstract
30
30
  * @alias sap.ui.core.message.MessageParser
@@ -27,7 +27,7 @@ sap.ui.define(['sap/ui/base/EventProvider', "sap/base/util/uid"],
27
27
  * @extends sap.ui.base.EventProvider
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.101.0
30
+ * @version 1.102.2
31
31
  *
32
32
  * @public
33
33
  * @alias sap.ui.core.message.MessageProcessor
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @extends sap.ui.core.mvc.View
46
46
  *
47
47
  * @author SAP SE
48
- * @version 1.101.0
48
+ * @version 1.102.2
49
49
  *
50
50
  * @public
51
51
  * @since 1.9.2
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  * @class
44
44
  * A View defined using JSON.
45
45
  * @extends sap.ui.core.mvc.View
46
- * @version 1.101.0
46
+ * @version 1.102.2
47
47
  *
48
48
  * @public
49
49
  * @alias sap.ui.core.mvc.JSONView
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @param {object} [mSettings] initial settings for the new control
28
28
  *
29
29
  * @extends sap.ui.core.mvc.View
30
- * @version 1.101.0
30
+ * @version 1.102.2
31
31
  * @deprecated Since 1.90. Instead use {@link topic:e6bb33d076dc4f23be50c082c271b9f0 Typed Views}
32
32
  * by defining the view class with {@link sap.ui.core.mvc.View.extend View.extend} and
33
33
  * creating the view instances with {@link sap.ui.core.mvc.View.create View.create}.
@@ -206,7 +206,7 @@ sap.ui.define([
206
206
  Log.warning(
207
207
  "Do not use deprecated sap.ui.core.mvc.JSView: (View: " + (mSettings.id || mSettings.viewName) + "). " +
208
208
  "Use typed views defined by 'sap.ui.core.mvc.View.extend()' and created by 'sap.ui.core.mvc.View.create()'. " +
209
- "For further information, have a look at https://sapui5.hana.ondemand.com/#/topic/e6bb33d076dc4f23be50c082c271b9f0.",
209
+ "For further information, have a look at https://openui5.hana.ondemand.com/topic/e6bb33d076dc4f23be50c082c271b9f0.",
210
210
  "sap.ui.core.mvc.JSView",
211
211
  null,
212
212
  function () {
@@ -29,7 +29,7 @@ function(View, TemplateViewRenderer, ViewType, Log) {
29
29
  * @extends sap.ui.core.mvc.View
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.101.0
32
+ * @version 1.102.2
33
33
  *
34
34
  * @public
35
35
  * @deprecated Since version 1.56.0, use {@link sap.ui.core.mvc.XMLView} in combination with
@@ -145,7 +145,7 @@ sap.ui.define([
145
145
  * The default implementation of this method returns <code>false</code>.
146
146
  *
147
147
  * @extends sap.ui.core.Control
148
- * @version 1.101.0
148
+ * @version 1.102.2
149
149
  *
150
150
  * @public
151
151
  * @alias sap.ui.core.mvc.View
@@ -183,6 +183,7 @@ sap.ui.define([
183
183
  */
184
184
  displayBlock : {type : "boolean", group : "Appearance", defaultValue : false}
185
185
  },
186
+ defaultAggregation: "content",
186
187
  aggregations : {
187
188
 
188
189
  /**
@@ -95,11 +95,6 @@ sap.ui.define([
95
95
  * destroy</code> method. All functions can be called but may not work properly or lead to unexpected side effects.
96
96
  *
97
97
  * <strong>Note:</strong><br>
98
- * On root level, you can only define content for the default aggregation, e.g. without adding the <code>&lt;content&gt;</code> tag. If
99
- * you want to specify content for another aggregation of a view like <code>dependents</code>, place it in a child
100
- * control's dependents aggregation or add it by using {@link sap.ui.core.mvc.XMLView#addDependent}.
101
- *
102
- * <strong>Note:</strong><br>
103
98
  * The XML view offers special handling for context binding and style classes.
104
99
  * You can specify them via the <code>binding</code> and <code>class</code> attributes on a control's XML node.
105
100
  * Please be aware that these attributes are not properties of the respective controls and thus
@@ -107,8 +102,12 @@ sap.ui.define([
107
102
  * For more information, see {@link topic:91f05e8b6f4d1014b6dd926db0e91070 Context Binding (Element Binding)}
108
103
  * and {@link topic:b564935324f449209354c7e2f9903f22 Using CSS Style Sheets in XML Views}.
109
104
  *
105
+ * <strong>Note:</strong><br>
106
+ * When the content aggregation of this control is bound, no HTML markup is allowed in the binding template of the
107
+ * bound content aggregation. An error will be thrown when the above combination is detected.
108
+ *
110
109
  * @extends sap.ui.core.mvc.View
111
- * @version 1.101.0
110
+ * @version 1.102.2
112
111
  *
113
112
  * @public
114
113
  * @alias sap.ui.core.mvc.XMLView
@@ -527,18 +526,11 @@ sap.ui.define([
527
526
  }
528
527
 
529
528
  // extract the properties of the view from the XML element
530
- if ( !that.isSubView() ) {
531
- // for a real XMLView, we need to parse the attributes of the root node
532
- var mSettingsFromXML = {};
533
- // enrich mSettingsFromXML
534
- XMLTemplateProcessor.parseViewAttributes(xContent, that, mSettingsFromXML);
535
- if (!mSettings.async) {
536
- // extend mSettings which get applied implicitly during view constructor
537
- Object.assign(mSettings, mSettingsFromXML);
538
- } else {
539
- // apply the settings from the loaded view source via an explicit call
540
- that.applySettings(mSettingsFromXML);
541
- }
529
+ if (!that.isSubView()) {
530
+ // extract the internal settings from the XML and set on the view. The standard properties, event
531
+ // handler, aggregation and association will be extracted during parsing the content and applied to the
532
+ // view instance by calling "applySettings"
533
+ XMLTemplateProcessor.parseViewAttributes(xContent, that);
542
534
  } else {
543
535
  // when used as fragment: prevent connection to controller, only top level XMLView must connect
544
536
  delete mSettings.controller;
@@ -679,7 +671,7 @@ sap.ui.define([
679
671
  View.prototype.exit.apply(this, arguments);
680
672
  };
681
673
 
682
- XMLView.prototype.onControllerConnected = function(oController) {
674
+ XMLView.prototype.onControllerConnected = function(oController, mSettings) {
683
675
  var that = this;
684
676
  // unset any preprocessors (e.g. from an enclosing JSON view)
685
677
 
@@ -694,7 +686,7 @@ sap.ui.define([
694
686
 
695
687
  // parse the XML tree
696
688
  if (!this.oAsyncState) {
697
- this._aParsedContent = fnRunWithPreprocessor(XMLTemplateProcessor.parseTemplate.bind(null, this._xContent, this));
689
+ this._aParsedContent = fnRunWithPreprocessor(XMLTemplateProcessor.parseTemplate.bind(null, this._xContent, this, mSettings));
698
690
  } else {
699
691
  var fnDone = Interaction.notifyAsyncStep("VIEW PROCESSING");
700
692
  return XMLTemplateProcessor.parseTemplatePromise(this._xContent, this, true, {
@@ -63,7 +63,6 @@ sap.ui.define([
63
63
  apiVersion: 2
64
64
  };
65
65
 
66
-
67
66
  /**
68
67
  * Renders the HTML for the given control, using the provided {@link sap.ui.core.RenderManager}.
69
68
  *
@@ -71,79 +70,99 @@ sap.ui.define([
71
70
  * @param {sap.ui.core.mvc.XMLView} oControl an object representation of the control that should be rendered
72
71
  */
73
72
  XMLViewRenderer.render = function(rm, oControl) {
73
+ function writeRootOpenTag(bPreserve) {
74
+ rm.openStart("div", oControl);
75
+ rm.class("sapUiView");
76
+ rm.class("sapUiXMLView");
77
+ ViewRenderer.addDisplayClass(rm, oControl);
78
+ if (bPreserve) {
79
+ rm.attr("data-sap-ui-preserve", oControl.getId());
80
+ }
81
+ rm.style("width", oControl.getWidth());
82
+ rm.style("height", oControl.getHeight());
83
+ rm.openEnd();
84
+ }
85
+
86
+ function writeRootCloseTag() {
87
+ rm.close("div");
88
+ }
89
+
74
90
  // write the HTML into the render manager
75
- var aParsedContent = oControl._aParsedContent;
76
- var $oldContent = oControl._$oldContent = RenderManager.findPreservedContent(oControl.getId());
77
- if ( $oldContent.length === 0) {
78
- // Log.debug("rendering " + oControl + " anew");
79
- var bSubView = oControl.isSubView();
80
- if (!bSubView) {
81
- rm.openStart("div", oControl);
82
- rm.class("sapUiView");
83
- rm.class("sapUiXMLView");
84
- ViewRenderer.addDisplayClass(rm, oControl);
85
- if (!oControl.oAsyncState || !oControl.oAsyncState.suppressPreserve) {
91
+ var aParsedContent = oControl._aParsedContent, i;
92
+
93
+ if (oControl.isBound("content")) {
94
+ writeRootOpenTag();
95
+
96
+ var aContent = oControl.getContent();
97
+ for (i = 0; i < aContent.length; i++) {
98
+ rm.renderControl(aContent[i]);
99
+ }
100
+
101
+ writeRootCloseTag();
102
+ } else {
103
+ var $oldContent = oControl._$oldContent = RenderManager.findPreservedContent(oControl.getId());
104
+ if ($oldContent.length === 0) {
105
+ // Log.debug("rendering " + oControl + " anew");
106
+ var bSubView = oControl.isSubView();
107
+ if (!bSubView) {
86
108
  // do not preserve when rendering initially in async mode
87
- rm.attr("data-sap-ui-preserve", oControl.getId());
109
+ writeRootOpenTag(!oControl.oAsyncState || !oControl.oAsyncState.suppressPreserve /* bPreserve */);
88
110
  }
89
- rm.style("width", oControl.getWidth());
90
- rm.style("height", oControl.getHeight());
91
- rm.openEnd();
92
- }
93
- if (aParsedContent) {
94
- for (var i = 0; i < aParsedContent.length; i++) {
95
- var vRmInfo = aParsedContent[i];
96
- // apply RenderManagerAPI calls which might have been recorded during XML processing for all encountered HTML elements in an XMLView
97
- if (Array.isArray(vRmInfo)) {
98
- rm[vRmInfo[0]].apply(rm, vRmInfo[1]);
99
- } else if (!vRmInfo._isExtensionPoint) {
100
- // XMLView ExtensionPoint placeholder
101
- // we need to ignore these placeholders during rendering, they will be resolved asynchronously later by the flexibility provider
102
- // plain UI5 Control
103
- rm.renderControl(vRmInfo);
104
- // when the child control did not render anything, we add a placeholder to know where to render the child later
105
- if ( !vRmInfo.bOutput ) {
106
- rm.openStart("div", PREFIX_DUMMY + vRmInfo.getId());
107
- rm.class("sapUiHidden");
108
- rm.openEnd();
109
- rm.close("div");
111
+ if (aParsedContent) {
112
+ for (i = 0; i < aParsedContent.length; i++) {
113
+ var vRmInfo = aParsedContent[i];
114
+ // apply RenderManagerAPI calls which might have been recorded during XML processing for all encountered HTML elements in an XMLView
115
+ if (Array.isArray(vRmInfo)) {
116
+ rm[vRmInfo[0]].apply(rm, vRmInfo[1]);
117
+ } else if (!vRmInfo._isExtensionPoint) {
118
+ // XMLView ExtensionPoint placeholder
119
+ // we need to ignore these placeholders during rendering, they will be resolved asynchronously later by the flexibility provider
120
+ // plain UI5 Control
121
+ rm.renderControl(vRmInfo);
122
+ // when the child control did not render anything, we add a placeholder to know where to render the child later
123
+ if ( !vRmInfo.bOutput ) {
124
+ rm.openStart("div", PREFIX_DUMMY + vRmInfo.getId());
125
+ rm.class("sapUiHidden");
126
+ rm.openEnd();
127
+ rm.close("div");
128
+ }
110
129
  }
111
130
  }
112
131
  }
113
- }
114
- if (!bSubView) {
115
- rm.close("div");
116
- }
132
+ if (!bSubView) {
133
+ writeRootCloseTag();
134
+ }
117
135
 
118
- } else {
136
+ } else {
119
137
 
120
- // render dummy control for early after rendering notification
121
- rm.renderControl(oControl.oAfterRenderingNotifier);
138
+ // render dummy control for early after rendering notification
139
+ rm.renderControl(oControl.oAfterRenderingNotifier);
122
140
 
123
- // preserve mode: render a temporary element and all child controls
124
- rm.openStart("div", PREFIX_TEMPORARY + oControl.getId());
125
- rm.class("sapUiHidden");
126
- rm.openEnd();
127
- for (var i = 0; i < aParsedContent.length; i++) {
128
- var vFragment = aParsedContent[i];
129
- // if the parsed content does not have a corresponding _renderManagerAPICall, it's a control
130
- if (!Array.isArray(vFragment) && !vFragment._isExtensionPoint) {
131
- // render DOM string for child control
132
- rm.renderControl(vFragment);
133
-
134
- // replace any old DOM (or invisible placeholder) for a child control with a dummy placeholder
135
- var sFragmentId = vFragment.getId(),
136
- $fragment = jQuery(document.getElementById(sFragmentId));
137
- if ($fragment.length == 0) {
138
- $fragment = jQuery(document.getElementById(PREFIX_INVISIBLE + sFragmentId));
139
- }
140
- if ( !RenderManager.isPreservedContent($fragment[0]) ) {
141
- $fragment.replaceWith('<div id="' + PREFIX_DUMMY + sFragmentId + '" class="sapUiHidden"></div>');
141
+ // preserve mode: render a temporary element and all child controls
142
+ rm.openStart("div", PREFIX_TEMPORARY + oControl.getId());
143
+ rm.class("sapUiHidden");
144
+ rm.openEnd();
145
+ for (i = 0; i < aParsedContent.length; i++) {
146
+ var vFragment = aParsedContent[i];
147
+ // if the parsed content does not have a corresponding _renderManagerAPICall, it's a control
148
+ if (!Array.isArray(vFragment) && !vFragment._isExtensionPoint) {
149
+ // render DOM string for child control
150
+ rm.renderControl(vFragment);
151
+
152
+ // replace any old DOM (or invisible placeholder) for a child control with a dummy placeholder
153
+ var sFragmentId = vFragment.getId(),
154
+ $fragment = jQuery(document.getElementById(sFragmentId));
155
+ if ($fragment.length == 0) {
156
+ $fragment = jQuery(document.getElementById(PREFIX_INVISIBLE + sFragmentId));
157
+ }
158
+ if ( !RenderManager.isPreservedContent($fragment[0]) ) {
159
+ $fragment.replaceWith('<div id="' + PREFIX_DUMMY + sFragmentId + '" class="sapUiHidden"></div>');
160
+ }
142
161
  }
143
162
  }
144
- }
145
- rm.close("div");
163
+ rm.close("div");
146
164
 
165
+ }
147
166
  }
148
167
  };
149
168
 
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @see sap.ui.core.DeclarativeSupport
22
22
  * @public
23
23
  * @since 1.7.0
24
- * @version 1.101.0
24
+ * @version 1.102.2
25
25
  * @alias sap.ui.core.plugin.DeclarativeSupport
26
26
  */
27
27
  var DeclarativeSupportPlugin = function() {
@@ -37,7 +37,7 @@
37
37
  * feature - DO NOT USE IN PRODUCTIVE SCENARIOS!!
38
38
  *
39
39
  * @author Peter Muessig
40
- * @version 1.101.0
40
+ * @version 1.102.2
41
41
  * @private
42
42
  * @alias sap.ui.core.plugin.LessSupport
43
43
  */
@@ -102,8 +102,8 @@
102
102
  this.bActive = true;
103
103
 
104
104
  // overwrite the includeLibraryTheme/applyTheme function to inject LESS
105
- this.oCore.includeLibraryTheme = jQuery.proxy(this.includeLibraryTheme, this);
106
- this.oCore.applyTheme = jQuery.proxy(this.applyTheme, this);
105
+ this.oCore.includeLibraryTheme = this.includeLibraryTheme.bind(this);
106
+ this.oCore.applyTheme = this.applyTheme.bind(this);
107
107
 
108
108
  // update the themes (only when LESS files are newer than the CSS files)
109
109
  var that = this, bUseLess = false;
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @author Peter Muessig
21
21
  * @public
22
22
  * @since 1.15.0
23
- * @version 1.101.0
23
+ * @version 1.102.2
24
24
  * @alias sap.ui.core.plugin.TemplatingSupport
25
25
  */
26
26
  var TemplatingSupport = function() {
@@ -38,7 +38,7 @@ function (
38
38
  * @alias sap.ui.core.postmessage.Bus
39
39
  * @author SAP SE
40
40
  * @since 1.56.0
41
- * @version 1.101.0
41
+ * @version 1.102.2
42
42
  * @private
43
43
  * @ui5-restricted sap.ui.core.support, sap.ui.support, sap.ui.rta
44
44
  */
@@ -13,7 +13,7 @@ sap.ui.define(function () {
13
13
  *
14
14
  * @author SAP SE
15
15
  * @since 1.56.0
16
- * @version 1.101.0
16
+ * @version 1.102.2
17
17
  *
18
18
  * @function
19
19
  * @param {string} sMessage - Dialog message
@@ -295,7 +295,7 @@ sap.ui.define([
295
295
  that.addRoute(oRouteConfig);
296
296
  });
297
297
 
298
- this._oRouter.bypassed.add(jQuery.proxy(this._onBypassed, this));
298
+ this._oRouter.bypassed.add(this._onBypassed.bind(this));
299
299
 
300
300
  if (!oRouterHashChanger) {
301
301
  oRouterHashChanger = HashChanger.getInstance().createRouterHashChanger();