@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
@@ -60,7 +60,7 @@ sap.ui.define([
60
60
  * @private
61
61
  */
62
62
  var XMLViewRenderer = {
63
- apiVersion: 1 // HTML fragments still require write (fragments are explicitly not wellformed HTML)
63
+ apiVersion: 2
64
64
  };
65
65
 
66
66
 
@@ -72,9 +72,8 @@ sap.ui.define([
72
72
  */
73
73
  XMLViewRenderer.render = function(rm, oControl) {
74
74
  // write the HTML into the render manager
75
- var vFragment,
76
- $oldContent = oControl._$oldContent = RenderManager.findPreservedContent(oControl.getId());
77
-
75
+ var aParsedContent = oControl._aParsedContent;
76
+ var $oldContent = oControl._$oldContent = RenderManager.findPreservedContent(oControl.getId());
78
77
  if ( $oldContent.length === 0) {
79
78
  // Log.debug("rendering " + oControl + " anew");
80
79
  var bSubView = oControl.isSubView();
@@ -91,19 +90,17 @@ sap.ui.define([
91
90
  rm.style("height", oControl.getHeight());
92
91
  rm.openEnd();
93
92
  }
94
- if (oControl._aParsedContent) {
95
- for (var i = 0; i < oControl._aParsedContent.length; i++) {
96
- vFragment = oControl._aParsedContent[i];
97
- if (vFragment && typeof (vFragment) === "string") {
98
- // Due to the possibility of mixing (X)HTML and UI5 controls in the XML content,
99
- // the XMLViewRenderer cannot be migrated fully to API version 2 yet.
100
- // Here we need to pass the raw strings to the RenderManager as it was written in the *.view.xml.
101
- rm.write(vFragment);
93
+ if (aParsedContent) {
94
+ for (var i = 0; i < aParsedContent.length; i++) {
95
+ var vRmInfo = aParsedContent[i];
96
+ // apply RenderManagerAPI calls which might have been recorded during XML processing for all encountered HTML elements in an XMLView
97
+ if (Array.isArray(vRmInfo)) {
98
+ rm[vRmInfo[0]].apply(rm, vRmInfo[1]);
102
99
  } else {
103
- rm.renderControl(vFragment);
104
- // when the child control did not render anything (e.g. visible=false), we add a placeholder to know where to render the child later
105
- if ( !vFragment.bOutput ) {
106
- rm.openStart("div", PREFIX_DUMMY + vFragment.getId());
100
+ rm.renderControl(vRmInfo);
101
+ // when the child control did not render anything, we add a placeholder to know where to render the child later
102
+ if ( !vRmInfo.bOutput ) {
103
+ rm.openStart("div", PREFIX_DUMMY + vRmInfo.getId());
107
104
  rm.class("sapUiHidden");
108
105
  rm.openEnd();
109
106
  rm.close("div");
@@ -124,10 +121,10 @@ sap.ui.define([
124
121
  rm.openStart("div", PREFIX_TEMPORARY + oControl.getId());
125
122
  rm.class("sapUiHidden");
126
123
  rm.openEnd();
127
- for (var k = 0; k < oControl._aParsedContent.length; k++) {
128
- vFragment = oControl._aParsedContent[k];
129
- if ( typeof (vFragment) !== "string") {
130
-
124
+ for (var i = 0; i < aParsedContent.length; i++) {
125
+ var vFragment = aParsedContent[i];
126
+ // if the parsed content does not have a corresponding _renderManagerAPICall, it's a control
127
+ if (!Array.isArray(vFragment)) {
131
128
  // render DOM string for child control
132
129
  rm.renderControl(vFragment);
133
130
 
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @see sap.ui.core.DeclarativeSupport
22
22
  * @public
23
23
  * @since 1.7.0
24
- * @version 1.94.0
24
+ * @version 1.97.0
25
25
  * @alias sap.ui.core.plugin.DeclarativeSupport
26
26
  */
27
27
  var DeclarativeSupportPlugin = function() {
@@ -37,7 +37,7 @@
37
37
  * feature - DO NOT USE IN PRODUCTIVE SCENARIOS!!
38
38
  *
39
39
  * @author Peter Muessig
40
- * @version 1.94.0
40
+ * @version 1.97.0
41
41
  * @private
42
42
  * @alias sap.ui.core.plugin.LessSupport
43
43
  */
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @author Peter Muessig
21
21
  * @public
22
22
  * @since 1.15.0
23
- * @version 1.94.0
23
+ * @version 1.97.0
24
24
  * @alias sap.ui.core.plugin.TemplatingSupport
25
25
  */
26
26
  var TemplatingSupport = function() {
@@ -38,7 +38,7 @@ function (
38
38
  * @alias sap.ui.core.postmessage.Bus
39
39
  * @author SAP SE
40
40
  * @since 1.56.0
41
- * @version 1.94.0
41
+ * @version 1.97.0
42
42
  * @private
43
43
  * @ui5-restricted sap.ui.core.support, sap.ui.support, sap.ui.rta
44
44
  */
@@ -13,7 +13,7 @@ sap.ui.define(function () {
13
13
  *
14
14
  * @author SAP SE
15
15
  * @since 1.56.0
16
- * @version 1.94.0
16
+ * @version 1.97.0
17
17
  *
18
18
  * @function
19
19
  * @param {string} sMessage - Dialog message
@@ -234,7 +234,16 @@ sap.ui.define([
234
234
  // suspend the dynamic targets
235
235
  if (this._oConfig.dynamicTarget) {
236
236
  this._oRouter._oTargets.suspend(this._oConfig.dynamicTarget);
237
- delete this._oConfig.dynamicTarget;
237
+ }
238
+ }
239
+ },
240
+
241
+ _resume: function() {
242
+ if (this._oRouter._oTargets) {
243
+ this._oRouter._oTargets.resume(this._oConfig.target);
244
+
245
+ if (this._oConfig.dynamicTarget) {
246
+ this._oRouter._oTargets.resume(this._oConfig.dynamicTarget);
238
247
  }
239
248
  }
240
249
  },
@@ -435,10 +435,14 @@ sap.ui.define([
435
435
  // shouldn't be processed.
436
436
  this.oHashChanger.attachEvent("hashChanged", this.fnHashChanged);
437
437
 
438
- // The HashChanger returns an InvalidHash when one of its ancestors is currently in
439
- // the collect mode of preparing the next hash change. In this case, the Router should
440
- // not be initialized and wait for the next 'hashChanged' event.
441
- if (!bIgnoreInitialHash && sHash !== RouterHashChanger.InvalidHash) {
438
+ if (bIgnoreInitialHash) {
439
+ if (this._oMatchedRoute) {
440
+ this._oMatchedRoute._resume();
441
+ }
442
+ } else if (sHash !== RouterHashChanger.InvalidHash) {
443
+ // The HashChanger returns an InvalidHash when one of its ancestors is currently in
444
+ // the collect mode of preparing the next hash change. In this case, the Router should
445
+ // not parse the current hash and wait for the next 'hashChanged' event.
442
446
  this.parse(sHash);
443
447
  }
444
448
 
@@ -490,7 +494,6 @@ sap.ui.define([
490
494
 
491
495
  if (this._oMatchedRoute) {
492
496
  this._oMatchedRoute._routeSwitched();
493
- this._oMatchedRoute = null;
494
497
  }
495
498
 
496
499
  this._bIsInitialized = false;
@@ -655,12 +658,19 @@ sap.ui.define([
655
658
  }
656
659
  },
657
660
 
661
+ /**
662
+ * @typedef {Object} sap.ui.core.routing.RouteInfo
663
+ * @property {string} name The route name
664
+ * @property {Object.<string, string>} arguments The route data
665
+ * @public
666
+ */
667
+
658
668
  /**
659
669
  * Returns a route info object containing the name and arguments of the route
660
670
  * which matches the given hash or <code>undefined</code>.
661
671
  *
662
672
  * @param {string} sHash The hash to be matched
663
- * @returns {object|undefined} An object containing the route <code>name</code> and the <code>arguments</code> or <code>undefined</code>
673
+ * @returns {sap.ui.core.routing.RouteInfo|undefined} An object containing the route <code>name</code> and the <code>arguments</code> or <code>undefined</code>
664
674
  * @public
665
675
  * @since 1.75
666
676
  */
@@ -511,6 +511,32 @@ sap.ui.define([
511
511
  return this;
512
512
  },
513
513
 
514
+ /**
515
+ * Resumes the targets which are specified by the parameter
516
+ *
517
+ * @param {string|string[]|object|object[]} vTargets The key of the target
518
+ * or an object which has the key of the target under property 'name' as
519
+ * specified in the {@link #constructor}. To suspend multiple targets you
520
+ * may also pass an array of keys or objects which have the key saved
521
+ * under the 'name' property
522
+ * @return {sap.ui.core.routing.Targets} The 'this' for call chaining
523
+ * @private
524
+ */
525
+ resume : function (vTargets) {
526
+ var aTargetsInfo = this._alignTargetsInfo(vTargets);
527
+
528
+ aTargetsInfo.forEach(function(oTargetInfo) {
529
+ var sTargetName = oTargetInfo.name;
530
+ var oTarget = this.getTarget(sTargetName);
531
+
532
+ if (oTarget) {
533
+ oTarget.resume();
534
+ }
535
+ }.bind(this));
536
+
537
+ return this;
538
+ },
539
+
514
540
  /**
515
541
  * Will be fired when a target is displayed.
516
542
  *
@@ -35,12 +35,15 @@ sap.ui.define(["sap/base/Log", "sap/base/util/extend", "sap/ui/core/Component"],
35
35
  oTargetData,
36
36
  oCurrentPromise,
37
37
  aAlignedTargets,
38
- bRepeated = false;
38
+ bRepeated = (oRouter._oMatchedRoute === this);
39
39
 
40
40
  oRouter._stopWaitingTitleChangedFromChild();
41
- if (oRouter._oMatchedRoute === this) {
42
- bRepeated = true;
41
+
42
+ if (oRouter._oMatchedRoute) {
43
+ // clear the dynamicTarget of the previous matched route
44
+ delete oRouter._oMatchedRoute._oConfig.dynamicTarget;
43
45
  }
46
+
44
47
  oRouter._oMatchedRoute = this;
45
48
  oRouter._bMatchingProcessStarted = true;
46
49
 
@@ -82,6 +82,32 @@ sap.ui.define([
82
82
  Log.warning("The target with name '" + this._oOptions._name + "' can't be suspended because it's being loaded or not loaded yet");
83
83
  }
84
84
 
85
+ return this;
86
+ },
87
+
88
+ /**
89
+ * Resumes the object which is loaded by the target.
90
+ *
91
+ * Currently this function initializes the router of the component without parsing the current hash when
92
+ * the object which is loaded by this target is an instance of
93
+ * UIComponent.
94
+ *
95
+ * @return {sap.ui.core.routing.Target} The 'this' to chain the call
96
+ * @private
97
+ */
98
+ resume: function() {
99
+ if (this._oParent) {
100
+ this._oParent.resume();
101
+ }
102
+
103
+ if (this._isLoaded()) {
104
+ var oObject = this._get(),
105
+ oRouter;
106
+
107
+ if (oObject.isA("sap.ui.core.UIComponent") && (oRouter = oObject.getRouter()) && oObject.hasNativeRouter()) {
108
+ oRouter.initialize(true);
109
+ }
110
+ }
85
111
 
86
112
  return this;
87
113
  },
@@ -380,7 +406,7 @@ sap.ui.define([
380
406
  bIsComponentTarget = oOptions.type === "Component",
381
407
  bHasPlaceholderConfig = false,
382
408
  oPlaceholderConfig = oTargetCreateInfo.placeholder || oOptions.placeholder || {},
383
- pPlaceholder;
409
+ pPlaceholder = Promise.resolve();
384
410
 
385
411
  if (Placeholder.hasProviders()) {
386
412
  Object.assign(oPlaceholderConfig, Placeholder.getPlaceholderFromProviders({
@@ -452,13 +478,11 @@ sap.ui.define([
452
478
  });
453
479
  }
454
480
 
455
- if (oPlaceholderConfig.placeholder) {
481
+ if (oPlaceholderConfig.placeholder && sap.ui.getCore().getConfiguration().getPlaceholder()) {
456
482
  pPlaceholder = this.showPlaceholder(oPlaceholderConfig);
457
483
  }
458
484
  }
459
485
 
460
- pPlaceholder = pPlaceholder || Promise.resolve();
461
-
462
486
  // wait for placeholder to load
463
487
  return pPlaceholder.then(function(sPlaceholderContent) {
464
488
  // returning view info object
@@ -50,6 +50,21 @@ sap.ui.define(["sap/base/Log"], function(Log) {
50
50
  return this;
51
51
  },
52
52
 
53
+ /**
54
+ * Resumes the object which is loaded by the target.
55
+ *
56
+ * Currently this function doesn't do anything because the sync
57
+ * version of the Target can only load Views but no Components.
58
+ *
59
+ * @return {sap.ui.core.routing.Target} The 'this' to chain the call
60
+ * @private
61
+ */
62
+ resume : function () {
63
+ // the sync target can only load view and not component
64
+ // therefore it's not needed to do anything in this function
65
+ return this;
66
+ },
67
+
53
68
  /**
54
69
  * Places the target on the screen
55
70
  *
@@ -106,8 +106,58 @@ sap.ui.define(["sap/ui/support/library", "./CoreHelper.support", "sap/ui/thirdpa
106
106
  }
107
107
  };
108
108
 
109
+ /**
110
+ * Checks if the corresponding Component or Library of a Component is already loaded in case the Component is embeddedBy a resource.
111
+ */
112
+ var oMissingEmbeddedByLibrary = {
113
+ id: "embeddedByLibNotLoaded",
114
+ audiences: [Audiences.Application],
115
+ categories: [Categories.Performance],
116
+ enabled: true,
117
+ minversion: "1.97",
118
+ title: "Embedding Component or Library not loaded",
119
+ description: "Checks if the corresponding Component or Library of a Component is already loaded in case the Component is embedded by a resource.",
120
+ resolution: "Before using a Component embedded by a Library or another Component, it's necessary to load the embedding Library or Component in advance. " +
121
+ "The 'sap.app/embeddedBy' property must be relative path inside the deployment unit (library or component).",
122
+ resolutionurls: [],
123
+ check: function(oIssueManager) {
124
+ var oRegisteredComponents = {}, sComponentName;
125
+ var filterComponents = function (sComponentName) {
126
+ return function (oComponent) {
127
+ return oComponent.getManifestObject().getEntry("/sap.app/id") === sComponentName;
128
+ };
129
+ };
130
+ var createIssue = function (oComponentWithMissingEmbeddedBy) {
131
+ return function (oComponent) {
132
+ oIssueManager.addIssue({
133
+ severity: Severity.High,
134
+ details: oComponentWithMissingEmbeddedBy.message,
135
+ context: {
136
+ id: oComponent.getId()
137
+ }
138
+ });
139
+ };
140
+ };
141
+
142
+ Log.getLogEntries().forEach(function(oLogEntry) {
143
+ var oRegexGetComponentName = /^Component '([a-zA-Z0-9\.]*)'.*$/;
144
+ if (oLogEntry.component === "sap.ui.core.Component#embeddedBy") {
145
+ oRegisteredComponents[oRegexGetComponentName.exec(oLogEntry.message)[1]] = oLogEntry;
146
+ }
147
+ });
148
+
149
+ for (sComponentName in oRegisteredComponents) {
150
+ if (Object.hasOwnProperty.call(oRegisteredComponents, sComponentName)) {
151
+ var aComponents = sap.ui.core.Component.registry.filter(filterComponents(sComponentName));
152
+ aComponents.forEach(createIssue(oRegisteredComponents[sComponentName]));
153
+ }
154
+ }
155
+ }
156
+ };
157
+
109
158
  return [
110
159
  oEventBusLogs,
111
- oErrorLogs
160
+ oErrorLogs,
161
+ oMissingEmbeddedByLibrary
112
162
  ];
113
163
  }, true);
@@ -42,10 +42,7 @@ sap.ui.define([
42
42
  var aControls = oScope.getElements().filter(function (oElement) { return oElement.isA("sap.ui.core.Control"); });
43
43
 
44
44
  aControls.forEach(function (oControl) {
45
- // The XMLView is excluded for now to not produce false-positive results
46
- // Due to the possibility of mixing XHTML and UI5 content in the XML content,
47
- // the XMLViewRenderer cannot be migrated fully to API version 2 yet.
48
- if (RenderManager.getApiVersion(oControl.getRenderer()) < 2 && !oControl.isA("sap.ui.core.mvc.XMLView")) {
45
+ if (RenderManager.getApiVersion(oControl.getRenderer()) < 2) {
49
46
  var sControlName = oControl.getMetadata().getName();
50
47
 
51
48
  oIssueManager.addIssue({
@@ -6,8 +6,8 @@
6
6
  /**
7
7
  * Defines support rules related to the view.
8
8
  */
9
- sap.ui.define(["sap/ui/support/library", "sap/ui/core/Element", "sap/ui/thirdparty/jquery", "sap/base/util/isEmptyObject", "sap/ui/base/DataType"],
10
- function(SupportLib, Element, jQuery, isEmptyObject, DataType) {
9
+ sap.ui.define(["sap/base/Log", "sap/ui/support/library", "sap/ui/core/Element", "sap/ui/thirdparty/jquery", "sap/base/util/isEmptyObject", "sap/ui/base/DataType"],
10
+ function(Log, SupportLib, Element, jQuery, isEmptyObject, DataType) {
11
11
  "use strict";
12
12
 
13
13
  // shortcuts
@@ -103,52 +103,20 @@ sap.ui.define(["sap/ui/support/library", "sap/ui/core/Element", "sap/ui/thirdpar
103
103
  title: "Control tag in XML view starts with lower case",
104
104
  description: "Control tags with lower case cannot be loaded in Linux-based systems",
105
105
  resolution: "Start the Control tag with upper case",
106
- resolutionurls: [],
106
+ resolutionurls: [{
107
+ text: "Documentation: SAPUI5 Control Development Guidelines",
108
+ href: "https://sapui5.hana.ondemand.com/#/topic/4549da61e2d949d6a3d20ad8a9d17a6f"
109
+ }],
107
110
  check: function (oIssueManager, oCoreFacade, oScope) {
108
-
109
- //get all aggregations of each element
110
- var aAggregationsOfElements = oScope.getElements().map(
111
- function (oElement) {
112
- return Object.keys(oElement.getMetadata().getAllAggregations());
113
- }
114
- );
115
- //flatten array of arrays and filter duplicates
116
- var aAggregations = aAggregationsOfElements.reduce(
117
- function(a, b) {
118
- return a.concat(b);
119
- }).filter(
120
- function (x, i, a) {
121
- return a.indexOf(x) === i;
122
- });
123
-
124
- var aXMLViews = oScope.getElements().filter(function (oControl) {
125
- return oControl.getMetadata().getName() === "sap.ui.core.mvc.XMLView";
111
+ var aRelevantLogMessages = Log.getLogEntries().filter(function(oEntry) {
112
+ return oEntry.component === "sap.ui.core.XMLTemplateProcessor#lowerCase";
126
113
  });
127
-
128
- aXMLViews.forEach(function (oXMLView) {
129
- var aLocalName = [];
130
- var _getTags = function (oXcontent) {
131
- aLocalName.push(oXcontent.localName);
132
- for (var i = 0; i < oXcontent.children.length; i++) {
133
- _getTags(oXcontent.children[i]);
134
- }
135
- };
136
-
137
- _getTags(oXMLView._xContent);
138
- aLocalName = jQuery.uniqueSort(aLocalName);
139
-
140
- aLocalName.forEach(function (sTag) {
141
- var sFirstLetter = sTag.charAt(0);
142
- // check for lowercase, aggregations are excluded
143
- if ((sFirstLetter.toLowerCase() === sFirstLetter) && !aAggregations.includes(sTag)) {
144
- var sViewName = oXMLView.getViewName().split("\.").pop();
145
- oIssueManager.addIssue({
146
- severity: Severity.High,
147
- details: "View '" + sViewName + "' (" + oXMLView.getId() + ") contains a Control tag that starts with lower case '" + sTag + "'",
148
- context: {
149
- id: oXMLView.getId()
150
- }
151
- });
114
+ aRelevantLogMessages.forEach(function(oMessage) {
115
+ oIssueManager.addIssue({
116
+ severity: Severity.High,
117
+ details: oMessage.message,
118
+ context: {
119
+ id: oMessage.details
152
120
  }
153
121
  });
154
122
  });
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @class
27
27
  * A SearchProvider which uses the OpenSearch protocol (either JSON or XML).
28
28
  * @extends sap.ui.core.search.SearchProvider
29
- * @version 1.94.0
29
+ * @version 1.97.0
30
30
  *
31
31
  * @public
32
32
  * @alias sap.ui.core.search.OpenSearchProvider
@@ -23,7 +23,7 @@ sap.ui.define(['sap/ui/core/Element', "sap/base/Log", 'sap/ui/core/library'],
23
23
  *
24
24
  * Do not create instances of this class, but use a concrete subclass instead.
25
25
  * @extends sap.ui.core.Element
26
- * @version 1.94.0
26
+ * @version 1.97.0
27
27
  *
28
28
  * @public
29
29
  * @alias sap.ui.core.search.SearchProvider
@@ -71,7 +71,7 @@ sap.ui.define(['sap/ui/base/Object', "sap/base/assert", "sap/base/Log"],
71
71
  *
72
72
  * @extends sap.ui.base.Object
73
73
  * @author SAP SE
74
- * @version 1.94.0
74
+ * @version 1.97.0
75
75
  * @alias sap.ui.core.service.Service
76
76
  * @abstract
77
77
  * @private
@@ -83,7 +83,7 @@ sap.ui.define(['sap/ui/base/Object', 'sap/ui/core/service/Service', "sap/base/as
83
83
  *
84
84
  * @extends sap.ui.base.Object
85
85
  * @author SAP SE
86
- * @version 1.94.0
86
+ * @version 1.97.0
87
87
  * @alias sap.ui.core.service.ServiceFactory
88
88
  * @private
89
89
  * @ui5-restricted sap.ushell
@@ -18,7 +18,7 @@ sap.ui.define(['./ServiceFactory', "sap/base/assert"],
18
18
  * The service factory registry.
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.94.0
21
+ * @version 1.97.0
22
22
  * @alias sap.ui.core.service.ServiceFactoryRegistry
23
23
  * @private
24
24
  * @ui5-restricted sap.ushell
@@ -17,7 +17,7 @@ sap.ui.define(['sap/ui/base/Object', "sap/ui/thirdparty/jquery", "sap/base/util/
17
17
  *
18
18
  * @abstract
19
19
  * @extends sap.ui.base.Object
20
- * @version 1.94.0
20
+ * @version 1.97.0
21
21
  * @private
22
22
  * @ui5-restricted
23
23
  * @alias sap.ui.core.support.Plugin
@@ -183,7 +183,7 @@ sap.ui.define(['sap/ui/base/Object', "sap/ui/thirdparty/jquery", "sap/base/util/
183
183
  *
184
184
  * A &lt;link&gt; tag will be added to the head of the HTML page, referring to the given
185
185
  * CSS resource. The URL of the resource is determined from the given resource name
186
- * by calling {@link jQuery.sap.getResourcePath}.
186
+ * by calling {@link sap.ui.require.toUrl}.
187
187
  *
188
188
  * A plugin should call this method only when it is {@link #runsAsToolPlugin running inside the tool window}.
189
189
  *
@@ -120,7 +120,6 @@ sap.ui.define([
120
120
  metadata = options.metadata,
121
121
  executionScope = options.executionScope;
122
122
 
123
- // private API provided by jquery.sap.global
124
123
  RuleAnalyzer.analyze(executionScope, rules || preset, metadata).then(function () {
125
124
  var analysisHistory = RuleAnalyzer.getAnalysisHistory(),
126
125
  lastAnalysis = { issues: [] };
@@ -26,7 +26,7 @@ sap.ui.define(['sap/ui/base/EventProvider', './Plugin', "sap/base/util/UriParame
26
26
  * @class This class provides the support tool functionality of UI5. This class is internal and all its functions must not be used by an application.
27
27
  *
28
28
  * @extends sap.ui.base.EventProvider
29
- * @version 1.94.0
29
+ * @version 1.97.0
30
30
  * @private
31
31
  * @alias sap.ui.core.support.Support
32
32
  */
@@ -4,7 +4,7 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
- 'jquery.sap.global',
7
+ 'sap/ui/thirdparty/jquery',
8
8
  'sap/ui/base/ManagedObject',
9
9
  "sap/base/security/encodeXML"
10
10
  ],