@openui5/sap.ui.core 1.108.0 → 1.109.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 (352) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +1 -1
  3. package/src/jquery.sap.global.js +1 -1
  4. package/src/jquery.sap.properties.js +1 -1
  5. package/src/jquery.sap.resources.js +1 -1
  6. package/src/jquery.sap.script.js +1 -1
  7. package/src/jquery.sap.storage.js +3 -3
  8. package/src/sap/base/Log.js +125 -84
  9. package/src/sap/base/i18n/ResourceBundle.js +41 -11
  10. package/src/sap/base/util/includes.js +1 -1
  11. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  12. package/src/sap/base/util/restricted/_castArray.js +1 -1
  13. package/src/sap/base/util/restricted/_compact.js +1 -1
  14. package/src/sap/base/util/restricted/_curry.js +1 -1
  15. package/src/sap/base/util/restricted/_debounce.js +1 -1
  16. package/src/sap/base/util/restricted/_difference.js +1 -1
  17. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  18. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  19. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  20. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  22. package/src/sap/base/util/restricted/_flatten.js +1 -1
  23. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_intersection.js +1 -1
  26. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  27. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  28. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  29. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isNil.js +1 -1
  31. package/src/sap/base/util/restricted/_max.js +1 -1
  32. package/src/sap/base/util/restricted/_merge.js +1 -1
  33. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  34. package/src/sap/base/util/restricted/_min.js +1 -1
  35. package/src/sap/base/util/restricted/_omit.js +1 -1
  36. package/src/sap/base/util/restricted/_pick.js +1 -1
  37. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  38. package/src/sap/base/util/restricted/_throttle.js +1 -1
  39. package/src/sap/base/util/restricted/_toArray.js +1 -1
  40. package/src/sap/base/util/restricted/_union.js +1 -1
  41. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  42. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  43. package/src/sap/base/util/restricted/_uniq.js +1 -1
  44. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  45. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  46. package/src/sap/base/util/restricted/_without.js +1 -1
  47. package/src/sap/base/util/restricted/_xor.js +1 -1
  48. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  49. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  50. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  51. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  52. package/src/sap/base/util/values.js +2 -1
  53. package/src/sap/ui/Device.js +3 -3
  54. package/src/sap/ui/Global.js +4 -4
  55. package/src/sap/ui/base/Event.js +1 -1
  56. package/src/sap/ui/base/EventProvider.js +1 -1
  57. package/src/sap/ui/base/Interface.js +1 -1
  58. package/src/sap/ui/base/ManagedObject.js +1 -1
  59. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  60. package/src/sap/ui/base/ManagedObjectObserver.js +33 -11
  61. package/src/sap/ui/base/Metadata.js +1 -1
  62. package/src/sap/ui/base/Object.js +1 -1
  63. package/src/sap/ui/base/ObjectPool.js +1 -1
  64. package/src/sap/ui/core/.library +3 -3
  65. package/src/sap/ui/core/BusyIndicator.js +1 -1
  66. package/src/sap/ui/core/Component.js +1 -1
  67. package/src/sap/ui/core/ComponentContainer.js +1 -1
  68. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  69. package/src/sap/ui/core/ComponentSupport.js +1 -1
  70. package/src/sap/ui/core/Configuration.js +1 -1
  71. package/src/sap/ui/core/Control.js +1 -1
  72. package/src/sap/ui/core/Core.js +4 -4
  73. package/src/sap/ui/core/CustomData.js +1 -1
  74. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  75. package/src/sap/ui/core/Element.js +1 -1
  76. package/src/sap/ui/core/ElementMetadata.js +1 -1
  77. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  78. package/src/sap/ui/core/EventBus.js +1 -1
  79. package/src/sap/ui/core/Fragment.js +1 -1
  80. package/src/sap/ui/core/HTML.js +1 -1
  81. package/src/sap/ui/core/History.js +1 -1
  82. package/src/sap/ui/core/Icon.js +1 -1
  83. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  84. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  85. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  86. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  87. package/src/sap/ui/core/InvisibleText.js +1 -1
  88. package/src/sap/ui/core/Item.js +1 -1
  89. package/src/sap/ui/core/LabelEnablement.js +1 -1
  90. package/src/sap/ui/core/LayoutData.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 +1 -1
  94. package/src/sap/ui/core/LocaleData.js +133 -1
  95. package/src/sap/ui/core/Manifest.js +1 -1
  96. package/src/sap/ui/core/Message.js +1 -1
  97. package/src/sap/ui/core/RenderManager.js +82 -50
  98. package/src/sap/ui/core/Renderer.js +1 -1
  99. package/src/sap/ui/core/Rendering.js +29 -9
  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 +7 -5
  106. package/src/sap/ui/core/UIComponent.js +1 -1
  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/XMLTemplateProcessor.js +1 -3
  113. package/src/sap/ui/core/cldr/ar.json +330 -0
  114. package/src/sap/ui/core/cldr/ar_EG.json +330 -0
  115. package/src/sap/ui/core/cldr/ar_SA.json +330 -0
  116. package/src/sap/ui/core/cldr/bg.json +295 -0
  117. package/src/sap/ui/core/cldr/ca.json +329 -0
  118. package/src/sap/ui/core/cldr/cs.json +328 -0
  119. package/src/sap/ui/core/cldr/cy.json +260 -0
  120. package/src/sap/ui/core/cldr/da.json +295 -0
  121. package/src/sap/ui/core/cldr/de.json +329 -0
  122. package/src/sap/ui/core/cldr/de_AT.json +329 -0
  123. package/src/sap/ui/core/cldr/de_CH.json +329 -0
  124. package/src/sap/ui/core/cldr/el.json +228 -0
  125. package/src/sap/ui/core/cldr/el_CY.json +228 -0
  126. package/src/sap/ui/core/cldr/en.json +294 -0
  127. package/src/sap/ui/core/cldr/en_AU.json +294 -0
  128. package/src/sap/ui/core/cldr/en_GB.json +294 -0
  129. package/src/sap/ui/core/cldr/en_HK.json +294 -0
  130. package/src/sap/ui/core/cldr/en_IE.json +294 -0
  131. package/src/sap/ui/core/cldr/en_IN.json +294 -0
  132. package/src/sap/ui/core/cldr/en_NZ.json +294 -0
  133. package/src/sap/ui/core/cldr/en_PG.json +294 -0
  134. package/src/sap/ui/core/cldr/en_SG.json +294 -0
  135. package/src/sap/ui/core/cldr/en_ZA.json +294 -0
  136. package/src/sap/ui/core/cldr/es.json +261 -0
  137. package/src/sap/ui/core/cldr/es_AR.json +261 -0
  138. package/src/sap/ui/core/cldr/es_BO.json +261 -0
  139. package/src/sap/ui/core/cldr/es_CL.json +261 -0
  140. package/src/sap/ui/core/cldr/es_CO.json +261 -0
  141. package/src/sap/ui/core/cldr/es_MX.json +261 -0
  142. package/src/sap/ui/core/cldr/es_PE.json +261 -0
  143. package/src/sap/ui/core/cldr/es_UY.json +261 -0
  144. package/src/sap/ui/core/cldr/es_VE.json +261 -0
  145. package/src/sap/ui/core/cldr/et.json +294 -0
  146. package/src/sap/ui/core/cldr/fa.json +296 -0
  147. package/src/sap/ui/core/cldr/fi.json +328 -0
  148. package/src/sap/ui/core/cldr/fr.json +294 -0
  149. package/src/sap/ui/core/cldr/fr_BE.json +294 -0
  150. package/src/sap/ui/core/cldr/fr_CA.json +294 -0
  151. package/src/sap/ui/core/cldr/fr_CH.json +294 -0
  152. package/src/sap/ui/core/cldr/fr_LU.json +294 -0
  153. package/src/sap/ui/core/cldr/he.json +329 -0
  154. package/src/sap/ui/core/cldr/hi.json +261 -0
  155. package/src/sap/ui/core/cldr/hr.json +294 -0
  156. package/src/sap/ui/core/cldr/hu.json +362 -0
  157. package/src/sap/ui/core/cldr/id.json +294 -0
  158. package/src/sap/ui/core/cldr/it.json +294 -0
  159. package/src/sap/ui/core/cldr/it_CH.json +294 -0
  160. package/src/sap/ui/core/cldr/ja.json +328 -0
  161. package/src/sap/ui/core/cldr/kk.json +294 -0
  162. package/src/sap/ui/core/cldr/ko.json +328 -0
  163. package/src/sap/ui/core/cldr/lt.json +294 -0
  164. package/src/sap/ui/core/cldr/lv.json +294 -0
  165. package/src/sap/ui/core/cldr/ms.json +262 -0
  166. package/src/sap/ui/core/cldr/nb.json +295 -0
  167. package/src/sap/ui/core/cldr/nl.json +261 -0
  168. package/src/sap/ui/core/cldr/nl_BE.json +261 -0
  169. package/src/sap/ui/core/cldr/pl.json +328 -0
  170. package/src/sap/ui/core/cldr/pt.json +294 -0
  171. package/src/sap/ui/core/cldr/pt_PT.json +294 -0
  172. package/src/sap/ui/core/cldr/ro.json +294 -0
  173. package/src/sap/ui/core/cldr/ru.json +294 -0
  174. package/src/sap/ui/core/cldr/ru_UA.json +294 -0
  175. package/src/sap/ui/core/cldr/sk.json +328 -0
  176. package/src/sap/ui/core/cldr/sl.json +328 -0
  177. package/src/sap/ui/core/cldr/sr.json +294 -0
  178. package/src/sap/ui/core/cldr/sr_Latn.json +294 -0
  179. package/src/sap/ui/core/cldr/sv.json +295 -0
  180. package/src/sap/ui/core/cldr/th.json +362 -0
  181. package/src/sap/ui/core/cldr/tr.json +362 -0
  182. package/src/sap/ui/core/cldr/uk.json +294 -0
  183. package/src/sap/ui/core/cldr/vi.json +294 -0
  184. package/src/sap/ui/core/cldr/zh_CN.json +329 -0
  185. package/src/sap/ui/core/cldr/zh_HK.json +329 -0
  186. package/src/sap/ui/core/cldr/zh_SG.json +329 -0
  187. package/src/sap/ui/core/cldr/zh_TW.json +329 -0
  188. package/src/sap/ui/core/date/Japanese.js +30 -0
  189. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  190. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  191. package/src/sap/ui/core/dnd/DragAndDrop.js +2 -2
  192. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  193. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  194. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  195. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  196. package/src/sap/ui/core/format/DateFormat.js +122 -2
  197. package/src/sap/ui/core/format/NumberFormat.js +111 -70
  198. package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
  199. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  200. package/src/sap/ui/core/library.js +3 -3
  201. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  202. package/src/sap/ui/core/message/Message.js +1 -1
  203. package/src/sap/ui/core/message/MessageManager.js +1 -1
  204. package/src/sap/ui/core/message/MessageParser.js +1 -1
  205. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  206. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  207. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  208. package/src/sap/ui/core/mvc/JSView.js +1 -1
  209. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  210. package/src/sap/ui/core/mvc/View.js +3 -3
  211. package/src/sap/ui/core/mvc/ViewType.js +4 -0
  212. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  213. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  214. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  215. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  216. package/src/sap/ui/core/postmessage/Bus.js +12 -17
  217. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  218. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  219. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  220. package/src/sap/ui/core/service/Service.js +1 -1
  221. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  222. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  223. package/src/sap/ui/core/support/Plugin.js +1 -1
  224. package/src/sap/ui/core/support/Support.js +1 -1
  225. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  226. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  227. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  228. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  229. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  230. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  231. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  232. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  233. package/src/sap/ui/core/themes/base/Icon.less +17 -4
  234. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +1 -1
  235. package/src/sap/ui/core/themes/base/base.less +599 -90
  236. package/src/sap/ui/core/themes/base/global.less +64 -0
  237. package/src/sap/ui/core/themes/sap_hcb/global.less +65 -0
  238. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  239. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  240. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  241. package/src/sap/ui/core/tmpl/Template.js +1 -1
  242. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  243. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  244. package/src/sap/ui/core/util/Export.js +1 -1
  245. package/src/sap/ui/core/util/ExportCell.js +1 -1
  246. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  247. package/src/sap/ui/core/util/ExportRow.js +1 -1
  248. package/src/sap/ui/core/util/ExportType.js +1 -1
  249. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  250. package/src/sap/ui/core/util/File.js +1 -1
  251. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  252. package/src/sap/ui/core/util/MockServer.js +1 -1
  253. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  254. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -3
  255. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  256. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  257. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  258. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  259. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  260. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  261. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  262. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  263. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  264. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  265. package/src/sap/ui/debug/ControlTree.js +1 -1
  266. package/src/sap/ui/debug/DebugEnv.js +1 -1
  267. package/src/sap/ui/debug/PropertyList.js +1 -1
  268. package/src/sap/ui/model/ClientModel.js +1 -1
  269. package/src/sap/ui/model/CompositeDataState.js +1 -1
  270. package/src/sap/ui/model/CompositeType.js +1 -1
  271. package/src/sap/ui/model/DataState.js +1 -1
  272. package/src/sap/ui/model/MetaModel.js +1 -1
  273. package/src/sap/ui/model/Model.js +1 -1
  274. package/src/sap/ui/model/SelectionModel.js +1 -1
  275. package/src/sap/ui/model/SimpleType.js +1 -1
  276. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  277. package/src/sap/ui/model/Type.js +1 -1
  278. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +11 -3
  279. package/src/sap/ui/model/json/JSONModel.js +1 -1
  280. package/src/sap/ui/model/message/MessageModel.js +1 -1
  281. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  282. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  283. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  284. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  285. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  286. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  287. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  288. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  289. package/src/sap/ui/model/odata/type/Date.js +1 -1
  290. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  291. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  292. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  293. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  294. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  295. package/src/sap/ui/model/odata/type/Double.js +1 -1
  296. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  297. package/src/sap/ui/model/odata/type/Int.js +1 -1
  298. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  299. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  300. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  301. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  302. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  303. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  304. package/src/sap/ui/model/odata/type/Single.js +1 -1
  305. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  306. package/src/sap/ui/model/odata/type/String.js +1 -1
  307. package/src/sap/ui/model/odata/type/Time.js +1 -1
  308. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  309. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  310. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  311. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  312. package/src/sap/ui/model/odata/v2/ODataListBinding.js +1 -1
  313. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  314. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -4
  315. package/src/sap/ui/model/odata/v4/Context.js +82 -29
  316. package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
  317. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +3 -2
  318. package/src/sap/ui/model/odata/v4/ODataListBinding.js +77 -23
  319. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  320. package/src/sap/ui/model/odata/v4/ODataModel.js +2 -2
  321. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  322. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +334 -142
  323. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +109 -16
  324. package/src/sap/ui/model/odata/v4/lib/_Cache.js +82 -42
  325. package/src/sap/ui/model/odata/v4/lib/_Helper.js +26 -0
  326. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  327. package/src/sap/ui/model/type/Boolean.js +1 -1
  328. package/src/sap/ui/model/type/Currency.js +1 -1
  329. package/src/sap/ui/model/type/Date.js +1 -1
  330. package/src/sap/ui/model/type/DateInterval.js +1 -1
  331. package/src/sap/ui/model/type/DateTime.js +1 -1
  332. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  333. package/src/sap/ui/model/type/FileSize.js +1 -1
  334. package/src/sap/ui/model/type/Float.js +1 -1
  335. package/src/sap/ui/model/type/Integer.js +1 -1
  336. package/src/sap/ui/model/type/String.js +1 -1
  337. package/src/sap/ui/model/type/Time.js +1 -1
  338. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  339. package/src/sap/ui/model/type/Unit.js +1 -1
  340. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  341. package/src/sap/ui/qunit/QUnitUtils.js +14 -2
  342. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  343. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  344. package/src/sap/ui/test/OpaExtension.js +1 -1
  345. package/src/sap/ui/test/OpaPlugin.js +6 -4
  346. package/src/sap/ui/test/PageObjectFactory.js +11 -9
  347. package/src/sap/ui/test/RecordReplay.js +1 -1
  348. package/src/sap/ui/test/_OpaLogger.js +1 -1
  349. package/src/sap/ui/test/autowaiter/_promiseWaiter.js +4 -1
  350. package/src/sap/ui/test/generic/TestBase.js +1 -1
  351. package/src/sap/ui/util/Mobile.js +17 -18
  352. package/src/sap/ui/util/Storage.js +90 -63
@@ -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.108.0
82
+ * @version 1.109.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 */ {
@@ -226,7 +226,7 @@ sap.ui.define([
226
226
  * @extends sap.ui.base.Object
227
227
  * @final
228
228
  * @author SAP SE
229
- * @version 1.108.0
229
+ * @version 1.109.0
230
230
  * @alias sap.ui.core.Core
231
231
  * @public
232
232
  * @hideconstructor
@@ -1003,21 +1003,21 @@ sap.ui.define([
1003
1003
  // If there is no waitForTheme or ThemeManager is already available and theme is loaded render directly sync
1004
1004
  if (this.isThemeApplied() || !sWaitForTheme) {
1005
1005
  this._executeInitialization();
1006
- Rendering.renderPendingUIUpdates("during Core init"); // directly render without setTimeout, so rendering is guaranteed to be finished when init() ends
1007
1006
  } else {
1007
+ Rendering.suspend();
1008
1008
  if (sWaitForTheme === "rendering") {
1009
1009
  Rendering.notifyInteractionStep();
1010
1010
  this._executeInitialization();
1011
1011
  Rendering.getLogger().debug("delay initial rendering until theme has been loaded");
1012
1012
  _oEventProvider.attachEventOnce(Core.M_EVENTS.ThemeChanged, function() {
1013
- Rendering.renderPendingUIUpdates("after theme has been loaded", 0);
1013
+ Rendering.resume("after theme has been loaded");
1014
1014
  }, this);
1015
1015
  } else if (sWaitForTheme === "init") {
1016
1016
  Rendering.getLogger().debug("delay init event and initial rendering until theme has been loaded");
1017
1017
  Rendering.notifyInteractionStep();
1018
1018
  _oEventProvider.attachEventOnce(Core.M_EVENTS.ThemeChanged, function() {
1019
1019
  this._executeInitialization();
1020
- Rendering.renderPendingUIUpdates("after theme has been loaded", 0);
1020
+ Rendering.resume("after theme has been loaded");
1021
1021
  }, this);
1022
1022
  }
1023
1023
  // Require ThemeManager if not already done to ensure ThemeManager is available and ThemeChanged event will be fired
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * in the documentation.
25
25
  *
26
26
  * @extends sap.ui.core.Element
27
- * @version 1.108.0
27
+ * @version 1.109.0
28
28
  *
29
29
  * @public
30
30
  * @alias sap.ui.core.CustomData
@@ -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.108.0
43
+ * @version 1.109.0
44
44
  * @since 1.7.0
45
45
  * @public
46
46
  * @alias sap.ui.core.DeclarativeSupport
@@ -128,7 +128,7 @@ sap.ui.define([
128
128
  *
129
129
  * @extends sap.ui.base.ManagedObject
130
130
  * @author SAP SE
131
- * @version 1.108.0
131
+ * @version 1.109.0
132
132
  * @public
133
133
  * @alias sap.ui.core.Element
134
134
  */
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  *
24
24
  * @class
25
25
  * @author SAP SE
26
- * @version 1.108.0
26
+ * @version 1.109.0
27
27
  * @since 0.8.6
28
28
  * @alias sap.ui.core.ElementMetadata
29
29
  * @extends sap.ui.base.ManagedObjectMetadata
@@ -43,7 +43,7 @@ sap.ui.define([
43
43
  *
44
44
  * @param {boolean} [bDefault=true] Value that should be used as default value for the enhancement of the control.
45
45
  * @param {boolean} [bLegacy=false] Whether the introduced property should use the old name <code>Enabled</code>.
46
- * @version 1.108.0
46
+ * @version 1.109.0
47
47
  * @public
48
48
  * @class
49
49
  * @alias sap.ui.core.EnabledPropagator
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  *
31
31
  * @extends sap.ui.base.Object
32
32
  * @author SAP SE
33
- * @version 1.108.0
33
+ * @version 1.109.0
34
34
  * @public
35
35
  * @since 1.8.0
36
36
  * @alias sap.ui.core.EventBus
@@ -60,7 +60,7 @@ function(
60
60
  * @class
61
61
  * @extends sap.ui.base.ManagedObject
62
62
  * @author SAP SE
63
- * @version 1.108.0
63
+ * @version 1.109.0
64
64
  * @public
65
65
  * @alias sap.ui.core.Fragment
66
66
  */
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * @extends sap.ui.core.Control
45
45
  *
46
46
  * @author SAP SE
47
- * @version 1.108.0
47
+ * @version 1.109.0
48
48
  *
49
49
  * @public
50
50
  * @alias sap.ui.core.HTML
@@ -22,7 +22,7 @@ sap.ui.define(['sap/ui/base/Object', "sap/ui/util/Storage"],
22
22
  *
23
23
  * @extends sap.ui.base.Object
24
24
  * @author SAP SE
25
- * @version 1.108.0
25
+ * @version 1.109.0
26
26
  * @alias sap.ui.core.History
27
27
  * @protected
28
28
  */
@@ -73,7 +73,7 @@ sap.ui.define([
73
73
  * @implements sap.ui.core.IFormContent
74
74
  *
75
75
  * @author SAP SE
76
- * @version 1.108.0
76
+ * @version 1.109.0
77
77
  *
78
78
  * @public
79
79
  * @since 1.11.1
@@ -16,7 +16,7 @@ sap.ui.define(['./library'],
16
16
  * Helper functionality for indication color support.
17
17
  *
18
18
  * @author SAP SE
19
- * @version 1.108.0
19
+ * @version 1.109.0
20
20
  * @public
21
21
  * @namespace sap.ui.core.IndicationColorSupport
22
22
  * @since 1.66
@@ -23,7 +23,7 @@ sap.ui.define(['../base/Object', './EventBus', "sap/base/assert"],
23
23
  *
24
24
  * @extends sap.ui.base.Object
25
25
  * @author SAP SE
26
- * @version 1.108.0
26
+ * @version 1.109.0
27
27
  * @public
28
28
  * @since 1.11.0
29
29
  * @alias sap.ui.core.IntervalTrigger
@@ -32,7 +32,7 @@ function (coreLibrary, ManagedObject, Log) {
32
32
  * @extends sap.ui.base.ManagedObject
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.108.0
35
+ * @version 1.109.0
36
36
  * @hideconstructor
37
37
  * @public
38
38
  * @since 1.78
@@ -12,7 +12,7 @@ sap.ui.define([], function() {
12
12
  * Provides the default renderer for the controls that have set their <code>visible</code> property to <code>false</code>.
13
13
  *
14
14
  * @author SAP SE
15
- * @version 1.108.0
15
+ * @version 1.109.0
16
16
  * @alias module:sap/ui/core/InvisibleRenderer
17
17
  * @since 1.66.0
18
18
  * @protected
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.core.Control
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.108.0
33
+ * @version 1.109.0
34
34
  *
35
35
  * @public
36
36
  * @since 1.27.0
@@ -24,7 +24,7 @@ sap.ui.define(['./Element', './library'],
24
24
  * @extends sap.ui.core.Element
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.108.0
27
+ * @version 1.109.0
28
28
  *
29
29
  * @public
30
30
  * @alias sap.ui.core.Item
@@ -136,7 +136,7 @@ sap.ui.define(['../base/ManagedObject', "sap/base/assert"],
136
136
  * @see sap.ui.core.LabelEnablement#enrich
137
137
  *
138
138
  * @author SAP SE
139
- * @version 1.108.0
139
+ * @version 1.109.0
140
140
  * @protected
141
141
  * @alias sap.ui.core.LabelEnablement
142
142
  * @namespace
@@ -23,7 +23,7 @@ sap.ui.define(['./Element', "sap/ui/thirdparty/jquery", './library'],
23
23
  * @extends sap.ui.core.Element
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.108.0
26
+ * @version 1.109.0
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.LayoutData
@@ -23,7 +23,7 @@ sap.ui.define(['./Item', './library'],
23
23
  * @extends sap.ui.core.Item
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.108.0
26
+ * @version 1.109.0
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.ListItem
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.core.Control
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.108.0
35
+ * @version 1.109.0
36
36
  *
37
37
  * @public
38
38
  * @since 1.11.0
@@ -38,7 +38,7 @@ sap.ui.define(['sap/ui/base/Object', 'sap/base/assert', './CalendarType'],
38
38
  *
39
39
  * @extends sap.ui.base.Object
40
40
  * @author SAP SE
41
- * @version 1.108.0
41
+ * @version 1.109.0
42
42
  * @public
43
43
  * @alias sap.ui.core.Locale
44
44
  */
@@ -18,7 +18,7 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
18
18
  *
19
19
  * @extends sap.ui.base.Object
20
20
  * @author SAP SE
21
- * @version 1.108.0
21
+ * @version 1.109.0
22
22
  * @public
23
23
  * @alias sap.ui.core.LocaleData
24
24
  */
@@ -260,6 +260,138 @@ sap.ui.define(['sap/base/util/extend', 'sap/ui/base/Object', './CalendarType', '
260
260
  return this._get(getCLDRCalendarName(sCalendarType), "dateFormats", sStyle);
261
261
  },
262
262
 
263
+ /**
264
+ * Get flexible day periods in style format "abbreviated", "narrow" or "wide".
265
+ *
266
+ * @param {string} sWidth
267
+ * The required width for the flexible day period names
268
+ * @param {sap.ui.core.CalendarType} [sCalendarType]
269
+ * The type of calendar. If it's not set, it falls back to the calendar type either set in
270
+ * configuration or calculated from locale.
271
+ * @returns {object|undefined}
272
+ * Object of flexible day periods or 'undefined' if none can be found
273
+ *
274
+ * @example <caption>Output</caption>
275
+ * {
276
+ * "midnight": "midnight",
277
+ * "noon": "noon",
278
+ * "morning1": "in the morning",
279
+ * "afternoon1": "in the afternoon",
280
+ * "evening1": "in the evening",
281
+ * "night1": "at night"
282
+ * }
283
+ *
284
+ * @private
285
+ */
286
+ getFlexibleDayPeriods : function (sWidth, sCalendarType) {
287
+ return this._get(getCLDRCalendarName(sCalendarType), "flexibleDayPeriods", "format",
288
+ sWidth);
289
+ },
290
+
291
+ /**
292
+ * Get flexible day periods in style format "abbreviated", "narrow" or "wide" for case
293
+ * "stand-alone".
294
+ *
295
+ * @param {string} sWidth
296
+ * The required width for the flexible day period names
297
+ * @param {sap.ui.core.CalendarType} [sCalendarType]
298
+ * The type of calendar. If it's not set, it falls back to the calendar type either set in
299
+ * configuration or calculated from locale.
300
+ * @returns {object|undefined}
301
+ * Object of flexible day periods or 'undefined' if none can be found
302
+ *
303
+ * @example <caption>Output</caption>
304
+ * {
305
+ * "midnight": "midnight",
306
+ * "noon": "noon",
307
+ * "morning1": "in the morning",
308
+ * "afternoon1": "in the afternoon",
309
+ * "evening1": "in the evening",
310
+ * "night1": "at night"
311
+ * }
312
+ *
313
+ * @private
314
+ */
315
+ getFlexibleDayPeriodsStandAlone : function (sWidth, sCalendarType) {
316
+ return this._get(getCLDRCalendarName(sCalendarType), "flexibleDayPeriods",
317
+ "stand-alone", sWidth);
318
+ },
319
+
320
+ /**
321
+ * Get flexible day period of time or a point in time
322
+ *
323
+ * @param {int} iHour Hour
324
+ * @param {int} iMinute Minute
325
+ * @returns {string} Key of flexible day period of time e.g. <code>afternoon2</code>
326
+ *
327
+ * @private
328
+ */
329
+ getFlexibleDayPeriodOfTime : function (iHour, iMinute) {
330
+ var iAbsoluteMinutes, oDayPeriodRules, sPeriodMatch;
331
+
332
+ iAbsoluteMinutes = (iHour * 60 + iMinute) % 1440;
333
+ oDayPeriodRules = this._get("dayPeriodRules");
334
+
335
+ function parseToAbsoluteMinutes(sValue) {
336
+ var aSplit = sValue.split(":"),
337
+ sHour = aSplit[0],
338
+ sMinute = aSplit[1];
339
+
340
+ return parseInt(sHour) * 60 + parseInt(sMinute);
341
+ }
342
+
343
+ // unfortunately there are some overlaps:
344
+ // e.g. en.json
345
+ // "afternoon1": {
346
+ // "_before": "18:00",
347
+ // "_from": "12:00"
348
+ // },
349
+ // "noon": {
350
+ // "_at": "12:00"
351
+ // }
352
+ // -> 12:00 can be either "noon" or "afternoon1" because "_from" is inclusive
353
+ // therefore first check all exact periods
354
+
355
+ sPeriodMatch = Object.keys(oDayPeriodRules).find(function (sDayPeriodRule) {
356
+ var oDayPeriodRule = oDayPeriodRules[sDayPeriodRule];
357
+
358
+ return oDayPeriodRule["_at"] &&
359
+ parseToAbsoluteMinutes(oDayPeriodRule["_at"]) === iAbsoluteMinutes;
360
+ });
361
+ if (sPeriodMatch) {
362
+ return sPeriodMatch;
363
+ }
364
+
365
+ return Object.keys(oDayPeriodRules).find(function (sDayPeriodRule) {
366
+ var iEndValue, aIntervals, iStartValue,
367
+ oDayPeriodRule = oDayPeriodRules[sDayPeriodRule];
368
+
369
+ if (oDayPeriodRule["_at"]) {
370
+ return false;
371
+ }
372
+
373
+ iStartValue = parseToAbsoluteMinutes(oDayPeriodRule["_from"]);
374
+ iEndValue = parseToAbsoluteMinutes(oDayPeriodRule["_before"]);
375
+
376
+ // periods which span across days need to be split into individual intervals
377
+ // e.g. "22:00 - 03:00" becomes "22:00 - 24:00" and "00:00 - 03:00"
378
+ if (iStartValue > iEndValue) {
379
+ aIntervals = [
380
+ {start : iStartValue, end : 1440}, // 24 * 60
381
+ {start : 0, end : iEndValue}
382
+ ];
383
+ } else {
384
+ aIntervals = [
385
+ {start : iStartValue, end : iEndValue}
386
+ ];
387
+ }
388
+
389
+ return aIntervals.some(function (oInterval) {
390
+ return oInterval.start <= iAbsoluteMinutes && oInterval.end > iAbsoluteMinutes;
391
+ });
392
+ });
393
+ },
394
+
263
395
  /**
264
396
  * Get time pattern in style "short", "medium", "long" or "full".
265
397
  *
@@ -141,7 +141,7 @@ sap.ui.define([
141
141
  * @class The Manifest class.
142
142
  * @extends sap.ui.base.Object
143
143
  * @author SAP SE
144
- * @version 1.108.0
144
+ * @version 1.109.0
145
145
  * @alias sap.ui.core.Manifest
146
146
  * @since 1.33.0
147
147
  */
@@ -26,7 +26,7 @@ sap.ui.define(['./Element', './library', "sap/base/Log", "sap/ui/core/Configurat
26
26
  * @extends sap.ui.core.Element
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.108.0
29
+ * @version 1.109.0
30
30
  *
31
31
  * @public
32
32
  * @alias sap.ui.core.Message
@@ -186,7 +186,7 @@ sap.ui.define([
186
186
  *
187
187
  * @extends Object
188
188
  * @author SAP SE
189
- * @version 1.108.0
189
+ * @version 1.109.0
190
190
  * @alias sap.ui.core.RenderManager
191
191
  * @public
192
192
  */
@@ -222,6 +222,52 @@ sap.ui.define([
222
222
  sOpenTag = "";
223
223
  }
224
224
 
225
+ function writeAttribute(sName, vValue) {
226
+ aBuffer.push(" ", sName, "=\"", vValue, "\"");
227
+ }
228
+
229
+ function writeClasses(oElement) {
230
+ var oStyle = aStyleStack[aStyleStack.length - 1];
231
+
232
+ // Custom classes are added by default from the currently rendered control. If an oElement is given, this Element's custom style
233
+ // classes are added instead. If oElement === false, no custom style classes are added.
234
+ var aCustomClasses;
235
+ if (oElement) {
236
+ aCustomClasses = oElement.aCustomStyleClasses;
237
+ } else if (oElement === false) {
238
+ aCustomClasses = [];
239
+ } else {
240
+ aCustomClasses = oStyle.aCustomStyleClasses;
241
+ }
242
+
243
+ if (oStyle.aClasses || aCustomClasses) {
244
+ var aClasses = [].concat(oStyle.aClasses || [], aCustomClasses || []);
245
+ if (aClasses.length) {
246
+ writeAttribute("class", aClasses.join(" "));
247
+ }
248
+ }
249
+
250
+ if (!oElement) {
251
+ oStyle.aCustomStyleClasses = null;
252
+ }
253
+ oStyle.aClasses = null;
254
+ }
255
+
256
+ /**
257
+ * Used by the string rendering APIs to write out the collected styles during writeStyles/openEnd/voidEnd
258
+ * @param {sap.ui.core.RenderManager} oRm The <code>RenderManager</code> instance
259
+ * @private
260
+ */
261
+ function writeStyles() {
262
+ var oStyle = aStyleStack[aStyleStack.length - 1];
263
+ if (oStyle.aStyle && oStyle.aStyle.length) {
264
+ // Due to possible CSP restrictions we do not write styles into the HTML buffer. Instead, we store the styles in the aRenderingStyles array
265
+ // and add a ATTR_STYLE_KEY_MARKER attribute marker for which the value references the original style index in the aRenderingStyles array.
266
+ writeAttribute(ATTR_STYLE_KEY_MARKER, aRenderingStyles.push(oStyle.aStyle.join(" ")) - 1);
267
+ }
268
+ oStyle.aStyle = null;
269
+ }
270
+
225
271
  //#################################################################################################
226
272
  // Assertion methods for validating Semantic Rendering API calls
227
273
  // These methods will be converted to inline asserts when assertion removal is supported
@@ -386,13 +432,7 @@ sap.ui.define([
386
432
  * the actual writing of styles happens when {@link sap.ui.core.RenderManager#openEnd} or {@link sap.ui.core.RenderManager#voidEnd} are used.
387
433
  */
388
434
  this.writeStyles = function() {
389
- var oStyle = aStyleStack[aStyleStack.length - 1];
390
- if (oStyle.aStyle && oStyle.aStyle.length) {
391
- // Due to possible CSP restrictions we do not write styles into the HTML buffer. Instead, we store the styles in the aRenderingStyles array
392
- // and add a ATTR_STYLE_KEY_MARKER attribute marker for which the value references the original style index in the aRenderingStyles array.
393
- this.writeAttribute(ATTR_STYLE_KEY_MARKER, aRenderingStyles.push(oStyle.aStyle.join(" ")) - 1);
394
- }
395
- oStyle.aStyle = null;
435
+ writeStyles();
396
436
  return this;
397
437
  };
398
438
 
@@ -432,30 +472,7 @@ sap.ui.define([
432
472
  */
433
473
  this.writeClasses = function(oElement) {
434
474
  assert(!oElement || typeof oElement === "boolean" || BaseObject.isA(oElement, 'sap.ui.core.Element'), "oElement must be empty, a boolean, or an sap.ui.core.Element");
435
- var oStyle = aStyleStack[aStyleStack.length - 1];
436
-
437
- // Custom classes are added by default from the currently rendered control. If an oElement is given, this Element's custom style
438
- // classes are added instead. If oElement === false, no custom style classes are added.
439
- var aCustomClasses;
440
- if (oElement) {
441
- aCustomClasses = oElement.aCustomStyleClasses;
442
- } else if (oElement === false) {
443
- aCustomClasses = [];
444
- } else {
445
- aCustomClasses = oStyle.aCustomStyleClasses;
446
- }
447
-
448
- if (oStyle.aClasses || aCustomClasses) {
449
- var aClasses = [].concat(oStyle.aClasses || [], aCustomClasses || []);
450
- if (aClasses.length) {
451
- this.writeAttribute("class", aClasses.join(" "));
452
- }
453
- }
454
-
455
- if (!oElement) {
456
- oStyle.aCustomStyleClasses = null;
457
- }
458
- oStyle.aClasses = null;
475
+ writeClasses(oElement);
459
476
  return this;
460
477
  };
461
478
 
@@ -484,12 +501,15 @@ sap.ui.define([
484
501
  assert(!(sLastStyleMethod = sLastClassMethod = ""));
485
502
  sOpenTag = sTagName;
486
503
 
487
- this.write("<" + sTagName);
504
+ aBuffer.push("<" + sTagName);
488
505
  if (vControlOrId) {
489
506
  if (typeof vControlOrId == "string") {
490
507
  this.attr("id", vControlOrId);
491
508
  } else {
492
- this.writeElementData(vControlOrId);
509
+ assert(vControlOrId && BaseObject.isA(vControlOrId, 'sap.ui.core.Element'), "vControlOrId must be an sap.ui.core.Element");
510
+
511
+ this.attr("id", vControlOrId.getId());
512
+ renderElementData(this, vControlOrId);
493
513
  }
494
514
  }
495
515
 
@@ -511,9 +531,9 @@ sap.ui.define([
511
531
  assert(bExludeStyleClasses === undefined || bExludeStyleClasses === true, "The private parameter bExludeStyleClasses must be true or omitted!");
512
532
  sOpenTag = "";
513
533
 
514
- this.writeClasses(bExludeStyleClasses === true ? false : undefined);
515
- this.writeStyles();
516
- this.write(">");
534
+ writeClasses(bExludeStyleClasses === true ? false : undefined);
535
+ writeStyles();
536
+ aBuffer.push(">");
517
537
  return this;
518
538
  };
519
539
 
@@ -531,7 +551,7 @@ sap.ui.define([
531
551
  assertValidName(sTagName, "tag");
532
552
  assertOpenTagHasEnded();
533
553
 
534
- this.write("</" + sTagName + ">");
554
+ aBuffer.push("</" + sTagName + ">");
535
555
  return this;
536
556
  };
537
557
 
@@ -572,9 +592,9 @@ sap.ui.define([
572
592
  bVoidOpen = false;
573
593
  sOpenTag = "";
574
594
 
575
- this.writeClasses(bExludeStyleClasses ? false : undefined);
576
- this.writeStyles();
577
- this.write(">");
595
+ writeClasses(bExludeStyleClasses ? false : undefined);
596
+ writeStyles();
597
+ aBuffer.push(">");
578
598
  return this;
579
599
  };
580
600
 
@@ -592,7 +612,7 @@ sap.ui.define([
592
612
  this.unsafeHtml = function(sHtml) {
593
613
  assertOpenTagHasEnded();
594
614
 
595
- this.write(sHtml);
615
+ aBuffer.push(sHtml);
596
616
  return this;
597
617
  };
598
618
 
@@ -615,8 +635,10 @@ sap.ui.define([
615
635
  */
616
636
  this.text = function(sText) {
617
637
  assertOpenTagHasEnded();
618
-
619
- this.writeEscaped(sText);
638
+ if ( sText != null ) {
639
+ sText = encodeXML( String(sText) );
640
+ aBuffer.push(sText);
641
+ }
620
642
  return this;
621
643
  };
622
644
 
@@ -647,7 +669,7 @@ sap.ui.define([
647
669
  if (sName == "style") {
648
670
  aStyleStack[aStyleStack.length - 1].aStyle = [vValue];
649
671
  } else {
650
- this.writeAttributeEscaped(sName, vValue);
672
+ aBuffer.push(" ", sName, "=\"", encodeXML(String(vValue)), "\"");
651
673
  }
652
674
  return this;
653
675
  };
@@ -666,9 +688,12 @@ sap.ui.define([
666
688
  this.class = function(sClass) {
667
689
  if (sClass) {
668
690
  assertValidClass.apply(this, arguments);
669
- this.addClass(encodeXML(sClass));
691
+ var oStyle = aStyleStack[aStyleStack.length - 1];
692
+ if (!oStyle.aClasses) {
693
+ oStyle.aClasses = [];
694
+ }
695
+ oStyle.aClasses.push(encodeXML(sClass));
670
696
  }
671
-
672
697
  return this;
673
698
  };
674
699
 
@@ -681,15 +706,22 @@ sap.ui.define([
681
706
  * For more information, see {@link https://www.w3.org/TR/CSS/#indices}.
682
707
  *
683
708
  * @param {string} sName Name of the style property
684
- * @param {string} sValue Value of the style property
709
+ * @param {string|float|int} vValue Value of the style property
685
710
  * @returns {this} Reference to <code>this</code> in order to allow method chaining
686
711
  * @public
687
712
  * @since 1.67
688
713
  */
689
- this.style = function(sName, sValue) {
714
+ this.style = function(sName, vValue) {
690
715
  assertValidStyle(sName);
691
716
 
692
- this.addStyle(sName, sValue);
717
+ if (vValue != null && vValue != "") {
718
+ assert((typeof vValue === "string" || typeof vValue === "number"), "value must be a string or number");
719
+ var oStyle = aStyleStack[aStyleStack.length - 1];
720
+ if (!oStyle.aStyle) {
721
+ oStyle.aStyle = [];
722
+ }
723
+ oStyle.aStyle.push(sName + ": " + vValue + ";");
724
+ }
693
725
  return this;
694
726
  };
695
727
 
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @classdesc Base Class for a Renderer.
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.108.0
22
+ * @version 1.109.0
23
23
  * @namespace
24
24
  * @public
25
25
  * @alias sap.ui.core.Renderer