@openui5/sap.ui.core 1.105.1 → 1.107.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.
- package/.reuse/dep5 +20 -17
- package/THIRDPARTY.txt +31 -21
- package/package.json +1 -1
- package/src/jquery.sap.dom.js +10 -10
- package/src/jquery.sap.global.js +24 -216
- package/src/jquery.sap.history.js +1 -1
- package/src/jquery.sap.properties.js +2 -2
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +4 -4
- package/src/jquery.sap.ui.js +5 -7
- package/src/sap/base/i18n/ResourceBundle.js +7 -11
- package/src/sap/base/util/LoaderExtensions.js +6 -6
- package/src/sap/base/util/ObjectPath.js +1 -1
- package/src/sap/base/util/Properties.js +1 -1
- package/src/sap/base/util/fetch.js +8 -10
- package/src/sap/base/util/mixedFetch.js +1 -1
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/base/util/syncFetch.js +9 -16
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +7 -14
- package/src/sap/ui/VersionInfo.js +57 -54
- package/src/sap/ui/base/BindingInfo.js +198 -0
- package/src/sap/ui/base/DataType.js +5 -5
- package/src/sap/ui/base/Event.js +2 -2
- package/src/sap/ui/base/EventProvider.js +2 -2
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +209 -979
- package/src/sap/ui/base/ManagedObjectMetadata.js +6 -6
- package/src/sap/ui/base/ManagedObjectRegistry.js +4 -3
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +13 -9
- package/src/sap/ui/core/AppCacheBuster.js +3 -4
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/BusyIndicatorUtils.js +5 -6
- package/src/sap/ui/core/CalendarType.js +0 -1
- package/src/sap/ui/core/Component.js +16 -14
- package/src/sap/ui/core/ComponentContainer.js +6 -5
- package/src/sap/ui/core/ComponentMetadata.js +5 -12
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +525 -336
- package/src/sap/ui/core/Control.js +7 -7
- package/src/sap/ui/core/Core.js +102 -422
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +65 -9
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/FocusHandler.js +79 -9
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -2
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -2
- package/src/sap/ui/core/IconPool.js +8 -8
- package/src/sap/ui/core/IndicationColorSupport.js +2 -2
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -2
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +5 -5
- package/src/sap/ui/core/Item.js +1 -2
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -2
- package/src/sap/ui/core/ListItem.js +1 -2
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -2
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +15 -13
- package/src/sap/ui/core/Manifest.js +8 -6
- package/src/sap/ui/core/Message.js +4 -6
- package/src/sap/ui/core/Popup.js +63 -6
- package/src/sap/ui/core/RenderManager.js +13 -5
- package/src/sap/ui/core/Renderer.js +5 -4
- package/src/sap/ui/core/Rendering.js +251 -0
- package/src/sap/ui/core/ResizeHandler.js +7 -7
- package/src/sap/ui/core/ScrollBar.js +6 -9
- package/src/sap/ui/core/ScrollBarRenderer.js +3 -3
- package/src/sap/ui/core/SeparatorItem.js +1 -2
- package/src/sap/ui/core/Title.js +1 -2
- package/src/sap/ui/core/TooltipBase.js +12 -14
- package/src/sap/ui/core/UIArea.js +396 -129
- package/src/sap/ui/core/UIComponent.js +3 -4
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +2 -2
- package/src/sap/ui/core/VariantLayoutData.js +1 -2
- package/src/sap/ui/core/XMLComposite.js +2 -2
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +12 -10
- package/src/sap/ui/core/_ConfigurationProvider.js +187 -0
- package/src/sap/ui/core/cache/CacheManager.js +9 -8
- package/src/sap/ui/core/cache/LRUPersistentCache.js +4 -4
- package/src/sap/ui/core/cldr/es_BO.json +3 -3
- package/src/sap/ui/core/cldr/es_CL.json +3 -3
- package/src/sap/ui/core/cldr/es_MX.json +3 -3
- package/src/sap/ui/core/cldr/es_PE.json +3 -3
- package/src/sap/ui/core/cldr/es_UY.json +3 -3
- package/src/sap/ui/core/cldr/es_VE.json +2 -2
- package/src/sap/ui/core/date/Islamic.js +4 -4
- package/src/sap/ui/core/date/UniversalDate.js +8 -8
- package/src/sap/ui/core/date/UniversalDateUtils.js +3 -3
- package/src/sap/ui/core/delegate/ItemNavigation.js +5 -5
- package/src/sap/ui/core/delegate/ScrollEnablement.js +7 -6
- package/src/sap/ui/core/dnd/DragAndDrop.js +14 -9
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -2
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -2
- package/src/sap/ui/core/dnd/DragInfo.js +1 -2
- package/src/sap/ui/core/dnd/DropInfo.js +1 -2
- package/src/sap/ui/core/format/DateFormat.js +14 -7
- package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +0 -1
- package/src/sap/ui/core/format/FileSizeFormat.js +4 -3
- package/src/sap/ui/core/format/ListFormat.js +4 -3
- package/src/sap/ui/core/format/NumberFormat.js +7 -6
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +7 -6
- package/src/sap/ui/core/library.js +3 -55
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +13 -23
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/messagebundle_fr.properties +1 -1
- package/src/sap/ui/core/mvc/Controller.js +8 -3
- package/src/sap/ui/core/mvc/EventHandlerResolver.js +5 -3
- package/src/sap/ui/core/mvc/HTMLView.js +1 -2
- package/src/sap/ui/core/mvc/JSONView.js +1 -2
- package/src/sap/ui/core/mvc/JSView.js +2 -3
- package/src/sap/ui/core/mvc/TemplateView.js +1 -2
- package/src/sap/ui/core/mvc/View.js +21 -20
- package/src/sap/ui/core/mvc/ViewType.js +0 -1
- package/src/sap/ui/core/mvc/XMLView.js +18 -18
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/Router.js +1 -1
- package/src/sap/ui/core/routing/async/Target.js +4 -3
- package/src/sap/ui/core/rules/App.support.js +11 -13
- package/src/sap/ui/core/rules/Config.support.js +19 -17
- package/src/sap/ui/core/rules/CoreHelper.support.js +4 -4
- package/src/sap/ui/core/rules/Model.support.js +8 -8
- package/src/sap/ui/core/rules/Rendering.support.js +1 -1
- package/src/sap/ui/core/rules/Theming.support.js +8 -8
- package/src/sap/ui/core/rules/View.support.js +9 -9
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -2
- package/src/sap/ui/core/search/SearchProvider.js +1 -3
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Hotkeys.js +2 -3
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/ToolsAPI.js +11 -13
- package/src/sap/ui/core/support/plugins/ControlTree.js +4 -4
- package/src/sap/ui/core/support/plugins/Debugging.js +3 -3
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +2 -2
- package/src/sap/ui/core/support/support.html +1 -1
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +10 -8
- package/src/sap/ui/core/theming/Parameters.js +8 -15
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -2
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -4
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +6 -5
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -2
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +48 -72
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +4 -3
- package/src/sap/ui/core/util/XMLPreprocessor.js +2 -2
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +1 -1
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +4 -4
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +3 -3
- package/src/sap/ui/debug/DebugEnv.js +4 -4
- package/src/sap/ui/debug/PropertyList.css +1 -31
- package/src/sap/ui/debug/PropertyList.js +6 -250
- package/src/sap/ui/dom/getScrollbarSize.js +1 -1
- package/src/sap/ui/dom/jquery/control.js +1 -0
- package/src/sap/ui/events/jquery/EventSimulation.js +4 -4
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +3 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/Context.js +3 -0
- package/src/sap/ui/model/ContextBinding.js +1 -1
- package/src/sap/ui/model/DataState.js +2 -2
- package/src/sap/ui/model/ListBinding.js +2 -2
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +871 -0
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +16 -5
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +2 -2
- package/src/sap/ui/model/Sorter.js +24 -19
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/TreeBindingAdapter.js +3 -7
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -0
- package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +5 -7
- package/src/sap/ui/model/json/JSONModel.js +9 -7
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/AnnotationHelper.js +4 -4
- package/src/sap/ui/model/odata/ODataAnnotations.js +5 -3
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +10 -10
- package/src/sap/ui/model/odata/ODataMetadata.js +5 -4
- package/src/sap/ui/model/odata/ODataModel.js +6 -5
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +0 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +5 -5
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +4 -3
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +25 -16
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +46 -28
- package/src/sap/ui/model/odata/v2/ODataModel.js +97 -39
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +5 -5
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +3 -3
- package/src/sap/ui/model/odata/v4/Context.js +109 -71
- package/src/sap/ui/model/odata/v4/ODataBinding.js +50 -7
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +88 -68
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +116 -81
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +23 -20
- package/src/sap/ui/model/odata/v4/ODataModel.js +350 -88
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +35 -9
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +15 -9
- package/src/sap/ui/model/odata/v4/ODataUtils.js +8 -5
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +45 -33
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +40 -6
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +135 -81
- package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +2 -3
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +179 -36
- package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +2 -3
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +26 -7
- package/src/sap/ui/model/resource/ResourceModel.js +8 -7
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +2 -2
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +2 -2
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +5 -4
- package/src/sap/ui/model/xml/XMLModel.js +8 -6
- package/src/sap/ui/performance/trace/Interaction.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/Opa.js +7 -5
- package/src/sap/ui/test/Opa5.js +9 -15
- package/src/sap/ui/test/OpaBuilder.js +1 -1
- package/src/sap/ui/test/RecorderHotkeyListener.js +1 -1
- package/src/sap/ui/test/TestUtils.js +83 -1
- package/src/sap/ui/test/autowaiter/_autoWaiter.js +9 -0
- package/src/sap/ui/test/autowaiter/_cssAnimationWaiter.js +114 -0
- package/src/sap/ui/test/autowaiter/_cssTransitionWaiter.js +99 -0
- package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +70 -0
- package/src/sap/ui/test/autowaiter/_resourceWaiter.js +3 -12
- package/src/sap/ui/test/autowaiter/_utils.js +13 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/matchers/Ancestor.js +1 -0
- package/src/sap/ui/test/matchers/Descendant.js +1 -0
- package/src/sap/ui/test/matchers/Sibling.js +1 -0
- package/src/sap/ui/util/Storage.js +1 -1
|
@@ -74,7 +74,7 @@ sap.ui.define([
|
|
|
74
74
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
75
75
|
* @public
|
|
76
76
|
* @since 1.37.0
|
|
77
|
-
* @version 1.
|
|
77
|
+
* @version 1.107.0
|
|
78
78
|
*
|
|
79
79
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
80
80
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
@@ -346,39 +346,43 @@ sap.ui.define([
|
|
|
346
346
|
|
|
347
347
|
if (that.isReturnValueLikeBindingParameter(oOperationMetadata)) {
|
|
348
348
|
oOldValue = that.oContext.getValue();
|
|
349
|
+
// Note: sContextPredicate missing e.g. when collection-bound
|
|
349
350
|
sContextPredicate = oOldValue
|
|
350
351
|
&& _Helper.getPrivateAnnotation(oOldValue, "predicate");
|
|
351
352
|
sResponsePredicate = _Helper.getPrivateAnnotation(
|
|
352
353
|
oResponseEntity, "predicate");
|
|
353
|
-
if (sContextPredicate === sResponsePredicate) {
|
|
354
|
-
// this is synchronous, because the entity to be patched is available in
|
|
355
|
-
// the context (we already read its predicate)
|
|
356
|
-
that.oContext.patch(oResponseEntity);
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
if (that.hasReturnValueContext(oOperationMetadata)) {
|
|
361
|
-
if (that.oReturnValueContext) {
|
|
362
|
-
that.oReturnValueContext.destroy();
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
if (bReplaceWithRVC) {
|
|
366
|
-
that.oCache = null;
|
|
367
|
-
that.oCachePromise = SyncPromise.resolve(null);
|
|
368
|
-
oResult = that.oContext.getBinding().doReplaceWith(that.oContext,
|
|
369
|
-
oResponseEntity, sResponsePredicate);
|
|
370
|
-
oResult.setNewGeneration();
|
|
371
354
|
|
|
372
|
-
|
|
355
|
+
if (sResponsePredicate) {
|
|
356
|
+
if (sContextPredicate === sResponsePredicate) {
|
|
357
|
+
// this is sync, because the entity to be patched is available in
|
|
358
|
+
// the context (we already read its predicate)
|
|
359
|
+
that.oContext.patch(oResponseEntity);
|
|
360
|
+
}
|
|
361
|
+
if (that.hasReturnValueContext()) {
|
|
362
|
+
if (bReplaceWithRVC) {
|
|
363
|
+
that.oCache = null;
|
|
364
|
+
that.oCachePromise = SyncPromise.resolve(null);
|
|
365
|
+
oResult = that.oContext.getBinding()
|
|
366
|
+
.doReplaceWith(that.oContext, oResponseEntity,
|
|
367
|
+
sResponsePredicate);
|
|
368
|
+
oResult.setNewGeneration();
|
|
369
|
+
|
|
370
|
+
return oResult;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
that.oReturnValueContext = Context.createNewContext(that.oModel,
|
|
374
|
+
that,
|
|
375
|
+
getReturnValueContextPath(sResolvedPath, sResponsePredicate));
|
|
376
|
+
// set the resource path for late property requests
|
|
377
|
+
that.oCache.setResourcePath(
|
|
378
|
+
that.oReturnValueContext.getPath().slice(1));
|
|
379
|
+
|
|
380
|
+
return that.oReturnValueContext;
|
|
381
|
+
}
|
|
373
382
|
}
|
|
383
|
+
}
|
|
374
384
|
|
|
375
|
-
|
|
376
|
-
that, getReturnValueContextPath(sResolvedPath, sResponsePredicate));
|
|
377
|
-
// set the resource path for late property requests
|
|
378
|
-
that.oCache.setResourcePath(that.oReturnValueContext.getPath().slice(1));
|
|
379
|
-
|
|
380
|
-
return that.oReturnValueContext;
|
|
381
|
-
} else if (bReplaceWithRVC) {
|
|
385
|
+
if (bReplaceWithRVC) {
|
|
382
386
|
throw new Error("Cannot replace w/o return value context");
|
|
383
387
|
}
|
|
384
388
|
});
|
|
@@ -396,10 +400,6 @@ sap.ui.define([
|
|
|
396
400
|
});
|
|
397
401
|
}).catch(function (oError) {
|
|
398
402
|
oGroupLock.unlock(true);
|
|
399
|
-
if (that.oReturnValueContext) {
|
|
400
|
-
that.oReturnValueContext.destroy();
|
|
401
|
-
that.oReturnValueContext = null;
|
|
402
|
-
}
|
|
403
403
|
that.oModel.reportError("Failed to execute " + sResolvedPath, sClassName, oError);
|
|
404
404
|
throw oError;
|
|
405
405
|
});
|
|
@@ -500,7 +500,12 @@ sap.ui.define([
|
|
|
500
500
|
* If a back-end request fails, the 'dataReceived' event provides an <code>Error</code> in the
|
|
501
501
|
* 'error' event parameter.
|
|
502
502
|
*
|
|
503
|
+
* Since 1.106 this event is bubbled up to the model, unless a listener calls
|
|
504
|
+
* {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
|
|
505
|
+
*
|
|
503
506
|
* @param {sap.ui.base.Event} oEvent
|
|
507
|
+
* @param {function} oEvent.cancelBubble
|
|
508
|
+
* A callback function to prevent that the event is bubbled up to the model
|
|
504
509
|
* @param {object} oEvent.getParameters()
|
|
505
510
|
* @param {object} [oEvent.getParameters().data]
|
|
506
511
|
* An empty data object if a back-end request succeeds
|
|
@@ -509,6 +514,7 @@ sap.ui.define([
|
|
|
509
514
|
*
|
|
510
515
|
* @event sap.ui.model.odata.v4.ODataContextBinding#dataReceived
|
|
511
516
|
* @public
|
|
517
|
+
* @see sap.ui.model.odata.v4.ODataModel#event:dataReceived
|
|
512
518
|
* @since 1.37.0
|
|
513
519
|
*/
|
|
514
520
|
|
|
@@ -520,10 +526,16 @@ sap.ui.define([
|
|
|
520
526
|
* fired: Whatever should happen in the event handler attached to that event, can instead be
|
|
521
527
|
* done before calling {@link #execute}.
|
|
522
528
|
*
|
|
529
|
+
* Since 1.106 this event is bubbled up to the model, unless a listener calls
|
|
530
|
+
* {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
|
|
531
|
+
*
|
|
523
532
|
* @param {sap.ui.base.Event} oEvent
|
|
533
|
+
* @param {function} oEvent.cancelBubble
|
|
534
|
+
* A callback function to prevent that the event is bubbled up to the model
|
|
524
535
|
*
|
|
525
536
|
* @event sap.ui.model.odata.v4.ODataContextBinding#dataRequested
|
|
526
537
|
* @public
|
|
538
|
+
* @see sap.ui.model.odata.v4.ODataModel#event:dataRequested
|
|
527
539
|
* @since 1.37.0
|
|
528
540
|
*/
|
|
529
541
|
|
|
@@ -653,15 +665,16 @@ sap.ui.define([
|
|
|
653
665
|
* @returns {string} The original resource path
|
|
654
666
|
*/
|
|
655
667
|
function getOriginalResourcePath(oResponseEntity) {
|
|
656
|
-
if (that.
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
668
|
+
if (that.isReturnValueLikeBindingParameter(oOperationMetadata)) {
|
|
669
|
+
if (that.hasReturnValueContext()) {
|
|
670
|
+
return getReturnValueContextPath(sOriginalResourcePath,
|
|
671
|
+
_Helper.getPrivateAnnotation(oResponseEntity, "predicate"));
|
|
672
|
+
}
|
|
673
|
+
if (_Helper.getPrivateAnnotation(vEntity, "predicate")
|
|
674
|
+
=== _Helper.getPrivateAnnotation(oResponseEntity, "predicate")) {
|
|
675
|
+
// return value is *same* as binding parameter: attach messages to the latter
|
|
676
|
+
return sOriginalResourcePath.slice(0, sOriginalResourcePath.lastIndexOf("/"));
|
|
677
|
+
}
|
|
665
678
|
}
|
|
666
679
|
|
|
667
680
|
return sOriginalResourcePath;
|
|
@@ -720,6 +733,10 @@ sap.ui.define([
|
|
|
720
733
|
throw new Error("Unsupported parameters for navigation property");
|
|
721
734
|
}
|
|
722
735
|
|
|
736
|
+
if (that.oReturnValueContext) {
|
|
737
|
+
that.oReturnValueContext.destroy();
|
|
738
|
+
that.oReturnValueContext = null;
|
|
739
|
+
}
|
|
723
740
|
this.oOperation.bAction = bAction;
|
|
724
741
|
this.oOperation.mRefreshParameters = mParameters;
|
|
725
742
|
mParameters = Object.assign({}, mParameters);
|
|
@@ -872,16 +889,17 @@ sap.ui.define([
|
|
|
872
889
|
* @param {boolean} [bReplaceWithRVC]
|
|
873
890
|
* Whether this operation binding's parent context, which must belong to a list binding, is
|
|
874
891
|
* replaced with the operation's return value context (see below) and that list context is
|
|
875
|
-
* returned instead.
|
|
892
|
+
* returned instead. That list context may be a newly created context or an existing context.
|
|
876
893
|
* A newly created context has the same <code>keepAlive</code> attribute and
|
|
877
894
|
* <code>fnOnBeforeDestroy</code> function as the parent context, see
|
|
878
895
|
* {@link sap.ui.model.odata.v4.Context#setKeepAlive}; <code>fnOnBeforeDestroy</code> will be
|
|
879
896
|
* called with the new context instance as the only argument in this case. An existing context
|
|
880
897
|
* does not change its <code>keepAlive</code> attribute. In any case, the resulting context
|
|
881
|
-
* takes the place (index, position) of the parent context
|
|
882
|
-
* {@link sap.ui.model.odata.v4.Context#getIndex}
|
|
883
|
-
*
|
|
884
|
-
*
|
|
898
|
+
* takes the place (index, position) of the parent context (see
|
|
899
|
+
* {@link sap.ui.model.odata.v4.Context#getIndex}), which need not be in the collection
|
|
900
|
+
* currently if it is {@link sap.ui.model.odata.v4.Context#isKeepAlive kept alive}. If the
|
|
901
|
+
* parent context has requested messages when it was kept alive, they will be inherited if the
|
|
902
|
+
* $$inheritExpandSelect binding parameter is set to <code>true</code>. Since 1.97.0.
|
|
885
903
|
* @returns {Promise}
|
|
886
904
|
* A promise that is resolved without data or with a return value context when the operation
|
|
887
905
|
* call succeeded, or rejected with an <code>Error</code> instance <code>oError</code> in case
|
|
@@ -904,7 +922,8 @@ sap.ui.define([
|
|
|
904
922
|
* operation response. It is created only if the operation is bound and has a single entity
|
|
905
923
|
* return value from the same entity set as the operation's binding parameter and has a
|
|
906
924
|
* parent context which is a {@link sap.ui.model.odata.v4.Context} and points to an entity
|
|
907
|
-
* from an entity set
|
|
925
|
+
* from an entity set. It is destroyed the next time this operation binding is executed again!
|
|
926
|
+
* <br>
|
|
908
927
|
* If a return value context is created, it must be used instead of
|
|
909
928
|
* <code>this.getBoundContext()</code>. All bound messages will be related to the return value
|
|
910
929
|
* context only. Such a message can only be connected to a corresponding control if the
|
|
@@ -935,7 +954,7 @@ sap.ui.define([
|
|
|
935
954
|
var sResolvedPath = this.getResolvedPath();
|
|
936
955
|
|
|
937
956
|
this.checkSuspended();
|
|
938
|
-
|
|
957
|
+
_Helper.checkGroupId(sGroupId);
|
|
939
958
|
if (!this.oOperation) {
|
|
940
959
|
throw new Error("The binding must be deferred: " + this.sPath);
|
|
941
960
|
}
|
|
@@ -953,7 +972,7 @@ sap.ui.define([
|
|
|
953
972
|
if (bReplaceWithRVC) {
|
|
954
973
|
if (!this.oContext.getBinding) {
|
|
955
974
|
throw new Error("Cannot replace this parent context: " + this.oContext);
|
|
956
|
-
}
|
|
975
|
+
} // Note: parent context need not have a key predicate!
|
|
957
976
|
this.oContext.getBinding().checkKeepAlive(this.oContext);
|
|
958
977
|
}
|
|
959
978
|
} else if (bReplaceWithRVC) {
|
|
@@ -999,7 +1018,8 @@ sap.ui.define([
|
|
|
999
1018
|
throw oError;
|
|
1000
1019
|
}
|
|
1001
1020
|
return oCachePromise.then(function (oCache) {
|
|
1002
|
-
var
|
|
1021
|
+
var bPreventBubbling,
|
|
1022
|
+
bDataRequested = false,
|
|
1003
1023
|
oGroupLock,
|
|
1004
1024
|
sResolvedPath = that.getResolvedPath(),
|
|
1005
1025
|
sRelativePath = oCache || that.oOperation
|
|
@@ -1034,11 +1054,12 @@ sap.ui.define([
|
|
|
1034
1054
|
oGroupLock = that.oReadGroupLock || that.lockGroup();
|
|
1035
1055
|
that.oReadGroupLock = undefined;
|
|
1036
1056
|
}
|
|
1057
|
+
bPreventBubbling = that.isRefreshWithoutBubbling();
|
|
1037
1058
|
|
|
1038
1059
|
return that.resolveRefreshPromise(
|
|
1039
1060
|
oCache.fetchValue(oGroupLock, sRelativePath, function () {
|
|
1040
1061
|
bDataRequested = true;
|
|
1041
|
-
that.fireDataRequested();
|
|
1062
|
+
that.fireDataRequested(bPreventBubbling);
|
|
1042
1063
|
}, oListener)
|
|
1043
1064
|
).then(function (vValue) {
|
|
1044
1065
|
that.assertSameCache(oCache);
|
|
@@ -1046,7 +1067,7 @@ sap.ui.define([
|
|
|
1046
1067
|
return vValue;
|
|
1047
1068
|
}).then(function (vValue) {
|
|
1048
1069
|
if (bDataRequested) {
|
|
1049
|
-
that.fireDataReceived({data : {}});
|
|
1070
|
+
that.fireDataReceived({data : {}}, bPreventBubbling);
|
|
1050
1071
|
}
|
|
1051
1072
|
return vValue;
|
|
1052
1073
|
}, function (oError) {
|
|
@@ -1054,7 +1075,8 @@ sap.ui.define([
|
|
|
1054
1075
|
if (bDataRequested) {
|
|
1055
1076
|
that.oModel.reportError("Failed to read path " + sResolvedPath, sClassName,
|
|
1056
1077
|
oError);
|
|
1057
|
-
that.fireDataReceived(oError.canceled ? {data : {}} : {error : oError}
|
|
1078
|
+
that.fireDataReceived(oError.canceled ? {data : {}} : {error : oError},
|
|
1079
|
+
bPreventBubbling);
|
|
1058
1080
|
}
|
|
1059
1081
|
throw oError;
|
|
1060
1082
|
});
|
|
@@ -1205,19 +1227,15 @@ sap.ui.define([
|
|
|
1205
1227
|
* (a) a V4 parent context which
|
|
1206
1228
|
* (b) points to an entity from an entity set w/o navigation properties.
|
|
1207
1229
|
*
|
|
1208
|
-
*
|
|
1230
|
+
* BEWARE: It is the caller's duty to check 1. through 4.(a) via
|
|
1231
|
+
* {@link #isReturnValueLikeBindingParameter}!
|
|
1232
|
+
*
|
|
1209
1233
|
* @returns {boolean} Whether a return value context is created
|
|
1210
1234
|
*
|
|
1211
1235
|
* @private
|
|
1212
1236
|
*/
|
|
1213
|
-
ODataContextBinding.prototype.hasReturnValueContext = function (
|
|
1214
|
-
var aMetaSegments;
|
|
1215
|
-
|
|
1216
|
-
if (!this.isReturnValueLikeBindingParameter(oMetadata)) {
|
|
1217
|
-
return false;
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
|
-
aMetaSegments = _Helper.getMetaPath(this.getResolvedPath()).split("/");
|
|
1237
|
+
ODataContextBinding.prototype.hasReturnValueContext = function () {
|
|
1238
|
+
var aMetaSegments = _Helper.getMetaPath(this.getResolvedPath()).split("/");
|
|
1221
1239
|
|
|
1222
1240
|
// case 4b
|
|
1223
1241
|
return aMetaSegments.length === 3
|
|
@@ -1259,6 +1277,7 @@ sap.ui.define([
|
|
|
1259
1277
|
* @returns {boolean} Whether operation's return value is like its binding parameter
|
|
1260
1278
|
*
|
|
1261
1279
|
* @private
|
|
1280
|
+
* @see #hasReturnValueContext
|
|
1262
1281
|
*/
|
|
1263
1282
|
ODataContextBinding.prototype.isReturnValueLikeBindingParameter = function (oMetadata) {
|
|
1264
1283
|
var oParentMetaData, sParentMetaPath;
|
|
@@ -1365,7 +1384,9 @@ sap.ui.define([
|
|
|
1365
1384
|
bKeepCacheOnError ? sGroupId : undefined);
|
|
1366
1385
|
// Do not fire a change event, or else ManagedObject destroys and recreates the
|
|
1367
1386
|
// binding hierarchy causing a flood of events.
|
|
1368
|
-
oPromise = bHasChangeListeners
|
|
1387
|
+
oPromise = bHasChangeListeners
|
|
1388
|
+
? that.createRefreshPromise(/*bPreventBubbling*/bKeepCacheOnError)
|
|
1389
|
+
: undefined;
|
|
1369
1390
|
if (bKeepCacheOnError && oPromise) {
|
|
1370
1391
|
oPromise = oPromise.catch(function (oError) {
|
|
1371
1392
|
return that.fetchResourcePath(that.oContext).then(function (sResourcePath) {
|
|
@@ -1461,7 +1482,7 @@ sap.ui.define([
|
|
|
1461
1482
|
* cancellations.
|
|
1462
1483
|
*
|
|
1463
1484
|
* @param {Promise} oPromise - A promise
|
|
1464
|
-
* @
|
|
1485
|
+
* @returns {Promise} A promise including an error handler
|
|
1465
1486
|
*/
|
|
1466
1487
|
function reportError(oPromise) {
|
|
1467
1488
|
return oPromise.catch(function (oError) {
|
|
@@ -1497,10 +1518,9 @@ sap.ui.define([
|
|
|
1497
1518
|
/**
|
|
1498
1519
|
* Returns a promise on the value for the given path relative to this binding. The function
|
|
1499
1520
|
* allows access to the complete data the binding points to (if <code>sPath</code> is "") or
|
|
1500
|
-
* any part thereof. The data is a JSON structure as described in
|
|
1501
|
-
*
|
|
1502
|
-
*
|
|
1503
|
-
* "OData JSON Format Version 4.0"</a>.
|
|
1521
|
+
* any part thereof. The data is a JSON structure as described in <a href=
|
|
1522
|
+
* "https://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html"
|
|
1523
|
+
* >"OData JSON Format Version 4.0"</a>.
|
|
1504
1524
|
* Note that the function clones the result. Modify values via
|
|
1505
1525
|
* {@link sap.ui.model.odata.v4.Context#setProperty}.
|
|
1506
1526
|
*
|
|
@@ -1509,7 +1529,7 @@ sap.ui.define([
|
|
|
1509
1529
|
*
|
|
1510
1530
|
* @param {string} [sPath=""]
|
|
1511
1531
|
* A path relative to this context binding
|
|
1512
|
-
* @returns {Promise}
|
|
1532
|
+
* @returns {Promise<any|undefined>}
|
|
1513
1533
|
* A promise on the requested value; in case there is no bound context this promise resolves
|
|
1514
1534
|
* with <code>undefined</code>
|
|
1515
1535
|
* @throws {Error}
|