@openui5/sap.ui.core 1.94.0 → 1.97.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 (417) hide show
  1. package/.eslintrc.json +15 -4
  2. package/.reuse/dep5 +12 -12
  3. package/THIRDPARTY.txt +21 -17
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +1 -1
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +2 -2
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +3 -3
  10. package/src/sap/base/i18n/ResourceBundle.js +6 -2
  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/ui/Device.js +15 -11
  53. package/src/sap/ui/Global.js +13 -17
  54. package/src/sap/ui/base/DataType.js +14 -8
  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 +13 -8
  59. package/src/sap/ui/base/ManagedObjectMetadata.js +2 -2
  60. package/src/sap/ui/base/Metadata.js +1 -3
  61. package/src/sap/ui/base/Object.js +1 -1
  62. package/src/sap/ui/base/ObjectPool.js +1 -1
  63. package/src/sap/ui/core/.library +6 -32
  64. package/src/sap/ui/core/AppCacheBuster.js +8 -8
  65. package/src/sap/ui/core/BusyIndicator.js +1 -1
  66. package/src/sap/ui/core/Component.js +303 -135
  67. package/src/sap/ui/core/ComponentContainer.js +11 -7
  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 +67 -31
  71. package/src/sap/ui/core/Control.js +2 -2
  72. package/src/sap/ui/core/Core.js +79 -15
  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 +2 -6
  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/ExtensionPoint.js +6 -13
  80. package/src/sap/ui/core/Fragment.js +30 -32
  81. package/src/sap/ui/core/HTML.js +3 -3
  82. package/src/sap/ui/core/History.js +1 -1
  83. package/src/sap/ui/core/Icon.js +7 -8
  84. package/src/sap/ui/core/IconPool.js +26 -1097
  85. package/src/sap/ui/core/IconRenderer.js +6 -6
  86. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  87. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  88. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  89. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  90. package/src/sap/ui/core/InvisibleText.js +1 -1
  91. package/src/sap/ui/core/Item.js +1 -1
  92. package/src/sap/ui/core/LabelEnablement.js +1 -1
  93. package/src/sap/ui/core/LayoutData.js +1 -1
  94. package/src/sap/ui/core/ListItem.js +1 -1
  95. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  96. package/src/sap/ui/core/Locale.js +26 -4
  97. package/src/sap/ui/core/LocaleData.js +3 -3
  98. package/src/sap/ui/core/Manifest.js +2 -60
  99. package/src/sap/ui/core/Message.js +1 -1
  100. package/src/sap/ui/core/Patcher.js +27 -3
  101. package/src/sap/ui/core/Placeholder.js +4 -4
  102. package/src/sap/ui/core/RenderManager.js +38 -8
  103. package/src/sap/ui/core/Renderer.js +13 -3
  104. package/src/sap/ui/core/ResizeHandler.js +1 -1
  105. package/src/sap/ui/core/ScrollBar.js +4 -3
  106. package/src/sap/ui/core/SeparatorItem.js +1 -1
  107. package/src/sap/ui/core/ShortcutHintsMixin.js +14 -7
  108. package/src/sap/ui/core/ThemeCheck.js +2 -2
  109. package/src/sap/ui/core/Title.js +1 -1
  110. package/src/sap/ui/core/TooltipBase.js +1 -1
  111. package/src/sap/ui/core/UIArea.js +3 -3
  112. package/src/sap/ui/core/UIComponent.js +19 -11
  113. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  114. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  115. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  116. package/src/sap/ui/core/XMLComposite.js +2 -2
  117. package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
  118. package/src/sap/ui/core/XMLTemplateProcessor.js +132 -43
  119. package/src/sap/ui/core/_IconRegistry.js +1148 -0
  120. package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -2
  121. package/src/sap/ui/core/date/UniversalDateUtils.js +33 -0
  122. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  123. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  124. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  125. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  126. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  127. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  128. package/src/sap/ui/core/format/NumberFormat.js +16 -1
  129. package/src/sap/ui/core/hyphenation/Hyphenation.js +61 -80
  130. package/src/sap/ui/core/library.js +5 -5
  131. package/src/sap/ui/core/message/ControlMessageProcessor.js +5 -5
  132. package/src/sap/ui/core/message/Message.js +1 -1
  133. package/src/sap/ui/core/message/MessageManager.js +13 -15
  134. package/src/sap/ui/core/message/MessageParser.js +1 -1
  135. package/src/sap/ui/core/message/MessageProcessor.js +22 -12
  136. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  137. package/src/sap/ui/core/messagebundle_fr.properties +8 -8
  138. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  139. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  140. package/src/sap/ui/core/messagebundle_ru.properties +21 -21
  141. package/src/sap/ui/core/messagebundle_th.properties +2 -2
  142. package/src/sap/ui/core/mvc/Controller.js +5 -5
  143. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +30 -32
  144. package/src/sap/ui/core/mvc/ControllerMetadata.js +18 -18
  145. package/src/sap/ui/core/mvc/HTMLView.js +2 -2
  146. package/src/sap/ui/core/mvc/JSONView.js +2 -2
  147. package/src/sap/ui/core/mvc/JSView.js +2 -2
  148. package/src/sap/ui/core/mvc/TemplateView.js +2 -2
  149. package/src/sap/ui/core/mvc/View.js +58 -85
  150. package/src/sap/ui/core/mvc/XMLView.js +2 -2
  151. package/src/sap/ui/core/mvc/XMLViewRenderer.js +17 -20
  152. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  153. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  154. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  155. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  156. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  157. package/src/sap/ui/core/routing/Route.js +10 -1
  158. package/src/sap/ui/core/routing/Router.js +16 -6
  159. package/src/sap/ui/core/routing/Targets.js +26 -0
  160. package/src/sap/ui/core/routing/async/Route.js +6 -3
  161. package/src/sap/ui/core/routing/async/Target.js +28 -4
  162. package/src/sap/ui/core/routing/sync/Target.js +15 -0
  163. package/src/sap/ui/core/rules/Misc.support.js +51 -1
  164. package/src/sap/ui/core/rules/Rendering.support.js +1 -4
  165. package/src/sap/ui/core/rules/View.support.js +14 -46
  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/Plugin.js +2 -2
  172. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +0 -1
  173. package/src/sap/ui/core/support/Support.js +1 -1
  174. package/src/sap/ui/core/support/controls/TreeViewer.js +1 -1
  175. package/src/sap/ui/core/support/plugins/ControlTree.js +37 -43
  176. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  177. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  178. package/src/sap/ui/core/support/plugins/Performance.js +1 -2
  179. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  180. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  181. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  182. package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -2
  183. package/src/sap/ui/core/support/support.css +2 -8
  184. package/src/sap/ui/core/support/techinfo/TechnicalInfo.fragment.xml +1 -0
  185. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +150 -73
  186. package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
  187. package/src/sap/ui/core/themes/base/Icon.less +9 -0
  188. package/src/sap/ui/core/themes/base/SAP-icons.css +2 -0
  189. package/src/sap/ui/core/themes/base/SAP-icons.less +10 -0
  190. package/src/sap/ui/core/themes/base/base.less +543 -390
  191. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  192. package/src/sap/ui/core/themes/base/global.less +38 -0
  193. package/src/sap/ui/core/themes/base/library.source.less +1 -2
  194. package/src/sap/ui/core/themes/sap_hcb/global.less +34 -0
  195. package/src/sap/ui/core/theming/Parameters.js +21 -0
  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 +1 -1
  200. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  201. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  202. package/src/sap/ui/core/util/Export.js +1 -1
  203. package/src/sap/ui/core/util/ExportCell.js +1 -1
  204. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  205. package/src/sap/ui/core/util/ExportRow.js +1 -1
  206. package/src/sap/ui/core/util/ExportType.js +1 -1
  207. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  208. package/src/sap/ui/core/util/File.js +1 -1
  209. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  210. package/src/sap/ui/core/util/MockServer.js +2 -2
  211. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  212. package/src/sap/ui/core/util/XMLPreprocessor.js +11 -12
  213. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +10 -12
  214. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +6 -3
  215. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  216. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  217. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  218. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  219. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  220. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  221. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  222. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  223. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  224. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  225. package/src/sap/ui/debug/ControlTree.js +1 -1
  226. package/src/sap/ui/debug/DebugEnv.js +1 -1
  227. package/src/sap/ui/debug/Highlighter.js +8 -2
  228. package/src/sap/ui/debug/PropertyList.js +1 -1
  229. package/src/sap/ui/model/Binding.js +174 -118
  230. package/src/sap/ui/model/ChangeReason.js +1 -1
  231. package/src/sap/ui/model/ClientContextBinding.js +1 -1
  232. package/src/sap/ui/model/ClientListBinding.js +8 -3
  233. package/src/sap/ui/model/ClientModel.js +9 -8
  234. package/src/sap/ui/model/ClientPropertyBinding.js +4 -2
  235. package/src/sap/ui/model/ClientTreeBinding.js +15 -9
  236. package/src/sap/ui/model/ClientTreeBindingAdapter.js +28 -23
  237. package/src/sap/ui/model/CompositeBinding.js +98 -77
  238. package/src/sap/ui/model/CompositeDataState.js +2 -2
  239. package/src/sap/ui/model/CompositeType.js +2 -2
  240. package/src/sap/ui/model/Context.js +4 -2
  241. package/src/sap/ui/model/ContextBinding.js +6 -14
  242. package/src/sap/ui/model/DataState.js +2 -2
  243. package/src/sap/ui/model/Filter.js +255 -53
  244. package/src/sap/ui/model/FilterOperator.js +1 -1
  245. package/src/sap/ui/model/FilterProcessor.js +27 -17
  246. package/src/sap/ui/model/FilterType.js +1 -1
  247. package/src/sap/ui/model/ListBinding.js +200 -118
  248. package/src/sap/ui/model/MetaModel.js +4 -9
  249. package/src/sap/ui/model/Model.js +349 -303
  250. package/src/sap/ui/model/PropertyBinding.js +92 -58
  251. package/src/sap/ui/model/SelectionModel.js +2 -2
  252. package/src/sap/ui/model/SimpleType.js +2 -2
  253. package/src/sap/ui/model/Sorter.js +1 -1
  254. package/src/sap/ui/model/SorterProcessor.js +1 -1
  255. package/src/sap/ui/model/StaticBinding.js +1 -1
  256. package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
  257. package/src/sap/ui/model/TreeBinding.js +1 -1
  258. package/src/sap/ui/model/TreeBindingAdapter.js +249 -100
  259. package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +16 -9
  260. package/src/sap/ui/model/TreeBindingUtils.js +3 -0
  261. package/src/sap/ui/model/Type.js +1 -1
  262. package/src/sap/ui/model/analytics/AnalyticalBinding.js +20 -10
  263. package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +17 -19
  264. package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
  265. package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
  266. package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
  267. package/src/sap/ui/model/analytics/odata4analytics.js +3 -2
  268. package/src/sap/ui/model/base/ManagedObjectModel.js +4 -0
  269. package/src/sap/ui/model/json/JSONListBinding.js +8 -5
  270. package/src/sap/ui/model/json/JSONModel.js +29 -20
  271. package/src/sap/ui/model/json/JSONPropertyBinding.js +5 -4
  272. package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
  273. package/src/sap/ui/model/message/MessageListBinding.js +6 -3
  274. package/src/sap/ui/model/message/MessageModel.js +25 -17
  275. package/src/sap/ui/model/message/MessagePropertyBinding.js +3 -3
  276. package/src/sap/ui/model/odata/AnnotationHelper.js +3 -3
  277. package/src/sap/ui/model/odata/AnnotationParser.js +5 -3
  278. package/src/sap/ui/model/odata/CountMode.js +1 -1
  279. package/src/sap/ui/model/odata/Filter.js +1 -1
  280. package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
  281. package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
  282. package/src/sap/ui/model/odata/ODataListBinding.js +62 -39
  283. package/src/sap/ui/model/odata/ODataMessageParser.js +3 -3
  284. package/src/sap/ui/model/odata/ODataMetaModel.js +6 -4
  285. package/src/sap/ui/model/odata/ODataMetadata.js +137 -86
  286. package/src/sap/ui/model/odata/ODataModel.js +443 -216
  287. package/src/sap/ui/model/odata/ODataPropertyBinding.js +8 -6
  288. package/src/sap/ui/model/odata/ODataTreeBinding.js +65 -33
  289. package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +28 -18
  290. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +442 -262
  291. package/src/sap/ui/model/odata/ODataUtils.js +36 -19
  292. package/src/sap/ui/model/odata/OperationMode.js +1 -1
  293. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +2 -1
  294. package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +11 -9
  295. package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +6 -4
  296. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  297. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  298. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  299. package/src/sap/ui/model/odata/type/Date.js +1 -1
  300. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  301. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  302. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  303. package/src/sap/ui/model/odata/type/Decimal.js +5 -1
  304. package/src/sap/ui/model/odata/type/Double.js +1 -1
  305. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  306. package/src/sap/ui/model/odata/type/Int.js +1 -1
  307. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  308. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  309. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  310. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  311. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  312. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  313. package/src/sap/ui/model/odata/type/Single.js +1 -1
  314. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  315. package/src/sap/ui/model/odata/type/String.js +1 -1
  316. package/src/sap/ui/model/odata/type/Time.js +1 -1
  317. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  318. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  319. package/src/sap/ui/model/odata/type/UnitMixin.js +0 -1
  320. package/src/sap/ui/model/odata/v2/Context.js +98 -17
  321. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
  322. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +1 -1
  323. package/src/sap/ui/model/odata/v2/ODataListBinding.js +416 -132
  324. package/src/sap/ui/model/odata/v2/ODataModel.js +465 -250
  325. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +191 -109
  326. package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +179 -0
  327. package/src/sap/ui/model/odata/v4/Context.js +48 -7
  328. package/src/sap/ui/model/odata/v4/ODataBinding.js +60 -30
  329. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +177 -53
  330. package/src/sap/ui/model/odata/v4/ODataListBinding.js +304 -91
  331. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +32 -20
  332. package/src/sap/ui/model/odata/v4/ODataModel.js +29 -15
  333. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +83 -51
  334. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +13 -9
  335. package/src/sap/ui/model/odata/v4/lib/_Cache.js +115 -19
  336. package/src/sap/ui/model/odata/v4/lib/_Helper.js +35 -5
  337. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +50 -5
  338. package/src/sap/ui/model/resource/ResourceModel.js +6 -2
  339. package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
  340. package/src/sap/ui/model/type/Boolean.js +2 -2
  341. package/src/sap/ui/model/type/Currency.js +2 -2
  342. package/src/sap/ui/model/type/Date.js +9 -3
  343. package/src/sap/ui/model/type/DateInterval.js +4 -2
  344. package/src/sap/ui/model/type/DateTime.js +2 -2
  345. package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
  346. package/src/sap/ui/model/type/FileSize.js +4 -2
  347. package/src/sap/ui/model/type/Float.js +4 -2
  348. package/src/sap/ui/model/type/Integer.js +4 -2
  349. package/src/sap/ui/model/type/String.js +2 -2
  350. package/src/sap/ui/model/type/Time.js +2 -2
  351. package/src/sap/ui/model/type/TimeInterval.js +2 -2
  352. package/src/sap/ui/model/type/Unit.js +14 -7
  353. package/src/sap/ui/model/xml/XMLListBinding.js +15 -9
  354. package/src/sap/ui/model/xml/XMLModel.js +74 -45
  355. package/src/sap/ui/model/xml/XMLPropertyBinding.js +5 -5
  356. package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -4
  357. package/src/sap/ui/performance/trace/Interaction.js +30 -15
  358. package/src/sap/ui/qunit/QUnitUtils.js +3 -2
  359. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  360. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +9 -11
  361. package/src/sap/ui/test/TestUtils.js +11 -4
  362. package/src/sap/ui/test/actions/Action.js +9 -2
  363. package/src/sap/ui/test/actions/Press.js +28 -1
  364. package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +111 -0
  365. package/src/sap/ui/test/matchers/I18NText.js +29 -11
  366. package/src/sap/ui/test/opaQunit.js +5 -0
  367. package/src/sap/ui/thirdparty/IPv6.js +2 -2
  368. package/src/sap/ui/thirdparty/SecondLevelDomains.js +2 -2
  369. package/src/sap/ui/thirdparty/URI.js +14 -5
  370. package/src/sap/ui/thirdparty/URITemplate.js +2 -2
  371. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly.js +1196 -0
  372. package/src/sap/ui/thirdparty/hyphenopoly/Hyphenopoly_Loader.js +797 -0
  373. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.asm.js +108 -127
  374. package/src/sap/ui/thirdparty/hyphenopoly/hyphenEngine.wasm +0 -0
  375. package/src/sap/ui/thirdparty/hyphenopoly/patterns/bg.hpb +0 -0
  376. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ca.hpb +0 -0
  377. package/src/sap/ui/thirdparty/hyphenopoly/patterns/da.hpb +0 -0
  378. package/src/sap/ui/thirdparty/hyphenopoly/patterns/de.hpb +0 -0
  379. package/src/sap/ui/thirdparty/hyphenopoly/patterns/el-monoton.hpb +0 -0
  380. package/src/sap/ui/thirdparty/hyphenopoly/patterns/en-us.hpb +0 -0
  381. package/src/sap/ui/thirdparty/hyphenopoly/patterns/es.hpb +0 -0
  382. package/src/sap/ui/thirdparty/hyphenopoly/patterns/et.hpb +0 -0
  383. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fi.hpb +0 -0
  384. package/src/sap/ui/thirdparty/hyphenopoly/patterns/fr.hpb +0 -0
  385. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hi.hpb +0 -0
  386. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hr.hpb +0 -0
  387. package/src/sap/ui/thirdparty/hyphenopoly/patterns/hu.hpb +0 -0
  388. package/src/sap/ui/thirdparty/hyphenopoly/patterns/it.hpb +0 -0
  389. package/src/sap/ui/thirdparty/hyphenopoly/patterns/lt.hpb +0 -0
  390. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nb-no.hpb +0 -0
  391. package/src/sap/ui/thirdparty/hyphenopoly/patterns/nl.hpb +0 -0
  392. package/src/sap/ui/thirdparty/hyphenopoly/patterns/pt.hpb +0 -0
  393. package/src/sap/ui/thirdparty/hyphenopoly/patterns/ru.hpb +0 -0
  394. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sl.hpb +0 -0
  395. package/src/sap/ui/thirdparty/hyphenopoly/patterns/sv.hpb +0 -0
  396. package/src/sap/ui/thirdparty/hyphenopoly/patterns/th.hpb +0 -0
  397. package/src/sap/ui/thirdparty/hyphenopoly/patterns/tr.hpb +0 -0
  398. package/src/sap/ui/thirdparty/hyphenopoly/patterns/uk.hpb +0 -0
  399. package/src/sap/ui/thirdparty/jquery.js +9 -1
  400. package/src/sap/ui/thirdparty/qunit-2.js +1 -1
  401. package/src/sap/ui/thirdparty/qunit.js +1 -1
  402. package/src/sap/ui/util/Mobile.js +30 -59
  403. package/src/sap/ui/util/Storage.js +1 -1
  404. package/src/sap/ui/util/isCrossOriginURL.js +16 -6
  405. package/src/ui5loader.js +6 -6
  406. package/ui5.yaml +248 -2
  407. package/src/sap/ui/core/CustomizingConfiguration.js +0 -272
  408. package/src/sap/ui/core/support/plugins/MessageTest.js +0 -96
  409. package/src/sap/ui/thirdparty/baseuri.js +0 -1
  410. package/src/sap/ui/thirdparty/es6-object-assign.js +0 -1
  411. package/src/sap/ui/thirdparty/es6-promise.js +0 -1
  412. package/src/sap/ui/thirdparty/es6-shim-nopromise.js +0 -1
  413. package/src/sap/ui/thirdparty/es6-string-methods.js +0 -1
  414. package/src/sap/ui/thirdparty/flexie.js +0 -1
  415. package/src/sap/ui/thirdparty/hyphenopoly/hyphenopoly.bundle.js +0 -860
  416. package/src/sap/ui/thirdparty/unorm.js +0 -1
  417. package/src/sap/ui/thirdparty/unormdata.js +0 -1
@@ -15,6 +15,7 @@ sap.ui.define([
15
15
  'sap/ui/core/ElementMetadata',
16
16
  'sap/ui/core/UIArea',
17
17
  'sap/ui/core/mvc/View',
18
+ 'sap/ui/core/mvc/XMLView',
18
19
  'sap/ui/model/Binding',
19
20
  'sap/ui/model/CompositeBinding',
20
21
  'sap/base/util/ObjectPath',
@@ -32,6 +33,7 @@ sap.ui.define([
32
33
  ElementMetadata,
33
34
  UIArea,
34
35
  View,
36
+ XMLView,
35
37
  Binding,
36
38
  CompositeBinding,
37
39
  ObjectPath,
@@ -49,7 +51,7 @@ sap.ui.define([
49
51
  * @class This class represents the ControlTree plugin for the support tool functionality of UI5. This class is internal and all its functions must not be used by an application.
50
52
  *
51
53
  * @extends sap.ui.core.support.Plugin
52
- * @version 1.94.0
54
+ * @version 1.97.0
53
55
  * @private
54
56
  * @alias sap.ui.core.support.plugins.ControlTree
55
57
  */
@@ -1130,54 +1132,46 @@ sap.ui.define([
1130
1132
 
1131
1133
  var oViewSerializer;
1132
1134
  var mViews;
1133
- sap.ui.controller(sType + "ViewController", {});
1134
- sap.ui.jsview(sType + "ViewExported", {
1135
- getControllerName : function() {
1136
- return sType + "ViewController";
1137
- },
1138
- createContent : function(oController) { }
1139
- });
1140
-
1141
- sap.ui.controller(sType + "ViewController", {});
1142
- sap.ui.jsview(sType + "ViewExported", {
1143
- getControllerName : function() {
1144
- return sType + "ViewController";
1145
- },
1146
- createContent : function(oController) { }
1147
- });
1148
-
1149
- try {
1150
- if (oControl) {
1151
- if (oControl instanceof View) {
1152
- oViewSerializer = new ViewSerializer(oControl, window, "sap.m");
1135
+ var sViewName = sType + "ViewExported";
1136
+
1137
+ XMLView.create({
1138
+ definition: document
1139
+ }).then(function (oView) {
1140
+ oView.setViewName(sViewName);
1141
+ oView._controllerName = sType + "ViewController";
1142
+
1143
+ try {
1144
+ if (oControl) {
1145
+ if (oControl instanceof View) {
1146
+ oViewSerializer = new ViewSerializer(oControl, window, "sap.m");
1147
+ } else {
1148
+ oView.addContent(oControl.clone());
1149
+ oViewSerializer = new ViewSerializer(oView, window, "sap.m");
1150
+ }
1151
+ // By now just XML and HTML can be serialized
1152
+ mViews = (sType && sType !== "XML") ? oViewSerializer.serializeToHTML() : oViewSerializer.serializeToXML();
1153
1153
  } else {
1154
- var oView = sap.ui.jsview(sType + "ViewExported");
1155
- oView.addContent(oControl.clone());
1154
+ var oUIArea = this.oCore.getUIArea(oEvent.getParameter("controlID"));
1155
+ var aContent = oUIArea.getContent();
1156
+ for ( var i = 0; i < aContent.length; i++) {
1157
+ oView.addContent(aContent[i]);
1158
+ }
1156
1159
  oViewSerializer = new ViewSerializer(oView, window, "sap.m");
1160
+ // By now just XML and HTML can be serialized
1161
+ mViews = (sType && sType !== "XML") ? oViewSerializer.serializeToHTML() : oViewSerializer.serializeToXML();
1162
+ for ( var i = 0; i < aContent.length; i++) {
1163
+ oUIArea.addContent(aContent[i]);
1164
+ }
1157
1165
  }
1158
- // By now just XML and HTML can be serialized
1159
- mViews = (sType && sType !== "XML") ? oViewSerializer.serializeToHTML() : oViewSerializer.serializeToXML();
1160
- } else {
1161
- var oUIArea = this.oCore.getUIArea(oEvent.getParameter("controlID"));
1162
- var oView = sap.ui.jsview(sType + "ViewExported");
1163
- var aContent = oUIArea.getContent();
1164
- for ( var i = 0; i < aContent.length; i++) {
1165
- oView.addContent(aContent[i]);
1166
- }
1167
- oViewSerializer = new ViewSerializer(oView, window, "sap.m");
1168
- // By now just XML and HTML can be serialized
1169
- mViews = (sType && sType !== "XML") ? oViewSerializer.serializeToHTML() : oViewSerializer.serializeToXML();
1170
- for ( var i = 0; i < aContent.length; i++) {
1171
- oUIArea.addContent(aContent[i]);
1166
+
1167
+ if (oViewSerializer) {
1168
+ this._oStub.sendEvent(this.getId() + "ReceiveControlTreeExport", { serializedViews: JSON.stringify(mViews), sType: sType });
1172
1169
  }
1170
+ } catch (err) {
1171
+ this._oStub.sendEvent(this.getId() + "ReceiveControlTreeExportError", { errorMessage: err.message });
1173
1172
  }
1174
1173
 
1175
- if (oViewSerializer) {
1176
- this._oStub.sendEvent(this.getId() + "ReceiveControlTreeExport", { serializedViews: JSON.stringify(mViews), sType: sType });
1177
- }
1178
- } catch (err) {
1179
- this._oStub.sendEvent(this.getId() + "ReceiveControlTreeExportError", { errorMessage: err.message });
1180
- }
1174
+ }.bind(this));
1181
1175
  };
1182
1176
 
1183
1177
  ControlTree.prototype.onsapUiSupportControlTreeRequestProperties = function(oEvent) {
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * With this plugIn the performance measurements are displayed
39
39
  *
40
40
  * @extends sap.ui.core.support.Plugin
41
- * @version 1.94.0
41
+ * @version 1.97.0
42
42
  * @private
43
43
  * @alias sap.ui.core.support.plugins.Interaction
44
44
  */
@@ -15,7 +15,7 @@ sap.ui.define(['sap/ui/core/support/Plugin', "sap/base/Log"],
15
15
  * @class This class represents the LocalStorage plugin for the support tool functionality of UI5. This class is internal and all its functions must not be used by an application.
16
16
  *
17
17
  * @extends sap.ui.core.support.Plugin
18
- * @version 1.94.0
18
+ * @version 1.97.0
19
19
  * @private
20
20
  * @alias sap.ui.core.support.plugins.LocalStorage
21
21
  */
@@ -56,7 +56,7 @@ sap.ui.define([
56
56
  * With this plugIn the performance measurements are displayed
57
57
  *
58
58
  * @extends sap.ui.core.support.Plugin
59
- * @version 1.94.0
59
+ * @version 1.97.0
60
60
  * @private
61
61
  * @alias sap.ui.core.support.plugins.Performance
62
62
  */
@@ -116,7 +116,6 @@ sap.ui.define([
116
116
  }
117
117
 
118
118
  function getPerformanceData(oSupportStub) {
119
- //var bActive = jQuery.sap.measure.getActive();
120
119
  var aMeasurements = Measurement.getAllMeasurements(true);
121
120
 
122
121
  this._oStub.sendEvent(this.getId() + "SetMeasurements", {"measurements": aMeasurements});
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @class This class represents the selector plugin for the support tool functionality of UI5. This class is internal and all its functions must not be used by an application.
21
21
  *
22
22
  * @extends sap.ui.core.support.Plugin
23
- * @version 1.94.0
23
+ * @version 1.97.0
24
24
  * @private
25
25
  * @alias sap.ui.core.support.plugins.Selector
26
26
  */
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @class This class represents the technical info plugin for the support tool functionality of UI5. This class is internal and all its functions must not be used by an application.
24
24
  *
25
25
  * @extends sap.ui.core.support.Plugin
26
- * @version 1.94.0
26
+ * @version 1.97.0
27
27
  * @private
28
28
  * @alias sap.ui.core.support.plugins.TechInfo
29
29
  */
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @class This class represents the trace plugin for the support tool functionality of UI5. This class is internal and all its functions must not be used by an application.
20
20
  *
21
21
  * @extends sap.ui.core.support.Plugin
22
- * @version 1.94.0
22
+ * @version 1.97.0
23
23
  * @private
24
24
  * @alias sap.ui.core.support.plugins.Trace
25
25
  */
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * Creates an instance of sap.ui.core.support.plugins.ViewInfo.
21
21
  * @class This class represents the ViewInfo plugin for the support tool functionality of UI5. This class is internal and all its functions must not be used by an application.
22
22
  * @extends sap.ui.core.support.Plugin
23
- * @version 1.94.0
23
+ * @version 1.97.0
24
24
  * @private
25
25
  * @alias sap.ui.core.support.plugins.ViewInfo
26
26
  */
@@ -371,7 +371,7 @@ sap.ui.define([
371
371
  } catch (ex) {
372
372
  return {error: "Property " + sName + " - Invalid Binding:" + ex.message};
373
373
  }
374
- var vValue = sValue = oBindingInfo || sValue; // oBindingInfo could be an unescaped string
374
+ var vValue = sValue = typeof oBindingInfo === "string" ? oBindingInfo : sValue; // oBindingInfo could be an unescaped string
375
375
  var oType = DataType.getType(sType);
376
376
  if (oType) {
377
377
  if (oType instanceof DataType) {
@@ -303,8 +303,7 @@ button.sapUiSupportHelpButton:hover {
303
303
  right: 15px;
304
304
  }
305
305
 
306
- #sapUiSupportTrace,
307
- #sapUiSupportMessageTest {
306
+ #sapUiSupportTrace {
308
307
  overflow: hidden;
309
308
  }
310
309
 
@@ -317,14 +316,9 @@ button.sapUiSupportHelpButton:hover {
317
316
  padding: 5px;
318
317
  }
319
318
 
320
- #sapUiSupportMessageTest > .sapUiSupportToolbar > button {
321
- margin-left: 5px;
322
- }
323
-
324
319
  #sapUiSupportPerf .sapUiSupportPerfCntnt,
325
320
  #sapUiSupportTechInfo .sapUiSupportTechInfoCntnt,
326
- #sapUiSupportTrace .sapUiSupportTraceCntnt,
327
- #sapUiSupportMessageTest .sapUiSupportMessageCntnt {
321
+ #sapUiSupportTrace .sapUiSupportTraceCntnt {
328
322
  overflow: auto;
329
323
  position: absolute;
330
324
  top: 33px;
@@ -33,6 +33,7 @@
33
33
  adjustLabelSpan="false"
34
34
  ariaLabelledBy="title"
35
35
  layout="ResponsiveGridLayout"
36
+ core:require="{RGL:'sap/ui/layout/form/ResponsiveGridLayout'}"
36
37
  editable="true">
37
38
  <f:content>
38
39
  <!-- Product Version info -->
@@ -8,6 +8,7 @@ sap.ui.define([
8
8
  "sap/ui/core/support/techinfo/moduleTreeHelper",
9
9
  "sap/ui/Device",
10
10
  "sap/ui/Global",
11
+ "sap/ui/VersionInfo",
11
12
  "sap/ui/core/format/DateFormat",
12
13
  "sap/ui/model/resource/ResourceModel",
13
14
  "sap/ui/model/json/JSONModel",
@@ -20,11 +21,13 @@ sap.ui.define([
20
21
  "sap/ui/util/Storage",
21
22
  "sap/ui/core/syncStyleClass",
22
23
  "sap/base/Log",
24
+ "sap/ui/core/Fragment",
23
25
  "sap/ui/thirdparty/jquery"
24
26
  ], function(
25
27
  moduleTreeHelper,
26
28
  Device,
27
29
  Global,
30
+ VersionInfo,
28
31
  DateFormat,
29
32
  ResourceModel,
30
33
  JSONModel,
@@ -37,6 +40,7 @@ sap.ui.define([
37
40
  Storage,
38
41
  syncStyleClass,
39
42
  Log,
43
+ Fragment,
40
44
  jQuery
41
45
  ) {
42
46
  "use strict";
@@ -68,41 +72,54 @@ sap.ui.define([
68
72
  * @param{function} fnCallback Callback that can be executed to fetch library and module information
69
73
  */
70
74
  open: function (fnCallback) {
71
- // early out if already open
72
- if (this._oDialog && this._oDialog.isOpen()) {
75
+ // early out if already loading or open
76
+ if (this._pOpenDialog) {
73
77
  return;
74
78
  }
75
79
 
76
- // set module info passed in from jquery.sap.global
80
+ // set module info passed in by caller
77
81
  this._oModuleSystemInfo = fnCallback() || {};
78
82
 
79
83
  // create dialog lazily
80
- if (!this._oDialog) {
81
- this._oDialog = sap.ui.xmlfragment(this._TECHNICAL_INFO_DIALOG_ID, "sap.ui.core.support.techinfo.TechnicalInfo", this);
82
- }
83
-
84
- // refresh configuration data and open dialog
85
- this._initialize();
86
- this._oDialog.open();
84
+ this._loadAndInitialize().then(function() {
85
+ this._oDialog.open();
86
+ this._bIsBeingClosed = false;
87
+ }.bind(this));
87
88
  },
88
89
 
89
90
  /**
90
- * Closes the technical information dialog
91
+ * Closes the technical information dialog.
91
92
  */
92
93
  close: function() {
93
- this._oDialog.close();
94
- this._oDialog.destroy();
95
- this._oDialog = null;
96
-
97
- if (this._oAssistantPopover) {
98
- this._oAssistantPopover.destroy();
99
- this._oAssistantPopover = null;
94
+ if ( !this._pDestroyDialog ) {
95
+ this._bIsBeingClosed = true;
96
+ this._pDestroyDialog = Promise.all([
97
+ Promise.resolve(this._pAssistantPopover)
98
+ .then(function() {
99
+ if (this._oAssistantPopover) {
100
+ this._oAssistantPopover.destroy();
101
+ this._oAssistantPopover = null;
102
+ }
103
+ this._pAssistantPopover = null;
104
+ }.bind(this)),
105
+ Promise.resolve(this._pDebugPopover)
106
+ .then(function() {
107
+ if (this._oDebugPopover) {
108
+ this._oDebugPopover.destroy();
109
+ this._oDebugPopover = null;
110
+ }
111
+ this._pDebugPopover = null;
112
+ }.bind(this))
113
+ ]).then(function() {
114
+ this._oDialog.close();
115
+ this._oDialog.destroy();
116
+ this._oDialog = null;
117
+ this._pOpenDialog = null;
118
+ this._pDestroyDialog = null;
119
+ }.bind(this));
100
120
  }
101
121
 
102
- if (this._oDebugPopover) {
103
- this._oDebugPopover.destroy();
104
- this._oDebugPopover = null;
105
- }
122
+ return this._pDestroyDialog;
106
123
  },
107
124
 
108
125
  /* =========================================================== */
@@ -185,10 +202,11 @@ sap.ui.define([
185
202
  this._updateTreeInfos();
186
203
 
187
204
  // create dialog lazily
188
- if (!this._oDebugPopover) {
189
- this._oDebugPopover = sap.ui.xmlfragment(this._DEBUG_MODULES_ID, "sap.ui.core.support.techinfo.TechnicalInfoDebugDialog", this);
190
- this._oDialog.addDependent(this._oDebugPopover);
191
- syncStyleClass(this._getContentDensityClass(), this._oDialog, this._oDebugPopover);
205
+ this._loadDebugPopover().then(function() {
206
+ // out early if TechnicalInfo is closing
207
+ if (this._bIsBeingClosed) {
208
+ return;
209
+ }
192
210
  var oControl = this._getControl("customDebugValue", this._DEBUG_MODULES_ID);
193
211
  try {
194
212
  this._validateCustomDebugValue(oControl.getValue());
@@ -196,13 +214,12 @@ sap.ui.define([
196
214
  this._showError(oControl, oException.message);
197
215
  return;
198
216
  }
199
- }
217
+ // adopt tree depth to the deepest currently selected module
218
+ this._getControl("tree", this._DEBUG_MODULES_ID).expandToLevel(Math.max(this._MIN_EXPAND_LEVEL_DEBUG_MODULES, oTreeResults.depth));
200
219
 
201
- // adopt tree depth to the deepest currently selected module
202
- this._getControl("tree", this._DEBUG_MODULES_ID).expandToLevel(Math.max(this._MIN_EXPAND_LEVEL_DEBUG_MODULES, oTreeResults.depth));
203
-
204
- // open dialog
205
- this._oDebugPopover.open();
220
+ // open dialog
221
+ this._oDebugPopover.open();
222
+ }.bind(this));
206
223
  },
207
224
 
208
225
  /**
@@ -411,36 +428,30 @@ sap.ui.define([
411
428
  return;
412
429
  }
413
430
  // create dialog lazily
414
- if (!this._oAssistantPopover) {
415
- this._oAssistantPopover = sap.ui.xmlfragment(this._SUPPORT_ASSISTANT_POPOVER_ID, "sap.ui.core.support.techinfo.TechnicalInfoAssistantPopover", this);
416
- this._oAssistantPopover.attachAfterOpen(this._onAssistantPopoverOpened, this);
417
- this._oDialog.addDependent(this._oAssistantPopover);
418
- syncStyleClass(this._getContentDensityClass(), this._oDialog, this._oAssistantPopover);
419
-
420
- // register message validation and trigger it once to validate the value coming from local storage
421
- var oCustomBootstrapURL = this._getControl("customBootstrapURL", this._SUPPORT_ASSISTANT_POPOVER_ID);
422
- sap.ui.getCore().getMessageManager().registerObject(oCustomBootstrapURL, true);
423
-
424
- }
425
-
426
- // enable or disable default option for version >= 1.48
427
- var oCurrentItem = this._getControl("standardBootstrapURL", this._SUPPORT_ASSISTANT_POPOVER_ID).getItems()[0];
428
- if (this._isVersionBiggerThanMinSupported()) {
429
- var sAppVersion = sap.ui.getCore().getConfiguration().getVersion().toString();
430
- oCurrentItem.setText(oCurrentItem.getText().replace("[[version]]", sAppVersion));
431
- oCurrentItem.setEnabled(true);
432
- } else {
433
- oCurrentItem.setText(oCurrentItem.getText().replace("[[version]]", "not supported"));
434
- oCurrentItem.setEnabled(false);
435
- }
431
+ this._loadAssistantPopover().then(function() {
432
+ // out early if TechnicalInfo is closing
433
+ if (this._bIsBeingClosed) {
434
+ return;
435
+ }
436
+ // enable or disable default option for version >= 1.48
437
+ var oCurrentItem = this._getControl("standardBootstrapURL", this._SUPPORT_ASSISTANT_POPOVER_ID).getItems()[0];
438
+ if (this._isVersionBiggerThanMinSupported()) {
439
+ var sAppVersion = sap.ui.getCore().getConfiguration().getVersion().toString();
440
+ oCurrentItem.setText(oCurrentItem.getText().replace("[[version]]", sAppVersion));
441
+ oCurrentItem.setEnabled(true);
442
+ } else {
443
+ oCurrentItem.setText(oCurrentItem.getText().replace("[[version]]", "not supported"));
444
+ oCurrentItem.setEnabled(false);
445
+ }
436
446
 
437
- var oModel = this._oDialog.getModel("view"),
438
- sSelectedLocation = oModel.getProperty("/SelectedLocation");
447
+ var oModel = this._oDialog.getModel("view"),
448
+ sSelectedLocation = oModel.getProperty("/SelectedLocation");
439
449
 
440
- this._setActiveLocations(sSelectedLocation);
450
+ this._setActiveLocations(sSelectedLocation);
441
451
 
442
- var oSupportAssistantSettingsButton = this._getControl("supportAssistantSettingsButton", this._TECHNICAL_INFO_DIALOG_ID);
443
- this._oAssistantPopover.openBy(oSupportAssistantSettingsButton);
452
+ var oSupportAssistantSettingsButton = this._getControl("supportAssistantSettingsButton", this._TECHNICAL_INFO_DIALOG_ID);
453
+ this._oAssistantPopover.openBy(oSupportAssistantSettingsButton);
454
+ }.bind(this));
444
455
  },
445
456
 
446
457
  /* =========================================================== */
@@ -581,8 +592,33 @@ sap.ui.define([
581
592
  });
582
593
  },
583
594
 
584
- /**
585
- * Initalizes the technical information dialog
595
+ _loadAndInitialize: function() {
596
+ // create dialog lazily
597
+ this._pOpenDialog =
598
+ Promise.all([
599
+ sap.ui.getCore().loadLibraries(["sap.ui.core", "sap.ui.layout", "sap.m"]),
600
+ this._loadVersionInfo(),
601
+ this._pDestroyDialog // wait for a pending destroy to finish
602
+ ]).then(function() {
603
+ return Fragment.load({
604
+ id: this._TECHNICAL_INFO_DIALOG_ID,
605
+ name: "sap.ui.core.support.techinfo.TechnicalInfo",
606
+ controller: this
607
+ });
608
+ }.bind(this)).then(function(oDialog) {
609
+ this._oDialog = oDialog;
610
+ // refresh configuration data and open dialog
611
+ return this._initialize();
612
+ }.bind(this)).then(function() {
613
+ this._oDialog.open();
614
+ this._bIsBeingClosed = false;
615
+ }.bind(this));
616
+
617
+ return this._pOpenDialog;
618
+ },
619
+
620
+ /**
621
+ * Initalizes the technical information dialog.
586
622
  * @private
587
623
  */
588
624
  _initialize: function () {
@@ -597,6 +633,18 @@ sap.ui.define([
597
633
  this._oDialog.addStyleClass(this._getContentDensityClass());
598
634
  },
599
635
 
636
+ _loadVersionInfo: function() {
637
+ return VersionInfo.load().catch(function(err) {
638
+ Log.error("failed to load global version info", err);
639
+ return {
640
+ name: "",
641
+ version: ""
642
+ };
643
+ }).then(function(oVersionInfo) {
644
+ this._oVersionInfo = oVersionInfo;
645
+ }.bind(this));
646
+ },
647
+
600
648
  /**
601
649
  * Initializes the view model with the current runtime information
602
650
  * @private
@@ -623,23 +671,16 @@ sap.ui.define([
623
671
  });
624
672
 
625
673
  // load version info into view model
626
- var oVersionInfo = {};
627
- try {
628
- oVersionInfo = Global.getVersionInfo();
629
- oViewModel.setProperty("/ProductName", oVersionInfo.name);
630
- oViewModel.setProperty("/ProductVersion", oVersionInfo.version);
631
- } catch (oException) {
632
- oVersionInfo.version = "";
633
- Log.error("failed to load global version info");
634
- }
674
+ oViewModel.setProperty("/ProductName", this._oVersionInfo.name);
675
+ oViewModel.setProperty("/ProductVersion", this._oVersionInfo.version);
635
676
 
636
677
  try {
637
- oViewModel.setProperty("/ProductTimestamp", this._generateLocalizedBuildDate(oVersionInfo.buildTimestamp));
678
+ oViewModel.setProperty("/ProductTimestamp", this._generateLocalizedBuildDate(this._oVersionInfo.buildTimestamp));
638
679
  } catch (oException) {
639
680
  Log.error("failed to parse build timestamp from global version info");
640
681
  }
641
682
 
642
- if (!/openui5/i.test(oVersionInfo.name)) {
683
+ if (!/openui5/i.test(this._oVersionInfo.name)) {
643
684
  oViewModel.setProperty("/OpenUI5ProductVersion", Global.version);
644
685
  // convert build timestamp
645
686
  try {
@@ -651,7 +692,7 @@ sap.ui.define([
651
692
 
652
693
  var sAppVersion;
653
694
  try {
654
- sAppVersion = this._getText("TechInfo.SupportAssistantConfigPopup.AppVersionOption", oVersionInfo.version);
695
+ sAppVersion = this._getText("TechInfo.SupportAssistantConfigPopup.AppVersionOption", this._oVersionInfo.version);
655
696
  } catch (oException) {
656
697
  sAppVersion = "Application";
657
698
  }
@@ -940,6 +981,42 @@ sap.ui.define([
940
981
  oModel.setProperty("/DebugModuleSelectionCount", this._treeHelper.getSelectionCount(oTreeData));
941
982
  sDisplayCount = oModel.getProperty("/DebugModuleSelectionCount").toString();
942
983
  oModel.setProperty("/DebugModulesTitle", this._getText("TechInfo.DebugModulesConfigPopup.SelectionCounter", sDisplayCount));
984
+ },
985
+
986
+ _loadDebugPopover: function() {
987
+ // create dialog lazily
988
+ if (!this._pDebugPopover) {
989
+ this._pDebugPopover = Fragment.load({
990
+ id: this._DEBUG_MODULES_ID,
991
+ name: "sap.ui.core.support.techinfo.TechnicalInfoDebugDialog",
992
+ controller: this
993
+ }).then(function(oDebugPopover) {
994
+ this._oDebugPopover = oDebugPopover;
995
+ this._oDialog.addDependent(this._oDebugPopover);
996
+ syncStyleClass(this._getContentDensityClass(), this._oDialog, this._oDebugPopover);
997
+ }.bind(this));
998
+ }
999
+ return this._pDebugPopover;
1000
+ },
1001
+
1002
+ _loadAssistantPopover: function() {
1003
+ if (!this._pAssistantPopover) {
1004
+ this._pAssistantPopover = Fragment.load({
1005
+ id: this._SUPPORT_ASSISTANT_POPOVER_ID,
1006
+ name: "sap.ui.core.support.techinfo.TechnicalInfoAssistantPopover",
1007
+ controller: this
1008
+ }).then(function(oAssistantPopover) {
1009
+ this._oAssistantPopover = oAssistantPopover;
1010
+ this._oAssistantPopover.attachAfterOpen(this._onAssistantPopoverOpened, this);
1011
+ this._oDialog.addDependent(this._oAssistantPopover);
1012
+ syncStyleClass(this._getContentDensityClass(), this._oDialog, this._oAssistantPopover);
1013
+
1014
+ // register message validation and trigger it once to validate the value coming from local storage
1015
+ var oCustomBootstrapURL = this._getControl("customBootstrapURL", this._SUPPORT_ASSISTANT_POPOVER_ID);
1016
+ sap.ui.getCore().getMessageManager().registerObject(oCustomBootstrapURL, true);
1017
+ }.bind(this));
1018
+ }
1019
+ return this._pAssistantPopover;
943
1020
  }
944
1021
  };
945
1022
  });
@@ -327,7 +327,7 @@ sap.ui.define(['sap/ui/Device', 'sap/ui/performance/trace/Passport', 'sap/base/L
327
327
  busTrx.getCurrentTransactionStep().onMessageFinished(this, tStamp);
328
328
  }
329
329
 
330
- // start jQuery.sap.trace and override xhr
330
+ // start injection of PASSPORT headers by intercepting XHR calls
331
331
  Passport.setActive(true);
332
332
 
333
333
  fopen = window.XMLHttpRequest.prototype.open;
@@ -362,9 +362,9 @@ sap.ui.define(['sap/ui/Device', 'sap/ui/performance/trace/Passport', 'sap/base/L
362
362
  // Log.info(this.xstartTimestamp + ", " + idx + " " + arguments[0] + " " + arguments[1]);
363
363
  this.xmethod = arguments[0];
364
364
  this.xurl = arguments[1];
365
- this.xDsrGuid = Passport.getTransactionId(); //see jquery.sap.trace, former EbbLib.js
365
+ this.xDsrGuid = Passport.getTransactionId(); // see sap/ui/performance/Passport, former EppLib.js
366
366
 
367
- //do not set passport as this is done already in jquery.sap.trace
367
+ //do not set passport as this is done already in sap/ui/performance/Passport
368
368
  //this.setRequestHeader("SAP-PASSPORT", EppLib.passportHeader(busTrx.getCurrentTransactionStep().trcLvl, busTrx.id, this.xDsrGuid));
369
369
  //matching function isCORSRequest from FESR.js
370
370
  var sHOST = (new URI(this.xurl)).host();
@@ -9,6 +9,7 @@
9
9
  display: inline-block;
10
10
  vertical-align: baseline;
11
11
  line-height: 1;
12
+ position: relative;
12
13
  }
13
14
 
14
15
  .sapUiIconPointer {
@@ -28,6 +29,14 @@
28
29
  -webkit-font-smoothing: antialiased;
29
30
  }
30
31
 
32
+ .sapUiIcon > .sapUiIconTitle {
33
+ position: absolute;
34
+ width: 100%;
35
+ height: 100%;
36
+ left: 0;
37
+ top: 0;
38
+ }
39
+
31
40
  /*
32
41
  * The mirroring of icon is done on the pesudo element and not the root DOM.
33
42
  * Because:
@@ -1,5 +1,7 @@
1
1
  /**
2
2
  * Do NOT use any LESS syntax in this file because it may be used externally without UI5
3
+ *
4
+ * NOTE: This file must be kept in sync with SAP-icons.less
3
5
  */
4
6
  @font-face {
5
7
  font-family: "SAP-icons";
@@ -0,0 +1,10 @@
1
+ // NOTE: This file must be kept in sync with SAP-icons.css
2
+
3
+ @font-face {
4
+ font-family: "SAP-icons";
5
+ src:
6
+ @sapUiIconFontUrl format('woff2'),
7
+ local('SAP-icons'); /* fallback to local installed font in case it can't be loaded (e.g. font download is disabled due to browser security settings) */
8
+ font-weight: normal;
9
+ font-style: normal;
10
+ }