@openui5/sap.ui.core 1.93.3 → 1.96.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 (416) hide show
  1. package/.eslintrc.json +13 -2
  2. package/.reuse/dep5 +6 -11
  3. package/THIRDPARTY.txt +10 -16
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +5 -2
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +1 -1
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +3 -3
  10. package/src/jquery.sap.stubs.js +2 -1
  11. package/src/jquery.sap.trace.js +2 -1
  12. package/src/sap/base/i18n/ResourceBundle.js +6 -2
  13. package/src/sap/base/strings/whitespaceReplacer.js +52 -0
  14. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  15. package/src/sap/base/util/restricted/_castArray.js +1 -1
  16. package/src/sap/base/util/restricted/_compact.js +1 -1
  17. package/src/sap/base/util/restricted/_curry.js +1 -1
  18. package/src/sap/base/util/restricted/_debounce.js +1 -1
  19. package/src/sap/base/util/restricted/_difference.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_flatten.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_intersection.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isNil.js +1 -1
  34. package/src/sap/base/util/restricted/_max.js +1 -1
  35. package/src/sap/base/util/restricted/_merge.js +1 -1
  36. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  37. package/src/sap/base/util/restricted/_min.js +1 -1
  38. package/src/sap/base/util/restricted/_omit.js +1 -1
  39. package/src/sap/base/util/restricted/_pick.js +1 -1
  40. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  41. package/src/sap/base/util/restricted/_throttle.js +1 -1
  42. package/src/sap/base/util/restricted/_toArray.js +1 -1
  43. package/src/sap/base/util/restricted/_union.js +1 -1
  44. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  45. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  46. package/src/sap/base/util/restricted/_uniq.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  49. package/src/sap/base/util/restricted/_without.js +1 -1
  50. package/src/sap/base/util/restricted/_xor.js +1 -1
  51. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  52. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  55. package/src/sap/ui/Device.js +37 -42
  56. package/src/sap/ui/Global.js +8 -7
  57. package/src/sap/ui/base/DataType.js +14 -8
  58. package/src/sap/ui/base/Event.js +1 -1
  59. package/src/sap/ui/base/EventProvider.js +1 -1
  60. package/src/sap/ui/base/ExpressionParser.js +9 -6
  61. package/src/sap/ui/base/Interface.js +3 -49
  62. package/src/sap/ui/base/ManagedObject.js +12 -7
  63. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  64. package/src/sap/ui/base/Metadata.js +1 -1
  65. package/src/sap/ui/base/Object.js +49 -4
  66. package/src/sap/ui/base/ObjectPool.js +1 -1
  67. package/src/sap/ui/base/syncXHRFix.js +2 -1
  68. package/src/sap/ui/core/.library +5 -5
  69. package/src/sap/ui/core/AppCacheBuster.js +4 -4
  70. package/src/sap/ui/core/BusyIndicator.js +1 -11
  71. package/src/sap/ui/core/Component.js +300 -140
  72. package/src/sap/ui/core/ComponentContainer.js +24 -8
  73. package/src/sap/ui/core/ComponentMetadata.js +14 -3
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +67 -31
  76. package/src/sap/ui/core/Control.js +1 -1
  77. package/src/sap/ui/core/Core.js +103 -25
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/CustomizingConfiguration.js +35 -260
  80. package/src/sap/ui/core/DeclarativeSupport.js +3 -2
  81. package/src/sap/ui/core/Element.js +1 -1
  82. package/src/sap/ui/core/ElementMetadata.js +4 -2
  83. package/src/sap/ui/core/EnabledPropagator.js +91 -73
  84. package/src/sap/ui/core/EventBus.js +1 -1
  85. package/src/sap/ui/core/ExtensionPoint.js +7 -14
  86. package/src/sap/ui/core/Fragment.js +30 -32
  87. package/src/sap/ui/core/HTML.js +1 -1
  88. package/src/sap/ui/core/History.js +1 -1
  89. package/src/sap/ui/core/Icon.js +7 -8
  90. package/src/sap/ui/core/IconPool.js +26 -1097
  91. package/src/sap/ui/core/IconRenderer.js +6 -6
  92. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  93. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  94. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  95. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  96. package/src/sap/ui/core/InvisibleText.js +1 -1
  97. package/src/sap/ui/core/Item.js +1 -1
  98. package/src/sap/ui/core/LabelEnablement.js +1 -1
  99. package/src/sap/ui/core/LayoutData.js +1 -1
  100. package/src/sap/ui/core/ListItem.js +1 -1
  101. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  102. package/src/sap/ui/core/Locale.js +26 -4
  103. package/src/sap/ui/core/LocaleData.js +1 -1
  104. package/src/sap/ui/core/Manifest.js +4 -61
  105. package/src/sap/ui/core/Message.js +1 -1
  106. package/src/sap/ui/core/Patcher.js +27 -3
  107. package/src/sap/ui/core/Placeholder.js +28 -15
  108. package/src/sap/ui/core/RenderManager.js +36 -6
  109. package/src/sap/ui/core/Renderer.js +13 -3
  110. package/src/sap/ui/core/ResizeHandler.js +1 -1
  111. package/src/sap/ui/core/ScrollBar.js +2 -2
  112. package/src/sap/ui/core/SeparatorItem.js +1 -1
  113. package/src/sap/ui/core/ShortcutHintsMixin.js +14 -7
  114. package/src/sap/ui/core/Title.js +1 -1
  115. package/src/sap/ui/core/TooltipBase.js +1 -1
  116. package/src/sap/ui/core/UIArea.js +1 -1
  117. package/src/sap/ui/core/UIComponent.js +42 -16
  118. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  119. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  120. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  121. package/src/sap/ui/core/XMLComposite.js +2 -2
  122. package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
  123. package/src/sap/ui/core/XMLTemplateProcessor.js +116 -41
  124. package/src/sap/ui/core/_IconRegistry.js +1148 -0
  125. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  126. package/src/sap/ui/core/delegate/ScrollEnablement.js +6 -3
  127. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  128. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  129. package/src/sap/ui/core/dnd/DragInfo.js +2 -2
  130. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  131. package/src/sap/ui/core/format/NumberFormat.js +16 -1
  132. package/src/sap/ui/core/hyphenation/Hyphenation.js +73 -221
  133. package/src/sap/ui/core/hyphenation/HyphenationTestingWords.js +11 -10
  134. package/src/sap/ui/core/library.js +3 -3
  135. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  136. package/src/sap/ui/core/message/Message.js +1 -1
  137. package/src/sap/ui/core/message/MessageManager.js +13 -15
  138. package/src/sap/ui/core/message/MessageParser.js +1 -1
  139. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  140. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  141. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  142. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  143. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  144. package/src/sap/ui/core/messagebundle_th.properties +2 -2
  145. package/src/sap/ui/core/mvc/Controller.js +38 -19
  146. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +30 -32
  147. package/src/sap/ui/core/mvc/ControllerMetadata.js +18 -18
  148. package/src/sap/ui/core/mvc/HTMLView.js +2 -2
  149. package/src/sap/ui/core/mvc/JSONView.js +2 -2
  150. package/src/sap/ui/core/mvc/JSView.js +2 -2
  151. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  152. package/src/sap/ui/core/mvc/View.js +58 -85
  153. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  154. package/src/sap/ui/core/mvc/XMLViewRenderer.js +17 -20
  155. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  156. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  157. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  158. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  159. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  160. package/src/sap/ui/core/routing/History.js +10 -2
  161. package/src/sap/ui/core/routing/Router.js +8 -1
  162. package/src/sap/ui/core/routing/Target.js +13 -0
  163. package/src/sap/ui/core/routing/Targets.js +13 -2
  164. package/src/sap/ui/core/routing/async/Route.js +1 -1
  165. package/src/sap/ui/core/routing/async/Target.js +353 -259
  166. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  167. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  168. package/src/sap/ui/core/service/Service.js +1 -1
  169. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  170. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  171. package/src/sap/ui/core/support/BootSupportTool.js +11 -0
  172. package/src/sap/ui/core/support/InteractionTree.css +4 -0
  173. package/src/sap/ui/core/support/Plugin.js +1 -1
  174. package/src/sap/ui/core/support/Support.js +1 -1
  175. package/src/sap/ui/core/support/ViewInfo.css +599 -0
  176. package/src/sap/ui/core/support/controls/InteractionTree.js +352 -222
  177. package/src/sap/ui/core/support/controls/ObjectViewer.js +3 -41
  178. package/src/sap/ui/core/support/controls/TimelineOverview.js +49 -24
  179. package/src/sap/ui/core/support/controls/TreeViewer.js +12 -58
  180. package/src/sap/ui/core/support/plugins/ControlTree.js +59 -68
  181. package/src/sap/ui/core/support/plugins/Debugging.js +9 -11
  182. package/src/sap/ui/core/support/plugins/Interaction.js +2 -2
  183. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  184. package/src/sap/ui/core/support/plugins/Performance.js +147 -75
  185. package/src/sap/ui/core/support/plugins/Selector.js +19 -24
  186. package/src/sap/ui/core/support/plugins/TechInfo.js +5 -5
  187. package/src/sap/ui/core/support/plugins/Trace.js +95 -32
  188. package/src/sap/ui/core/support/plugins/ViewInfo.js +9 -73
  189. package/src/sap/ui/core/support/support.css +109 -14
  190. package/src/sap/ui/core/support/support.html +6 -2
  191. package/src/sap/ui/core/support/techinfo/TechnicalInfo.fragment.xml +1 -0
  192. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +149 -72
  193. package/src/sap/ui/core/themes/base/Icon.less +9 -0
  194. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  195. package/src/sap/ui/core/theming/Parameters.js +6 -4
  196. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  197. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  198. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  199. package/src/sap/ui/core/tmpl/Template.js +10 -28
  200. package/src/sap/ui/core/tmpl/TemplateControl.js +4 -4
  201. package/src/sap/ui/core/tmpl/_parsePath.js +35 -0
  202. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  203. package/src/sap/ui/core/util/DraftEnabledMockServer.js +9 -4
  204. package/src/sap/ui/core/util/Export.js +1 -1
  205. package/src/sap/ui/core/util/ExportCell.js +1 -1
  206. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  207. package/src/sap/ui/core/util/ExportRow.js +1 -1
  208. package/src/sap/ui/core/util/ExportType.js +1 -1
  209. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  210. package/src/sap/ui/core/util/File.js +1 -1
  211. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  212. package/src/sap/ui/core/util/MockServer.js +5 -5
  213. package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +3 -2
  214. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  215. package/src/sap/ui/core/util/XMLPreprocessor.js +11 -12
  216. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +136 -63
  217. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +170 -153
  218. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +424 -293
  219. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  220. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  221. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  222. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  223. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  224. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  225. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  226. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  227. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  228. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  229. package/src/sap/ui/debug/ControlTree.js +10 -4
  230. package/src/sap/ui/debug/DebugEnv.js +3 -4
  231. package/src/sap/ui/debug/Highlighter.js +8 -2
  232. package/src/sap/ui/debug/PropertyList.css +55 -0
  233. package/src/sap/ui/debug/PropertyList.js +111 -182
  234. package/src/sap/ui/model/Binding.js +174 -118
  235. package/src/sap/ui/model/ClientContextBinding.js +1 -1
  236. package/src/sap/ui/model/ClientListBinding.js +1 -3
  237. package/src/sap/ui/model/ClientModel.js +4 -4
  238. package/src/sap/ui/model/ClientPropertyBinding.js +4 -2
  239. package/src/sap/ui/model/ClientTreeBinding.js +15 -9
  240. package/src/sap/ui/model/ClientTreeBindingAdapter.js +28 -23
  241. package/src/sap/ui/model/CompositeBinding.js +98 -77
  242. package/src/sap/ui/model/CompositeDataState.js +2 -2
  243. package/src/sap/ui/model/CompositeType.js +2 -2
  244. package/src/sap/ui/model/Context.js +4 -2
  245. package/src/sap/ui/model/ContextBinding.js +6 -14
  246. package/src/sap/ui/model/DataState.js +2 -2
  247. package/src/sap/ui/model/Filter.js +255 -53
  248. package/src/sap/ui/model/FilterOperator.js +1 -1
  249. package/src/sap/ui/model/FilterProcessor.js +27 -17
  250. package/src/sap/ui/model/FilterType.js +1 -1
  251. package/src/sap/ui/model/ListBinding.js +180 -117
  252. package/src/sap/ui/model/MetaModel.js +4 -9
  253. package/src/sap/ui/model/Model.js +345 -294
  254. package/src/sap/ui/model/PropertyBinding.js +92 -58
  255. package/src/sap/ui/model/SelectionModel.js +2 -2
  256. package/src/sap/ui/model/SimpleType.js +2 -2
  257. package/src/sap/ui/model/Sorter.js +1 -1
  258. package/src/sap/ui/model/SorterProcessor.js +1 -1
  259. package/src/sap/ui/model/StaticBinding.js +1 -1
  260. package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
  261. package/src/sap/ui/model/TreeBinding.js +1 -1
  262. package/src/sap/ui/model/TreeBindingAdapter.js +251 -100
  263. package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +16 -9
  264. package/src/sap/ui/model/TreeBindingUtils.js +1 -0
  265. package/src/sap/ui/model/Type.js +1 -1
  266. package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -4
  267. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
  268. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
  269. package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
  270. package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
  271. package/src/sap/ui/model/analytics/odata4analytics.js +34 -25
  272. package/src/sap/ui/model/base/ManagedObjectModel.js +4 -0
  273. package/src/sap/ui/model/json/JSONListBinding.js +8 -5
  274. package/src/sap/ui/model/json/JSONModel.js +24 -15
  275. package/src/sap/ui/model/json/JSONPropertyBinding.js +4 -3
  276. package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
  277. package/src/sap/ui/model/message/MessageListBinding.js +6 -3
  278. package/src/sap/ui/model/message/MessageModel.js +23 -15
  279. package/src/sap/ui/model/message/MessagePropertyBinding.js +2 -2
  280. package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
  281. package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
  282. package/src/sap/ui/model/odata/CountMode.js +1 -1
  283. package/src/sap/ui/model/odata/Filter.js +1 -1
  284. package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
  285. package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
  286. package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
  287. package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
  288. package/src/sap/ui/model/odata/ODataMetaModel.js +5 -3
  289. package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
  290. package/src/sap/ui/model/odata/ODataModel.js +8 -7
  291. package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
  292. package/src/sap/ui/model/odata/ODataTreeBinding.js +65 -33
  293. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
  294. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +2 -2
  295. package/src/sap/ui/model/odata/ODataUtils.js +13 -11
  296. package/src/sap/ui/model/odata/OperationMode.js +1 -1
  297. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -1
  298. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  299. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  300. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  301. package/src/sap/ui/model/odata/type/Date.js +1 -1
  302. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  303. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  304. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  305. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  306. package/src/sap/ui/model/odata/type/Double.js +1 -1
  307. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  308. package/src/sap/ui/model/odata/type/Int.js +1 -1
  309. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  310. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  311. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  312. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  313. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  314. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  315. package/src/sap/ui/model/odata/type/Single.js +1 -1
  316. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  317. package/src/sap/ui/model/odata/type/String.js +1 -1
  318. package/src/sap/ui/model/odata/type/Time.js +1 -1
  319. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  320. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  321. package/src/sap/ui/model/odata/v2/Context.js +81 -9
  322. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +3 -3
  323. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +39 -49
  324. package/src/sap/ui/model/odata/v2/ODataListBinding.js +236 -73
  325. package/src/sap/ui/model/odata/v2/ODataModel.js +314 -164
  326. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +110 -97
  327. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +129 -0
  328. package/src/sap/ui/model/odata/v4/Context.js +6 -3
  329. package/src/sap/ui/model/odata/v4/ODataBinding.js +5 -6
  330. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +117 -40
  331. package/src/sap/ui/model/odata/v4/ODataListBinding.js +95 -15
  332. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +44 -31
  333. package/src/sap/ui/model/odata/v4/ODataModel.js +86 -78
  334. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +47 -28
  335. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +11 -7
  336. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +10 -3
  337. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +8 -1
  338. package/src/sap/ui/model/odata/v4/lib/_Cache.js +24 -16
  339. package/src/sap/ui/model/odata/v4/lib/_Helper.js +32 -30
  340. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +52 -17
  341. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +2 -2
  342. package/src/sap/ui/model/resource/ResourceModel.js +6 -2
  343. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  344. package/src/sap/ui/model/type/Boolean.js +2 -2
  345. package/src/sap/ui/model/type/Currency.js +2 -2
  346. package/src/sap/ui/model/type/Date.js +9 -3
  347. package/src/sap/ui/model/type/DateInterval.js +4 -2
  348. package/src/sap/ui/model/type/DateTime.js +2 -2
  349. package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
  350. package/src/sap/ui/model/type/FileSize.js +4 -2
  351. package/src/sap/ui/model/type/Float.js +4 -2
  352. package/src/sap/ui/model/type/Integer.js +4 -2
  353. package/src/sap/ui/model/type/String.js +2 -2
  354. package/src/sap/ui/model/type/Time.js +2 -2
  355. package/src/sap/ui/model/type/TimeInterval.js +2 -2
  356. package/src/sap/ui/model/type/Unit.js +14 -7
  357. package/src/sap/ui/model/xml/XMLListBinding.js +15 -9
  358. package/src/sap/ui/model/xml/XMLModel.js +70 -41
  359. package/src/sap/ui/model/xml/XMLPropertyBinding.js +4 -4
  360. package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -4
  361. package/src/sap/ui/performance/trace/Interaction.js +30 -15
  362. package/src/sap/ui/performance/trace/initTraces.js +1 -1
  363. package/src/sap/ui/qunit/QUnitUtils.js +3 -2
  364. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  365. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +9 -11
  366. package/src/sap/ui/test/TestUtils.js +11 -4
  367. package/src/sap/ui/test/actions/Drag.js +6 -2
  368. package/src/sap/ui/test/actions/Drop.js +6 -2
  369. package/src/sap/ui/test/actions/EnterText.js +6 -0
  370. package/src/sap/ui/test/actions/Press.js +6 -0
  371. package/src/sap/ui/test/actions/Scroll.js +6 -0
  372. package/src/sap/ui/test/autowaiter/_resourceWaiter.js +4 -4
  373. package/src/sap/ui/test/launchers/componentLauncher.js +0 -4
  374. package/src/sap/ui/test/matchers/I18NText.js +29 -11
  375. package/src/sap/ui/test/opaQunit.js +5 -0
  376. package/src/sap/ui/thirdparty/crossroads.js +6 -4
  377. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly.js +1196 -0
  378. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly_Loader.js +797 -0
  379. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.asm.js +108 -127
  380. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.wasm +0 -0
  381. package/src/sap/ui/thirdparty/hyphenopoly/patterns/bg.hpb +0 -0
  382. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ca.hpb +0 -0
  383. package/src/sap/ui/thirdparty/hyphenopoly/patterns/da.hpb +0 -0
  384. package/src/sap/ui/thirdparty/hyphenopoly/patterns/de.hpb +0 -0
  385. package/src/sap/ui/thirdparty/hyphenopoly/patterns/el-monoton.hpb +0 -0
  386. package/src/sap/ui/thirdparty/hyphenopoly/patterns/en-us.hpb +0 -0
  387. package/src/sap/ui/thirdparty/hyphenopoly/patterns/es.hpb +0 -0
  388. package/src/sap/ui/thirdparty/hyphenopoly/patterns/et.hpb +0 -0
  389. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fi.hpb +0 -0
  390. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fr.hpb +0 -0
  391. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hi.hpb +0 -0
  392. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hr.hpb +0 -0
  393. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hu.hpb +0 -0
  394. package/src/sap/ui/thirdparty/hyphenopoly/patterns/it.hpb +0 -0
  395. package/src/sap/ui/thirdparty/hyphenopoly/patterns/lt.hpb +0 -0
  396. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nb-no.hpb +0 -0
  397. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nl.hpb +0 -0
  398. package/src/sap/ui/thirdparty/hyphenopoly/patterns/pt.hpb +0 -0
  399. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ru.hpb +0 -0
  400. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sl.hpb +0 -0
  401. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sv.hpb +0 -0
  402. package/src/sap/ui/thirdparty/hyphenopoly/patterns/th.hpb +0 -0
  403. package/src/sap/ui/thirdparty/hyphenopoly/patterns/tr.hpb +0 -0
  404. package/src/sap/ui/thirdparty/hyphenopoly/patterns/uk.hpb +0 -0
  405. package/src/sap/ui/thirdparty/jquery.js +9 -1
  406. package/src/sap/ui/thirdparty/qunit-2.js +1 -1
  407. package/src/sap/ui/thirdparty/qunit.js +1 -1
  408. package/src/sap/ui/util/Mobile.js +2 -20
  409. package/src/sap/ui/util/Storage.js +1 -1
  410. package/src/sap/ui/util/isCrossOriginURL.js +16 -6
  411. package/src/sap-ui-core-nojQuery.js +1 -1
  412. package/src/sap-ui-core.js +1 -1
  413. package/src/sap-ui-debug.js +3 -17
  414. package/ui5.yaml +5 -2
  415. package/src/sap/ui/core/support/plugins/MessageTest.js +0 -96
  416. package/src/sap/ui/thirdparty/hyphenopoly/hyphenopoly.bundle.js +0 -860
@@ -7,6 +7,7 @@
7
7
  sap.ui.define([
8
8
  'sap/ui/base/ManagedObject',
9
9
  'sap/ui/core/IconPool',
10
+ 'sap/ui/core/Core',
10
11
  'sap/m/library',
11
12
  'sap/m/Popover',
12
13
  'sap/m/Text',
@@ -21,6 +22,7 @@ sap.ui.define([
21
22
  function(
22
23
  ManagedObject,
23
24
  IconPool,
25
+ Core,
24
26
  mobileLibrary,
25
27
  Popover,
26
28
  Text,
@@ -48,7 +50,6 @@ sap.ui.define([
48
50
 
49
51
  InteractionTree.expandIcon = 'sap-icon://navigation-right-arrow';
50
52
  InteractionTree.collapseIcon = 'sap-icon://navigation-down-arrow';
51
- InteractionTree.headerIcon = '<img class="sapUiInteractionSvgImage" src="HeaderIcon.svg">';
52
53
 
53
54
  InteractionTree.prototype.setInteractions = function (interactions) {
54
55
 
@@ -100,9 +101,9 @@ sap.ui.define([
100
101
  InteractionTree.prototype.renderAt = function (parent) {
101
102
  this.parent = parent;
102
103
 
103
- var rm = sap.ui.getCore().createRenderManager();
104
+ var rm = Core.createRenderManager();
104
105
  this.render(rm);
105
- rm.flush(parent);
106
+ rm.flush(parent, true);
106
107
  rm.destroy();
107
108
 
108
109
  this.attachEvents();
@@ -111,18 +112,19 @@ sap.ui.define([
111
112
  };
112
113
 
113
114
  InteractionTree.prototype.render = function (rm) {
115
+ rm.openStart("div", this.getId())
116
+ .class("sapUiInteractionTreeContainer")
117
+ .class("sapUiSizeCompact")
118
+ .openEnd();
114
119
 
115
- rm.write('<div id="' + this.getId() + '" class="sapUiInteractionTreeContainer sapUiSizeCompact">');
120
+ rm.openStart("div")
121
+ .class("sapUiInteractionGridLinesContainer")
122
+ .openEnd()
123
+ .close("div");
116
124
 
117
- rm.write('<div class="sapUiInteractionGridLinesContainer"></div>');
118
-
119
- rm.write('<ul');
120
-
121
- rm.addClass("sapUiInteractionTree");
122
-
123
- rm.writeClasses();
124
-
125
- rm.write(">");
125
+ rm.openStart("ul")
126
+ .class("sapUiInteractionTree")
127
+ .openEnd();
126
128
 
127
129
  this.renderHeaders(rm);
128
130
 
@@ -139,9 +141,8 @@ sap.ui.define([
139
141
  this.renderInteraction(rm, interaction, i);
140
142
  }
141
143
 
142
- rm.write("</ul>");
143
-
144
- rm.write("</div>");
144
+ rm.close("ul");
145
+ rm.close("div");
145
146
  };
146
147
 
147
148
  InteractionTree.prototype.attachEvents = function () {
@@ -173,32 +174,51 @@ sap.ui.define([
173
174
 
174
175
  InteractionTree.prototype.updateGridLines = function () {
175
176
 
176
- var gridContainer = this.gridContainer,
177
- range = this.timeRange,
178
- width = this.gridContainer.width();
177
+ var gridContainer = this.gridContainer,
178
+ range = this.timeRange,
179
+ width = this.gridContainer.width(),
180
+ rm = Core.createRenderManager();
179
181
 
180
- if (this.gridContainerWidth == width) {
181
- return;
182
- }
182
+ if (this.gridContainerWidth === width) {
183
+ return;
184
+ }
183
185
 
184
- gridContainer.empty();
185
186
 
186
- gridContainer.append('<div style="left:' + (this.getPosition(width, range, 0) + 6) + 'px" class="sapUiInteractionGridLineIntervalText">' + this.formatGridLineDuration(0) + '</div>');
187
+ rm.openStart("div")
188
+ .style("left", this.getPosition(width, range, 0) + 6 + "px")
189
+ .class("sapUiInteractionGridLineIntervalText")
190
+ .openEnd()
191
+ .text(this.formatGridLineDuration(0))
192
+ .close("div");
187
193
 
188
- var interval = this.calculateInterval(width, range);
194
+ var interval = this.calculateInterval(width, range);
189
195
 
190
- for (var i = interval; i < range; i += interval) {
196
+ for (var i = interval; i < range; i += interval) {
191
197
 
192
- var position = this.getPosition(width, range, i);
198
+ var position = this.getPosition(width, range, i);
193
199
 
194
- if (i + interval < range) {
195
- gridContainer.append('<div style="left:' + (position + 6) + 'px" class="sapUiInteractionGridLineIntervalText">' + this.formatGridLineDuration(i) + '</div>');
196
- }
200
+ if (i + interval < range) {
197
201
 
198
- gridContainer.append('<div style="left:' + position + 'px" class="sapUiInteractionGridLine"></div>');
199
- }
202
+ rm.openStart("div")
203
+ .style("left", position + 6 + "px")
204
+ .class("sapUiInteractionGridLineIntervalText")
205
+ .openEnd()
206
+ .text(this.formatGridLineDuration(i))
207
+ .close("div");
208
+ }
200
209
 
201
- this.gridContainerWidth = width;
210
+ rm.openStart("div")
211
+ .style("left", position + "px")
212
+ .class("sapUiInteractionGridLine")
213
+ .openEnd()
214
+ .close("div");
215
+ }
216
+
217
+ gridContainer.empty();
218
+ rm.flush(gridContainer[0], true);
219
+ rm.destroy();
220
+
221
+ this.gridContainerWidth = width;
202
222
  };
203
223
 
204
224
  InteractionTree.prototype.calculateInterval = function (width, range) {
@@ -243,8 +263,11 @@ sap.ui.define([
243
263
  var $parent = $icon.parent();
244
264
  $icon.remove();
245
265
 
246
- var iconHTML = this.getIconHTML(!expanded);
247
- $parent.children().eq(0).after(iconHTML);
266
+ var rm = Core.createRenderManager();
267
+ this.renderIcon(rm, !expanded);
268
+
269
+ rm.flush($parent[0], false, true);
270
+ rm.destroy();
248
271
 
249
272
  var $li = $parent.parent().parent();
250
273
  $li.toggleClass('sapUiInteractionItemExpanded');
@@ -262,46 +285,49 @@ sap.ui.define([
262
285
  };
263
286
 
264
287
  InteractionTree.prototype.renderHeaders = function (rm) {
265
- rm.write('<li>');
266
-
267
- rm.write('<div');
268
-
269
- rm.addClass("sapUiInteractionTreeItem");
270
- rm.addClass("sapUiInteractionItemDiv");
271
- rm.addClass("sapUiInteractionHeader");
272
-
273
- rm.writeClasses();
274
-
275
- rm.write(">");
288
+ rm.openStart("li")
289
+ .openEnd();
276
290
 
277
- rm.write('<div class="sapUiInteractionTreeItemLeft">');
291
+ rm.openStart("div")
292
+ .class("sapUiInteractionTreeItem")
293
+ .class("sapUiInteractionItemDiv")
294
+ .class("sapUiInteractionHeader")
295
+ .openEnd();
278
296
 
279
- rm.write("<div>");
280
297
 
281
- rm.write('<span class="sapUiInteractionItemComponentText">');
282
- rm.writeEscaped('Component');
283
- rm.write('</span>');
298
+ rm.openStart("div")
299
+ .class("sapUiInteractionTreeItemLeft")
300
+ .openEnd();
284
301
 
302
+ rm.openStart("div")
303
+ .openEnd();
285
304
 
286
- rm.write("<br>");
305
+ rm.openStart("span")
306
+ .class("sapUiInteractionItemComponentText")
307
+ .openEnd()
308
+ .text("Component")
309
+ .close("span");
287
310
 
311
+ rm.voidStart("br")
312
+ .voidEnd();
288
313
 
289
- rm.write('<span class="sapUiInteractionItemTriggerText">');
290
- rm.writeEscaped('Trigger');
291
- rm.write('</span>');
314
+ rm.openStart("span")
315
+ .class("sapUiInteractionItemTriggerText")
316
+ .openEnd()
317
+ .text("Trigger")
318
+ .close("span");
292
319
 
293
- rm.write("</div>");
294
320
 
295
- rm.write('</div>'); // sapUiInteractionTreeItemLeft
321
+ rm.close("div");
322
+ rm.close("div"); // sapUiInteractionTreeItemLeft
296
323
 
324
+ rm.openStart("div")
325
+ .class("sapUiInteractionTreeItemRight")
326
+ .openEnd()
327
+ .close("div");
297
328
 
298
- rm.write('<div class="sapUiInteractionTreeItemRight">');
299
-
300
- rm.write('</div>');
301
- rm.write("</div>");
302
-
303
-
304
- rm.write("</li>");
329
+ rm.close("div");
330
+ rm.close("li");
305
331
  };
306
332
 
307
333
  InteractionTree.prototype.isInteractionVisible = function (interaction) {
@@ -348,27 +374,27 @@ sap.ui.define([
348
374
  return;
349
375
  }
350
376
 
351
- rm.write('<li data-interaction-index="' + index + '"');
377
+ rm.openStart("li")
378
+ .attr("data-interaction-index", index);
379
+
352
380
 
353
381
  if (interaction.isExpanded) {
354
- rm.addClass('sapUiInteractionItemExpanded');
355
- rm.writeClasses();
382
+ rm.class('sapUiInteractionItemExpanded');
356
383
  }
357
384
 
358
- rm.write('>');
385
+ rm.openEnd();
359
386
 
360
387
  this.renderInteractionDiv(rm, interaction);
361
388
 
362
- rm.write("<ul");
389
+ rm.openStart("ul");
363
390
 
364
- rm.addClass("sapUiInteractionItem");
391
+ rm.class("sapUiInteractionItem");
365
392
 
366
393
  if (!interaction.isExpanded) {
367
- rm.addClass("sapUiHiddenUiInteractionItems");
394
+ rm.class("sapUiHiddenUiInteractionItems");
368
395
  }
369
396
 
370
- rm.writeClasses();
371
- rm.write(">");
397
+ rm.openEnd();
372
398
 
373
399
 
374
400
  for (var i = 0; i < requests.length; i++) {
@@ -376,125 +402,168 @@ sap.ui.define([
376
402
  this.renderRequest(rm, interaction, request, i);
377
403
  }
378
404
 
379
- rm.write("</ul>");
380
- rm.write("</li>");
405
+ rm.close("ul");
406
+ rm.close("li");
381
407
  };
382
408
 
383
409
  InteractionTree.prototype.renderInteractionDiv = function (rm, interaction) {
384
- rm.write('<div');
410
+ rm.openStart("div");
385
411
 
386
- rm.addClass("sapUiInteractionTreeItem");
387
- rm.addClass("sapUiInteractionItemDiv");
412
+ rm.class("sapUiInteractionTreeItem");
413
+ rm.class("sapUiInteractionItemDiv");
388
414
 
389
- rm.writeClasses();
415
+ rm.openEnd();
390
416
 
391
- rm.write(">");
417
+ rm.openStart("div")
418
+ .class("sapUiInteractionLeft")
419
+ .class("sapUiInteractionTreeItemLeft")
420
+ .openEnd();
392
421
 
393
- rm.write('<div class="sapUiInteractionLeft sapUiInteractionTreeItemLeft">');
422
+ rm.openStart("div")
423
+ .openEnd();
394
424
 
395
- rm.write("<div>");
425
+ rm.openStart("span")
426
+ .class("sapUiInteractionItemComponentText")
427
+ .openEnd();
396
428
 
397
- rm.write('<span class="sapUiInteractionItemComponentText">');
398
- rm.writeEscaped((interaction.component !== "undetermined") ? interaction.component : 'Initial Loading');
399
- rm.write('</span>');
429
+ rm.text((interaction.component !== "undetermined") ? interaction.component : 'Initial Loading');
430
+ rm.close("span");
400
431
 
401
432
 
402
- rm.write("<br>");
433
+ rm.voidStart("br")
434
+ .voidEnd();
403
435
 
404
436
 
405
- rm.write('<span class="sapUiInteractionItemTriggerText">');
406
- rm.writeEscaped(interaction.trigger + " / " + interaction.event);
407
- rm.write('</span>');
437
+ rm.openStart("span")
438
+ .class("sapUiInteractionItemTriggerText")
439
+ .openEnd()
440
+ .text(interaction.trigger + " / " + interaction.event)
441
+ .close("span");
408
442
 
409
- rm.write("</div>");
443
+ rm.close("div");
410
444
 
411
- if (interaction.requests.length) {
412
- this.renderIcon(rm, interaction.isExpanded);
413
- }
445
+ if (interaction.requests.length) {
446
+ this.renderIcon(rm, interaction.isExpanded);
447
+ }
414
448
 
415
- if (interaction.sapStatistics.length && interaction.requests.length) {
416
- rm.write('<div class="sapUiInteractionHeaderIcon">' + InteractionTree.headerIcon + '</div>');
417
- }
449
+ if (interaction.sapStatistics.length && interaction.requests.length) {
418
450
 
419
- rm.write('</div>'); // sapUiInteractionTreeItemLeft
451
+ rm.openStart("div")
452
+ .class("sapUiInteractionHeaderIcon")
453
+ .openEnd();
420
454
 
421
- rm.write('<div class="sapUiInteractionTreeItemRight">');
455
+ rm.voidStart("img")
456
+ .class("sapUiInteractionSvgImage")
457
+ .attr("src", "HeaderIcon.svg")
458
+ .voidEnd();
422
459
 
423
- var middle = Math.round(interaction.start + interaction.duration);
460
+ rm.close("div");
461
+ }
424
462
 
425
- this.renderInteractionPart(rm, interaction.start, middle, 'sapUiInteractionBlue');
426
- // this.renderInteractionPart(rm, middle, interaction.end, 'sapUiInteractionBlueLight');
463
+ rm.close("div"); // sapUiInteractionTreeItemLeft
427
464
 
428
- rm.write('</div>');
429
- rm.write("</div>");
430
- };
465
+ rm.openStart("div")
466
+ .class("sapUiInteractionTreeItemRight")
467
+ .openEnd();
431
468
 
432
- InteractionTree.prototype.renderInteractionPart = function (rm, start, end, colorClass) {
433
- if (this.actualStartTime > end || this.actualEndTime < start) {
434
- return;
435
- }
436
469
 
437
- end = Math.min(end, this.actualEndTime);
438
- start = Math.max(start, this.actualStartTime);
470
+ var middle = Math.round(interaction.start + interaction.duration);
439
471
 
440
- var left = 100 / this.timeRange * (start - this.actualStartTime);
441
- var right = 100 / this.timeRange * (end - this.actualStartTime);
442
- var width = right - left;
472
+ this.renderInteractionPart(rm, interaction.start, middle, 'sapUiInteractionBlue');
473
+ // this.renderInteractionPart(rm, middle, interaction.end, 'sapUiInteractionBlueLight');
474
+
475
+ rm.close("div");
476
+ rm.close("div");
477
+ };
443
478
 
444
- rm.write('<span style="margin-left: ' + left + '%; width: ' + width + '%" class="sapUiInteractionTimeframe sapUiInteractionTimeInteractionFrame ' + colorClass + '"></span>');
479
+ InteractionTree.prototype.renderInteractionPart = function (rm, start, end, colorClass) {
480
+ if (this.actualStartTime > end || this.actualEndTime < start) {
481
+ return;
482
+ }
483
+
484
+ end = Math.min(end, this.actualEndTime);
485
+ start = Math.max(start, this.actualStartTime);
486
+
487
+ var left = 100 / this.timeRange * (start - this.actualStartTime);
488
+ var right = 100 / this.timeRange * (end - this.actualStartTime);
489
+ var width = right - left;
490
+
491
+ rm.openStart("span")
492
+ .style("margin-left", left + "%")
493
+ .style("width", width + "%")
494
+ .class("sapUiInteractionTimeframe")
495
+ .class("sapUiInteractionTimeInteractionFrame")
496
+ .class(colorClass)
497
+ .openEnd()
498
+ .close("span");
445
499
  };
446
500
 
447
501
  InteractionTree.prototype.renderRequest = function (rm, interaction, request, index) {
448
502
 
449
- var fetchStartOffset = request.fetchStartOffset;
503
+ var fetchStartOffset = request.fetchStartOffset;
450
504
 
451
- var start = fetchStartOffset + request.startTime;
452
- var end = fetchStartOffset + request.startTime + this.getRequestDuration(request);
505
+ var start = fetchStartOffset + request.startTime;
506
+ var end = fetchStartOffset + request.startTime + this.getRequestDuration(request);
453
507
 
454
- if (this.actualStartTime > end || this.actualEndTime < start) {
455
- return;
456
- }
508
+ if (this.actualStartTime > end || this.actualEndTime < start) {
509
+ return;
510
+ }
457
511
 
458
- rm.write('<li data-request-index="' + index + '"');
512
+ rm.openStart("li")
513
+ .attr("data-request-index", index)
514
+ .class("sapUiInteractionTreeItem")
515
+ .class("sapUiInteractionRequest")
516
+ .openEnd();
459
517
 
460
- rm.addClass("sapUiInteractionTreeItem");
461
- rm.addClass("sapUiInteractionRequest");
518
+ rm.openStart("div")
519
+ .class("sapUiInteractionTreeItemLeft")
520
+ .class("sapUiInteractionRequestLeft")
521
+ .openEnd();
462
522
 
463
- rm.writeClasses();
523
+ var requestType = request.initiatorType || request.entryType;
464
524
 
465
- rm.write(">");
525
+ var colorClass = this.getRequestColorClass(requestType);
466
526
 
467
- rm.write('<div class="sapUiInteractionTreeItemLeft sapUiInteractionRequestLeft">');
527
+ rm.openStart("span")
528
+ .class("sapUiInteractionRequestIcon")
529
+ .class(colorClass)
530
+ .openEnd()
531
+ .close("span");
468
532
 
469
- var requestType = request.initiatorType || request.entryType;
533
+ rm.openStart("span")
534
+ .class("sapUiInteractionItemEntryTypeText")
535
+ .openEnd()
536
+ .text(requestType)
537
+ .close("span");
470
538
 
471
- var colorClass = this.getRequestColorClass(requestType);
539
+ if (this.getRequestSapStatistics(interaction, request)) {
540
+ rm.openStart("div")
541
+ .class("sapUiInteractionRequestHeaderIcon")
542
+ .openEnd();
472
543
 
473
- rm.write('<span class="sapUiInteractionRequestIcon ' + colorClass + '"></span>');
544
+ rm.voidStart("img")
545
+ .class("sapUiInteractionSvgImage")
546
+ .attr("src", "HeaderIcon.svg")
547
+ .voidEnd();
474
548
 
475
- rm.write('<span class="sapUiInteractionItemEntryTypeText">');
476
- rm.writeEscaped(requestType);
477
- rm.write('</span>');
549
+ rm.close("div");
550
+ }
478
551
 
479
- if (this.getRequestSapStatistics(interaction, request)) {
480
- rm.write('<div class="sapUiInteractionRequestHeaderIcon">' + InteractionTree.headerIcon + '</div>');
481
- }
482
-
483
- rm.write('</div>');
484
-
485
- rm.write('<div class="sapUiInteractionTreeItemRight"');
486
- rm.write('>');
552
+ rm.close("div");
487
553
 
488
- var requestStart = this.getRequestRequestStart(request) + fetchStartOffset;
489
- var responseStart = this.getRequestResponseStart(request) + fetchStartOffset;
554
+ rm.openStart("div")
555
+ .class("sapUiInteractionTreeItemRight")
556
+ .openEnd();
490
557
 
491
- this.renderRequestPart(rm, start, requestStart, colorClass + '70');
492
- this.renderRequestPart(rm, requestStart, responseStart, colorClass);
493
- this.renderRequestPart(rm, responseStart, end, colorClass + '70');
558
+ var requestStart = this.getRequestRequestStart(request) + fetchStartOffset;
559
+ var responseStart = this.getRequestResponseStart(request) + fetchStartOffset;
494
560
 
495
- rm.write('</div>');
561
+ this.renderRequestPart(rm, start, requestStart, colorClass + '70');
562
+ this.renderRequestPart(rm, requestStart, responseStart, colorClass);
563
+ this.renderRequestPart(rm, responseStart, end, colorClass + '70');
496
564
 
497
- rm.write("</li>");
565
+ rm.close("div");
566
+ rm.close("li");
498
567
  };
499
568
 
500
569
  InteractionTree.prototype.getRequestSapStatistics = function (interaction, request) {
@@ -543,18 +612,19 @@ sap.ui.define([
543
612
 
544
613
  /* eslint-disable no-loop-func */
545
614
  if (requestDivElements.length) {
546
- var oPopover = createEmptyPopOver();
615
+ var oPopover = createEmptyPopOver();
547
616
 
548
- for (var i = 0; i < requestDivElements.length; i++) {
549
- requestDivElements[i].addEventListener('click', function (event) {
550
- initializePopOverClientServerProgressBar.call(this);
551
- initializePopOverRequestData.call(this);
552
- initializePopOverSapStatisticsData.call(this);
617
+ for (var i = 0; i < requestDivElements.length; i++) {
618
+ requestDivElements[i].addEventListener('click', function (event) {
619
+ initializePopOverRequestData.call(this);
620
+ initializePopOverSapStatisticsData.call(this);
553
621
 
554
- var requestBarElement = jQuery(this).children()[0];
555
- oPopover.openBy(requestBarElement);
556
- });
557
- }
622
+ var requestBarElement = jQuery(this).children()[0];
623
+ oPopover.openBy(requestBarElement);
624
+
625
+ initializePopOverClientServerProgressBar.call(this);
626
+ });
627
+ }
558
628
  }
559
629
  /* eslint-enable no-loop-func */
560
630
 
@@ -627,54 +697,106 @@ sap.ui.define([
627
697
 
628
698
  function initializePopOverClientServerProgressBar() {
629
699
 
630
- var request = that.getRequestFromElement(jQuery(this));
700
+ var rm = Core.createRenderManager();
701
+ var request = that.getRequestFromElement(jQuery(this));
631
702
 
632
- var fetchStartOffset = request.fetchStartOffset;
633
- var duration = that.getRequestDuration(request);
703
+ var fetchStartOffset = request.fetchStartOffset;
704
+ var duration = that.getRequestDuration(request);
634
705
 
635
- var start = fetchStartOffset + request.startTime;
636
- var end = start + duration;
706
+ var start = fetchStartOffset + request.startTime;
707
+ var end = start + duration;
708
+
709
+ var requestStart = that.getRequestRequestStart(request) + fetchStartOffset;
710
+ var responseStart = that.getRequestResponseStart(request) + fetchStartOffset;
711
+
712
+ var preprocessingTime = requestStart - start;
713
+ var serverTotalTime = responseStart - requestStart;
714
+
715
+ var clientTotalTime = end - responseStart;
716
+
717
+ var serverTimePercent = Math.floor(100 * serverTotalTime / duration);
718
+ var clientTimePercent = Math.floor(100 * clientTotalTime / duration);
719
+ var preprocessingTimePercent = Math.floor(100 * preprocessingTime / duration);
720
+
721
+ rm.openStart("div")
722
+ .class("sapUiInteractionTitle")
723
+ .openEnd();
724
+
725
+
726
+ [['PREPROCESSING', that.formatDuration(preprocessingTime)],
727
+ ['SERVER', that.formatDuration(serverTotalTime)],
728
+ ['CLIENT', that.formatDuration(clientTotalTime)]].forEach(function (item) {
637
729
 
638
- var requestStart = that.getRequestRequestStart(request) + fetchStartOffset;
639
- var responseStart = that.getRequestResponseStart(request) + fetchStartOffset;
730
+ rm.openStart("span")
731
+ .class("sapUiInteractionTitleSection")
732
+ .openEnd();
640
733
 
641
- var preprocessingTime = requestStart - start;
642
- var serverTotalTime = responseStart - requestStart;
734
+ rm.openStart("div")
735
+ .class("sapUiInteractionTitleText")
736
+ .openEnd()
737
+ .text(item[0])
738
+ .close("div");
643
739
 
644
- var clientTotalTime = end - responseStart;
740
+ rm.openStart("div")
741
+ .class("sapUiInteractionTitleSubText")
742
+ .openEnd()
743
+ .text(item[1])
744
+ .close("div");
645
745
 
646
- var serverTimePercent = Math.floor(100 * serverTotalTime / duration);
647
- var clientTimePercent = Math.floor(100 * clientTotalTime / duration);
648
- var preprocessingTimePercent = Math.floor(100 * preprocessingTime / duration);
746
+ rm.close("span");
747
+ });
649
748
 
650
- var titleTemplate = '<span class="sapUiInteractionTitleSection"><div class="sapUiInteractionTitleText">{Title}</div><div class="sapUiInteractionTitleSubText">{Subtitle}</div></span>';
749
+ rm.close("div");
651
750
 
652
- var clientVsServerHTML = '<div class="sapUiInteractionTitle">';
751
+ rm.flush(jQuery(".sapUiSupportPopoverTitle")[0], true);
752
+ rm.destroy();
653
753
 
654
- clientVsServerHTML += titleTemplate.replace('{Title}', 'PREPROCESSING').replace('{Subtitle}', that.formatDuration(preprocessingTime));
655
- clientVsServerHTML += titleTemplate.replace('{Title}', 'SERVER').replace('{Subtitle}', that.formatDuration(serverTotalTime));
656
- clientVsServerHTML += titleTemplate.replace('{Title}', 'CLIENT').replace('{Subtitle}', that.formatDuration(clientTotalTime));
754
+ var requestType = request.initiatorType || request.entryType;
657
755
 
658
- clientVsServerHTML += '</div>';
756
+ var colorClass = that.getRequestColorClass(requestType);
757
+ var colorClass70 = colorClass + '70';
659
758
 
660
- clientVsServerTitle.setContent(clientVsServerHTML);
759
+ rm = Core.createRenderManager();
661
760
 
662
- var requestType = request.initiatorType || request.entryType;
761
+ rm.openStart("div")
762
+ .class("sapUiSupportIntProgressBarParent")
763
+ .openEnd();
663
764
 
664
- var colorClass = that.getRequestColorClass(requestType);
665
- var colorClass70 = colorClass + '70';
765
+ rm.openStart("span")
766
+ .class("sapUiSupportIntProgressBar")
767
+ .class(colorClass70)
768
+ .style("width", "calc(" + preprocessingTimePercent + "% - 1px)")
769
+ .openEnd()
770
+ .close("span");
666
771
 
667
- var preprocessHTML = "<span class='sapUiSupportIntProgressBar " + colorClass70 + "'' style=\"width:calc(" + preprocessingTimePercent +
668
- "% - 1px)\"></span><span class='sapUiSupportIntProgressBarSeparator'></span>";
772
+ rm.openStart("span")
773
+ .class("sapUiSupportIntProgressBarSeparator")
774
+ .openEnd()
775
+ .close("span");
669
776
 
670
- var serverHTML = "<span class='sapUiSupportIntProgressBar " + colorClass + "' style=\"width:calc(" + serverTimePercent + "% - 1px)\"></span>" +
671
- "<span class='sapUiSupportIntProgressBarSeparator'></span>";
777
+ rm.openStart("span")
778
+ .class("sapUiSupportIntProgressBar")
779
+ .class(colorClass)
780
+ .style("width", "calc(" + serverTimePercent + "% - 1px)")
781
+ .openEnd()
782
+ .close("span");
672
783
 
673
- var clientHTML = "<span class='sapUiSupportIntProgressBar " + colorClass70 + "'' style=\"width:calc(" + clientTimePercent + "% - 1px)\"></span>";
784
+ rm.openStart("span")
785
+ .class("sapUiSupportIntProgressBarSeparator")
786
+ .openEnd()
787
+ .close("span");
674
788
 
675
- var progressBarHTML = "<div class='sapUiSupportIntProgressBarParent'>" + preprocessHTML + serverHTML + clientHTML + "</div>";
789
+ rm.openStart("span")
790
+ .class("sapUiSupportIntProgressBar")
791
+ .class(colorClass70)
792
+ .style("width", "calc(" + clientTimePercent + "% - 1px)")
793
+ .openEnd()
794
+ .close("span");
676
795
 
677
- progressBar.setContent(progressBarHTML);
796
+ rm.close("div");
797
+
798
+ rm.flush(jQuery(".sapUiSupportPopoverProgressBar")[0], true);
799
+ rm.destroy();
678
800
  }
679
801
 
680
802
  function createEmptyPopOver() {
@@ -698,8 +820,14 @@ sap.ui.define([
698
820
  }
699
821
 
700
822
  function createPopOverContent() {
701
- clientVsServerTitle = new HTML();
702
- progressBar = new HTML();
823
+ clientVsServerTitle = new HTML({
824
+ content: '<div class="sapUiSupportPopoverTitle"></div>',
825
+ preferDOM: false
826
+ });
827
+ progressBar = new HTML({
828
+ content: '<div class="sapUiSupportPopoverProgressBar"></div>',
829
+ preferDOM: false
830
+ });
703
831
  closeButton = new Button({
704
832
  icon : IconPool.getIconURI("decline"),
705
833
  type: "Transparent",
@@ -889,19 +1017,25 @@ sap.ui.define([
889
1017
  };
890
1018
 
891
1019
  InteractionTree.prototype.renderRequestPart = function (rm, start, end, colorClass) {
892
- if (this.actualStartTime > end || this.actualEndTime < start) {
893
- return;
894
- }
895
-
896
- end = Math.min(end, this.actualEndTime);
897
- start = Math.max(start, this.actualStartTime);
898
-
899
- var left = 100 / this.timeRange * (start - this.actualStartTime);
900
- var right = 100 / this.timeRange * (end - this.actualStartTime);
901
- var width = right - left;
902
-
903
- rm.write('<span style="margin-left: ' + left + '%; width: ' + width + '%" class="sapUiInteractionTimeframe sapUiInteractionTimeRequestFrame ' + colorClass + '"></span>');
904
-
1020
+ if (this.actualStartTime > end || this.actualEndTime < start) {
1021
+ return;
1022
+ }
1023
+
1024
+ end = Math.min(end, this.actualEndTime);
1025
+ start = Math.max(start, this.actualStartTime);
1026
+
1027
+ var left = 100 / this.timeRange * (start - this.actualStartTime);
1028
+ var right = 100 / this.timeRange * (end - this.actualStartTime);
1029
+ var width = right - left;
1030
+
1031
+ rm.openStart("span")
1032
+ .style("margin-left", left + "%")
1033
+ .style("width", width + "%")
1034
+ .class("sapUiInteractionTimeframe")
1035
+ .class("sapUiInteractionTimeRequestFrame")
1036
+ .class(colorClass)
1037
+ .openEnd()
1038
+ .close("span");
905
1039
  };
906
1040
 
907
1041
  InteractionTree.prototype.getRequestDuration = function(request) {
@@ -961,32 +1095,28 @@ sap.ui.define([
961
1095
  };
962
1096
 
963
1097
  InteractionTree.prototype.renderIcon = function (rm, expanded) {
964
- var html = this.getIconHTML(expanded);
965
- rm.write(html);
966
- };
967
-
968
- InteractionTree.prototype.getIconHTML = function (expanded) {
1098
+ var icon = expanded ? InteractionTree.collapseIcon : InteractionTree.expandIcon;
969
1099
 
970
- var icon = expanded ? InteractionTree.collapseIcon : InteractionTree.expandIcon;
1100
+ rm.openStart("span")
1101
+ .attr("aria-hidden", "true")
1102
+ .attr("expanded", expanded)
1103
+ .class("sapUiIcon")
1104
+ .class("sapUiInteractionTreeIcon");
971
1105
 
972
- var classes = "sapUiIcon sapUiInteractionTreeIcon";
973
1106
 
974
- if (iconInfo && !iconInfo.suppressMirroring) {
975
- classes += " sapUiIconMirrorInRTL";
976
- }
977
-
978
- var html = '<span aria-hidden="true" expanded="' + expanded + '" class="' + classes + '" ';
1107
+ if (iconInfo && !iconInfo.suppressMirroring) {
1108
+ rm.class("sapUiIconMirrorInRTL");
1109
+ }
979
1110
 
980
- var iconInfo = IconPool.getIconInfo(icon);
981
-
982
- if (iconInfo) {
983
- html += 'data-sap-ui-icon-content="' + iconInfo.content + '"';
984
- html += ' style="font-family:\'SAP-icons\'"';
985
- }
1111
+ var iconInfo = IconPool.getIconInfo(icon);
986
1112
 
987
- html += "></span>";
1113
+ if (iconInfo) {
1114
+ rm.attr("data-sap-ui-icon-content", iconInfo.content);
1115
+ rm.style("font-family", "SAP-icons");
1116
+ }
988
1117
 
989
- return html;
1118
+ rm.openEnd()
1119
+ .close("span");
990
1120
  };
991
1121
 
992
1122
  return InteractionTree;