@openui5/sap.ui.core 1.91.0 → 1.93.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/.eslintrc.json +37 -0
  2. package/.reuse/dep5 +46 -0
  3. package/THIRDPARTY.txt +59 -1
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +6 -2
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +1 -1
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +7 -4
  10. package/src/jquery.sap.stubs.js +0 -1
  11. package/src/sap/base/i18n/ResourceBundle.js +2 -2
  12. package/src/sap/base/security/encodeCSS.js +1 -0
  13. package/src/sap/base/security/encodeJS.js +1 -0
  14. package/src/sap/base/security/encodeURL.js +1 -0
  15. package/src/sap/base/security/encodeXML.js +2 -0
  16. package/src/sap/base/util/LoaderExtensions.js +1 -1
  17. package/src/sap/base/util/Properties.js +4 -1
  18. package/src/sap/base/util/isEmptyObject.js +1 -2
  19. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  20. package/src/sap/base/util/restricted/_castArray.js +1 -1
  21. package/src/sap/base/util/restricted/_compact.js +1 -1
  22. package/src/sap/base/util/restricted/_curry.js +1 -1
  23. package/src/sap/base/util/restricted/_debounce.js +1 -1
  24. package/src/sap/base/util/restricted/_difference.js +1 -1
  25. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  26. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  28. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  29. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  30. package/src/sap/base/util/restricted/_flatten.js +1 -1
  31. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  32. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  33. package/src/sap/base/util/restricted/_intersection.js +1 -1
  34. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  35. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  36. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  37. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  38. package/src/sap/base/util/restricted/_isNil.js +1 -1
  39. package/src/sap/base/util/restricted/_max.js +1 -1
  40. package/src/sap/base/util/restricted/_merge.js +1 -1
  41. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  42. package/src/sap/base/util/restricted/_min.js +1 -1
  43. package/src/sap/base/util/restricted/_omit.js +1 -1
  44. package/src/sap/base/util/restricted/_pick.js +1 -1
  45. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  46. package/src/sap/base/util/restricted/_throttle.js +1 -1
  47. package/src/sap/base/util/restricted/_toArray.js +1 -1
  48. package/src/sap/base/util/restricted/_union.js +1 -1
  49. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  50. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  51. package/src/sap/base/util/restricted/_uniq.js +1 -1
  52. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  53. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  54. package/src/sap/base/util/restricted/_without.js +1 -1
  55. package/src/sap/base/util/restricted/_xor.js +1 -1
  56. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  57. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  58. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  59. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  60. package/src/sap/ui/Device.js +10 -10
  61. package/src/sap/ui/Global.js +4 -4
  62. package/src/sap/ui/VersionInfo.js +1 -0
  63. package/src/sap/ui/base/DataType.js +1 -0
  64. package/src/sap/ui/base/Event.js +1 -1
  65. package/src/sap/ui/base/EventProvider.js +1 -1
  66. package/src/sap/ui/base/Interface.js +1 -1
  67. package/src/sap/ui/base/ManagedObject.js +121 -18
  68. package/src/sap/ui/base/ManagedObjectMetadata.js +13 -4
  69. package/src/sap/ui/base/Metadata.js +1 -1
  70. package/src/sap/ui/base/Object.js +1 -1
  71. package/src/sap/ui/base/ObjectPool.js +1 -1
  72. package/src/sap/ui/core/.library +4 -2
  73. package/src/sap/ui/core/BusyIndicator.js +1 -1
  74. package/src/sap/ui/core/BusyIndicatorUtils.js +4 -1
  75. package/src/sap/ui/core/Component.js +144 -43
  76. package/src/sap/ui/core/ComponentContainer.js +51 -2
  77. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  78. package/src/sap/ui/core/ComponentSupport.js +1 -1
  79. package/src/sap/ui/core/Configuration.js +2 -1
  80. package/src/sap/ui/core/Control.js +1 -1
  81. package/src/sap/ui/core/Core.js +20 -22
  82. package/src/sap/ui/core/CustomData.js +1 -1
  83. package/src/sap/ui/core/CustomizingConfiguration.js +2 -2
  84. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  85. package/src/sap/ui/core/Element.js +1 -1
  86. package/src/sap/ui/core/ElementMetadata.js +1 -3
  87. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  88. package/src/sap/ui/core/EventBus.js +1 -1
  89. package/src/sap/ui/core/ExtensionPoint.js +59 -16
  90. package/src/sap/ui/core/Fragment.js +3 -3
  91. package/src/sap/ui/core/HTML.js +1 -1
  92. package/src/sap/ui/core/History.js +1 -1
  93. package/src/sap/ui/core/Icon.js +1 -1
  94. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  95. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  96. package/src/sap/ui/core/InvisibleMessage.js +9 -1
  97. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  98. package/src/sap/ui/core/InvisibleText.js +1 -1
  99. package/src/sap/ui/core/Item.js +1 -1
  100. package/src/sap/ui/core/LabelEnablement.js +1 -1
  101. package/src/sap/ui/core/LayoutData.js +1 -1
  102. package/src/sap/ui/core/ListItem.js +1 -1
  103. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  104. package/src/sap/ui/core/Locale.js +1 -1
  105. package/src/sap/ui/core/LocaleData.js +15 -1328
  106. package/src/sap/ui/core/Manifest.js +124 -69
  107. package/src/sap/ui/core/Message.js +1 -1
  108. package/src/sap/ui/core/Patcher.js +143 -153
  109. package/src/sap/ui/core/Placeholder.js +173 -0
  110. package/src/sap/ui/core/Popup.js +29 -5
  111. package/src/sap/ui/core/RenderManager.js +344 -104
  112. package/src/sap/ui/core/Renderer.js +1 -1
  113. package/src/sap/ui/core/ResizeHandler.js +1 -1
  114. package/src/sap/ui/core/ScrollBar.js +1 -1
  115. package/src/sap/ui/core/SeparatorItem.js +1 -1
  116. package/src/sap/ui/core/ThemeCheck.js +14 -62
  117. package/src/sap/ui/core/Title.js +1 -1
  118. package/src/sap/ui/core/TooltipBase.js +1 -1
  119. package/src/sap/ui/core/UIArea.js +6 -3
  120. package/src/sap/ui/core/UIComponent.js +46 -23
  121. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  122. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  123. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  124. package/src/sap/ui/core/XMLComposite.js +3 -5
  125. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  126. package/src/sap/ui/core/XMLTemplateProcessor.js +5 -6
  127. package/src/sap/ui/core/cldr/en.json +1 -0
  128. package/src/sap/ui/core/date/UniversalDate.js +4 -2
  129. package/src/sap/ui/core/delegate/ItemNavigation.js +4 -4
  130. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  131. package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
  132. package/src/sap/ui/core/dnd/DragDropBase.js +2 -9
  133. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  134. package/src/sap/ui/core/dnd/DragInfo.js +41 -1
  135. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  136. package/src/sap/ui/core/format/DateFormat.js +4 -2
  137. package/src/sap/ui/core/format/NumberFormat.js +3 -0
  138. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  139. package/src/sap/ui/core/library.js +26 -4
  140. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  141. package/src/sap/ui/core/message/Message.js +1 -1
  142. package/src/sap/ui/core/message/MessageManager.js +4 -2
  143. package/src/sap/ui/core/message/MessageParser.js +1 -1
  144. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  145. package/src/sap/ui/core/messagebundle_cs.properties +1 -1
  146. package/src/sap/ui/core/messagebundle_ms.properties +1 -1
  147. package/src/sap/ui/core/messagebundle_pt.properties +6 -6
  148. package/src/sap/ui/core/messagebundle_tr.properties +1 -1
  149. package/src/sap/ui/core/mvc/Controller.js +146 -8
  150. package/src/sap/ui/core/mvc/HTMLView.js +3 -1
  151. package/src/sap/ui/core/mvc/JSONView.js +7 -5
  152. package/src/sap/ui/core/mvc/JSView.js +4 -2
  153. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  154. package/src/sap/ui/core/mvc/View.js +145 -68
  155. package/src/sap/ui/core/mvc/ViewType.js +2 -0
  156. package/src/sap/ui/core/mvc/XMLView.js +13 -9
  157. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  158. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  159. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  160. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  161. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  162. package/src/sap/ui/core/routing/HashChangerBase.js +9 -2
  163. package/src/sap/ui/core/routing/History.js +188 -87
  164. package/src/sap/ui/core/routing/Route.js +10 -1
  165. package/src/sap/ui/core/routing/Router.js +8 -5
  166. package/src/sap/ui/core/routing/RouterHashChanger.js +26 -16
  167. package/src/sap/ui/core/routing/TargetCache.js +19 -8
  168. package/src/sap/ui/core/routing/Targets.js +29 -3
  169. package/src/sap/ui/core/routing/async/Route.js +9 -1
  170. package/src/sap/ui/core/routing/async/Target.js +249 -85
  171. package/src/sap/ui/core/routing/async/TargetCache.js +9 -7
  172. package/src/sap/ui/core/routing/async/Targets.js +4 -2
  173. package/src/sap/ui/core/routing/sync/Target.js +15 -0
  174. package/src/sap/ui/core/rules/App.support.js +36 -2
  175. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  176. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  177. package/src/sap/ui/core/service/Service.js +1 -1
  178. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  179. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  180. package/src/sap/ui/core/support/InteractionTree.css +0 -14
  181. package/src/sap/ui/core/support/Plugin.js +1 -1
  182. package/src/sap/ui/core/support/RuleEngineOpaExtension.js +0 -2
  183. package/src/sap/ui/core/support/Support.js +1 -1
  184. package/src/sap/ui/core/support/TimelineOverview.css +0 -35
  185. package/src/sap/ui/core/support/controls/ObjectViewer.js +5 -9
  186. package/src/sap/ui/core/support/controls/TreeViewer.js +0 -1
  187. package/src/sap/ui/core/support/interactionSlider.css +0 -3
  188. package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
  189. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  190. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  191. package/src/sap/ui/core/support/plugins/MessageTest.js +1 -1
  192. package/src/sap/ui/core/support/plugins/Performance.js +2 -1
  193. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  194. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  195. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  196. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -3
  197. package/src/sap/ui/core/support/support.css +4 -164
  198. package/src/sap/ui/core/support/trace/E2eTraceLib.js +3 -3
  199. package/src/sap/ui/core/support/usage/EventBroadcaster.js +0 -22
  200. package/src/sap/ui/core/themes/base/BlindLayer.less +0 -2
  201. package/src/sap/ui/core/themes/base/BrowserScrollbar.less +0 -9
  202. package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +5 -5
  203. package/src/sap/ui/core/themes/base/SAP-icons.css +2 -0
  204. package/src/sap/ui/core/themes/base/SAP-icons.less +10 -0
  205. package/src/sap/ui/core/themes/base/TechnicalInfo.less +0 -1
  206. package/src/sap/ui/core/themes/base/base.less +569 -414
  207. package/src/sap/ui/core/themes/base/global.less +38 -0
  208. package/src/sap/ui/core/themes/base/library.source.less +1 -2
  209. package/src/sap/ui/core/themes/base/shared.less +1 -1
  210. package/src/sap/ui/core/themes/sap_hcb/global.less +34 -0
  211. package/src/sap/ui/core/theming/Parameters.js +222 -60
  212. package/src/sap/ui/core/theming/ThemeHelper.js +94 -0
  213. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  214. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  215. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  216. package/src/sap/ui/core/tmpl/Template.js +2 -1
  217. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  218. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  219. package/src/sap/ui/core/util/Export.js +1 -1
  220. package/src/sap/ui/core/util/ExportCell.js +1 -1
  221. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  222. package/src/sap/ui/core/util/ExportRow.js +1 -1
  223. package/src/sap/ui/core/util/ExportType.js +1 -1
  224. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  225. package/src/sap/ui/core/util/File.js +1 -1
  226. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  227. package/src/sap/ui/core/util/MockServer.js +27 -7
  228. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  229. package/src/sap/ui/core/util/XMLPreprocessor.js +2 -2
  230. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +18 -0
  231. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  232. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  233. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  234. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  235. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  236. package/src/sap/ui/core/util/serializer/delegate/HTML.js +2 -2
  237. package/src/sap/ui/core/util/serializer/delegate/XML.js +2 -2
  238. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  239. package/src/sap/ui/core/ws/SapPcpWebSocket.js +2 -1
  240. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  241. package/src/sap/ui/debug/ControlTree.js +1 -1
  242. package/src/sap/ui/debug/DebugEnv.js +1 -1
  243. package/src/sap/ui/debug/PropertyList.js +1 -1
  244. package/src/sap/ui/dom/jquery/zIndex.js +3 -3
  245. package/src/sap/ui/events/jquery/EventSimulation.js +7 -6
  246. package/src/sap/ui/events/jquery/EventTriggerHook.js +1 -1
  247. package/src/sap/ui/model/Binding.js +7 -3
  248. package/src/sap/ui/model/ClientModel.js +1 -1
  249. package/src/sap/ui/model/CompositeBinding.js +1 -1
  250. package/src/sap/ui/model/CompositeDataState.js +1 -1
  251. package/src/sap/ui/model/CompositeType.js +1 -1
  252. package/src/sap/ui/model/Context.js +31 -11
  253. package/src/sap/ui/model/DataState.js +1 -1
  254. package/src/sap/ui/model/ListBinding.js +19 -0
  255. package/src/sap/ui/model/MetaModel.js +1 -1
  256. package/src/sap/ui/model/Model.js +3 -3
  257. package/src/sap/ui/model/SelectionModel.js +5 -1
  258. package/src/sap/ui/model/SimpleType.js +1 -1
  259. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  260. package/src/sap/ui/model/Type.js +1 -1
  261. package/src/sap/ui/model/analytics/AnalyticalBinding.js +36 -45
  262. package/src/sap/ui/model/analytics/odata4analytics.js +31 -31
  263. package/src/sap/ui/model/base/ManagedObjectModel.js +11 -1
  264. package/src/sap/ui/model/json/JSONModel.js +1 -1
  265. package/src/sap/ui/model/message/MessageModel.js +1 -1
  266. package/src/sap/ui/model/odata/AnnotationParser.js +23 -18
  267. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  268. package/src/sap/ui/model/odata/ODataListBinding.js +1 -0
  269. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  270. package/src/sap/ui/model/odata/ODataMetaModel.js +52 -40
  271. package/src/sap/ui/model/odata/ODataMetadata.js +3 -3
  272. package/src/sap/ui/model/odata/ODataModel.js +6 -6
  273. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +1 -1
  274. package/src/sap/ui/model/odata/ODataUtils.js +126 -0
  275. package/src/sap/ui/model/odata/_AnnotationHelperBasics.js +30 -27
  276. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  277. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  278. package/src/sap/ui/model/odata/type/Currency.js +7 -2
  279. package/src/sap/ui/model/odata/type/Date.js +1 -1
  280. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  281. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  282. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  283. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  284. package/src/sap/ui/model/odata/type/Double.js +1 -1
  285. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  286. package/src/sap/ui/model/odata/type/Int.js +1 -1
  287. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  288. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  289. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  290. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  291. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  292. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  293. package/src/sap/ui/model/odata/type/Single.js +1 -1
  294. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  295. package/src/sap/ui/model/odata/type/String.js +3 -1
  296. package/src/sap/ui/model/odata/type/Time.js +1 -1
  297. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  298. package/src/sap/ui/model/odata/type/Unit.js +7 -2
  299. package/src/sap/ui/model/odata/type/UnitMixin.js +20 -7
  300. package/src/sap/ui/model/odata/v2/Context.js +165 -0
  301. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  302. package/src/sap/ui/model/odata/v2/ODataContextBinding.js +19 -5
  303. package/src/sap/ui/model/odata/v2/ODataListBinding.js +20 -79
  304. package/src/sap/ui/model/odata/v2/ODataModel.js +75 -53
  305. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +55 -41
  306. package/src/sap/ui/model/odata/v4/Context.js +48 -15
  307. package/src/sap/ui/model/odata/v4/ODataBinding.js +89 -9
  308. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +87 -21
  309. package/src/sap/ui/model/odata/v4/ODataListBinding.js +72 -50
  310. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +8 -8
  311. package/src/sap/ui/model/odata/v4/ODataModel.js +109 -171
  312. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +34 -67
  313. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +18 -9
  314. package/src/sap/ui/model/odata/v4/ODataUtils.js +1 -1
  315. package/src/sap/ui/model/odata/v4/SubmitMode.js +3 -3
  316. package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
  317. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +17 -16
  318. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +5 -1
  319. package/src/sap/ui/model/odata/v4/lib/_Cache.js +86 -117
  320. package/src/sap/ui/model/odata/v4/lib/{_GrandTotalHelper.js → _ConcatHelper.js} +34 -27
  321. package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +2 -2
  322. package/src/sap/ui/model/odata/v4/lib/_Helper.js +122 -7
  323. package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +4 -4
  324. package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +2 -2
  325. package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +25 -74
  326. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +49 -12
  327. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +7 -7
  328. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  329. package/src/sap/ui/model/type/Boolean.js +1 -1
  330. package/src/sap/ui/model/type/Currency.js +1 -1
  331. package/src/sap/ui/model/type/Date.js +1 -1
  332. package/src/sap/ui/model/type/DateInterval.js +3 -3
  333. package/src/sap/ui/model/type/DateTime.js +1 -1
  334. package/src/sap/ui/model/type/DateTimeInterval.js +3 -3
  335. package/src/sap/ui/model/type/FileSize.js +1 -1
  336. package/src/sap/ui/model/type/Float.js +1 -1
  337. package/src/sap/ui/model/type/Integer.js +1 -1
  338. package/src/sap/ui/model/type/String.js +1 -1
  339. package/src/sap/ui/model/type/Time.js +1 -1
  340. package/src/sap/ui/model/type/TimeInterval.js +3 -3
  341. package/src/sap/ui/model/type/Unit.js +1 -1
  342. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  343. package/src/sap/ui/performance/Measurement.js +3 -5
  344. package/src/sap/ui/performance/trace/FESR.js +2 -1
  345. package/src/sap/ui/performance/trace/Interaction.js +11 -9
  346. package/src/sap/ui/qunit/QUnitUtils.js +1 -1
  347. package/src/sap/ui/qunit/qunit-coverage.js +1 -0
  348. package/src/sap/ui/qunit/qunit-junit.js +1 -0
  349. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  350. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  351. package/src/sap/ui/security/FrameOptions.js +2 -1
  352. package/src/sap/ui/test/Opa5.js +1 -1
  353. package/src/sap/ui/test/OpaBuilder.js +1 -0
  354. package/src/sap/ui/test/TestUtils.js +17 -30
  355. package/src/sap/ui/test/_BrowserLogCollector.js +1 -0
  356. package/src/sap/ui/test/actions/Action.js +1 -1
  357. package/src/sap/ui/test/launchers/componentLauncher.js +2 -1
  358. package/src/sap/ui/test/opaQunit.js +6 -9
  359. package/src/sap/ui/test/pipelines/MatcherPipeline.js +1 -1
  360. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +4 -4
  361. package/src/sap/ui/test/starter/_utils.js +6 -0
  362. package/src/sap/ui/test/starter/createSuite.js +1 -1
  363. package/src/sap/ui/thirdparty/IPv6.js +2 -2
  364. package/src/sap/ui/thirdparty/SecondLevelDomains.js +2 -2
  365. package/src/sap/ui/thirdparty/URI.js +14 -5
  366. package/src/sap/ui/thirdparty/URITemplate.js +2 -2
  367. package/src/sap/ui/thirdparty/caja-html-sanitizer.js +1 -1
  368. package/src/sap/ui/thirdparty/crossroads.js +10 -2
  369. package/src/sap/ui/util/Mobile.js +10 -7
  370. package/src/sap/ui/util/Storage.js +1 -1
  371. package/src/ui5loader-autoconfig.js +1 -1
  372. package/src/ui5loader.js +24 -6
  373. package/src/sap/ui/model/odata/v4/.eslintrc +0 -6
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_min
11
11
  * @author SAP SE
12
12
  * @since 1.71
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_omit
11
11
  * @author SAP SE
12
12
  * @since 1.71
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_pick
11
11
  * @author SAP SE
12
12
  * @since 1.71
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_pickBy
11
11
  * @author SAP SE
12
12
  * @since 1.71
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_throttle
11
11
  * @author SAP SE
12
12
  * @since 1.71
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_toArray
11
11
  * @author SAP SE
12
12
  * @since 1.80
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_union
11
11
  * @author SAP SE
12
12
  * @since 1.81
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_unionBy
11
11
  * @author SAP SE
12
12
  * @since 1.81
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_unionWith
11
11
  * @author SAP SE
12
12
  * @since 1.81
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_uniq
11
11
  * @author SAP SE
12
12
  * @since 1.71
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_uniqBy
11
11
  * @author SAP SE
12
12
  * @since 1.71
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_uniqWith
11
11
  * @author SAP SE
12
12
  * @since 1.71
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_without
11
11
  * @author SAP SE
12
12
  * @since 1.80
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_xor
11
11
  * @author SAP SE
12
12
  * @since 1.80
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_xorBy
11
11
  * @author SAP SE
12
12
  * @since 1.80
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_xorWith
11
11
  * @author SAP SE
12
12
  * @since 1.80
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_zipObject
11
11
  * @author SAP SE
12
12
  * @since 1.81
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -10,7 +10,7 @@
10
10
  * @alias module:sap/base/util/restricted/_zipObjectDeep
11
11
  * @author SAP SE
12
12
  * @since 1.81
13
- * @version 1.91.0
13
+ * @version 1.93.2
14
14
  * @private
15
15
  * @ui5-restricted
16
16
  */
@@ -11,7 +11,7 @@
11
11
  * This API is independent from any other part of the UI5 framework. This allows it to be loaded beforehand, if it is needed, to create the UI5 bootstrap
12
12
  * dynamically depending on the capabilities of the browser or device.
13
13
  *
14
- * @version 1.91.0
14
+ * @version 1.93.2
15
15
  * @namespace
16
16
  * @name sap.ui.Device
17
17
  * @public
@@ -32,7 +32,7 @@ if (typeof window.sap.ui !== "object") {
32
32
 
33
33
  //Skip initialization if API is already available
34
34
  if (typeof window.sap.ui.Device === "object" || typeof window.sap.ui.Device === "function") {
35
- var apiVersion = "1.91.0";
35
+ var apiVersion = "1.93.2";
36
36
  window.sap.ui.Device._checkAPIVersion(apiVersion);
37
37
  return;
38
38
  }
@@ -105,7 +105,7 @@ if (typeof window.sap.ui !== "object") {
105
105
 
106
106
  //Only used internal to make clear when Device API is loaded in wrong version
107
107
  Device._checkAPIVersion = function(sVersion) {
108
- var v = "1.91.0";
108
+ var v = "1.93.2";
109
109
  if (v != sVersion) {
110
110
  oLogger.log(WARNING, "Device API version differs: " + v + " <-> " + sVersion);
111
111
  }
@@ -177,7 +177,7 @@ if (typeof window.sap.ui !== "object") {
177
177
  *
178
178
  * @see sap.ui.Device.os.OS
179
179
  * @name sap.ui.Device.os.name
180
- * @type String
180
+ * @type string
181
181
  * @public
182
182
  */
183
183
  /**
@@ -186,7 +186,7 @@ if (typeof window.sap.ui !== "object") {
186
186
  * Might be empty if no version can be determined.
187
187
  *
188
188
  * @name sap.ui.Device.os.versionStr
189
- * @type String
189
+ * @type string
190
190
  * @public
191
191
  */
192
192
  /**
@@ -463,7 +463,7 @@ if (typeof window.sap.ui !== "object") {
463
463
  *
464
464
  * @see sap.ui.Device.browser.BROWSER
465
465
  * @name sap.ui.Device.browser.name
466
- * @type String
466
+ * @type string
467
467
  * @public
468
468
  */
469
469
  /**
@@ -472,7 +472,7 @@ if (typeof window.sap.ui !== "object") {
472
472
  * Might be empty if no version can be determined.
473
473
  *
474
474
  * @name sap.ui.Device.browser.versionStr
475
- * @type String
475
+ * @type string
476
476
  * @public
477
477
  */
478
478
  /**
@@ -573,7 +573,7 @@ if (typeof window.sap.ui !== "object") {
573
573
  *
574
574
  * @see sap.ui.Device.browser.webkit
575
575
  * @name sap.ui.Device.browser.webkitVersion
576
- * @type String
576
+ * @type string
577
577
  * @since 1.20.0
578
578
  * @private
579
579
  */
@@ -1560,8 +1560,8 @@ if (typeof window.sap.ui !== "object") {
1560
1560
  var isWin7 = Device.os.windows && Device.os.version === 7;
1561
1561
 
1562
1562
  var oSystem = {};
1563
- oSystem.tablet = !!(((Device.support.touch && !isWin7) || isWin8Upwards || !!simMobileOnDesktop) && bTabletDetected);
1564
- oSystem.phone = !!(((Device.support.touch && !isWin7) || !!simMobileOnDesktop) && !bTabletDetected);
1563
+ oSystem.tablet = !!(((Device.support.touch && !isWin7) || isWin8Upwards || simMobileOnDesktop) && bTabletDetected);
1564
+ oSystem.phone = !!(((Device.support.touch && !isWin7) || simMobileOnDesktop) && !bTabletDetected);
1565
1565
  oSystem.desktop = !!((!oSystem.tablet && !oSystem.phone) || isWin8Upwards || isWin7 || Device.os.linux || Device.os.macintosh);
1566
1566
  oSystem.combi = oSystem.desktop && oSystem.tablet;
1567
1567
  oSystem.SYSTEMTYPE = SYSTEMTYPE;
@@ -18,7 +18,7 @@
18
18
  * sap.ui.lazyRequire("sap.ui.core.Control");
19
19
  * sap.ui.lazyRequire("sap.ui.commons.Button");
20
20
  *
21
- * @version 1.91.0
21
+ * @version 1.93.2
22
22
  * @author SAP SE
23
23
  * @public
24
24
  */
@@ -48,7 +48,7 @@ sap.ui.define([
48
48
  * The <code>sap</code> namespace is automatically registered with the
49
49
  * OpenAjax hub if it exists.
50
50
  *
51
- * @version 1.91.0
51
+ * @version 1.93.2
52
52
  * @namespace
53
53
  * @public
54
54
  * @name sap
@@ -61,7 +61,7 @@ sap.ui.define([
61
61
  * The <code>sap.ui</code> namespace is the central OpenAjax compliant entry
62
62
  * point for UI related JavaScript functionality provided by SAP.
63
63
  *
64
- * @version 1.91.0
64
+ * @version 1.93.2
65
65
  * @namespace
66
66
  * @name sap.ui
67
67
  * @public
@@ -75,7 +75,7 @@ sap.ui.define([
75
75
  * The version of the SAP UI Library
76
76
  * @type string
77
77
  */
78
- version: "1.91.0",
78
+ version: "1.93.2",
79
79
  buildinfo : { lastchange : "${lastchange}", buildtime : "${buildtime}" }
80
80
  });
81
81
 
@@ -217,6 +217,7 @@ sap.ui.define(['sap/base/util/LoaderExtensions'], function (LoaderExtensions) {
217
217
 
218
218
  mKnownComponents[sComponentName] = {
219
219
  library: oComponentInfo.library,
220
+ hasOwnPreload: oComponentInfo.hasOwnPreload || false,
220
221
  dependencies: []
221
222
  };
222
223
 
@@ -625,6 +625,7 @@ sap.ui.define([
625
625
  */
626
626
  DataType.registerInterfaceTypes = function(aTypes) {
627
627
  for (var i = 0; i < aTypes.length; i++) {
628
+ // eslint-disable-next-line no-new-wrappers
628
629
  ObjectPath.set(aTypes[i], mInterfaces[aTypes[i]] = new String(aTypes[i]));
629
630
  }
630
631
  };
@@ -23,7 +23,7 @@ sap.ui.define(['./Object', "sap/base/assert"],
23
23
  * @extends sap.ui.base.Object
24
24
  * @implements sap.ui.base.Poolable
25
25
  * @author SAP SE
26
- * @version 1.91.0
26
+ * @version 1.93.2
27
27
  * @alias sap.ui.base.Event
28
28
  * @public
29
29
  */
@@ -18,7 +18,7 @@ sap.ui.define(['./Event', './Object', './ObjectPool', "sap/base/assert"],
18
18
  * @abstract
19
19
  * @extends sap.ui.base.Object
20
20
  * @author SAP SE
21
- * @version 1.91.0
21
+ * @version 1.93.2
22
22
  * @public
23
23
  * @alias sap.ui.base.EventProvider
24
24
  */
@@ -31,7 +31,7 @@ sap.ui.define([], function() {
31
31
  * no internals of the class can be accessed.
32
32
  *
33
33
  * @author Malte Wedel, Daniel Brinkmann
34
- * @version 1.91.0
34
+ * @version 1.93.2
35
35
  * @param {sap.ui.base.Object} oObject
36
36
  * Object for which a facade should be created
37
37
  * @param {string[]} aMethods
@@ -266,7 +266,7 @@ sap.ui.define([
266
266
  *
267
267
  * @extends sap.ui.base.EventProvider
268
268
  * @author SAP SE
269
- * @version 1.91.0
269
+ * @version 1.93.2
270
270
  * @public
271
271
  * @alias sap.ui.base.ManagedObject
272
272
  */
@@ -1209,6 +1209,7 @@ sap.ui.define([
1209
1209
  break;
1210
1210
  case -1: // SPECIAL_SETTING
1211
1211
  // No assert
1212
+ break;
1212
1213
  default:
1213
1214
  break;
1214
1215
  }
@@ -2796,6 +2797,19 @@ sap.ui.define([
2796
2797
  this.iSuppressInvalidate++;
2797
2798
  }
2798
2799
 
2800
+ // Data Binding
2801
+ for (sName in this.mBindingInfos) {
2802
+ if (this.mBindingInfos[sName].factory) {
2803
+ this._detachAggregationBindingHandlers(sName);
2804
+ } else {
2805
+ this._detachPropertyBindingHandlers(sName);
2806
+ }
2807
+ }
2808
+
2809
+ for (sName in this.mObjectBindingInfos) {
2810
+ this._detachObjectBindingHandlers(sName);
2811
+ }
2812
+
2799
2813
  if (this.exit) {
2800
2814
  this.exit();
2801
2815
  }
@@ -3098,6 +3112,25 @@ sap.ui.define([
3098
3112
  oBinding.initialize();
3099
3113
  };
3100
3114
 
3115
+ /**
3116
+ * Detach all object binding event handler
3117
+ *
3118
+ * @param {string} sModelName Name of the model to detach the handler for.
3119
+ * @private
3120
+ */
3121
+ ManagedObject.prototype._detachObjectBindingHandlers = function(sModelName) {
3122
+ var oBindingInfo = this.mObjectBindingInfos[sModelName];
3123
+ if (oBindingInfo) {
3124
+ if (oBindingInfo.binding) {
3125
+ oBindingInfo.binding.detachChange(oBindingInfo.modelChangeHandler);
3126
+ oBindingInfo.binding.detachEvents(oBindingInfo.events);
3127
+ if (this.refreshDataState) {
3128
+ oBindingInfo.binding.detachAggregatedDataStateChange(oBindingInfo.dataStateChangeHandler);
3129
+ }
3130
+ }
3131
+ }
3132
+ };
3133
+
3101
3134
  /**
3102
3135
  * Removes the defined binding context of this object, all bindings will now resolve
3103
3136
  * relative to the parent context again.
@@ -3110,10 +3143,8 @@ sap.ui.define([
3110
3143
  var oBindingInfo = this.mObjectBindingInfos[sModelName];
3111
3144
  if (oBindingInfo) {
3112
3145
  if (oBindingInfo.binding) {
3113
- oBindingInfo.binding.detachChange(oBindingInfo.modelChangeHandler);
3114
- oBindingInfo.binding.detachEvents(oBindingInfo.events);
3115
- if (this.refreshDataState) {
3116
- oBindingInfo.binding.detachAggregatedDataStateChange(oBindingInfo.dataStateChangeHandler);
3146
+ if (!this._bIsBeingDestroyed) {
3147
+ this._detachObjectBindingHandlers(sModelName);
3117
3148
  }
3118
3149
  oBindingInfo.binding.destroy();
3119
3150
  }
@@ -3514,6 +3545,33 @@ sap.ui.define([
3514
3545
  }
3515
3546
  };
3516
3547
 
3548
+ /**
3549
+ * Detach all property binding event handler
3550
+ *
3551
+ * Note: The DataState event handler could not be detached here. This must happen after
3552
+ * the destroy call to correctly cleanup messages. We leave it in unbindProperty and
3553
+ * check for destroy state in the handler itself.
3554
+ *
3555
+ * @param {string} sName the name of the property
3556
+ * @private
3557
+ */
3558
+ ManagedObject.prototype._detachPropertyBindingHandlers = function(sName) {
3559
+ var oBindingInfo = this.mBindingInfos[sName],
3560
+ oBinding;
3561
+ if (oBindingInfo) {
3562
+ oBinding = oBindingInfo.binding;
3563
+ if (oBinding) {
3564
+ oBinding.detachChange(oBindingInfo.modelChangeHandler);
3565
+ oBinding.detachEvents(oBindingInfo.events);
3566
+ /* to reset messages on a control we need to detach the datastate handler after destroy,
3567
+ as binding destroy clears up validation messages */
3568
+ if (this.refreshDataState && this._bIsBeingDestroyed) {
3569
+ oBinding.detachAggregatedDataStateChange(oBindingInfo.dataStateChangeHandler);
3570
+ }
3571
+ }
3572
+ }
3573
+ };
3574
+
3517
3575
  /**
3518
3576
  * Unbind the property from the model
3519
3577
  *
@@ -3528,17 +3586,18 @@ sap.ui.define([
3528
3586
  if (oBindingInfo) {
3529
3587
  oBinding = oBindingInfo.binding;
3530
3588
  if (oBinding) {
3531
- oBinding.detachChange(oBindingInfo.modelChangeHandler);
3532
- oBinding.detachEvents(oBindingInfo.events);
3589
+ if (!this._bIsBeingDestroyed) {
3590
+ this._detachPropertyBindingHandlers(sName);
3591
+ }
3533
3592
  oBinding.destroy();
3534
3593
  /* to reset messages on a control we need to detach the datastate handler after destroy,
3535
3594
  as binding destroy clears up validation messages */
3536
- if (this.refreshDataState) {
3595
+ if (this.refreshDataState && !this._bIsBeingDestroyed) {
3537
3596
  oBinding.detachAggregatedDataStateChange(oBindingInfo.dataStateChangeHandler);
3538
3597
  }
3539
3598
  }
3540
3599
 
3541
- if (this._observer) {
3600
+ if (this._observer && !this._bIsBeingDestroyed) {
3542
3601
  this._observer.bindingChange(this,sName,"remove", this.mBindingInfos[sName], "property");
3543
3602
  }
3544
3603
 
@@ -3698,7 +3757,7 @@ sap.ui.define([
3698
3757
  * Name of the model to bind against; when <code>undefined</code> or omitted, the default model is used
3699
3758
  * @property {sap.ui.base.ManagedObject} [template]
3700
3759
  * The template to clone for each item in the aggregation; either a template or a factory must be given
3701
- * @property {boolean|undefined} [templateShareable=undefined]
3760
+ * @property {boolean} [templateShareable=undefined]
3702
3761
  * Whether the framework should assume that the application takes care of the lifecycle of the given
3703
3762
  * template; when set to <code>true</code>, the template can be used in multiple bindings, either in
3704
3763
  * parallel or over time, and the framework won't clone it when this <code>ManagedObject</code> is cloned;
@@ -3940,6 +3999,26 @@ sap.ui.define([
3940
3999
  }
3941
4000
  };
3942
4001
 
4002
+ /**
4003
+ * Detach all aggregation binding event handler
4004
+ *
4005
+ * @param {string} sName the name of the aggregation
4006
+ * @private
4007
+ */
4008
+ ManagedObject.prototype._detachAggregationBindingHandlers = function(sName) {
4009
+ var oBindingInfo = this.mBindingInfos[sName];
4010
+ if (oBindingInfo) {
4011
+ if (oBindingInfo.binding) {
4012
+ oBindingInfo.binding.detachChange(oBindingInfo.modelChangeHandler);
4013
+ oBindingInfo.binding.detachRefresh(oBindingInfo.modelRefreshHandler);
4014
+ oBindingInfo.binding.detachEvents(oBindingInfo.events);
4015
+ if (this.refreshDataState) {
4016
+ oBindingInfo.binding.detachAggregatedDataStateChange(oBindingInfo.dataStateChangeHandler);
4017
+ }
4018
+ }
4019
+ }
4020
+ };
4021
+
3943
4022
  /**
3944
4023
  * Unbind the aggregation from the model.
3945
4024
  *
@@ -3962,11 +4041,8 @@ sap.ui.define([
3962
4041
  oAggregationInfo = this.getMetadata().getAggregation(sName);
3963
4042
  if (oBindingInfo) {
3964
4043
  if (oBindingInfo.binding) {
3965
- oBindingInfo.binding.detachChange(oBindingInfo.modelChangeHandler);
3966
- oBindingInfo.binding.detachRefresh(oBindingInfo.modelRefreshHandler);
3967
- oBindingInfo.binding.detachEvents(oBindingInfo.events);
3968
- if (this.refreshDataState) {
3969
- oBindingInfo.binding.detachAggregatedDataStateChange(oBindingInfo.dataStateChangeHandler);
4044
+ if (!this._bIsBeingDestroyed) {
4045
+ this._detachAggregationBindingHandlers(sName);
3970
4046
  }
3971
4047
  oBindingInfo.binding.destroy();
3972
4048
  }
@@ -3979,8 +4055,7 @@ sap.ui.define([
3979
4055
  oBindingInfo.template._sapui_candidateForDestroy = true;
3980
4056
  }
3981
4057
  }
3982
-
3983
- if (this._observer) {
4058
+ if (this._observer && !this._bIsBeingDestroyed) {
3984
4059
  this._observer.bindingChange(this,sName,"remove", this.mBindingInfos[sName], "aggregation");
3985
4060
  }
3986
4061
  delete this.mBindingInfos[sName];
@@ -4868,7 +4943,7 @@ sap.ui.define([
4868
4943
  * Omitting the model name (or using the value <code>undefined</code>) is explicitly allowed and
4869
4944
  * refers to the default model.
4870
4945
  *
4871
- * @param {string|undefined} [sModelName] name of the model to be retrieved
4946
+ * @param {string} [sModelName] name of the model to be retrieved
4872
4947
  * @return {sap.ui.model.Model} oModel
4873
4948
  * @public
4874
4949
  */
@@ -5314,6 +5389,34 @@ sap.ui.define([
5314
5389
  this._onContextualSettingsChanged();
5315
5390
  };
5316
5391
 
5392
+ /**
5393
+ * Checks if an object's destruction has been started. During the
5394
+ * descruction of an object its ID is still registered, and child
5395
+ * objects could be still aggregated.
5396
+ * Creating another object with the same ID would lead to duplicate ID
5397
+ * issues.
5398
+ * To check if the destruction is finished, call <code>isDestroyed</code>.
5399
+ *
5400
+ * @return {boolean} Whether an object's destruction has been started
5401
+ * @since 1.93
5402
+ * @protected
5403
+ */
5404
+ ManagedObject.prototype.isDestroyStarted = function() {
5405
+ return !!this._bIsBeingDestroyed;
5406
+ };
5407
+
5408
+ /**
5409
+ * Returns whether this object is destroyed or not. A
5410
+ * destroyed object cannot be used anymore.
5411
+ *
5412
+ * @return {boolean} Whether the object is destroyed
5413
+ * @since 1.93
5414
+ * @public
5415
+ */
5416
+ ManagedObject.prototype.isDestroyed = function() {
5417
+ return !!this.bIsDestroyed;
5418
+ };
5419
+
5317
5420
  ManagedObject._defaultContextualSettings = {};
5318
5421
 
5319
5422
  return ManagedObject;
@@ -73,7 +73,7 @@ function(
73
73
  *
74
74
  *
75
75
  * @author Frank Weigel
76
- * @version 1.91.0
76
+ * @version 1.93.2
77
77
  * @since 0.8.6
78
78
  * @alias sap.ui.base.ManagedObjectMetadata
79
79
  * @extends sap.ui.base.Metadata
@@ -211,7 +211,10 @@ function(
211
211
  };
212
212
 
213
213
  Property.prototype.getType = function() {
214
- return this._oType || (this._oType = DataType.getType(this.type));
214
+ if (!this._oType) {
215
+ this._oType = DataType.getType(this.type);
216
+ }
217
+ return this._oType;
215
218
  };
216
219
 
217
220
  Property.prototype.getDefaultValue = function() {
@@ -323,7 +326,10 @@ function(
323
326
  };
324
327
 
325
328
  Aggregation.prototype.getType = function() {
326
- return this._oType || (this._oType = DataType.getType(this.type));
329
+ if (!this._oType) {
330
+ this._oType = DataType.getType(this.type);
331
+ }
332
+ return this._oType;
327
333
  };
328
334
 
329
335
  Aggregation.prototype.get = function(instance) {
@@ -704,7 +710,10 @@ function(
704
710
  };
705
711
 
706
712
  Association.prototype.getType = function() {
707
- return this._oType || (this._oType = DataType.getType(this.type));
713
+ if (!this._oType) {
714
+ this._oType = DataType.getType(this.type);
715
+ }
716
+ return this._oType;
708
717
  };
709
718
 
710
719
  Association.prototype.get = function(instance) {
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  *
27
27
  * @class Metadata for a class.
28
28
  * @author Frank Weigel
29
- * @version 1.91.0
29
+ * @version 1.93.2
30
30
  * @since 0.8.6
31
31
  * @public
32
32
  * @alias sap.ui.base.Metadata
@@ -26,7 +26,7 @@ sap.ui.define(['./Interface', './Metadata', "sap/base/Log"],
26
26
  * @class Base class for all SAPUI5 Objects.
27
27
  * @abstract
28
28
  * @author Malte Wedel
29
- * @version 1.91.0
29
+ * @version 1.93.2
30
30
  * @public
31
31
  * @alias sap.ui.base.Object
32
32
  * @throws {Error} When an instance of the class or its subclasses is created without the <code>new</code> operator.
@@ -59,7 +59,7 @@ sap.ui.define(['./Object'],
59
59
  *
60
60
  * @extends sap.ui.base.Object
61
61
  * @author SAP SE
62
- * @version 1.91.0
62
+ * @version 1.93.2
63
63
  * @alias sap.ui.base.ObjectPool
64
64
  * @public
65
65
  */