@openui5/sap.ui.core 1.117.0 → 1.118.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 (833) hide show
  1. package/package.json +1 -1
  2. package/src/jquery.sap.global.js +1 -1
  3. package/src/jquery.sap.properties.js +1 -1
  4. package/src/jquery.sap.resources.js +1 -1
  5. package/src/jquery.sap.script.js +1 -1
  6. package/src/jquery.sap.storage.js +3 -3
  7. package/src/sap/base/Event.js +1 -1
  8. package/src/sap/base/Eventing.js +1 -1
  9. package/src/sap/base/config.js +1 -1
  10. package/src/sap/base/i18n/LanguageTag.js +1 -1
  11. package/src/sap/base/i18n/Localization.js +42 -39
  12. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  13. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  14. package/src/sap/base/util/restricted/_castArray.js +1 -1
  15. package/src/sap/base/util/restricted/_compact.js +1 -1
  16. package/src/sap/base/util/restricted/_curry.js +1 -1
  17. package/src/sap/base/util/restricted/_debounce.js +1 -1
  18. package/src/sap/base/util/restricted/_difference.js +1 -1
  19. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  21. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  24. package/src/sap/base/util/restricted/_flatten.js +1 -1
  25. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  27. package/src/sap/base/util/restricted/_intersection.js +1 -1
  28. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  30. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  32. package/src/sap/base/util/restricted/_isNil.js +1 -1
  33. package/src/sap/base/util/restricted/_max.js +1 -1
  34. package/src/sap/base/util/restricted/_merge.js +1 -1
  35. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  36. package/src/sap/base/util/restricted/_min.js +1 -1
  37. package/src/sap/base/util/restricted/_omit.js +1 -1
  38. package/src/sap/base/util/restricted/_pick.js +1 -1
  39. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  40. package/src/sap/base/util/restricted/_throttle.js +1 -1
  41. package/src/sap/base/util/restricted/_toArray.js +1 -1
  42. package/src/sap/base/util/restricted/_union.js +1 -1
  43. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  44. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  45. package/src/sap/base/util/restricted/_uniq.js +1 -1
  46. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  48. package/src/sap/base/util/restricted/_without.js +1 -1
  49. package/src/sap/base/util/restricted/_xor.js +1 -1
  50. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  51. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  52. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  54. package/src/sap/ui/Device.js +3 -3
  55. package/src/sap/ui/Global.js +4 -4
  56. package/src/sap/ui/base/BindingParser.js +2 -1
  57. package/src/sap/ui/base/Event.js +1 -1
  58. package/src/sap/ui/base/EventProvider.js +1 -1
  59. package/src/sap/ui/base/Interface.js +1 -1
  60. package/src/sap/ui/base/ManagedObject.js +7 -3
  61. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  62. package/src/sap/ui/base/Metadata.js +1 -1
  63. package/src/sap/ui/base/Object.js +1 -1
  64. package/src/sap/ui/base/ObjectPool.js +1 -1
  65. package/src/sap/ui/core/.library +9 -1
  66. package/src/sap/ui/core/AnimationMode.js +1 -1
  67. package/src/sap/ui/core/BlockLayerUtils.js +1 -1
  68. package/src/sap/ui/core/BusyIndicator.js +2 -2
  69. package/src/sap/ui/core/Component.js +22 -15
  70. package/src/sap/ui/core/ComponentContainer.js +2 -2
  71. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  72. package/src/sap/ui/core/ComponentSupport.js +1 -1
  73. package/src/sap/ui/core/Configuration.js +1 -13
  74. package/src/sap/ui/core/Control.js +21 -1
  75. package/src/sap/ui/core/Core.js +67 -41
  76. package/src/sap/ui/core/CustomData.js +1 -1
  77. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  78. package/src/sap/ui/core/Element.js +1 -1
  79. package/src/sap/ui/core/ElementMetadata.js +1 -1
  80. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  81. package/src/sap/ui/core/EventBus.js +1 -1
  82. package/src/sap/ui/core/Fragment.js +1 -1
  83. package/src/sap/ui/core/HTML.js +1 -1
  84. package/src/sap/ui/core/History.js +1 -1
  85. package/src/sap/ui/core/Icon.js +2 -2
  86. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  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 +3 -6
  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/Lib.js +9 -13
  95. package/src/sap/ui/core/ListItem.js +1 -1
  96. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  97. package/src/sap/ui/core/Locale.js +1 -1
  98. package/src/sap/ui/core/LocaleData.js +2 -2
  99. package/src/sap/ui/core/Manifest.js +1 -1
  100. package/src/sap/ui/core/Message.js +1 -1
  101. package/src/sap/ui/core/Messaging.js +472 -0
  102. package/src/sap/ui/core/RenderManager.js +1 -1
  103. package/src/sap/ui/core/Renderer.js +1 -1
  104. package/src/sap/ui/core/Rendering.js +3 -2
  105. package/src/sap/ui/core/ResizeHandler.js +1 -4
  106. package/src/sap/ui/core/ScrollBar.js +1 -1
  107. package/src/sap/ui/core/SeparatorItem.js +1 -1
  108. package/src/sap/ui/core/ShortcutHint.js +1 -1
  109. package/src/sap/ui/core/Theming.js +28 -31
  110. package/src/sap/ui/core/Title.js +1 -1
  111. package/src/sap/ui/core/TooltipBase.js +1 -1
  112. package/src/sap/ui/core/UIArea.js +85 -17
  113. package/src/sap/ui/core/UIComponent.js +1 -1
  114. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  115. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  116. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  117. package/src/sap/ui/core/XMLComposite.js +1 -1
  118. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  119. package/src/sap/ui/core/_IconRegistry.js +1 -1
  120. package/src/sap/ui/core/boot.js +9 -0
  121. package/src/sap/ui/core/date/UI5Date.js +1 -1
  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/DragAndDrop.js +1 -1
  125. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  126. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  127. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  128. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  129. package/src/sap/ui/core/format/DateFormat.js +4 -0
  130. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  131. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  132. package/src/sap/ui/core/library.js +18 -47
  133. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  134. package/src/sap/ui/core/message/Message.js +1 -1
  135. package/src/sap/ui/core/message/MessageManager.js +37 -459
  136. package/src/sap/ui/core/message/MessageMixin.js +3 -3
  137. package/src/sap/ui/core/message/MessageParser.js +1 -1
  138. package/src/sap/ui/core/message/MessageProcessor.js +9 -9
  139. package/src/sap/ui/core/message/MessageType.js +53 -0
  140. package/src/sap/ui/core/messagebundle.properties +3 -0
  141. package/src/sap/ui/core/messagebundle_ar.properties +1 -1
  142. package/src/sap/ui/core/messagebundle_bg.properties +1 -1
  143. package/src/sap/ui/core/messagebundle_ca.properties +1 -1
  144. package/src/sap/ui/core/messagebundle_cs.properties +1 -1
  145. package/src/sap/ui/core/messagebundle_cy.properties +1 -1
  146. package/src/sap/ui/core/messagebundle_da.properties +1 -1
  147. package/src/sap/ui/core/messagebundle_de.properties +1 -1
  148. package/src/sap/ui/core/messagebundle_el.properties +1 -1
  149. package/src/sap/ui/core/messagebundle_es.properties +1 -1
  150. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -1
  151. package/src/sap/ui/core/messagebundle_et.properties +1 -1
  152. package/src/sap/ui/core/messagebundle_fi.properties +1 -1
  153. package/src/sap/ui/core/messagebundle_fr.properties +1 -1
  154. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -1
  155. package/src/sap/ui/core/messagebundle_hi.properties +1 -1
  156. package/src/sap/ui/core/messagebundle_hr.properties +1 -1
  157. package/src/sap/ui/core/messagebundle_hu.properties +1 -1
  158. package/src/sap/ui/core/messagebundle_id.properties +1 -1
  159. package/src/sap/ui/core/messagebundle_it.properties +1 -1
  160. package/src/sap/ui/core/messagebundle_iw.properties +1 -1
  161. package/src/sap/ui/core/messagebundle_ja.properties +1 -1
  162. package/src/sap/ui/core/messagebundle_kk.properties +1 -1
  163. package/src/sap/ui/core/messagebundle_ko.properties +1 -1
  164. package/src/sap/ui/core/messagebundle_lt.properties +1 -1
  165. package/src/sap/ui/core/messagebundle_lv.properties +1 -1
  166. package/src/sap/ui/core/messagebundle_ms.properties +1 -1
  167. package/src/sap/ui/core/messagebundle_nl.properties +1 -1
  168. package/src/sap/ui/core/messagebundle_no.properties +1 -1
  169. package/src/sap/ui/core/messagebundle_pl.properties +1 -1
  170. package/src/sap/ui/core/messagebundle_pt.properties +1 -1
  171. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -1
  172. package/src/sap/ui/core/messagebundle_ro.properties +1 -1
  173. package/src/sap/ui/core/messagebundle_ru.properties +1 -1
  174. package/src/sap/ui/core/messagebundle_sh.properties +1 -1
  175. package/src/sap/ui/core/messagebundle_sk.properties +1 -1
  176. package/src/sap/ui/core/messagebundle_sl.properties +1 -1
  177. package/src/sap/ui/core/messagebundle_sv.properties +9 -9
  178. package/src/sap/ui/core/messagebundle_th.properties +1 -1
  179. package/src/sap/ui/core/messagebundle_tr.properties +1 -1
  180. package/src/sap/ui/core/messagebundle_uk.properties +1 -1
  181. package/src/sap/ui/core/messagebundle_vi.properties +1 -1
  182. package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -1
  183. package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -1
  184. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  185. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  186. package/src/sap/ui/core/mvc/JSView.js +1 -1
  187. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  188. package/src/sap/ui/core/mvc/View.js +1 -1
  189. package/src/sap/ui/core/mvc/XMLView.js +9 -2
  190. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  191. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  192. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  193. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  194. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  195. package/src/sap/ui/core/routing/Router.js +7 -1
  196. package/src/sap/ui/core/routing/async/Route.js +1 -0
  197. package/src/sap/ui/core/routing/sync/Route.js +1 -0
  198. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  199. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  200. package/src/sap/ui/core/service/Service.js +1 -1
  201. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  202. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  203. package/src/sap/ui/core/support/Plugin.js +25 -5
  204. package/src/sap/ui/core/support/Support.js +34 -4
  205. package/src/sap/ui/core/support/ToolsAPI.js +6 -16
  206. package/src/sap/ui/core/support/controls/InteractionTree.js +0 -4
  207. package/src/sap/ui/core/support/plugins/Breakpoint.js +0 -2
  208. package/src/sap/ui/core/support/plugins/ControlTree.js +10 -12
  209. package/src/sap/ui/core/support/plugins/Debugging.js +10 -9
  210. package/src/sap/ui/core/support/plugins/Interaction.js +12 -13
  211. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -3
  212. package/src/sap/ui/core/support/plugins/Performance.js +1 -3
  213. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  214. package/src/sap/ui/core/support/plugins/TechInfo.js +32 -42
  215. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  216. package/src/sap/ui/core/support/plugins/ViewInfo.js +27 -13
  217. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +4 -4
  218. package/src/sap/ui/core/theming/ThemeHelper.js +100 -0
  219. package/src/sap/ui/core/theming/ThemeManager.js +18 -18
  220. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  221. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  222. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  223. package/src/sap/ui/core/tmpl/Template.js +1 -1
  224. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  225. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  226. package/src/sap/ui/core/util/Export.js +1 -1
  227. package/src/sap/ui/core/util/ExportCell.js +1 -1
  228. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  229. package/src/sap/ui/core/util/ExportRow.js +1 -1
  230. package/src/sap/ui/core/util/ExportType.js +1 -1
  231. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  232. package/src/sap/ui/core/util/File.js +1 -1
  233. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  234. package/src/sap/ui/core/util/MockServer.js +1 -1
  235. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  236. package/src/sap/ui/core/util/XMLPreprocessor.js +53 -29
  237. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  238. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  239. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  240. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  241. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  242. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  243. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  244. package/src/sap/ui/core/webc/WebComponent.js +659 -0
  245. package/src/sap/ui/core/webc/WebComponentMetadata.js +253 -0
  246. package/src/sap/ui/core/webc/WebComponentRenderer.js +323 -0
  247. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  248. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  249. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  250. package/src/sap/ui/debug/ControlTree.js +4 -3
  251. package/src/sap/ui/debug/DebugEnv.js +4 -4
  252. package/src/sap/ui/debug/PropertyList.js +1 -1
  253. package/src/sap/ui/model/Binding.js +6 -6
  254. package/src/sap/ui/model/ClientModel.js +1 -1
  255. package/src/sap/ui/model/ClientPropertyBinding.js +3 -3
  256. package/src/sap/ui/model/CompositeDataState.js +1 -1
  257. package/src/sap/ui/model/CompositeType.js +1 -1
  258. package/src/sap/ui/model/Context.js +1 -1
  259. package/src/sap/ui/model/DataState.js +1 -1
  260. package/src/sap/ui/model/ManagedObjectBindingSupport.js +4 -4
  261. package/src/sap/ui/model/MetaModel.js +1 -1
  262. package/src/sap/ui/model/Model.js +4 -4
  263. package/src/sap/ui/model/SelectionModel.js +1 -1
  264. package/src/sap/ui/model/SimpleType.js +1 -1
  265. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  266. package/src/sap/ui/model/Type.js +1 -1
  267. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +27 -13
  268. package/src/sap/ui/model/json/JSONModel.js +1 -1
  269. package/src/sap/ui/model/message/MessageModel.js +1 -1
  270. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  271. package/src/sap/ui/model/odata/ODataListBinding.js +24 -0
  272. package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
  273. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  274. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  275. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  276. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +6 -0
  277. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  278. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  279. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  280. package/src/sap/ui/model/odata/type/Date.js +1 -1
  281. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  282. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  283. package/src/sap/ui/model/odata/type/DateTimeOffset.js +7 -2
  284. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  285. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  286. package/src/sap/ui/model/odata/type/Double.js +1 -1
  287. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  288. package/src/sap/ui/model/odata/type/Int.js +1 -1
  289. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  290. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  291. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  292. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  293. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  294. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  295. package/src/sap/ui/model/odata/type/Single.js +1 -1
  296. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  297. package/src/sap/ui/model/odata/type/String.js +1 -1
  298. package/src/sap/ui/model/odata/type/Time.js +1 -1
  299. package/src/sap/ui/model/odata/type/TimeOfDay.js +6 -2
  300. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  301. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  302. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  303. package/src/sap/ui/model/odata/v2/ODataListBinding.js +23 -3
  304. package/src/sap/ui/model/odata/v2/ODataModel.js +6 -6
  305. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +33 -6
  306. package/src/sap/ui/model/odata/v4/Context.js +26 -16
  307. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -2
  308. package/src/sap/ui/model/odata/v4/ODataListBinding.js +62 -29
  309. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  310. package/src/sap/ui/model/odata/v4/ODataModel.js +17 -10
  311. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +5 -1
  312. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +129 -6
  313. package/src/sap/ui/model/odata/v4/lib/_Cache.js +102 -57
  314. package/src/sap/ui/model/odata/v4/lib/_Helper.js +30 -4
  315. package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -0
  316. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +14 -4
  317. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +28 -35
  318. package/src/sap/ui/model/odata/v4/ts.js +44 -0
  319. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  320. package/src/sap/ui/model/type/Boolean.js +1 -1
  321. package/src/sap/ui/model/type/Currency.js +1 -1
  322. package/src/sap/ui/model/type/Date.js +1 -1
  323. package/src/sap/ui/model/type/DateInterval.js +5 -4
  324. package/src/sap/ui/model/type/DateTime.js +1 -1
  325. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  326. package/src/sap/ui/model/type/FileSize.js +1 -1
  327. package/src/sap/ui/model/type/Float.js +1 -1
  328. package/src/sap/ui/model/type/Integer.js +1 -1
  329. package/src/sap/ui/model/type/String.js +1 -1
  330. package/src/sap/ui/model/type/Time.js +1 -1
  331. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  332. package/src/sap/ui/model/type/Unit.js +1 -1
  333. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  334. package/src/sap/ui/performance/trace/Interaction.js +11 -2
  335. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  336. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +10 -11
  337. package/src/sap/ui/qunit/utils/nextUIUpdate.js +51 -0
  338. package/src/sap/ui/test/ModuleTracking.js +326 -0
  339. package/src/sap/ui/test/TestUtils.js +7 -6
  340. package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +3 -2
  341. package/src/sap/ui/test/generic/TestBase.js +1 -1
  342. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +2 -0
  343. package/src/sap/ui/test/selectors/_DropdownItem.js +1 -0
  344. package/src/sap/ui/test/selectors/_TableRowItem.js +1 -0
  345. package/src/sap/ui/util/Storage.js +1 -1
  346. package/src/ui5loader-autoconfig.js +14 -10
  347. package/src/ui5loader.js +2 -2
  348. package/test/sap/ui/core/ComponentCleanup.html +228 -225
  349. package/test/sap/ui/core/ComponentConfig.html +1 -1
  350. package/test/sap/ui/core/ComponentExtensibility_CustomizingDisabled.html +1 -1
  351. package/test/sap/ui/core/ComponentExtensibility_legacyAPIs.html +1 -1
  352. package/test/sap/ui/core/ComponentSimple.html +1 -1
  353. package/test/sap/ui/core/ComponentSimpleModel.html +1 -1
  354. package/test/sap/ui/core/ComponentSupport.html +1 -1
  355. package/test/sap/ui/core/DateFormat.js +3 -3
  356. package/test/sap/ui/core/EventBroadcaster.html +62 -62
  357. package/test/sap/ui/core/Formats.html +4 -2
  358. package/test/sap/ui/core/GenericEventBinding.html +53 -52
  359. package/test/sap/ui/core/ListFormat.js +3 -3
  360. package/test/sap/ui/core/NumberFormat.js +3 -3
  361. package/test/sap/ui/core/ODataAnnotationsPerformance.html +28 -28
  362. package/test/sap/ui/core/ODataV2CanonicalRequests.html +3 -2
  363. package/test/sap/ui/core/ODataV2Messages.html +4 -3
  364. package/test/sap/ui/core/PopupWithUserSelection.html +1 -1
  365. package/test/sap/ui/core/Strings.js +3 -3
  366. package/test/sap/ui/core/ValidateURL.html +143 -143
  367. package/test/sap/ui/core/demokit/sample/Commands/Commands.html +1 -1
  368. package/test/sap/ui/core/demokit/sample/MessageManager/BasicMessages/Controller.controller.js +10 -10
  369. package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/Controller.controller.js +7 -7
  370. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/Component.js +3 -2
  371. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/Employee.controller.js +3 -2
  372. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/index.html +7 -8
  373. package/test/sap/ui/core/demokit/sample/OpaGetStarted/applicationUnderTest/index.html +9 -6
  374. package/test/sap/ui/core/demokit/sample/OpaWithSupportAssistant/applicationUnderTest/index.html +13 -10
  375. package/test/sap/ui/core/demokit/sample/PatternMatching/Patterns.html +11 -8
  376. package/test/sap/ui/core/demokit/sample/RoutingFullscreen/RoutingFullscreen.html +11 -8
  377. package/test/sap/ui/core/demokit/sample/RoutingMasterDetail/RoutingMasterDetail.html +11 -8
  378. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/RoutingNestedComponent.html +1 -1
  379. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.html +1 -1
  380. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.js +5 -4
  381. package/test/sap/ui/core/demokit/sample/TargetsStandalone/TargetsStandalone.html +11 -8
  382. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.js +9 -8
  383. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +12 -11
  384. package/test/sap/ui/core/demokit/sample/common/Controller.js +6 -7
  385. package/test/sap/ui/core/demokit/sample/common/Helper.js +6 -2
  386. package/test/sap/ui/core/demokit/sample/common/init.js +25 -21
  387. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/WebsiteCode.js +8 -7
  388. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.js +9 -8
  389. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.controller.js +3 -2
  390. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +12 -10
  391. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/ListReport.controller.js +3 -2
  392. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +10 -9
  393. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +10 -9
  394. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/Component.js +4 -4
  395. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +3 -3
  396. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +10 -9
  397. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Component.js +19 -0
  398. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +93 -0
  399. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +85 -0
  400. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/SandboxModel.js +10 -0
  401. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/all.json +396 -0
  402. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/metadata.xml +423 -0
  403. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/manifest.json +70 -0
  404. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +11 -10
  405. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +9 -8
  406. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +10 -9
  407. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.js +8 -7
  408. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +8 -10
  409. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +12 -11
  410. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Main.controller.js +3 -2
  411. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +11 -10
  412. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/MIT.RecursiveHierarchy maintenance.html +408 -0
  413. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Opa.qunit.js +26 -8
  414. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +54 -14
  415. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +24 -10
  416. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +352 -287
  417. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +38 -5
  418. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/createEdit.js +128 -0
  419. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/pageExpandCollapse.js +23 -22
  420. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +10 -9
  421. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +9 -8
  422. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +3 -2
  423. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.js +15 -14
  424. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.js +9 -8
  425. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +9 -8
  426. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.js +10 -9
  427. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +10 -9
  428. package/test/sap/ui/core/demokit/tutorial/databinding/01/package.json +2 -5
  429. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +8 -0
  430. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.js +7 -3
  431. package/test/sap/ui/core/demokit/tutorial/databinding/02/package.json +2 -5
  432. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +8 -0
  433. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.js +4 -3
  434. package/test/sap/ui/core/demokit/tutorial/databinding/03/package.json +2 -5
  435. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +8 -0
  436. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.js +4 -3
  437. package/test/sap/ui/core/demokit/tutorial/databinding/04/package.json +2 -5
  438. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +8 -0
  439. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.js +4 -3
  440. package/test/sap/ui/core/demokit/tutorial/databinding/05/package.json +2 -5
  441. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +8 -0
  442. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.js +4 -3
  443. package/test/sap/ui/core/demokit/tutorial/databinding/06/package.json +2 -5
  444. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +8 -0
  445. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.js +4 -3
  446. package/test/sap/ui/core/demokit/tutorial/databinding/07/package.json +2 -5
  447. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +8 -0
  448. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.js +4 -3
  449. package/test/sap/ui/core/demokit/tutorial/databinding/08/package.json +2 -5
  450. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +8 -0
  451. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.js +4 -3
  452. package/test/sap/ui/core/demokit/tutorial/databinding/09/package.json +2 -5
  453. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +8 -0
  454. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.js +4 -3
  455. package/test/sap/ui/core/demokit/tutorial/databinding/10/package.json +2 -5
  456. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +8 -0
  457. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.js +4 -3
  458. package/test/sap/ui/core/demokit/tutorial/databinding/11/package.json +2 -5
  459. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +8 -0
  460. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.js +6 -4
  461. package/test/sap/ui/core/demokit/tutorial/databinding/12/package.json +2 -5
  462. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +8 -0
  463. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.js +6 -4
  464. package/test/sap/ui/core/demokit/tutorial/databinding/13/package.json +2 -5
  465. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +8 -0
  466. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.js +6 -4
  467. package/test/sap/ui/core/demokit/tutorial/databinding/14/package.json +2 -5
  468. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +8 -0
  469. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.js +6 -4
  470. package/test/sap/ui/core/demokit/tutorial/databinding/15/package.json +2 -5
  471. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +8 -0
  472. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.js +6 -4
  473. package/test/sap/ui/core/demokit/tutorial/mockserver/01/package.json +2 -5
  474. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +8 -0
  475. package/test/sap/ui/core/demokit/tutorial/mockserver/02/package.json +2 -5
  476. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +8 -0
  477. package/test/sap/ui/core/demokit/tutorial/mockserver/03/package.json +2 -5
  478. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +8 -0
  479. package/test/sap/ui/core/demokit/tutorial/mockserver/04/package.json +2 -5
  480. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +8 -0
  481. package/test/sap/ui/core/demokit/tutorial/navigation/01/package.json +2 -4
  482. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +7 -0
  483. package/test/sap/ui/core/demokit/tutorial/navigation/01/webapp/index.html +1 -1
  484. package/test/sap/ui/core/demokit/tutorial/navigation/02/package.json +2 -4
  485. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +7 -0
  486. package/test/sap/ui/core/demokit/tutorial/navigation/02/webapp/index.html +1 -1
  487. package/test/sap/ui/core/demokit/tutorial/navigation/03/package.json +2 -4
  488. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +7 -0
  489. package/test/sap/ui/core/demokit/tutorial/navigation/03/webapp/index.html +1 -1
  490. package/test/sap/ui/core/demokit/tutorial/navigation/04/package.json +2 -4
  491. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +7 -0
  492. package/test/sap/ui/core/demokit/tutorial/navigation/04/webapp/index.html +1 -1
  493. package/test/sap/ui/core/demokit/tutorial/navigation/05/package.json +2 -4
  494. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +7 -0
  495. package/test/sap/ui/core/demokit/tutorial/navigation/05/webapp/index.html +1 -1
  496. package/test/sap/ui/core/demokit/tutorial/navigation/06/package.json +2 -4
  497. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +7 -0
  498. package/test/sap/ui/core/demokit/tutorial/navigation/06/webapp/index.html +1 -1
  499. package/test/sap/ui/core/demokit/tutorial/navigation/07/package.json +2 -4
  500. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +7 -0
  501. package/test/sap/ui/core/demokit/tutorial/navigation/07/webapp/index.html +1 -1
  502. package/test/sap/ui/core/demokit/tutorial/navigation/08/package.json +2 -4
  503. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +7 -0
  504. package/test/sap/ui/core/demokit/tutorial/navigation/08/webapp/index.html +1 -1
  505. package/test/sap/ui/core/demokit/tutorial/navigation/09/package.json +2 -4
  506. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +7 -0
  507. package/test/sap/ui/core/demokit/tutorial/navigation/09/webapp/index.html +1 -1
  508. package/test/sap/ui/core/demokit/tutorial/navigation/10/package.json +2 -4
  509. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +7 -0
  510. package/test/sap/ui/core/demokit/tutorial/navigation/10/webapp/index.html +1 -1
  511. package/test/sap/ui/core/demokit/tutorial/navigation/11/package.json +2 -4
  512. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +7 -0
  513. package/test/sap/ui/core/demokit/tutorial/navigation/11/webapp/index.html +1 -1
  514. package/test/sap/ui/core/demokit/tutorial/navigation/12/package.json +2 -4
  515. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +7 -0
  516. package/test/sap/ui/core/demokit/tutorial/navigation/12/webapp/index.html +1 -1
  517. package/test/sap/ui/core/demokit/tutorial/navigation/13/package.json +2 -4
  518. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +7 -0
  519. package/test/sap/ui/core/demokit/tutorial/navigation/13/webapp/index.html +1 -1
  520. package/test/sap/ui/core/demokit/tutorial/navigation/14/package.json +2 -4
  521. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +7 -0
  522. package/test/sap/ui/core/demokit/tutorial/navigation/14/webapp/index.html +1 -1
  523. package/test/sap/ui/core/demokit/tutorial/navigation/15/package.json +2 -4
  524. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +7 -0
  525. package/test/sap/ui/core/demokit/tutorial/navigation/15/webapp/index.html +1 -1
  526. package/test/sap/ui/core/demokit/tutorial/navigation/16/package.json +2 -4
  527. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +7 -0
  528. package/test/sap/ui/core/demokit/tutorial/navigation/16/webapp/index.html +1 -1
  529. package/test/sap/ui/core/demokit/tutorial/navigation/17/package.json +4 -6
  530. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +8 -1
  531. package/test/sap/ui/core/demokit/tutorial/navigation/17/webapp/index.html +1 -1
  532. package/test/sap/ui/core/demokit/tutorial/navigation/index.html +2 -2
  533. package/test/sap/ui/core/demokit/tutorial/odatav4/01/package.json +2 -6
  534. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +9 -0
  535. package/test/sap/ui/core/demokit/tutorial/odatav4/02/package.json +2 -6
  536. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +9 -0
  537. package/test/sap/ui/core/demokit/tutorial/odatav4/03/package.json +2 -6
  538. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +9 -0
  539. package/test/sap/ui/core/demokit/tutorial/odatav4/04/package.json +2 -6
  540. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +9 -0
  541. package/test/sap/ui/core/demokit/tutorial/odatav4/05/package.json +2 -6
  542. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +9 -0
  543. package/test/sap/ui/core/demokit/tutorial/odatav4/06/package.json +2 -6
  544. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +9 -0
  545. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/controller/App.controller.js +5 -5
  546. package/test/sap/ui/core/demokit/tutorial/odatav4/07/package.json +2 -6
  547. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +9 -0
  548. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/controller/App.controller.js +7 -7
  549. package/test/sap/ui/core/demokit/tutorial/odatav4/08/package.json +2 -6
  550. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +9 -0
  551. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +7 -7
  552. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/opaTests.qunit.js +5 -5
  553. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/pages/Tutorial.js +1 -1
  554. package/test/sap/ui/core/demokit/tutorial/odatav4/09/package.json +2 -6
  555. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +9 -0
  556. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +7 -7
  557. package/test/sap/ui/core/demokit/tutorial/odatav4/10/package.json +2 -6
  558. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +9 -0
  559. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +7 -7
  560. package/test/sap/ui/core/demokit/tutorial/odatav4/11/package.json +2 -6
  561. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +9 -0
  562. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +7 -7
  563. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/opaTests.qunit.js +5 -5
  564. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/pages/Tutorial.js +1 -1
  565. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/package.json +2 -5
  566. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +8 -0
  567. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/webapp/test/integration/opaTests.qunit.js +6 -6
  568. package/test/sap/ui/core/frameoptions/createcontent.js +7 -6
  569. package/test/sap/ui/core/internal/samples/client/MusicCollection/index.html +1 -1
  570. package/test/sap/ui/core/internal/samples/composite/xmlcomposite/exStringAndFloat/Test.controller.js +3 -2
  571. package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.html +1 -1
  572. package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.js +8 -8
  573. package/test/sap/ui/core/internal/samples/odata/twoFields/index.html +1 -1
  574. package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.html +1 -1
  575. package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.js +7 -7
  576. package/test/sap/ui/core/internal/samples/odata/v2/Products/index.html +1 -1
  577. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +3 -2
  578. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/MIT.SalesOrders(V2).ODLB.create.html +2 -0
  579. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +3 -3
  580. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.html +1 -1
  581. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.js +9 -6
  582. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/SandboxModel.js +3 -0
  583. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/data/ODLB.create/TC3/SalesOrderSet_desc_4-1.json +16 -0
  584. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/index.html +1 -1
  585. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/tests/ODataListBinding.create/TC3_SalesOrders_InlineCreationRow.js +9 -0
  586. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Component.js +3 -2
  587. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +3 -3
  588. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/index.html +1 -1
  589. package/test/sap/ui/core/qunit/BlockLayerUtils.qunit.js +9 -7
  590. package/test/sap/ui/core/qunit/CalculatedFields.qunit.js +4 -2
  591. package/test/sap/ui/core/qunit/ContextMenuSupport.qunit.js +3 -2
  592. package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +11 -10
  593. package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +218 -223
  594. package/test/sap/ui/core/qunit/Core.qunit.js +35 -31
  595. package/test/sap/ui/core/qunit/CoreEvents.qunit.js +17 -15
  596. package/test/sap/ui/core/qunit/Core_repeatedExecution.qunit.js +3 -3
  597. package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +4 -3
  598. package/test/sap/ui/core/qunit/Element_data.qunit.js +5 -5
  599. package/test/sap/ui/core/qunit/Element_destroy.qunit.js +6 -4
  600. package/test/sap/ui/core/qunit/Element_focus.qunit.js +25 -24
  601. package/test/sap/ui/core/qunit/Element_metadata_selector.qunit.js +3 -2
  602. package/test/sap/ui/core/qunit/EnabledPropagator.qunit.js +7 -6
  603. package/test/sap/ui/core/qunit/ExpressionParser.qunit.js +1 -1
  604. package/test/sap/ui/core/qunit/FastNavigationWithWebComponents.qunit.js +5 -5
  605. package/test/sap/ui/core/qunit/FieldGroup.qunit.js +9 -6
  606. package/test/sap/ui/core/qunit/FocusHandler.qunit.js +7 -6
  607. package/test/sap/ui/core/qunit/Fragment.qunit.js +35 -34
  608. package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +51 -50
  609. package/test/sap/ui/core/qunit/HTML.qunit.js +32 -32
  610. package/test/sap/ui/core/qunit/Icon.qunit.js +66 -65
  611. package/test/sap/ui/core/qunit/IconPool.qunit.js +2 -1
  612. package/test/sap/ui/core/qunit/InvisibleText.qunit.js +13 -12
  613. package/test/sap/ui/core/qunit/Lib.qunit.js +8 -8
  614. package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +24 -24
  615. package/test/sap/ui/core/qunit/RenderManager.qunit.js +54 -53
  616. package/test/sap/ui/core/qunit/ResizeHandler.qunit.js +8 -9
  617. package/test/sap/ui/core/qunit/ScrollBar.qunit.js +7 -6
  618. package/test/sap/ui/core/qunit/ShortcutHints.qunit.js +13 -11
  619. package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +6 -5
  620. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +5 -4
  621. package/test/sap/ui/core/qunit/Theming.qunit.js +88 -50
  622. package/test/sap/ui/core/qunit/Theming_default_and_fallback.qunit.js +130 -0
  623. package/test/sap/ui/core/qunit/TooltipBase.qunit.js +4 -3
  624. package/test/sap/ui/core/qunit/UIArea.qunit.js +248 -18
  625. package/test/sap/ui/core/qunit/analytics/testsuite4analytics.qunit.js +9 -8
  626. package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +10 -10
  627. package/test/sap/ui/core/qunit/base/Config.qunit.js +12 -2
  628. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +123 -52
  629. package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -0
  630. package/test/sap/ui/core/qunit/base/config/GlobalConfig.js +3 -1
  631. package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +4 -1
  632. package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +3 -3
  633. package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal_legacyAPIs.qunit.js +13 -11
  634. package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -1
  635. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomScript_legacyAPIs.qunit.js +13 -11
  636. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery_legacyAPIs.qunit.js +7 -5
  637. package/test/sap/ui/core/qunit/bootstrap/CalendarClassLoadingWithCustomBootTaskAndPreload.qunit.js +12 -14
  638. package/test/sap/ui/core/qunit/bootstrap/CfgDefaults.qunit.js +3 -2
  639. package/test/sap/ui/core/qunit/bootstrap/CfgFromTagAttributes.qunit.js +1 -1
  640. package/test/sap/ui/core/qunit/bootstrap/_checkCoreAndLibraryBooted.qunit.js +1 -1
  641. package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +12 -6
  642. package/test/sap/ui/core/qunit/component/Component.qunit.js +14 -15
  643. package/test/sap/ui/core/qunit/component/Component_unavoidablySync.qunit.js +4 -3
  644. package/test/sap/ui/core/qunit/component/Customizing.qunit.js +4 -5
  645. package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +4 -3
  646. package/test/sap/ui/core/qunit/component/Customizing_disabled.qunit.js +4 -6
  647. package/test/sap/ui/core/qunit/component/Customizing_legacyAPIs.qunit.js +3 -5
  648. package/test/sap/ui/core/qunit/component/Customizing_multi.qunit.js +3 -6
  649. package/test/sap/ui/core/qunit/component/Customizing_unavoidablySync.qunit.js +5 -8
  650. package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +4 -5
  651. package/test/sap/ui/core/qunit/component/ExtensionPoint_unavoidablySync.qunit.js +4 -3
  652. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +19 -19
  653. package/test/sap/ui/core/qunit/component/UIComponent_unavoidablySync.qunit.js +19 -19
  654. package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +43 -43
  655. package/test/sap/ui/core/qunit/csp/ContentSecurityPolicy.qunit.js +18 -13
  656. package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +19 -18
  657. package/test/sap/ui/core/qunit/dnd/DragInfo.qunit.js +13 -12
  658. package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +5 -4
  659. package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +7 -6
  660. package/test/sap/ui/core/qunit/generic/DuplicateIdCheck.qunit.js +7 -6
  661. package/test/sap/ui/core/qunit/generic/legacy/ControlIterator.qunit.js +6 -6
  662. package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +20 -17
  663. package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +8 -7
  664. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +1 -2
  665. package/test/sap/ui/core/qunit/internal/1Ring.qunit.html +14 -19
  666. package/test/sap/ui/core/qunit/internal/1Ring.qunit.js +34 -22
  667. package/test/sap/ui/core/qunit/internal/ODataV4.qunit.html +6 -6
  668. package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +4 -0
  669. package/test/sap/ui/core/qunit/isBehindOtherElement.qunit.js +7 -7
  670. package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
  671. package/test/sap/ui/core/qunit/jquery.sap.events.qunit.js +3 -2
  672. package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +16 -16
  673. package/test/sap/ui/core/qunit/messages/{MessageManager.qunit.js → Messaging.qunit.js} +46 -49
  674. package/test/sap/ui/core/qunit/messages/messagesDataBinding.qunit.js +3 -1
  675. package/test/sap/ui/core/qunit/messages/messagesEnd2End.qunit.js +10 -10
  676. package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +36 -46
  677. package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +25 -36
  678. package/test/sap/ui/core/qunit/messages/testsuite.messaging.base.qunit.js +2 -2
  679. package/test/sap/ui/core/qunit/model/Binding.qunit.js +8 -8
  680. package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +24 -14
  681. package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +7 -6
  682. package/test/sap/ui/core/qunit/mvc/AnyViewAsync.qunit.js +3 -2
  683. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync_unavoidablyUsingInlineStyle.qunit.js +5 -4
  684. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +8 -9
  685. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +45 -40
  686. package/test/sap/ui/core/qunit/mvc/testdata/stashed/OP.html +1 -1
  687. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +15 -20
  688. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing_legacyAPIs.qunit.js +20 -25
  689. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyViewAsync_legacyAPIs.qunit.js +10 -11
  690. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyView_legacyAPIs.qunit.js +7 -6
  691. package/test/sap/ui/core/qunit/mvc_legacyAPIs/HTMLView_legacyAPIs.qunit.js +8 -7
  692. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +7 -7
  693. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +40 -47
  694. package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +52 -20
  695. package/test/sap/ui/core/qunit/odata/{ODataListBinding.qunit.js → ODataListBinding_legacyAPIs.qunit.js} +27 -0
  696. package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +44 -48
  697. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +8 -8
  698. package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +66 -29
  699. package/test/sap/ui/core/qunit/odata/ODataMetadata.qunit.js +17 -7
  700. package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +147 -89
  701. package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +1 -0
  702. package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +33 -12
  703. package/test/sap/ui/core/qunit/odata/type/TimeOfDay.qunit.js +33 -12
  704. package/test/sap/ui/core/qunit/odata/v2/CanonicalRequests.qunit.js +5 -4
  705. package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +63 -13
  706. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +281 -59
  707. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +28 -4
  708. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +21 -0
  709. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +1 -2
  710. package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding.qunit.js +7 -207
  711. package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding_Filter_legacyAPIs.qunit.js +281 -0
  712. package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +9 -8
  713. package/test/sap/ui/core/qunit/odata/v2/ODataV2TreeBinding.qunit.js +1 -0
  714. package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +95 -85
  715. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelB.qunit.js +70 -67
  716. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelDataState.qunit.js +19 -20
  717. package/test/sap/ui/core/qunit/odata/v2/testsuite.odatav2.qunit.js +4 -0
  718. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +50 -27
  719. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +5 -0
  720. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +4 -3
  721. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +103 -14
  722. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1027 -31
  723. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +18 -17
  724. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +272 -36
  725. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +115 -82
  726. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +10 -0
  727. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +108 -10
  728. package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +1 -1
  729. package/test/sap/ui/core/qunit/opa/Opa5PageObject.qunit.js +5 -6
  730. package/test/sap/ui/core/qunit/opa/OpaPlugin.qunit.js +29 -42
  731. package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +13 -14
  732. package/test/sap/ui/core/qunit/opa/_ControlFinder.qunit.js +5 -4
  733. package/test/sap/ui/core/qunit/opa/actions/Action.qunit.js +6 -5
  734. package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +22 -21
  735. package/test/sap/ui/core/qunit/opa/actions/Press.qunit.js +60 -56
  736. package/test/sap/ui/core/qunit/opa/autowaiter/_cssAnimationWaiter.js +5 -7
  737. package/test/sap/ui/core/qunit/opa/autowaiter/_cssTransitionWaiter.js +5 -9
  738. package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +5 -6
  739. package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +5 -4
  740. package/test/sap/ui/core/qunit/opa/autowaiter/_resourceWaiter.js +21 -20
  741. package/test/sap/ui/core/qunit/opa/fixture/bindingPath.js +6 -5
  742. package/test/sap/ui/core/qunit/opa/matchers/Interactable.qunit.js +7 -5
  743. package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +4 -3
  744. package/test/sap/ui/core/qunit/opa/matchers/Sibling.qunit.js +4 -3
  745. package/test/sap/ui/core/qunit/opa/matchers/Visible.qunit.js +6 -5
  746. package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +28 -27
  747. package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +11 -10
  748. package/test/sap/ui/core/qunit/opa/matchers/_Enabled.qunit.js +11 -10
  749. package/test/sap/ui/core/qunit/opa/matchers/_Visitor.qunit.js +5 -4
  750. package/test/sap/ui/core/qunit/opa/opa5/actions.qunit.js +8 -7
  751. package/test/sap/ui/core/qunit/opa/opa5/basics.qunit.js +12 -17
  752. package/test/sap/ui/core/qunit/opa/opa5/logging.qunit.js +5 -6
  753. package/test/sap/ui/core/qunit/opa/opa5/matchers.qunit.js +6 -5
  754. package/test/sap/ui/core/qunit/opa/selectors/_BindingPath.js +10 -9
  755. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorGenerator.js +6 -7
  756. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorValidator.js +4 -3
  757. package/test/sap/ui/core/qunit/opa/selectors/_DropdownItem.js +4 -3
  758. package/test/sap/ui/core/qunit/opa/selectors/_GlobalID.js +4 -3
  759. package/test/sap/ui/core/qunit/opa/selectors/_LabelFor.js +4 -3
  760. package/test/sap/ui/core/qunit/opa/selectors/_Properties.js +33 -27
  761. package/test/sap/ui/core/qunit/opa/selectors/_Selector.js +7 -10
  762. package/test/sap/ui/core/qunit/opa/selectors/_TableRowItem.js +5 -7
  763. package/test/sap/ui/core/qunit/opa/selectors/_ViewID.js +5 -7
  764. package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +35 -28
  765. package/test/sap/ui/core/qunit/routing/Placeholder.qunit.js +11 -9
  766. package/test/sap/ui/core/qunit/routing/PlaceholderOptOut.qunit.js +5 -3
  767. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +57 -0
  768. package/test/sap/ui/core/qunit/routing/fixture/historyIframe/iframe/index.html +1 -1
  769. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/Component.js +30 -0
  770. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/manifest.json +25 -0
  771. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/Component.js +14 -0
  772. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/manifest.json +51 -0
  773. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/NotFound.view.xml +3 -0
  774. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/RootView.view.xml +5 -0
  775. package/test/sap/ui/core/qunit/rule/app/syncXHR.qunit.js +24 -17
  776. package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrap.qunit.js +3 -3
  777. package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrapDebug.qunit.js +3 -3
  778. package/test/sap/ui/core/qunit/rule/config/asynchronousXMLViews.qunit.js +9 -18
  779. package/test/sap/ui/core/qunit/support/techinfo/TechnicalInfoTestbench.html +3 -1
  780. package/test/sap/ui/core/qunit/test/starter/find/index.html +1 -1
  781. package/test/sap/ui/core/qunit/test/starter/find/main.js +3 -2
  782. package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +0 -6
  783. package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
  784. package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +10 -6
  785. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +27 -4
  786. package/test/sap/ui/core/qunit/tmpl/Template.qunit.js +36 -35
  787. package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +13 -0
  788. package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
  789. package/test/sap/ui/core/qunit/util/BusyIndicatorNoCore.qunit.js +2 -2
  790. package/test/sap/ui/core/qunit/util/InvisibleMessage.qunit.js +4 -4
  791. package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +27 -31
  792. package/test/sap/ui/core/qunit/util/Popup.qunit.js +27 -27
  793. package/test/sap/ui/core/qunit/util/ResponsivePaddingsEnablement.qunit.js +13 -9
  794. package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +37 -6
  795. package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +1 -1
  796. package/test/sap/ui/core/qunit/util/jquery.sap.dom.qunit.js +3 -2
  797. package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +8 -8
  798. package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +24 -24
  799. package/test/sap/ui/core/qunit/util/static/TechnicalInfoTestbenchInit.js +8 -2
  800. package/test/sap/ui/core/qunit/webc/WebComponent.qunit.js +188 -0
  801. package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.html +14 -0
  802. package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.js +22 -0
  803. package/test/sap/ui/core/relnotes/changes-1.117.json +1 -34
  804. package/test/sap/ui/core/relnotes/changes-1.118.json +143 -0
  805. package/test/sap/ui/core/samples/components/resourcesCSS/index.html +1 -1
  806. package/test/sap/ui/core/samples/databinding/DataBinding.html +3 -1
  807. package/test/sap/ui/core/samples/databinding/DataBindingAsyncType.html +3 -2
  808. package/test/sap/ui/core/samples/databinding/DataBindingCalculatedFields.html +3 -1
  809. package/test/sap/ui/core/samples/databinding/DataBindingList.html +3 -1
  810. package/test/sap/ui/core/samples/databinding/DataBindingListNamedModel.html +3 -1
  811. package/test/sap/ui/core/samples/databinding/DataBindingListXML.html +3 -1
  812. package/test/sap/ui/core/samples/databinding/DataBindingMultiModel.html +3 -1
  813. package/test/sap/ui/core/samples/databinding/DataBindingSortingFiltering.html +3 -1
  814. package/test/sap/ui/core/samples/databinding/DataBindingTreeLarge.html +102 -113
  815. package/test/sap/ui/core/samples/databinding/DataBindingTwoWay.html +3 -1
  816. package/test/sap/ui/core/samples/databinding/DataBindingTwoWayTable.html +90 -89
  817. package/test/sap/ui/core/samples/databinding/DataBindingValidation.html +149 -148
  818. package/test/sap/ui/core/samples/databinding/DataBindingXML.html +3 -2
  819. package/test/sap/ui/core/samples/databinding/DatabindingMessages.html +158 -153
  820. package/test/sap/ui/core/samples/databinding/ODatabindingMessages.html +4 -6
  821. package/test/sap/ui/core/samples/databinding/UnitTableMain.js +3 -4
  822. package/test/sap/ui/core/samples/extensions/index_legacyAPIs.html +15 -13
  823. package/test/sap/ui/core/samples/formatting/controller/ChooseFormatOptions.controller.js +3 -2
  824. package/test/sap/ui/core/samples/mvc/ExtendedXMLViewEventHandlerSyntax.html +5 -3
  825. package/test/sap/ui/core/samples/mvc/XMLViewBindableAggregation.html +1 -1
  826. package/test/testsuite/testframe.html +4 -4
  827. package/src/ui5-boot.js +0 -50
  828. package/test/sap/ui/core/qunit/CoreLock.qunit.js +0 -61
  829. package/test/sap/ui/core/qunit/internal/ODataV4.qunit.js +0 -30
  830. /package/test/sap/ui/core/qunit/{MasterDetail.qunit.js → MasterDetail_legacyAPIs.qunit.js} +0 -0
  831. /package/test/sap/ui/core/qunit/odata/{ODataModel.qunit.js → ODataModel_legacyAPIs.qunit.js} +0 -0
  832. /package/test/sap/ui/core/qunit/odata/{ODataSharedMetadata.qunit.js → ODataSharedMetadata_legacyAPIs.qunit.js} +0 -0
  833. /package/test/sap/ui/core/qunit/odata/{ODataTreeBinding.qunit.js → ODataTreeBinding_legacyAPIs.qunit.js} +0 -0
@@ -0,0 +1,659 @@
1
+ /*!
2
+ * OpenUI5
3
+ * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ // Provides the base class for all Web Component wrappers.
8
+ sap.ui.define([
9
+ "../Control",
10
+ "../Element",
11
+ "./WebComponentMetadata",
12
+ "./WebComponentRenderer",
13
+ "sap/base/strings/hyphenate",
14
+ "sap/base/strings/camelize",
15
+ "../library",
16
+ "../LabelEnablement"
17
+ ],
18
+ function(
19
+ Control,
20
+ Element,
21
+ WebComponentMetadata,
22
+ WebComponentRenderer,
23
+ hyphenate,
24
+ camelize,
25
+ coreLibrary,
26
+ LabelEnablement
27
+ ) {
28
+ "use strict";
29
+
30
+ var TextDirection = coreLibrary.TextDirection;
31
+
32
+ /**
33
+ * Returns the sap.ui.core.Element instance for an arbitrary HTML Element, or undefined, if the HTML element is not a sap.ui.core.Element
34
+ *
35
+ * @param obj
36
+ * @returns {sap.ui.core.Element|undefined}
37
+ * @private
38
+ */
39
+ var fnGetControlFor = function(obj) {
40
+ if (obj.id && Element.registry.get(obj.id)) {
41
+ return Element.registry.get(obj.id);
42
+ }
43
+ };
44
+
45
+ /**
46
+ * Takes an object as an argument and returns another object, where all fields in the original object, that are HTML Elements, are deeply replaced with their sap.ui.core.Element counterparts, where applicable
47
+ *
48
+ * @param obj
49
+ * @param level
50
+ * @param maxLevel
51
+ * @returns {Object}
52
+ * @private
53
+ */
54
+ var fnConvert = function(obj, level, maxLevel) {
55
+ if (level === undefined) {
56
+ level = 0;
57
+ }
58
+ if (maxLevel === undefined) {
59
+ maxLevel = 2;
60
+ }
61
+
62
+ // Null
63
+ if (obj == null) {
64
+ return obj;
65
+ }
66
+
67
+ // HTML Element - if represents a control, return the control. Otherwise return the HTML Element and stop.
68
+ if (obj instanceof window.HTMLElement) {
69
+ var oControl = fnGetControlFor(obj);
70
+ return oControl ? oControl : obj;
71
+ }
72
+
73
+ if (level < maxLevel) {
74
+ // Array
75
+ if (Array.isArray(obj)) {
76
+ return obj.map(fnConvert, level + 1, maxLevel);
77
+ }
78
+
79
+ // Object
80
+ if (typeof obj === "object") {
81
+ var oResult = {};
82
+ for (var i in obj) {
83
+ if (obj.hasOwnProperty(i)) {
84
+ oResult[i] = fnConvert(obj[i], level + 1, maxLevel);
85
+ }
86
+ }
87
+ return oResult;
88
+ }
89
+ }
90
+
91
+ // Anything else
92
+ return obj;
93
+ };
94
+
95
+ /**
96
+ * Constructs and initializes a Web Component Wrapper with the given <code>sId</code> and settings.
97
+ *
98
+ * @param {string} [sId] Optional ID for the new control; generated automatically if no non-empty ID is given
99
+ * Note: this can be omitted, no matter whether <code>mSettings</code> will be given or not!
100
+ * @param {object} [mSettings] Object with initial settings for the new control
101
+ *
102
+ * @class Base Class for Web Components.
103
+ * Web Components are agnostic UI elements which can be integrated into the UI5
104
+ * programming model by using this wrapper control. This wrapper control takes
105
+ * care to propagate the properties, the aggregations and the events. It also
106
+ * ensures to render the control and put the aggregated controls in the dedicated
107
+ * slots of the Web Component.
108
+ *
109
+ * @extends sap.ui.core.Control
110
+ * @author SAP SE
111
+ * @version 1.118.0
112
+ * @public
113
+ * @since 1.118.0
114
+ * @alias sap.ui.core.webc.WebComponent
115
+ * @experimental Since 1.118.0 The API might change. It is not intended for productive usage yet!
116
+ */
117
+ var WebComponent = Control.extend("sap.ui.core.webc.WebComponent", {
118
+
119
+ metadata : {
120
+ stereotype : "webcomponent",
121
+ "abstract" : true,
122
+ library : "sap.ui.core",
123
+ properties: {
124
+ __isBusy: {
125
+ type: "boolean",
126
+ visibility: "hidden",
127
+ defaultValue: false,
128
+ mapping: {
129
+ type: "property",
130
+ to: "__is-busy"
131
+ }
132
+ }
133
+ }
134
+ },
135
+
136
+ constructor : function(sId, mSettings) {
137
+ Control.apply(this, arguments);
138
+
139
+ this.__busyIndicatorTimeout = null;
140
+
141
+ this.__onInvalidationBound = this.__onInvalidation.bind(this);
142
+ this.__handleCustomEventBound = this.__handleCustomEvent.bind(this);
143
+
144
+ this.__delegates = {
145
+ onBeforeRendering: this.__onBeforeRenderingDelegate,
146
+ onAfterRendering: this.__onAfterRenderingDelegate
147
+ };
148
+ this.addDelegate(this.__delegates, true, this, false);
149
+ },
150
+
151
+ renderer: WebComponentRenderer
152
+
153
+ }, /* Metadata constructor */ WebComponentMetadata);
154
+
155
+ /**
156
+ * @typedef {sap.ui.core.Element.MetadataOptions} sap.ui.core.webc.WebComponent.MetadataOptions
157
+ *
158
+ * The structure of the "metadata" object which is passed when inheriting from sap.ui.core.Element using its static "extend" method.
159
+ * See {@link sap.ui.core.Element.extend} for details on its usage.
160
+ *
161
+ * @property {string} tag
162
+ * Tag name of the Web Component to be used in the renderer to render the HTML.
163
+ * @property {Object<string, string | sap.ui.core.webc.WebComponent.MetadataOptions.Property>} [properties]
164
+ * An object literal whose properties each define a new managed property in the WebComponent subclass.
165
+ * See {@link sap.ui.base.ManagedObject.MetadataOptions.Property Property} for more details.
166
+ * @property {Object<string, string | sap.ui.core.webc.WebComponent.MetadataOptions.Aggregation>} [aggregations]
167
+ * An object literal whose properties each define a new aggregation in the ManagedObject subclass.
168
+ * See {@link sap.ui.base.ManagedObject.MetadataOptions.Aggregation Aggregation} for more details.
169
+ * @property {Object<string, string | sap.ui.core.webc.WebComponent.MetadataOptions.Association>} [associations]
170
+ * An object literal whose properties each define a new association in the ManagedObject subclass.
171
+ * See {@link sap.ui.base.ManagedObject.MetadataOptions.Association Association} for more details.
172
+ * @property {string[]} [getters]
173
+ * Proxied public getters of the Web Component which are directly accessible on the wrapper Control.
174
+ * @property {string[]} [methods]
175
+ * Proxied public methods of the Web Component which are directly accessible on the wrapper Control.
176
+ *
177
+ * @public
178
+ */
179
+
180
+ /**
181
+ * @typedef {sap.ui.base.ManagedObject.MetadataOptions.Property} sap.ui.core.webc.WebComponent.MetadataOptions.Property
182
+ *
183
+ * An object literal describing a property of a class derived from <code>sap.ui.core.webc.WebComponent</code>.
184
+ * See {@link sap.ui.core.webc.WebComponent.MetadataOptions MetadataOptions} for details on its usage.
185
+ *
186
+ * @property {"property" | "style" | "textContent" | "slot" | "none" | sap.ui.core.webc.WebComponent.MetadataOptionsPropertyMapping} [mapping="property"] Defines the mapping of the property to be either "property", "style", "textContent", "slot", or "none".
187
+ * The default mapping of a property is "property" which either renders the value of the property into an attribute of the custom tag or forwards object properties to the mutator in the onAfterRendering phase.
188
+ *
189
+ * @public
190
+ */
191
+
192
+ /**
193
+ * @typedef {object} sap.ui.core.webc.WebComponent.MetadataOptions.Property.Mapping
194
+ *
195
+ * An object literal describing the mapping of a property of a class derived from <code>sap.ui.core.webc.WebComponent</code>.
196
+ *
197
+ * @property {"property" | "style" | "textContent" | "slot" | "none"} [type="property"] Defines the mapping of the property to be either "property", "style", "textContent", "slot", or "none".
198
+ * The default mapping of a property is "property" which either renders the value of the property into an attribute of the custom tag or forwards object properties to the mutator in the onAfterRendering phase.
199
+ * @property {string} [to] Defines the target of the mapping of the property (e.g. the name of the attribute/property).
200
+ * @property {string} [formatter] Defines the name of the formatter function at the WebComponent instance to format the value before its being mapped.
201
+ *
202
+ * @public
203
+ */
204
+
205
+ /**
206
+ * @typedef {sap.ui.core.webc.WebComponent.MetadataOptions.Property.Mapping} sap.ui.core.webc.WebComponent.MetadataOptionsPropertyMapping
207
+ *
208
+ * HACK! This mapping omits the <code>no-unnecessary-qualifier</code> error or we need to extend the <code>tslint.json</code>!
209
+ *
210
+ * @public
211
+ */
212
+
213
+ /**
214
+ * @typedef {sap.ui.base.ManagedObject.MetadataOptions.Aggregation} sap.ui.core.webc.WebComponent.MetadataOptions.Aggregation
215
+ *
216
+ * An object literal describing a property of a class derived from <code>sap.ui.core.webc.WebComponent</code>.
217
+ * See {@link sap.ui.core.webc.WebComponent.MetadataOptions MetadataOptions} for details on its usage.
218
+ *
219
+ * @property {string} [slot] Flag that marks the property as deprecated (defaults to false). May lead to an additional warning
220
+ * log message at runtime when the property is still used. For the documentation, also add a <code>@deprecated</code> tag in the JSDoc,
221
+ * describing since when it is deprecated and what any alternatives are.
222
+ *
223
+ * @public
224
+ */
225
+
226
+ /**
227
+ * @typedef {sap.ui.base.ManagedObject.MetadataOptions.Association} sap.ui.core.webc.WebComponent.MetadataOptions.Association
228
+ *
229
+ * An object literal describing an association of a class derived from <code>sap.ui.core.webc.WebComponent</code>.
230
+ * See {@link sap.ui.core.webc.WebComponent.MetadataOptions MetadataOptions} for details on its usage.
231
+ *
232
+ * @property {"property" | sap.ui.core.webc.WebComponent.MetadataOptionsAssociationMapping} [mapping="property"] Defines the mapping of the association which defaults to "property".
233
+ * Associations are forwarded to the corresponding mutator of the Web Component.
234
+ *
235
+ * @public
236
+ */
237
+
238
+ /**
239
+ * @typedef {object} sap.ui.core.webc.WebComponent.MetadataOptions.Association.Mapping
240
+ *
241
+ * An object literal describing the mapping of an association as property of a class derived from <code>sap.ui.core.webc.WebComponent</code>.
242
+ *
243
+ * @property {"property"} [type="property"] Defines the mapping of the association which defaults to "property".
244
+ * Associations are forwarded to the corresponding mutator of the Web Component.
245
+ * @property {string} [to] Defines the target of the mapping of the association to which property it will be mapped to.
246
+ * @property {string} [formatter] Defines the name of the formatter function at the WebComponent instance to format the value before its being mapped.
247
+ *
248
+ * @public
249
+ */
250
+
251
+ /**
252
+ * @typedef {sap.ui.core.webc.WebComponent.MetadataOptions.Association.Mapping} sap.ui.core.webc.WebComponent.MetadataOptionsAssociationMapping
253
+ *
254
+ * HACK! This mapping omits the <code>no-unnecessary-qualifier</code> error or we need to extend the <code>tslint.json</code>!
255
+ *
256
+ * @public
257
+ */
258
+
259
+ /**
260
+ * Defines a new subclass of WebComponent with the name <code>sClassName</code> and enriches it with
261
+ * the information contained in <code>oClassInfo</code>.
262
+ *
263
+ * <code>oClassInfo</code> can contain the same information that {@link sap.ui.base.ManagedObject.extend} already accepts,
264
+ * plus the <code>dnd</code> property in the metadata object literal to configure drag-and-drop behavior
265
+ * (see {@link sap.ui.core.webc.WebComponent.MetadataOptions MetadataOptions} for details). Objects describing aggregations can also
266
+ * have a <code>dnd</code> property when used for a class extending <code>WebComponent</code>
267
+ * (see {@link sap.ui.base.ManagedObject.MetadataOptions.AggregationDnD AggregationDnD}).
268
+ *
269
+ * Example:
270
+ * <pre>
271
+ * WebComponent.extend('sap.mylib.MyElement', {
272
+ * metadata : {
273
+ * library : 'sap.mylib',
274
+ * tag : 'my-webcomponent',
275
+ * properties : {
276
+ * value : 'string',
277
+ * width : {
278
+ * type: 'sap.ui.core.CSSSize',
279
+ * mapping: 'style'
280
+ * }
281
+ * },
282
+ * defaultAggregation: "content",
283
+ * aggregations : {
284
+ * content : {
285
+ * type: 'sap.ui.core.Control',
286
+ * multiple : true
287
+ * },
288
+ * header : {
289
+ * type : 'sap.ui.core.Control',
290
+ * multiple : false,
291
+ * slot: 'header'
292
+ * }
293
+ * }
294
+ * }
295
+ * });
296
+ * </pre>
297
+ *
298
+ * @param {string} sClassName Name of the class to be created
299
+ * @param {object} [oClassInfo] Object literal with information about the class
300
+ * @param {sap.ui.core.webc.WebComponent.MetadataOptions} [oClassInfo.metadata] the metadata object describing the class: tag, properties, aggregations, events etc.
301
+ * @param {function} [FNMetaImpl] Constructor function for the metadata object. If not given, it defaults to <code>sap.ui.core.ElementMetadata</code>.
302
+ * @returns {function} Created class / constructor function
303
+ *
304
+ * @public
305
+ * @static
306
+ * @name sap.ui.core.webc.WebComponent.extend
307
+ * @function
308
+ */
309
+
310
+ /**
311
+ * Assigns the __slot property which tells RenderManager to render the sap.ui.core.Element (oElement) with a "slot" attribute
312
+ *
313
+ * @param oElement
314
+ * @param sAggregationName
315
+ * @private
316
+ */
317
+ WebComponent.prototype._setSlot = function(oElement, sAggregationName) {
318
+ var aDenyList = ["tooltip", "customData", "layoutData", "dependents", "dragDropConfig"];
319
+ if (oElement && !aDenyList.includes(sAggregationName)) {
320
+ var sSlot = this.getMetadata().getAggregationSlot(sAggregationName);
321
+ oElement.__slot = sSlot;
322
+ }
323
+ };
324
+
325
+ /**
326
+ * Removes the __slot property from the sap.ui.core.Element instance
327
+ *
328
+ * @param oElement
329
+ * @private
330
+ */
331
+ WebComponent.prototype._unsetSlot = function(oElement) {
332
+ if (oElement) {
333
+ delete oElement.__slot;
334
+ }
335
+ };
336
+
337
+ /**
338
+ * Set the slot for each newly added child control, based on its aggregation
339
+ *
340
+ * @override
341
+ * @param {string}
342
+ * sAggregationName name of an 0..1 aggregation
343
+ * @param {sap.ui.base.ManagedObject}
344
+ * oObject the managed object that is set as aggregated object
345
+ * @param {boolean}
346
+ * [bSuppressInvalidate] if true, this ManagedObject is not marked as changed
347
+ * @returns {this} Returns <code>this</code> to allow method chaining
348
+ * @throws {Error}
349
+ * @protected
350
+ */
351
+ WebComponent.prototype.setAggregation = function(sAggregationName, oObject, bSuppressInvalidate) {
352
+ var vResult = Control.prototype.setAggregation.apply(this, arguments);
353
+ this._setSlot(oObject, sAggregationName);
354
+ return vResult;
355
+ };
356
+
357
+ /**
358
+ * Set the slot for each newly added child control, based on its aggregation
359
+ *
360
+ * @override
361
+ * @param {string}
362
+ * sAggregationName the string identifying the aggregation the managed object <code>oObject</code>
363
+ * should be inserted into.
364
+ * @param {sap.ui.base.ManagedObject}
365
+ * oObject the ManagedObject to add; if empty, nothing is inserted.
366
+ * @param {int}
367
+ * iIndex the <code>0</code>-based index the managed object should be inserted at; for a negative
368
+ * value <code>iIndex</code>, <code>oObject</code> is inserted at position 0; for a value
369
+ * greater than the current size of the aggregation, <code>oObject</code> is inserted at
370
+ * the last position
371
+ * @param {boolean}
372
+ * [bSuppressInvalidate] if true, this ManagedObject as well as the added child are not marked as changed
373
+ * @returns {this} Returns <code>this</code> to allow method chaining
374
+ * @protected
375
+ */
376
+ WebComponent.prototype.insertAggregation = function(sAggregationName, oObject, iIndex, bSuppressInvalidate) {
377
+ var vResult = Control.prototype.insertAggregation.apply(this, arguments);
378
+ this._setSlot(oObject, sAggregationName);
379
+ return vResult;
380
+ };
381
+
382
+ /**
383
+ * Set the slot for each newly added child control, based on its aggregation
384
+ *
385
+ * @override
386
+ * @param {string}
387
+ * sAggregationName the string identifying the aggregation that <code>oObject</code> should be added to.
388
+ * @param {sap.ui.base.ManagedObject}
389
+ * oObject the object to add; if empty, nothing is added
390
+ * @param {boolean}
391
+ * [bSuppressInvalidate] if true, this ManagedObject as well as the added child are not marked as changed
392
+ * @returns {this} Returns <code>this</code> to allow method chaining
393
+ * @protected
394
+ */
395
+ WebComponent.prototype.addAggregation = function(sAggregationName, oObject, bSuppressInvalidate) {
396
+ var vResult = Control.prototype.addAggregation.apply(this, arguments);
397
+ this._setSlot(oObject, sAggregationName);
398
+ return vResult;
399
+ };
400
+
401
+ /**
402
+ * Remove the slot for each removed child control
403
+ *
404
+ * @override
405
+ * @param {string}
406
+ * sAggregationName the string identifying the aggregation that the given object should be removed from
407
+ * @param {int | string | sap.ui.base.ManagedObject}
408
+ * vObject the position or ID of the ManagedObject that should be removed or that ManagedObject itself;
409
+ * if <code>vObject</code> is invalid, a negative value or a value greater or equal than the current size
410
+ * of the aggregation, nothing is removed.
411
+ * @param {boolean}
412
+ * [bSuppressInvalidate] if true, this ManagedObject is not marked as changed
413
+ * @returns {sap.ui.base.ManagedObject|null} the removed object or <code>null</code>
414
+ * @protected
415
+ */
416
+ WebComponent.prototype.removeAggregation = function(sAggregationName, vObject, bSuppressInvalidate) {
417
+ var oChild = Control.prototype.removeAggregation.apply(this, arguments);
418
+ this._unsetSlot(oChild);
419
+ return oChild;
420
+ };
421
+
422
+ /**
423
+ * Remove the slot for each removed child control
424
+ *
425
+ * @override
426
+ * @param {string} sAggregationName
427
+ * Name of the aggregation to remove all objects from
428
+ * @param {boolean} [bSuppressInvalidate=false]
429
+ * If true, this <code>ManagedObject</code> is not marked as changed
430
+ * @returns {sap.ui.base.ManagedObject[]} An array of the removed elements (might be empty)
431
+ * @protected
432
+ */
433
+ WebComponent.prototype.removeAllAggregation = function(sAggregationName, bSuppressInvalidate) {
434
+ var aChildren = Control.prototype.removeAllAggregation.apply(this, arguments);
435
+ aChildren.forEach(function(oChild) {
436
+ this._unsetSlot(oChild);
437
+ }, this);
438
+
439
+ return aChildren;
440
+ };
441
+
442
+ /**
443
+ * @private
444
+ */
445
+ WebComponent.prototype.__onBeforeRenderingDelegate = function() {
446
+ this.__detachCustomEventsListeners();
447
+ };
448
+
449
+ /**
450
+ * @private
451
+ */
452
+ WebComponent.prototype.__onAfterRenderingDelegate = function() {
453
+ this.__attachCustomEventsListeners();
454
+ var oDomRef = this.getDomRef();
455
+ this.__updateObjectProperties(oDomRef);
456
+ window.customElements.whenDefined(oDomRef.localName).then(function() {
457
+ if (typeof oDomRef.attachInvalidate === "function") {
458
+ oDomRef.attachInvalidate(this.__onInvalidationBound);
459
+ }
460
+
461
+ if (oDomRef._individualSlot) {
462
+ this.__slot = oDomRef._individualSlot; // If the component creates individual slots for children, f.e. columns-3 or default-1, update the __slot property, otherwise RenderManager will set the normal slot name, f.e. columns or ""
463
+ }
464
+ }.bind(this));
465
+ };
466
+
467
+ /**
468
+ * Updates all object properties (can't be done via the renderer)
469
+ * @param oDomRef
470
+ * @private
471
+ */
472
+ WebComponent.prototype.__updateObjectProperties = function(oDomRef) {
473
+ var oAttrProperties = this.getMetadata().getPropertiesByMapping("property");
474
+ for (var sPropName in oAttrProperties) {
475
+ if (this.isPropertyInitial(sPropName)) {
476
+ continue; // do not set properties that were not explicitly set/bound
477
+ }
478
+
479
+ var oPropData = oAttrProperties[sPropName];
480
+ var vPropValue = oPropData.get(this);
481
+
482
+ if (oPropData.type === "object" || typeof vPropValue === "object") {
483
+ var sWebComponentPropName = oPropData._sMapTo ? oPropData._sMapTo : sPropName;
484
+ oDomRef[sWebComponentPropName] = vPropValue;
485
+ }
486
+ }
487
+ };
488
+
489
+ WebComponent.prototype.setBusy = function(bBusy) {
490
+ var bCurrentBusyState = this.getBusy();
491
+
492
+ this.setProperty("busy", bBusy, true);
493
+
494
+ if (bCurrentBusyState !== bBusy) {
495
+ if (bBusy) {
496
+ this.__busyIndicatorTimeout = setTimeout(function() {
497
+ this.setProperty("__isBusy", bBusy);
498
+ }.bind(this), this.getBusyIndicatorDelay());
499
+ } else {
500
+ this.setProperty("__isBusy", bBusy);
501
+ clearTimeout(this.__busyIndicatorTimeout);
502
+ }
503
+ }
504
+
505
+ return this;
506
+ };
507
+
508
+ /**
509
+ * Synchronize user-controlled properties (such as checked, value)
510
+ * @param oChangeInfo
511
+ * @private
512
+ */
513
+ WebComponent.prototype.__onInvalidation = function(oChangeInfo) {
514
+ if (oChangeInfo.type === "property") {
515
+ var sPropName = oChangeInfo.name;
516
+ var vNewValue = oChangeInfo.newValue;
517
+ var oPropData = this.getMetadata().getProperty(sPropName);
518
+ if (oPropData) {
519
+ this.setProperty(sPropName, vNewValue, true); // must suppress invalidation as this is intended to only sync the managed object state, not to trigger a rerender
520
+ }
521
+ }
522
+ };
523
+
524
+ WebComponent.prototype.__attachCustomEventsListeners = function() {
525
+ var oEvents = this.getMetadata().getEvents();
526
+ for (var sEventName in oEvents) {
527
+ var sCustomEventName = hyphenate(sEventName);
528
+ this.getDomRef().addEventListener(sCustomEventName, this.__handleCustomEventBound);
529
+ }
530
+ };
531
+
532
+ WebComponent.prototype.__detachCustomEventsListeners = function() {
533
+ var oDomRef = this.getDomRef();
534
+ if (!oDomRef) {
535
+ return;
536
+ }
537
+
538
+ var oEvents = this.getMetadata().getEvents();
539
+ for (var sEventName in oEvents) {
540
+ if (oEvents.hasOwnProperty(sEventName)) {
541
+ var sCustomEventName = hyphenate(sEventName);
542
+ oDomRef.removeEventListener(sCustomEventName, this.__handleCustomEventBound);
543
+ }
544
+ }
545
+ };
546
+
547
+ WebComponent.prototype.__handleCustomEvent = function(oEvent) {
548
+ var sCustomEventName = oEvent.type;
549
+ var sEventName = camelize(sCustomEventName);
550
+
551
+ // Prepare the event data object
552
+ var oEventData = this.__formatEventData(oEvent.detail);
553
+
554
+ // Finally fire the semantic event on the control instance
555
+ var oEventObj = this.getMetadata().getEvent(sEventName);
556
+ var bPrevented = !oEventObj.fire(this, oEventData);
557
+ if (bPrevented) {
558
+ oEvent.preventDefault();
559
+ }
560
+ };
561
+
562
+ WebComponent.prototype.__formatEventData = function(vDetail) {
563
+ // If the event data is an object, recursively convert all object dom element properties to control references
564
+ if (typeof vDetail === "object") {
565
+ return fnConvert(vDetail);
566
+ }
567
+
568
+ // If not an object, this is a DOM event such as click, just return an empty object
569
+ return {};
570
+ };
571
+
572
+ WebComponent.prototype.__callPublicMethod = function(name, args) {
573
+ if (!this.getDomRef()) {
574
+ throw new Error("Method called before custom element has been created by: " + this.getId());
575
+ }
576
+
577
+ var converted = Array.from(args).map(function(arg) { // convert any public method parameter that is a Control instance to a DOM Ref
578
+ if (arg instanceof Element) {
579
+ return arg.getDomRef();
580
+ }
581
+ return arg;
582
+ });
583
+
584
+ var vResult = this.getDomRef()[name].apply(this.getDomRef(), converted);
585
+ if (typeof vResult === "object") {
586
+ vResult = fnConvert(vResult);
587
+ }
588
+
589
+ return vResult;
590
+ };
591
+
592
+ WebComponent.prototype.__callPublicGetter = function(name) {
593
+ if (!this.getDomRef()) {
594
+ throw new Error("Getter called before custom element has been created by: " + this.getId());
595
+ }
596
+
597
+ var vResult = this.getDomRef()[name];
598
+ if (typeof vResult === "object") {
599
+ vResult = fnConvert(vResult);
600
+ }
601
+
602
+ return vResult;
603
+ };
604
+
605
+ WebComponent.prototype.destroy = function() {
606
+ var oDomRef = this.getDomRef();
607
+ this.__detachCustomEventsListeners();
608
+ if (oDomRef && typeof oDomRef.detachInvalidate === "function") {
609
+ oDomRef.detachInvalidate(this.__onInvalidationBound);
610
+ }
611
+
612
+ return Control.prototype.destroy.apply(this, arguments);
613
+ };
614
+
615
+ /**
616
+ * Maps the "enabled" property to the "disabled" attribute
617
+ * @param bEnabled
618
+ * @returns {boolean}
619
+ * @private
620
+ */
621
+ WebComponent.prototype._mapEnabled = function(bEnabled) {
622
+ return !bEnabled;
623
+ };
624
+
625
+ /**
626
+ * Maps the "textDirection" property to the "dir" attribute
627
+ * @param sTextDirection
628
+ * @returns {string}
629
+ * @private
630
+ */
631
+ WebComponent.prototype._mapTextDirection = function(sTextDirection) {
632
+ if (sTextDirection === TextDirection.Inherit) {
633
+ return null;
634
+ }
635
+
636
+ return sTextDirection.toLowerCase();
637
+ };
638
+
639
+ /**
640
+ * Generates a string containing the ID's from the association ariaLabelledBy.
641
+ * @param {string[]} aAriaLabelledBy an array of IDs associated with this control
642
+ * @returns {string} sAriaLabelledBy
643
+ */
644
+ WebComponent.prototype._getAriaLabelledByForRendering = function (aAriaLabelledBy) {
645
+ var aFilteredIds = LabelEnablement.getReferencingLabels(this);
646
+
647
+ if (Array.isArray(aAriaLabelledBy)) {
648
+ aAriaLabelledBy.forEach(function (sId) {
649
+ if (aFilteredIds.indexOf(sId) < 0) {
650
+ aFilteredIds.unshift(sId);
651
+ }
652
+ });
653
+ }
654
+
655
+ return aFilteredIds.join(" ");
656
+ };
657
+
658
+ return WebComponent;
659
+ });