@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
|
@@ -94,7 +94,7 @@ sap.ui.define([
|
|
|
94
94
|
* @extends sap.ui.model.TreeBinding
|
|
95
95
|
* @hideconstructor
|
|
96
96
|
* @public
|
|
97
|
-
* @version 1.
|
|
97
|
+
* @version 1.107.0
|
|
98
98
|
*/
|
|
99
99
|
var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
|
|
100
100
|
|
|
@@ -2559,7 +2559,7 @@ sap.ui.define([
|
|
|
2559
2559
|
*
|
|
2560
2560
|
* See the API documentation for the function {@link sap.ui.model.odata.v2.ODataTreeBinding#createEntry createEntry}.
|
|
2561
2561
|
*
|
|
2562
|
-
* This feature is only available when the underlying OData service exposes the "hierarchy-descendant-count-for" annotation.
|
|
2562
|
+
* This feature is only available when the underlying OData service exposes the "hierarchy-node-descendant-count-for" annotation.
|
|
2563
2563
|
* See the constructor documentation for more details.
|
|
2564
2564
|
*
|
|
2565
2565
|
* @function
|
|
@@ -2575,7 +2575,7 @@ sap.ui.define([
|
|
|
2575
2575
|
*
|
|
2576
2576
|
* Calling <code>removeContext</code> for a given context implicitly removes the complete subtree underneath it.
|
|
2577
2577
|
*
|
|
2578
|
-
* This feature is only available when the underlying OData service exposes the "hierarchy-descendant-count-for" annotation.
|
|
2578
|
+
* This feature is only available when the underlying OData service exposes the "hierarchy-node-descendant-count-for" annotation.
|
|
2579
2579
|
* See the constructor documentation for more details.
|
|
2580
2580
|
*
|
|
2581
2581
|
* @function
|
|
@@ -2592,7 +2592,7 @@ sap.ui.define([
|
|
|
2592
2592
|
* The available API is the same as for the v2.ODataModel.
|
|
2593
2593
|
* See the API documentation here: {@link sap.ui.model.odata.v2.ODataModel#createEntry createEntry}.
|
|
2594
2594
|
*
|
|
2595
|
-
* This feature is only available when the underlying OData service exposes the "hierarchy-descendant-count-for" annotation.
|
|
2595
|
+
* This feature is only available when the underlying OData service exposes the "hierarchy-node-descendant-count-for" annotation.
|
|
2596
2596
|
* See the constructor documentation for more details.
|
|
2597
2597
|
*
|
|
2598
2598
|
* @function
|
|
@@ -2608,7 +2608,7 @@ sap.ui.define([
|
|
|
2608
2608
|
* The available API is the same as for the v2.ODataModel.
|
|
2609
2609
|
* See the API documentation here: {@link sap.ui.model.odata.v2.ODataModel#submitChanges submitChanges}.
|
|
2610
2610
|
*
|
|
2611
|
-
* This feature is only available when the underlying OData service exposes the "hierarchy-descendant-count-for" annotation.
|
|
2611
|
+
* This feature is only available when the underlying OData service exposes the "hierarchy-node-descendant-count-for" annotation.
|
|
2612
2612
|
* See the Constructor documentation for more details.
|
|
2613
2613
|
*
|
|
2614
2614
|
* @function
|
|
@@ -17,9 +17,9 @@ sap.ui.define([
|
|
|
17
17
|
rUnsupportedPathSegments = /\$(?:Navigation)?PropertyPath/,
|
|
18
18
|
/**
|
|
19
19
|
* @classdesc
|
|
20
|
-
* A collection of methods which help to consume
|
|
21
|
-
*
|
|
22
|
-
* OData V4 annotations</a> in XML template views. Every context argument must belong to a
|
|
20
|
+
* A collection of methods which help to consume <a href=
|
|
21
|
+
* "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html#_Vocabulary_and_Annotation"
|
|
22
|
+
* >OData V4 annotations</a> in XML template views. Every context argument must belong to a
|
|
23
23
|
* {@link sap.ui.model.odata.v4.ODataMetaModel} instance.
|
|
24
24
|
*
|
|
25
25
|
* @alias sap.ui.model.odata.v4.AnnotationHelper
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @hideconstructor
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.39.0
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.107.0
|
|
46
46
|
*/
|
|
47
47
|
Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
|
|
48
48
|
constructor : constructor
|
|
@@ -258,7 +258,7 @@ sap.ui.define([
|
|
|
258
258
|
* Once the promise is resolved, {@link #getPath} returns a path including the key predicate
|
|
259
259
|
* of the new entity. This requires that all key properties are available.
|
|
260
260
|
*
|
|
261
|
-
* @returns {Promise}
|
|
261
|
+
* @returns {Promise<void>|undefined}
|
|
262
262
|
* A promise that is resolved without data when the entity represented by this context has
|
|
263
263
|
* been created in the back end. It is rejected with an <code>Error</code> instance where
|
|
264
264
|
* <code>oError.canceled === true</code> if the transient entity is deleted before it is
|
|
@@ -281,7 +281,8 @@ sap.ui.define([
|
|
|
281
281
|
* immediately, even if {@link sap.ui.model.odata.v4.SubmitMode.API} is used, and the request is
|
|
282
282
|
* only sent later when {@link sap.ui.model.odata.v4.ODataModel#submitBatch} is called. As long
|
|
283
283
|
* as the context is deleted on the client, but not yet on the server, {@link #isDeleted}
|
|
284
|
-
* returns <code>true</code>.
|
|
284
|
+
* returns <code>true</code>. The context must not be used, e.g. as a binding context, while
|
|
285
|
+
* {@link #isDeleted} returns <code>true</code>.
|
|
285
286
|
*
|
|
286
287
|
* Since 1.105 such a pending deletion is a pending change. It causes
|
|
287
288
|
* <code>hasPendingChanges</code> to return <code>true</code> for the context, the binding
|
|
@@ -322,24 +323,24 @@ sap.ui.define([
|
|
|
322
323
|
* <ul>
|
|
323
324
|
* <li> the given group ID is invalid,
|
|
324
325
|
* <li> this context's root binding is suspended,
|
|
325
|
-
* <li> a <code>null</code> group ID is used with a context which is not
|
|
326
|
-
*
|
|
326
|
+
* <li> a <code>null</code> group ID is used with a context which is not
|
|
327
|
+
* {@link #isKeepAlive kept alive},
|
|
327
328
|
* <li> the context is already being deleted,
|
|
328
329
|
* <li> the resulting group ID has {@link sap.ui.model.odata.v4.SubmitMode.API}, and the
|
|
329
|
-
* context is
|
|
330
|
+
* context is {@link #isKeepAlive kept alive}, but not in the current collection,
|
|
330
331
|
* <li> (only before 1.105) the resulting group ID has
|
|
331
332
|
* {@link sap.ui.model.odata.v4.SubmitMode.API}
|
|
332
333
|
* </ul>
|
|
333
334
|
*
|
|
334
335
|
* @function
|
|
335
336
|
* @public
|
|
336
|
-
* @see
|
|
337
|
-
* @see
|
|
338
|
-
* @see
|
|
339
|
-
* @see
|
|
340
|
-
* @see
|
|
341
|
-
* @see
|
|
342
|
-
* @see
|
|
337
|
+
* @see #hasPendingChanges
|
|
338
|
+
* @see sap.ui.model.odata.v4.ODataContextBinding#hasPendingChanges
|
|
339
|
+
* @see sap.ui.model.odata.v4.ODataListBinding#hasPendingChanges
|
|
340
|
+
* @see sap.ui.model.odata.v4.ODataModel#hasPendingChanges
|
|
341
|
+
* @see sap.ui.model.odata.v4.ODataContextBinding#resetChanges
|
|
342
|
+
* @see sap.ui.model.odata.v4.ODataListBinding#resetChanges
|
|
343
|
+
* @see sap.ui.model.odata.v4.ODataModel#resetChanges
|
|
343
344
|
* @since 1.41.0
|
|
344
345
|
*/
|
|
345
346
|
Context.prototype.delete = function (sGroupId, bDoNotRequestCount/*, bRejectIfNotFound*/) {
|
|
@@ -361,7 +362,7 @@ sap.ui.define([
|
|
|
361
362
|
if (sGroupId === null) {
|
|
362
363
|
bDoNotRequestCount = true;
|
|
363
364
|
} else {
|
|
364
|
-
|
|
365
|
+
_Helper.checkGroupId(sGroupId);
|
|
365
366
|
oGroupLock = this.oBinding.lockGroup(sGroupId, true, true);
|
|
366
367
|
}
|
|
367
368
|
|
|
@@ -432,6 +433,8 @@ sap.ui.define([
|
|
|
432
433
|
* @param {boolean} [bSkipRetry]
|
|
433
434
|
* Whether to skip retries of failed PATCH requests and instead fail accordingly, but still
|
|
434
435
|
* fire "patchSent" and "patchCompleted" events
|
|
436
|
+
* @param {boolean} [bUpdating]
|
|
437
|
+
* Whether the given property will not be overwritten by a creation POST(+GET) response
|
|
435
438
|
* @returns {sap.ui.base.SyncPromise}
|
|
436
439
|
* A promise which is resolved without a result in case of success, or rejected with an
|
|
437
440
|
* instance of <code>Error</code> in case of failure, for example if the annotation belongs to
|
|
@@ -440,8 +443,9 @@ sap.ui.define([
|
|
|
440
443
|
*
|
|
441
444
|
* @private
|
|
442
445
|
*/
|
|
443
|
-
Context.prototype.doSetProperty = function (sPath, vValue, oGroupLock, bSkipRetry) {
|
|
444
|
-
var
|
|
446
|
+
Context.prototype.doSetProperty = function (sPath, vValue, oGroupLock, bSkipRetry, bUpdating) {
|
|
447
|
+
var oModel = this.oModel,
|
|
448
|
+
oMetaModel = oModel.getMetaModel(),
|
|
445
449
|
oPromise,
|
|
446
450
|
oValue,
|
|
447
451
|
that = this;
|
|
@@ -458,7 +462,7 @@ sap.ui.define([
|
|
|
458
462
|
if (oPromise instanceof Promise) {
|
|
459
463
|
oGroupLock.unlock();
|
|
460
464
|
oGroupLock = oGroupLock.getUnlockedCopy();
|
|
461
|
-
this.doSetProperty(sPath, vValue, null, true) // early UI update
|
|
465
|
+
this.doSetProperty(sPath, vValue, null, true, true) // early UI update
|
|
462
466
|
.catch(this.oModel.getReporter());
|
|
463
467
|
|
|
464
468
|
return oPromise.then(function (bSuccess) {
|
|
@@ -493,8 +497,7 @@ sap.ui.define([
|
|
|
493
497
|
* @param {Error} oError
|
|
494
498
|
*/
|
|
495
499
|
function errorCallback(oError) {
|
|
496
|
-
|
|
497
|
-
"Failed to update path " + that.oModel.resolve(sPath, that),
|
|
500
|
+
oModel.reportError("Failed to update path " + oModel.resolve(sPath, that),
|
|
498
501
|
sClassName, oError);
|
|
499
502
|
firePatchCompleted(false);
|
|
500
503
|
}
|
|
@@ -520,7 +523,8 @@ sap.ui.define([
|
|
|
520
523
|
}
|
|
521
524
|
|
|
522
525
|
if (!oGroupLock) {
|
|
523
|
-
return oCache.setProperty(oResult.propertyPath, vValue, sEntityPath
|
|
526
|
+
return oCache.setProperty(oResult.propertyPath, vValue, sEntityPath,
|
|
527
|
+
bUpdating);
|
|
524
528
|
}
|
|
525
529
|
|
|
526
530
|
if (that.isInactive()) {
|
|
@@ -643,12 +647,13 @@ sap.ui.define([
|
|
|
643
647
|
};
|
|
644
648
|
|
|
645
649
|
/**
|
|
646
|
-
* Returns the "canonical path" of the entity for this context.
|
|
647
|
-
*
|
|
648
|
-
*
|
|
649
|
-
*
|
|
650
|
-
*
|
|
651
|
-
* binding.
|
|
650
|
+
* Returns the "canonical path" of the entity for this context. According to <a href=
|
|
651
|
+
* "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html#canonical-urlurl4.1.1"
|
|
652
|
+
* >"4.3.1 Canonical URL"</a> of the specification "OData Version 4.0 Part 2: URL Conventions",
|
|
653
|
+
* this is the "name of the entity set associated with the entity followed by the key predicate
|
|
654
|
+
* identifying the entity within the collection". Use the canonical path in
|
|
655
|
+
* {@link sap.ui.core.Element#bindElement} to create an element binding.
|
|
656
|
+
*
|
|
652
657
|
* Note: For a transient context (see {@link #isTransient}) a wrong path is returned unless all
|
|
653
658
|
* key properties are available within the initial data.
|
|
654
659
|
*
|
|
@@ -708,7 +713,7 @@ sap.ui.define([
|
|
|
708
713
|
* The context's index within the binding's collection. It is <code>undefined</code> if
|
|
709
714
|
* <ul>
|
|
710
715
|
* <li> it does not belong to a list binding,
|
|
711
|
-
* <li> it is
|
|
716
|
+
* <li> it is {@link #isKeepAlive kept alive}, but not in the collection currently.
|
|
712
717
|
* </ul>
|
|
713
718
|
*
|
|
714
719
|
* @public
|
|
@@ -740,7 +745,7 @@ sap.ui.define([
|
|
|
740
745
|
* The context's index within the binding's collection. It is <code>undefined</code> if
|
|
741
746
|
* <ul>
|
|
742
747
|
* <li> it does not belong to a list binding,
|
|
743
|
-
* <li> it is
|
|
748
|
+
* <li> it is {@link #isKeepAlive kept alive}, but not in the collection currently.
|
|
744
749
|
* </ul>
|
|
745
750
|
*
|
|
746
751
|
* @private
|
|
@@ -755,10 +760,9 @@ sap.ui.define([
|
|
|
755
760
|
/**
|
|
756
761
|
* Returns the value for the given path relative to this context. The function allows access to
|
|
757
762
|
* the complete data the context points to (if <code>sPath</code> is "") or any part thereof.
|
|
758
|
-
* The data is a JSON structure as described in
|
|
759
|
-
*
|
|
760
|
-
*
|
|
761
|
-
* "OData JSON Format Version 4.0"</a>.
|
|
763
|
+
* The data is a JSON structure as described in <a href=
|
|
764
|
+
* "https://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html"
|
|
765
|
+
* >"OData JSON Format Version 4.0"</a>.
|
|
762
766
|
* Note that the function clones the result. Modify values via
|
|
763
767
|
* {@link sap.ui.model.odata.v4.ODataPropertyBinding#setValue}.
|
|
764
768
|
*
|
|
@@ -863,10 +867,9 @@ sap.ui.define([
|
|
|
863
867
|
/**
|
|
864
868
|
* Returns the value for the given path relative to this context. The function allows access to
|
|
865
869
|
* the complete data the context points to (if <code>sPath</code> is "") or any part thereof.
|
|
866
|
-
* The data is a JSON structure as described in
|
|
867
|
-
*
|
|
868
|
-
*
|
|
869
|
-
* "OData JSON Format Version 4.0"</a>.
|
|
870
|
+
* The data is a JSON structure as described in <a href=
|
|
871
|
+
* "https://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html"
|
|
872
|
+
* >"OData JSON Format Version 4.0"</a>.
|
|
870
873
|
* Note that the function returns the cache instance. Do not modify the result, use
|
|
871
874
|
* {@link sap.ui.model.odata.v4.ODataPropertyBinding#setValue} instead.
|
|
872
875
|
*
|
|
@@ -902,8 +905,8 @@ sap.ui.define([
|
|
|
902
905
|
* Returns whether there are pending changes for bindings dependent on this context, or for
|
|
903
906
|
* unresolved bindings (see {@link sap.ui.model.Binding#isResolved}) which were dependent on
|
|
904
907
|
* this context at the time the pending change was created. This includes the context itself
|
|
905
|
-
* being {@link #isTransient transient}
|
|
906
|
-
* ignored.
|
|
908
|
+
* being {@link #isTransient transient} or {@link #isDeleted deleted}. Since 1.98.0,
|
|
909
|
+
* {@link #isInactive inactive} contexts are ignored.
|
|
907
910
|
*
|
|
908
911
|
* @returns {boolean}
|
|
909
912
|
* Whether there are pending changes
|
|
@@ -914,8 +917,11 @@ sap.ui.define([
|
|
|
914
917
|
Context.prototype.hasPendingChanges = function () {
|
|
915
918
|
return this.isTransient()
|
|
916
919
|
|| this.isDeleted()
|
|
920
|
+
|| this.getBinding().hasPendingChangesForPath(this.sPath)
|
|
917
921
|
|| this.oModel.getDependentBindings(this).some(function (oDependentBinding) {
|
|
918
|
-
return oDependentBinding.
|
|
922
|
+
return oDependentBinding.oCache
|
|
923
|
+
? oDependentBinding.hasPendingChanges()
|
|
924
|
+
: oDependentBinding.hasPendingChangesInDependents();
|
|
919
925
|
})
|
|
920
926
|
|| this.oModel.withUnresolvedBindings("hasPendingChangesInCaches", this.sPath.slice(1));
|
|
921
927
|
};
|
|
@@ -929,7 +935,7 @@ sap.ui.define([
|
|
|
929
935
|
*
|
|
930
936
|
* @public
|
|
931
937
|
* @see #delete
|
|
932
|
-
* @since 1.105
|
|
938
|
+
* @since 1.105.0
|
|
933
939
|
*/
|
|
934
940
|
Context.prototype.isDeleted = function () {
|
|
935
941
|
return this.bDeleted;
|
|
@@ -955,9 +961,9 @@ sap.ui.define([
|
|
|
955
961
|
* Returns whether this context is inactive. The result of this function can also be accessed
|
|
956
962
|
* via instance annotation "@$ui5.context.isInactive" at the entity.
|
|
957
963
|
*
|
|
958
|
-
* @returns {boolean} <code>true</code> if this context is inactive,
|
|
959
|
-
* was created in an inactive state and has been activated, and
|
|
960
|
-
* otherwise.
|
|
964
|
+
* @returns {boolean|undefined} <code>true</code> if this context is inactive,
|
|
965
|
+
* <code>false</code> if it was created in an inactive state and has been activated, and
|
|
966
|
+
* <code>undefined</code> otherwise.
|
|
961
967
|
*
|
|
962
968
|
* @public
|
|
963
969
|
* @see #isTransient
|
|
@@ -970,7 +976,9 @@ sap.ui.define([
|
|
|
970
976
|
};
|
|
971
977
|
|
|
972
978
|
/**
|
|
973
|
-
* Returns whether this context is kept alive
|
|
979
|
+
* Returns whether this context is kept alive even when it is removed from its binding's
|
|
980
|
+
* collection, for example if a filter is applied and the entity represented by this context
|
|
981
|
+
* does not match the filter criteria.
|
|
974
982
|
*
|
|
975
983
|
* @returns {boolean} <code>true</code> if this context is kept alive
|
|
976
984
|
*
|
|
@@ -989,7 +997,7 @@ sap.ui.define([
|
|
|
989
997
|
* if the context is not transient. The result of this function can also be accessed via
|
|
990
998
|
* instance annotation "@$ui5.context.isTransient" at the entity.
|
|
991
999
|
*
|
|
992
|
-
* @returns {boolean}
|
|
1000
|
+
* @returns {boolean|undefined}
|
|
993
1001
|
* Whether this context is transient if it is created using
|
|
994
1002
|
* {@link sap.ui.model.odata.v4.ODataListBinding#create}; <code>undefined</code> if it is not
|
|
995
1003
|
* created using {@link sap.ui.model.odata.v4.ODataListBinding#create}
|
|
@@ -1033,9 +1041,9 @@ sap.ui.define([
|
|
|
1033
1041
|
* binding, the parameter must not be used.
|
|
1034
1042
|
* Supported since 1.55.0
|
|
1035
1043
|
*
|
|
1036
|
-
* Since 1.84.0, if this context is
|
|
1037
|
-
*
|
|
1038
|
-
*
|
|
1044
|
+
* Since 1.84.0, if this context is {@link #isKeepAlive kept alive}, it is only destroyed if
|
|
1045
|
+
* the corresponding entity does no longer exist in the back end. In this case, the
|
|
1046
|
+
* <code>fnOnBeforeDestroy</code> callback passed with {@link #setKeepAlive}) is called.
|
|
1039
1047
|
* @throws {Error}
|
|
1040
1048
|
* If the group ID is not valid, if this context has pending changes or does not represent a
|
|
1041
1049
|
* single entity (see {@link sap.ui.model.odata.v4.ODataListBinding#getHeaderContext}), if the
|
|
@@ -1093,8 +1101,9 @@ sap.ui.define([
|
|
|
1093
1101
|
* <ul>
|
|
1094
1102
|
* <li> this context's root binding is suspended,
|
|
1095
1103
|
* <li> this context is transient (see {@link #isTransient}),
|
|
1096
|
-
* <li> the given other context does not belong to the same list binding as this context,
|
|
1097
|
-
*
|
|
1104
|
+
* <li> the given other context does not belong to the same list binding as this context, is
|
|
1105
|
+
* already in the collection (has an index, see {@link #getIndex}), or is not
|
|
1106
|
+
* {@link #isKeepAlive kept alive}.
|
|
1098
1107
|
* </ul>
|
|
1099
1108
|
*
|
|
1100
1109
|
* @public
|
|
@@ -1107,7 +1116,8 @@ sap.ui.define([
|
|
|
1107
1116
|
if (this.isTransient()) {
|
|
1108
1117
|
throw new Error("Cannot replace " + this);
|
|
1109
1118
|
}
|
|
1110
|
-
if (oOtherContext.oBinding !== this.oBinding || oOtherContext.iIndex !== undefined
|
|
1119
|
+
if (oOtherContext.oBinding !== this.oBinding || oOtherContext.iIndex !== undefined
|
|
1120
|
+
|| !oOtherContext.bKeepAlive) {
|
|
1111
1121
|
throw new Error("Cannot replace with " + oOtherContext);
|
|
1112
1122
|
}
|
|
1113
1123
|
oElement = oOtherContext.getValue();
|
|
@@ -1116,12 +1126,14 @@ sap.ui.define([
|
|
|
1116
1126
|
};
|
|
1117
1127
|
|
|
1118
1128
|
/**
|
|
1119
|
-
* Returns a promise for the "canonical path" of the entity for this context.
|
|
1120
|
-
*
|
|
1121
|
-
*
|
|
1122
|
-
*
|
|
1123
|
-
*
|
|
1124
|
-
*
|
|
1129
|
+
* Returns a promise for the "canonical path" of the entity for this context. According to
|
|
1130
|
+
* <a href=
|
|
1131
|
+
* "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part2-url-conventions.html#canonical-urlurl4.1.1"
|
|
1132
|
+
* >"4.3.1 Canonical URL"</a> of the specification "OData Version 4.0 Part 2: URL Conventions",
|
|
1133
|
+
* this is the "name of the entity set associated with the entity followed by the key predicate
|
|
1134
|
+
* identifying the entity within the collection". Use the canonical path in
|
|
1135
|
+
* {@link sap.ui.core.Element#bindElement} to create an element binding.
|
|
1136
|
+
*
|
|
1125
1137
|
* Note: For a transient context (see {@link #isTransient}) a wrong path is returned unless all
|
|
1126
1138
|
* key properties are available within the initial data.
|
|
1127
1139
|
*
|
|
@@ -1139,10 +1151,9 @@ sap.ui.define([
|
|
|
1139
1151
|
/**
|
|
1140
1152
|
* Returns a promise on the value for the given path relative to this context. The function
|
|
1141
1153
|
* allows access to the complete data the context points to (if <code>sPath</code> is "") or
|
|
1142
|
-
* any part thereof. The data is a JSON structure as described in
|
|
1143
|
-
*
|
|
1144
|
-
*
|
|
1145
|
-
* "OData JSON Format Version 4.0"</a>.
|
|
1154
|
+
* any part thereof. The data is a JSON structure as described in <a href=
|
|
1155
|
+
* "https://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html"
|
|
1156
|
+
* >"OData JSON Format Version 4.0"</a>.
|
|
1146
1157
|
* Note that the function clones the result. Modify values via
|
|
1147
1158
|
* {@link sap.ui.model.odata.v4.Context#setProperty}.
|
|
1148
1159
|
*
|
|
@@ -1233,7 +1244,7 @@ sap.ui.define([
|
|
|
1233
1244
|
Context.prototype.requestRefresh = function (sGroupId, bAllowRemoval) {
|
|
1234
1245
|
var oPromise;
|
|
1235
1246
|
|
|
1236
|
-
|
|
1247
|
+
_Helper.checkGroupId(sGroupId);
|
|
1237
1248
|
this.oBinding.checkSuspended();
|
|
1238
1249
|
if (this.hasPendingChanges()) {
|
|
1239
1250
|
throw new Error("Cannot refresh entity due to pending changes: " + this);
|
|
@@ -1322,7 +1333,7 @@ sap.ui.define([
|
|
|
1322
1333
|
* specified, make sure that {@link #requestSideEffects} is called after the corresponding
|
|
1323
1334
|
* updates have been successfully processed by the server and that there are no pending
|
|
1324
1335
|
* changes for the affected properties.
|
|
1325
|
-
* @returns {Promise}
|
|
1336
|
+
* @returns {Promise<undefined>}
|
|
1326
1337
|
* Promise resolved with <code>undefined</code>, or rejected with an error if loading of side
|
|
1327
1338
|
* effects fails. Use it to set fields affected by side effects to read-only before
|
|
1328
1339
|
* {@link #requestSideEffects} and make them editable again when the promise resolves; in the
|
|
@@ -1387,7 +1398,7 @@ sap.ui.define([
|
|
|
1387
1398
|
}
|
|
1388
1399
|
|
|
1389
1400
|
this.oBinding.checkSuspended();
|
|
1390
|
-
|
|
1401
|
+
_Helper.checkGroupId(sGroupId);
|
|
1391
1402
|
if (this.isTransient()) {
|
|
1392
1403
|
throw new Error("Unsupported context: " + this);
|
|
1393
1404
|
}
|
|
@@ -1606,7 +1617,7 @@ sap.ui.define([
|
|
|
1606
1617
|
if (this.isTransient()) {
|
|
1607
1618
|
throw new Error("Unsupported transient context " + this);
|
|
1608
1619
|
}
|
|
1609
|
-
|
|
1620
|
+
_Helper.getPredicateIndex(this.sPath);
|
|
1610
1621
|
this.oBinding.checkKeepAlive(this);
|
|
1611
1622
|
|
|
1612
1623
|
if (bKeepAlive && bRequestMessages) {
|
|
@@ -1692,7 +1703,7 @@ sap.ui.define([
|
|
|
1692
1703
|
throw new Error("Not a primitive value");
|
|
1693
1704
|
}
|
|
1694
1705
|
if (sGroupId !== null) {
|
|
1695
|
-
|
|
1706
|
+
_Helper.checkGroupId(sGroupId);
|
|
1696
1707
|
oGroupLock = this.oBinding.lockGroup(sGroupId, true, true);
|
|
1697
1708
|
}
|
|
1698
1709
|
|
|
@@ -1708,19 +1719,46 @@ sap.ui.define([
|
|
|
1708
1719
|
};
|
|
1709
1720
|
|
|
1710
1721
|
/**
|
|
1711
|
-
* Returns a string representation of this object including the binding path
|
|
1722
|
+
* Returns a string representation of this object including the {@link #getPath binding path},
|
|
1723
|
+
* {@link #getIndex index}, and state (see also "Context states" of
|
|
1724
|
+
* {@link topic:c9723f8265f644af91c0ed941e114d46 Creating an Entity}).
|
|
1725
|
+
*
|
|
1726
|
+
* @returns {string} A string description of this binding
|
|
1712
1727
|
*
|
|
1713
|
-
* @return {string} A string description of this binding
|
|
1714
1728
|
* @public
|
|
1729
|
+
* @see #destroy
|
|
1730
|
+
* @see #isDeleted
|
|
1731
|
+
* @see #isInactive
|
|
1732
|
+
* @see #isTransient
|
|
1715
1733
|
* @since 1.39.0
|
|
1716
1734
|
*/
|
|
1717
1735
|
Context.prototype.toString = function () {
|
|
1718
|
-
var
|
|
1736
|
+
var sSuffix = "";
|
|
1737
|
+
|
|
1738
|
+
if (!this.oModel) {
|
|
1739
|
+
sSuffix = ";destroyed";
|
|
1740
|
+
} else if (this.bDeleted) {
|
|
1741
|
+
sSuffix = ";deleted";
|
|
1742
|
+
}
|
|
1719
1743
|
|
|
1720
1744
|
if (this.iIndex !== undefined) {
|
|
1721
|
-
|
|
1745
|
+
if (!sSuffix) {
|
|
1746
|
+
switch (this.isTransient()) {
|
|
1747
|
+
case false:
|
|
1748
|
+
sSuffix = ";createdPersisted";
|
|
1749
|
+
break;
|
|
1750
|
+
|
|
1751
|
+
case true:
|
|
1752
|
+
sSuffix = this.bInactive ? ";inactive" : ";transient";
|
|
1753
|
+
break;
|
|
1754
|
+
|
|
1755
|
+
// no default
|
|
1756
|
+
}
|
|
1757
|
+
}
|
|
1758
|
+
sSuffix = "[" + this.iIndex + sSuffix + "]";
|
|
1722
1759
|
}
|
|
1723
|
-
|
|
1760
|
+
|
|
1761
|
+
return this.sPath + sSuffix;
|
|
1724
1762
|
};
|
|
1725
1763
|
|
|
1726
1764
|
/**
|
|
@@ -136,7 +136,7 @@ sap.ui.define([
|
|
|
136
136
|
break;
|
|
137
137
|
case "$$groupId":
|
|
138
138
|
case "$$updateGroupId":
|
|
139
|
-
|
|
139
|
+
_Helper.checkGroupId(vValue, false,
|
|
140
140
|
"Unsupported value for binding parameter '" + sKey + "': ");
|
|
141
141
|
break;
|
|
142
142
|
case "$$ignoreMessages":
|
|
@@ -388,6 +388,15 @@ sap.ui.define([
|
|
|
388
388
|
this.oCache.deregisterChangeListener(sPath, oListener);
|
|
389
389
|
};
|
|
390
390
|
|
|
391
|
+
/**
|
|
392
|
+
* @override
|
|
393
|
+
* @see sap.ui.base.EventProvider#getEventingParent
|
|
394
|
+
*/
|
|
395
|
+
ODataBinding.prototype.getEventingParent = function () {
|
|
396
|
+
// this allows that dataRequested/dataReceived events are bubbled up to the model
|
|
397
|
+
return this.oModel;
|
|
398
|
+
};
|
|
399
|
+
|
|
391
400
|
/**
|
|
392
401
|
* Hook method for {@link #fetchQueryOptionsForOwnCache} to determine the query options for this
|
|
393
402
|
* binding.
|
|
@@ -639,6 +648,40 @@ sap.ui.define([
|
|
|
639
648
|
});
|
|
640
649
|
};
|
|
641
650
|
|
|
651
|
+
/**
|
|
652
|
+
* Fires the 'dataReceived' event. It may be bubbled up to the model.
|
|
653
|
+
*
|
|
654
|
+
* @param {object} oParameters
|
|
655
|
+
* The event parameters
|
|
656
|
+
* @param {object} [oParameters.data]
|
|
657
|
+
* An empty data object if a back-end request succeeds
|
|
658
|
+
* @param {Error} [oParameters.error]
|
|
659
|
+
* The error object if a back-end request failed.
|
|
660
|
+
* @param {boolean} [bPreventBubbling]
|
|
661
|
+
* Whether the dataRequested and dataReceived events must not be bubbled up to the model
|
|
662
|
+
*
|
|
663
|
+
* @private
|
|
664
|
+
*/
|
|
665
|
+
// @override sap.ui.model.Binding#fireDataReceived
|
|
666
|
+
ODataBinding.prototype.fireDataReceived = function (oParameters, bPreventBubbling) {
|
|
667
|
+
this.fireEvent("dataReceived", oParameters, /*bAllowPreventDefault*/false,
|
|
668
|
+
/*bEnableEventBubbling*/!bPreventBubbling);
|
|
669
|
+
};
|
|
670
|
+
|
|
671
|
+
/**
|
|
672
|
+
* Fires the 'dataRequested' event. It may be bubbled up to the model.
|
|
673
|
+
*
|
|
674
|
+
* @param {boolean} [bPreventBubbling]
|
|
675
|
+
* Whether the dataRequested and dataReceived events must not be bubbled up to the model
|
|
676
|
+
*
|
|
677
|
+
* @private
|
|
678
|
+
*/
|
|
679
|
+
// @override sap.ui.model.Binding#fireDataRequested
|
|
680
|
+
ODataBinding.prototype.fireDataRequested = function (bPreventBubbling) {
|
|
681
|
+
this.fireEvent("dataRequested", undefined, /*bAllowPreventDefault*/false,
|
|
682
|
+
/*bEnableEventBubbling*/!bPreventBubbling);
|
|
683
|
+
};
|
|
684
|
+
|
|
642
685
|
/**
|
|
643
686
|
* Returns all bindings which have this binding as parent binding.
|
|
644
687
|
*
|
|
@@ -755,8 +798,8 @@ sap.ui.define([
|
|
|
755
798
|
*/
|
|
756
799
|
|
|
757
800
|
/**
|
|
758
|
-
* Returns the root binding of this binding's hierarchy, see
|
|
759
|
-
* {@link topic:
|
|
801
|
+
* Returns the root binding of this binding's hierarchy, see
|
|
802
|
+
* {@link topic:fccfb2eb41414f0792c165e69a878717 Initialization and Read Requests}.
|
|
760
803
|
*
|
|
761
804
|
* @returns {sap.ui.model.odata.v4.ODataContextBinding|sap.ui.model.odata.v4.ODataListBinding|
|
|
762
805
|
* sap.ui.model.odata.v4.ODataPropertyBinding|undefined}
|
|
@@ -841,7 +884,7 @@ sap.ui.define([
|
|
|
841
884
|
* {@link sap.ui.model.odata.v4.ODataListBinding#refresh refresh} (since 1.100.0),
|
|
842
885
|
* {@link sap.ui.model.odata.v4.ODataListBinding#sort sort}, or
|
|
843
886
|
* {@link sap.ui.model.odata.v4.ODataListBinding#suspend suspend} because they relate to a
|
|
844
|
-
* {@link sap.ui.model.odata.v4.Context#
|
|
887
|
+
* {@link sap.ui.model.odata.v4.Context#isKeepAlive kept-alive} context of this binding
|
|
845
888
|
* (since 1.97.0). Since 1.98.0, {@link sap.ui.model.odata.v4.Context#isTransient transient}
|
|
846
889
|
* contexts of a {@link #getRootBinding root binding} are treated as kept-alive by this flag.
|
|
847
890
|
* Since 1.99.0, the same happens for bindings using the <code>$$ownRequest</code> parameter
|
|
@@ -983,7 +1026,7 @@ sap.ui.define([
|
|
|
983
1026
|
* The group lock
|
|
984
1027
|
*
|
|
985
1028
|
* @private
|
|
986
|
-
* @see
|
|
1029
|
+
* @see sap.ui.model.odata.v4.ODataModel#lockGroup
|
|
987
1030
|
*/
|
|
988
1031
|
ODataBinding.prototype.lockGroup = function (sGroupId, bLocked, bModifying, fnCancel) {
|
|
989
1032
|
sGroupId = sGroupId || (bModifying ? this.getUpdateGroupId() : this.getGroupId());
|
|
@@ -1037,7 +1080,7 @@ sap.ui.define([
|
|
|
1037
1080
|
* binding,
|
|
1038
1081
|
* <li> or a value of type boolean is given.
|
|
1039
1082
|
* </ul> Since 1.100.0, pending changes are ignored if they relate to a
|
|
1040
|
-
* {@link sap.ui.model.odata.v4.Context#
|
|
1083
|
+
* {@link sap.ui.model.odata.v4.Context#isKeepAlive kept-alive} context of this binding, and
|
|
1041
1084
|
* {@link sap.ui.model.odata.v4.Context#isTransient transient} contexts of a
|
|
1042
1085
|
* {@link #getRootBinding root binding} do not count as pending changes.
|
|
1043
1086
|
*
|
|
@@ -1192,7 +1235,7 @@ sap.ui.define([
|
|
|
1192
1235
|
if (this.hasPendingChanges(true)) {
|
|
1193
1236
|
throw new Error("Cannot refresh due to pending changes");
|
|
1194
1237
|
}
|
|
1195
|
-
|
|
1238
|
+
_Helper.checkGroupId(sGroupId);
|
|
1196
1239
|
|
|
1197
1240
|
// The actual refresh is specific to the binding and is implemented in each binding class.
|
|
1198
1241
|
return Promise.resolve(this.refreshInternal("", sGroupId, true)).then(function () {
|