@openui5/sap.ui.core 1.136.4 → 1.139.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/.eslintrc.json +3 -3
- package/README.md +1 -1
- package/REUSE.toml +8 -29
- package/THIRDPARTY.txt +72 -90
- package/package.json +2 -2
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/LanguageFallback.js +18 -2
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/Localization.js +5 -3
- package/src/sap/base/i18n/ResourceBundle.js +59 -35
- package/src/sap/base/i18n/date/TimezoneUtils.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/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +3 -3
- package/src/sap/ui/base/BindingInfo.js +18 -9
- package/src/sap/ui/base/BindingParser.js +13 -6
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -8
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +37 -27
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- 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/base/OwnStatics.js +49 -0
- package/src/sap/ui/core/.library +9 -31
- package/src/sap/ui/core/BusyIndicator.js +8 -8
- package/src/sap/ui/core/Component.js +63 -73
- package/src/sap/ui/core/ComponentContainer.js +34 -4
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +2 -2
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +13 -11
- package/src/sap/ui/core/Element.js +1 -3
- 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/ExtensionPoint.js +4 -4
- package/src/sap/ui/core/Fragment.js +10 -6
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +39 -24
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +1 -1
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Popup.js +39 -178
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Theming.js +2 -2
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +1 -1
- package/src/sap/ui/core/UIComponent.js +16 -57
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +5 -1
- package/src/sap/ui/core/_IconRegistry.js +2 -0
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +12 -2
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +5 -3
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/interaction/KeyboardInteractionDisplay.js +64 -37
- package/src/sap/ui/core/library.js +3 -3
- 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 +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +6 -6
- package/src/sap/ui/core/messagebundle.properties +58 -28
- package/src/sap/ui/core/messagebundle_mk.properties +3 -3
- package/src/sap/ui/core/mvc/Controller.js +5 -1
- package/src/sap/ui/core/mvc/HTMLView.js +6 -2
- package/src/sap/ui/core/mvc/JSONView.js +6 -2
- package/src/sap/ui/core/mvc/JSView.js +6 -3
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +69 -195
- package/src/sap/ui/core/mvc/XMLView.js +7 -2
- package/src/sap/ui/core/mvc/_ViewFactory.js +196 -0
- 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/Route.js +197 -13
- package/src/sap/ui/core/routing/Router.js +19 -8
- package/src/sap/ui/core/routing/RouterHashChanger.js +12 -3
- package/src/sap/ui/core/routing/Target.js +714 -61
- package/src/sap/ui/core/routing/TargetCache.js +205 -25
- package/src/sap/ui/core/routing/Targets.js +162 -67
- package/src/sap/ui/core/routing/Views.js +1 -0
- package/src/sap/ui/core/routing/sync/Route.js +1 -1
- package/src/sap/ui/core/routing/sync/Target.js +11 -1
- package/src/sap/ui/core/routing/sync/TargetCache.js +3 -3
- package/src/sap/ui/core/routing/sync/Targets.js +1 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -48
- package/src/sap/ui/core/service/ServiceFactory.js +44 -4
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +356 -353
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- 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 +4 -2
- package/src/sap/ui/core/themes/base/base.less +20 -20
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/themes/base/global.less +4 -0
- package/src/sap/ui/core/themes/base/skeleton.less +3 -3
- package/src/sap/ui/core/theming/ThemeHelper.js +1 -18
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +4 -4
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- 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 +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +8 -1
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +4 -4
- 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 +1 -1
- 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/webc/WebComponent.js +2 -3
- package/src/sap/ui/core/webc/WebComponentMetadata.js +2 -3
- package/src/sap/ui/core/webc/WebComponentRenderer.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 +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/ClientModel.js +2 -2
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/Filter.js +55 -35
- package/src/sap/ui/model/FilterOperator.js +79 -9
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +2 -1
- package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +2 -1
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +2 -1
- package/src/sap/ui/model/analytics/odata4analytics.js +2 -1
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +3 -3
- package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +2 -1
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +3 -3
- 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 +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +20 -17
- package/src/sap/ui/model/odata/v4/ODataBinding.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +4 -4
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +34 -22
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +60 -22
- package/src/sap/ui/model/odata/v4/ODataModel.js +9 -8
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataUtils.js +2 -2
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +4 -4
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +98 -89
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +39 -7
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +32 -26
- package/src/sap/ui/model/odata/v4/lib/_GroupLock.js +10 -4
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +44 -24
- package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +50 -19
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- 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 +1 -1
- 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 +1 -4
- package/src/sap/ui/model/xml/XMLModel.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 +14 -2
- package/src/sap/ui/test/Opa5.js +61 -10
- package/src/sap/ui/test/TestUtils.js +6 -2
- package/src/sap/ui/test/generic/GenericTestCollection.js +11 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/thirdparty/datajs.js +13 -10
- package/src/sap/ui/thirdparty/jquery.js +1 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +49 -59
- package/src/ui5loader.js +1 -1
- package/src/sap/ui/core/routing/async/Route.js +0 -186
- package/src/sap/ui/core/routing/async/Target.js +0 -712
- package/src/sap/ui/core/routing/async/TargetCache.js +0 -196
- package/src/sap/ui/core/routing/async/Targets.js +0 -130
- package/src/sap/ui/thirdparty/iscroll-lite.js +0 -603
- package/src/sap/ui/thirdparty/iscroll.js +0 -1104
- package/src/sap/ui/thirdparty/mobiscroll/css/mobiscroll-core.css +0 -416
- package/src/sap/ui/thirdparty/mobiscroll/js/mobiscroll-core.js +0 -127
- package/src/sap/ui/thirdparty/mobiscroll/js/mobiscroll-datetime.js +0 -818
- package/src/sap/ui/thirdparty/mobiscroll/js/mobiscroll-scroller.js +0 -1264
- package/src/sap/ui/thirdparty/swipe-view.js +0 -560
|
@@ -31,6 +31,7 @@ sap.ui.define([
|
|
|
31
31
|
"use strict";
|
|
32
32
|
|
|
33
33
|
var sClassName = "sap.ui.model.odata.v4.ODataListBinding",
|
|
34
|
+
rLambdaOperators = /All|Any|NotAll|NotAny/,
|
|
34
35
|
mSupportedEvents = {
|
|
35
36
|
AggregatedDataStateChange : true,
|
|
36
37
|
change : true,
|
|
@@ -59,7 +60,7 @@ sap.ui.define([
|
|
|
59
60
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
60
61
|
* @public
|
|
61
62
|
* @since 1.37.0
|
|
62
|
-
* @version 1.
|
|
63
|
+
* @version 1.139.0
|
|
63
64
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
64
65
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
65
66
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -580,8 +581,8 @@ sap.ui.define([
|
|
|
580
581
|
* <code>start</code> and <code>length</code> parameters can be used to retrieve the received
|
|
581
582
|
* data via {@link #requestContexts}.
|
|
582
583
|
*
|
|
583
|
-
* If the request fails, the <code>
|
|
584
|
-
*
|
|
584
|
+
* If the request fails, the <code>messagesOnError</code> is an array of UI5 messages containing
|
|
585
|
+
* the back-end messages. They are reported to the message model by default unless
|
|
585
586
|
* {@link sap.ui.base.Event#preventDefault} is called.
|
|
586
587
|
*
|
|
587
588
|
* @param {sap.ui.base.Event} oEvent
|
|
@@ -596,12 +597,12 @@ sap.ui.define([
|
|
|
596
597
|
* The start index of the requested range
|
|
597
598
|
* @param {number} oEvent.getParameters.length
|
|
598
599
|
* The length of the requested range
|
|
599
|
-
* @param {sap.ui.core.message.Message} [oEvent.getParameters.
|
|
600
|
-
*
|
|
600
|
+
* @param {sap.ui.core.message.Message[]} [oEvent.getParameters.messagesOnError]
|
|
601
|
+
* An array of UI5 messages if the request failed; <code>undefined</code> otherwise
|
|
601
602
|
*
|
|
602
603
|
* @event sap.ui.model.odata.v4.ODataListBinding#separateReceived
|
|
603
|
-
* @experimental As of version 1.131.0
|
|
604
604
|
* @public
|
|
605
|
+
* @since 1.137.0
|
|
605
606
|
*/
|
|
606
607
|
|
|
607
608
|
/**
|
|
@@ -2077,11 +2078,14 @@ sap.ui.define([
|
|
|
2077
2078
|
}
|
|
2078
2079
|
|
|
2079
2080
|
sOperator = oFilter.getOperator();
|
|
2080
|
-
if (
|
|
2081
|
+
if (rLambdaOperators.test(sOperator)) {
|
|
2082
|
+
const bNot = sOperator.startsWith("Not");
|
|
2083
|
+
sOperator = sOperator.replace("Not", "");
|
|
2084
|
+
const sPrefix = (bNot ? "not " : "") + oFilter.getPath() + "/";
|
|
2081
2085
|
oCondition = oFilter.getCondition();
|
|
2082
2086
|
sLambdaVariable = oFilter.getVariable();
|
|
2083
|
-
if (sOperator ===
|
|
2084
|
-
return
|
|
2087
|
+
if (sOperator === "Any" && !oCondition) {
|
|
2088
|
+
return sPrefix + "any()";
|
|
2085
2089
|
}
|
|
2086
2090
|
// multifilters are processed in parallel, so clone mLambdaVariableToPath
|
|
2087
2091
|
// to allow same lambda variables in different filters
|
|
@@ -2089,10 +2093,8 @@ sap.ui.define([
|
|
|
2089
2093
|
mLambdaVariableToPath[sLambdaVariable]
|
|
2090
2094
|
= replaceLambdaVariables(oFilter.getPath(), mLambdaVariableToPath);
|
|
2091
2095
|
|
|
2092
|
-
return fetchFilter(
|
|
2093
|
-
|
|
2094
|
-
).then(function (sFilterValue) {
|
|
2095
|
-
return oFilter.getPath() + "/" + oFilter.getOperator().toLowerCase()
|
|
2096
|
+
return fetchFilter(oCondition, mLambdaVariableToPath).then((sFilterValue) => {
|
|
2097
|
+
return sPrefix + sOperator.toLowerCase()
|
|
2096
2098
|
+ "(" + sLambdaVariable + ":" + sFilterValue + ")";
|
|
2097
2099
|
});
|
|
2098
2100
|
}
|
|
@@ -2532,14 +2534,14 @@ sap.ui.define([
|
|
|
2532
2534
|
length : iEnd - iStart
|
|
2533
2535
|
};
|
|
2534
2536
|
if (oError) {
|
|
2535
|
-
oParameters.
|
|
2536
|
-
_Helper.extractMessages(oError), oError.resourcePath, /*bSilent*/true)
|
|
2537
|
+
oParameters.messagesOnError = this.oModel.reportTransitionMessages(
|
|
2538
|
+
_Helper.extractMessages(oError), oError.resourcePath, /*bSilent*/true);
|
|
2537
2539
|
}
|
|
2538
2540
|
|
|
2539
2541
|
const bDefaultAction = this.fireEvent("separateReceived", oParameters, true);
|
|
2540
2542
|
|
|
2541
2543
|
if (oError && bDefaultAction) {
|
|
2542
|
-
Messaging.updateMessages(undefined,
|
|
2544
|
+
Messaging.updateMessages(undefined, oParameters.messagesOnError);
|
|
2543
2545
|
}
|
|
2544
2546
|
};
|
|
2545
2547
|
|
|
@@ -2622,7 +2624,7 @@ sap.ui.define([
|
|
|
2622
2624
|
* @param {string} sResourcePath
|
|
2623
2625
|
* The resource path for the cache
|
|
2624
2626
|
* @param {object} mQueryOptions
|
|
2625
|
-
* The query options for the cache
|
|
2627
|
+
* The query options for the cache (requires "copy on write"!)
|
|
2626
2628
|
* @returns {sap.ui.model.odata.v4.lib._CollectionCache|undefined}
|
|
2627
2629
|
* The cache or <code>undefined</code> if the model has no matching temporary binding
|
|
2628
2630
|
*
|
|
@@ -3423,7 +3425,7 @@ sap.ui.define([
|
|
|
3423
3425
|
* because the binding may have acquired them via autoExpandSelect.
|
|
3424
3426
|
*
|
|
3425
3427
|
* @param {object} mQueryOptions
|
|
3426
|
-
*
|
|
3428
|
+
* A map of key-value pairs representing the query string (requires "copy on write"!)
|
|
3427
3429
|
* @param {sap.ui.model.Context} [oContext]
|
|
3428
3430
|
* The context instance to be used, must be <code>undefined</code> for absolute bindings
|
|
3429
3431
|
* @returns {object} The merged query options
|
|
@@ -3630,6 +3632,10 @@ sap.ui.define([
|
|
|
3630
3632
|
*/
|
|
3631
3633
|
ODataListBinding.prototype.isUnchangedParameter = function (sName, vOtherValue) {
|
|
3632
3634
|
if (sName === "$$aggregation") {
|
|
3635
|
+
if (!vOtherValue) {
|
|
3636
|
+
return this.mParameters.$$aggregation === vOtherValue;
|
|
3637
|
+
}
|
|
3638
|
+
|
|
3633
3639
|
// Note: $fetchMetadata is lost here, but never mind - $apply does not matter, only
|
|
3634
3640
|
// normalization is needed
|
|
3635
3641
|
vOtherValue = _Helper.clone(vOtherValue); // avoid modification due to normalization
|
|
@@ -4760,7 +4766,7 @@ sap.ui.define([
|
|
|
4760
4766
|
|
|
4761
4767
|
/**
|
|
4762
4768
|
* Sets a new data aggregation object and derives the system query option <code>$apply</code>
|
|
4763
|
-
* implicitly from it.
|
|
4769
|
+
* implicitly from it. If the aggregation is unchanged, nothing happens.
|
|
4764
4770
|
*
|
|
4765
4771
|
* @param {object} [oAggregation]
|
|
4766
4772
|
* An object holding the information needed for data aggregation; see also
|
|
@@ -4811,7 +4817,9 @@ sap.ui.define([
|
|
|
4811
4817
|
* <code>hierarchyQualifier</code> is given. Root nodes are on the first level. By default,
|
|
4812
4818
|
* only root nodes are available; they are not yet expanded. Since 1.120.0,
|
|
4813
4819
|
* <code>expandTo >= Number.MAX_SAFE_INTEGER</code> can be used to expand all levels
|
|
4814
|
-
* (<code>1E16</code> is recommended inside XML views for simplicity).
|
|
4820
|
+
* (<code>1E16</code> is recommended inside XML views for simplicity). Since 1.139.0,
|
|
4821
|
+
* {@link #getAggregation} returns <code>expandTo : Number.MAX_SAFE_INTEGER</code> instead of
|
|
4822
|
+
* values greater than this. These differences do not count as changes.
|
|
4815
4823
|
* @param {boolean} [oAggregation.grandTotalAtBottomOnly]
|
|
4816
4824
|
* Tells whether the grand totals for aggregatable properties are displayed at the bottom only
|
|
4817
4825
|
* (since 1.86.0); <code>true</code> for bottom only, <code>false</code> for top and bottom,
|
|
@@ -4881,12 +4889,13 @@ sap.ui.define([
|
|
|
4881
4889
|
* <li> the binding has a {@link sap.ui.model.odata.v4.Context#isKeepAlive kept-alive}
|
|
4882
4890
|
* context when switching the use case of data aggregation (recursive hierarchy, pure data
|
|
4883
4891
|
* aggregation, or none at all),
|
|
4884
|
-
* <li> there are pending changes,
|
|
4892
|
+
* <li> there are pending changes (unless the aggregation is unchanged),
|
|
4885
4893
|
* <li> a recursive hierarchy is requested, but the model does not use the
|
|
4886
4894
|
* <code>autoExpandSelect</code> parameter,
|
|
4887
4895
|
* <li> the binding is part of a {@link #create deep create} because it is relative to a
|
|
4888
4896
|
* {@link sap.ui.model.odata.v4.Context#isTransient transient} context,
|
|
4889
|
-
* <li> the binding has {@link sap.ui.model.Filter.NONE}
|
|
4897
|
+
* <li> the binding has {@link sap.ui.model.Filter.NONE} (unless the aggregation is
|
|
4898
|
+
* unchanged)
|
|
4890
4899
|
* </ul>
|
|
4891
4900
|
*
|
|
4892
4901
|
* @example <caption>First group level is product category including subtotals for the net
|
|
@@ -4930,6 +4939,9 @@ sap.ui.define([
|
|
|
4930
4939
|
}
|
|
4931
4940
|
|
|
4932
4941
|
this.checkTransient();
|
|
4942
|
+
if (this.isUnchangedParameter("$$aggregation", oAggregation)) {
|
|
4943
|
+
return;
|
|
4944
|
+
}
|
|
4933
4945
|
if (this.hasFilterNone()) {
|
|
4934
4946
|
throw new Error("Cannot combine Filter.NONE with $$aggregation");
|
|
4935
4947
|
}
|
|
@@ -60,6 +60,10 @@ sap.ui.define([
|
|
|
60
60
|
oBooleanType,
|
|
61
61
|
mCodeListUrl2Promise = {},
|
|
62
62
|
DEBUG = Log.Level.DEBUG,
|
|
63
|
+
oDynamicProperty = Object.freeze({
|
|
64
|
+
$kind : "Property",
|
|
65
|
+
$Type : "Edm.Untyped" // inspired by 4.01
|
|
66
|
+
}),
|
|
63
67
|
oGeoJSON = {
|
|
64
68
|
$kind : "ComplexType",
|
|
65
69
|
$OpenType : true,
|
|
@@ -195,7 +199,7 @@ sap.ui.define([
|
|
|
195
199
|
* @hideconstructor
|
|
196
200
|
* @public
|
|
197
201
|
* @since 1.37.0
|
|
198
|
-
* @version 1.
|
|
202
|
+
* @version 1.139.0
|
|
199
203
|
*/
|
|
200
204
|
ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
|
|
201
205
|
constructor : constructor
|
|
@@ -570,6 +574,7 @@ sap.ui.define([
|
|
|
570
574
|
? [vAnnotationUri] : vAnnotationUri;
|
|
571
575
|
this.sDefaultBindingMode = BindingMode.OneTime;
|
|
572
576
|
this.mETags = {};
|
|
577
|
+
this.sForbiddenSchema = undefined; // data service's schema in case of a value help service
|
|
573
578
|
this.sLanguage = sLanguage;
|
|
574
579
|
// no need to use UI5Date.getInstance as only the timestamp is relevant
|
|
575
580
|
this.oLastModified = new Date(0);
|
|
@@ -593,8 +598,8 @@ sap.ui.define([
|
|
|
593
598
|
this.mSupportedBindingModes = {OneTime : true, OneWay : true};
|
|
594
599
|
this.bSupportReferences = bSupportReferences !== false; // default is true
|
|
595
600
|
// ClientListBinding#filter calls checkFilter on the model; ClientModel does
|
|
596
|
-
// not support "All" and "
|
|
597
|
-
this.mUnsupportedFilterOperators = {All : true, Any : true};
|
|
601
|
+
// not support "All", "Any", "NotAll", and "NotAny" filters
|
|
602
|
+
this.mUnsupportedFilterOperators = {All : true, Any : true, NotAll : true, NotAny : true};
|
|
598
603
|
this.sUrl = sUrl;
|
|
599
604
|
}
|
|
600
605
|
|
|
@@ -917,6 +922,21 @@ sap.ui.define([
|
|
|
917
922
|
throw oError;
|
|
918
923
|
};
|
|
919
924
|
|
|
925
|
+
/**
|
|
926
|
+
* Tells this meta model to not include the given schema. Use this to prevent inclusion of the
|
|
927
|
+
* data service's schema into a value help service, which would be possible due to a
|
|
928
|
+
* "cross-service reference" but would violate the constraints of {@link #requestValueListInfo}
|
|
929
|
+
* regarding "Unexpected annotation ... with namespace of data service ...".
|
|
930
|
+
*
|
|
931
|
+
* @param {string} sSchema
|
|
932
|
+
* A namespace of a schema, for example "foo.bar."
|
|
933
|
+
*
|
|
934
|
+
* @private
|
|
935
|
+
*/
|
|
936
|
+
ODataMetaModel.prototype._setForbiddenSchema = function (sSchema) {
|
|
937
|
+
this.sForbiddenSchema = sSchema;
|
|
938
|
+
};
|
|
939
|
+
|
|
920
940
|
/**
|
|
921
941
|
* See {@link sap.ui.base.EventProvider#attachEvent}
|
|
922
942
|
*
|
|
@@ -1184,6 +1204,7 @@ sap.ui.define([
|
|
|
1184
1204
|
vLocation, // {string[]|string} location of indirection
|
|
1185
1205
|
sName, // what "@sapui.name" refers to: OData or annotation name
|
|
1186
1206
|
bODataMode, // OData navigation mode with scope lookup etc.
|
|
1207
|
+
bOpenType, // schema child is an open (entity or complex) type
|
|
1187
1208
|
// parent for next "17.2 SimpleIdentifier"...
|
|
1188
1209
|
// (normally the schema child containing the current object)
|
|
1189
1210
|
oSchemaChild, // ...as object
|
|
@@ -1229,8 +1250,8 @@ sap.ui.define([
|
|
|
1229
1250
|
if (vBindingParameterType) {
|
|
1230
1251
|
oSchemaChild = aOverloads = vResult.filter(isRightOverload);
|
|
1231
1252
|
if (aOverloads.length !== 1) {
|
|
1232
|
-
return log(WARNING, "Expected a single overload, but found "
|
|
1233
|
-
|
|
1253
|
+
return log(WARNING, "Expected a single overload, but found ",
|
|
1254
|
+
aOverloads.length);
|
|
1234
1255
|
}
|
|
1235
1256
|
if (vBindingParameterType !== UNBOUND) {
|
|
1236
1257
|
sSignature = aOverloads[0].$Parameter[0].$isCollection
|
|
@@ -1443,6 +1464,10 @@ sap.ui.define([
|
|
|
1443
1464
|
}
|
|
1444
1465
|
// unknown qualified name: maybe schema is referenced and can be included?
|
|
1445
1466
|
sSchema = schema(sQualifiedName);
|
|
1467
|
+
if (sSchema === that.sForbiddenSchema) {
|
|
1468
|
+
return logWithLocation(WARNING, "Must not access schema '", sSchema,
|
|
1469
|
+
"' from meta model for ", that.sUrl);
|
|
1470
|
+
}
|
|
1446
1471
|
vResult = that._getOrFetchSchema(mScope, sSchema, logWithLocation);
|
|
1447
1472
|
}
|
|
1448
1473
|
|
|
@@ -1450,6 +1475,7 @@ sap.ui.define([
|
|
|
1450
1475
|
sTarget = sName = sSchemaChildName = sQualifiedName;
|
|
1451
1476
|
vResult = oSchemaChild = mScope[sSchemaChildName];
|
|
1452
1477
|
if (!SyncPromise.isThenable(vResult)) {
|
|
1478
|
+
bOpenType = vResult.$OpenType;
|
|
1453
1479
|
return true; // qualified name found, steps may continue
|
|
1454
1480
|
}
|
|
1455
1481
|
}
|
|
@@ -1537,7 +1563,10 @@ sap.ui.define([
|
|
|
1537
1563
|
return scopeLookup(sSegment);
|
|
1538
1564
|
} else if (bResultIsObject && "$Type" in vResult) {
|
|
1539
1565
|
// implicit $Type insertion, e.g. at (navigation) property
|
|
1540
|
-
if (
|
|
1566
|
+
if (bOpenType && vResult.$Type === "Edm.Untyped") {
|
|
1567
|
+
// no use to lookup, type continues to be open
|
|
1568
|
+
sName = undefined; // block "@sapui.name"
|
|
1569
|
+
} else if (!scopeLookup(vResult.$Type, "$Type")) {
|
|
1541
1570
|
return false;
|
|
1542
1571
|
}
|
|
1543
1572
|
} else if (bResultIsObject && "$Action" in vResult) {
|
|
@@ -1651,9 +1680,9 @@ sap.ui.define([
|
|
|
1651
1680
|
function terminal(vValue) {
|
|
1652
1681
|
vResult = vValue;
|
|
1653
1682
|
if (vResult === undefined) {
|
|
1654
|
-
log(WARNING, "Unsupported path before "
|
|
1683
|
+
log(WARNING, "Unsupported path before ", sSegment);
|
|
1655
1684
|
} else if (i + 1 < aSegments.length) {
|
|
1656
|
-
log(WARNING, "Unsupported path after "
|
|
1685
|
+
log(WARNING, "Unsupported path after ", sSegment);
|
|
1657
1686
|
}
|
|
1658
1687
|
return false;
|
|
1659
1688
|
}
|
|
@@ -1698,7 +1727,9 @@ sap.ui.define([
|
|
|
1698
1727
|
}
|
|
1699
1728
|
sName = bODataMode || sSegment[0] === "@" ? sSegment : undefined;
|
|
1700
1729
|
sTarget = bODataMode ? sTarget + "/" + sSegment : undefined;
|
|
1701
|
-
vResult = vResult
|
|
1730
|
+
vResult = bOpenType && !bInsideAnnotation && !(sSegment in vResult)
|
|
1731
|
+
? oDynamicProperty
|
|
1732
|
+
: vResult[sSegment];
|
|
1702
1733
|
}
|
|
1703
1734
|
return true;
|
|
1704
1735
|
}
|
|
@@ -1956,7 +1987,7 @@ sap.ui.define([
|
|
|
1956
1987
|
sNavigationPath = _Helper.buildPath(sNavigationPath, sPropertyName);
|
|
1957
1988
|
oProperty = bInsideAnnotation ? {} : oType[sPropertyName];
|
|
1958
1989
|
if (!oProperty) {
|
|
1959
|
-
if (sPropertyName.includes("@")) {
|
|
1990
|
+
if (sPropertyName.includes("@") || oType.$OpenType) {
|
|
1960
1991
|
if (sPropertyName.includes("@$ui5.")
|
|
1961
1992
|
&& sPropertyName !== "@$ui5.context.isSelected") {
|
|
1962
1993
|
error("Read-only path must not be updated");
|
|
@@ -2556,13 +2587,17 @@ sap.ui.define([
|
|
|
2556
2587
|
* list model!
|
|
2557
2588
|
* @param {boolean} [bAutoExpandSelect]
|
|
2558
2589
|
* Whether the model is to be created with autoExpandSelect
|
|
2590
|
+
* @param {string} [sQualifiedParentName]
|
|
2591
|
+
* Only in case of a value list model: The qualified name of the structured type containing
|
|
2592
|
+
* the property or the operation containing the parameter where value list info was requested.
|
|
2593
|
+
* Used to derive the {@link #_setForbiddenSchema forbidden schema}.
|
|
2559
2594
|
* @returns {sap.ui.model.odata.v4.ODataModel}
|
|
2560
2595
|
* The shared model
|
|
2561
2596
|
*
|
|
2562
2597
|
* @private
|
|
2563
2598
|
*/
|
|
2564
2599
|
ODataMetaModel.prototype.getOrCreateSharedModel = function (sUrl, bCopyAnnotations,
|
|
2565
|
-
bAutoExpandSelect) {
|
|
2600
|
+
bAutoExpandSelect, sQualifiedParentName) {
|
|
2566
2601
|
sUrl = this.getAbsoluteServiceUrl(sUrl);
|
|
2567
2602
|
const sMapKey = !!bAutoExpandSelect + sUrl; // no separator needed as sUrl.startsWith("/")
|
|
2568
2603
|
let mSharedModelByUrl = this.mSharedModelByUrl;
|
|
@@ -2584,6 +2619,9 @@ sap.ui.define([
|
|
|
2584
2619
|
if (bCopyAnnotations) {
|
|
2585
2620
|
oSharedModel.getMetaModel()._copyAnnotations(this.oMetaModelForAnnotations ?? this);
|
|
2586
2621
|
}
|
|
2622
|
+
if (sQualifiedParentName) {
|
|
2623
|
+
oSharedModel.getMetaModel()._setForbiddenSchema(schema(sQualifiedParentName));
|
|
2624
|
+
}
|
|
2587
2625
|
oSharedModel.setRetryAfterHandler((oError) => {
|
|
2588
2626
|
return this.oModel.getOrCreateRetryAfterPromise(oError);
|
|
2589
2627
|
});
|
|
@@ -3117,7 +3155,7 @@ sap.ui.define([
|
|
|
3117
3155
|
* "<7.2.1 Attribute Property>@...", "$OnDelete@...", "<10.2.1 Attribute Name>@..." and
|
|
3118
3156
|
* "<14.5.14.2.1 Attribute Property>@..." (where angle brackets denote a variable part and
|
|
3119
3157
|
* sections refer to specification <a href=
|
|
3120
|
-
* "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.
|
|
3158
|
+
* "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part3-csdl.html"
|
|
3121
3159
|
* >"OData Version 4.0 Part 3: Common Schema Definition Language"</a>).
|
|
3122
3160
|
*
|
|
3123
3161
|
* Annotations starting with "@@", for example
|
|
@@ -3224,7 +3262,9 @@ sap.ui.define([
|
|
|
3224
3262
|
* placeholder for one. In this way, "/EMPLOYEES/" addresses the same entity type as
|
|
3225
3263
|
* "/EMPLOYEES/$Type/". That entity type in turn is a map of all its OData children (that is,
|
|
3226
3264
|
* structural and navigation properties) and determines the set of possible child names that
|
|
3227
|
-
* might be used after the trailing slash.
|
|
3265
|
+
* might be used after the trailing slash. Since 1.137.0, open (complex or entity) types are
|
|
3266
|
+
* supported as follows: A simple identifier that does not refer to an OData child is valid and
|
|
3267
|
+
* treated as a dynamic property of type "Edm.Untyped".
|
|
3228
3268
|
*
|
|
3229
3269
|
* "$" can be used as the last segment to continue a path and thus force scope lookup, but no
|
|
3230
3270
|
* OData simple identifier preparations. In this way, it serves as a placeholder for a technical
|
|
@@ -3470,11 +3510,9 @@ sap.ui.define([
|
|
|
3470
3510
|
// flag for "fixed values"
|
|
3471
3511
|
this.requestObject(sPropertyMetaPath + sValueListWithFixedValues),
|
|
3472
3512
|
this.requestObject(sParentMetaPath + "/@$ui5.overload")
|
|
3473
|
-
]).then(function (
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
mMappingUrlByQualifier = {},
|
|
3477
|
-
oProperty = aResults[1],
|
|
3513
|
+
]).then(function ([sQualifiedParentName, oProperty, mAnnotationByTerm, bFixedValues,
|
|
3514
|
+
aOverloads]) {
|
|
3515
|
+
var mMappingUrlByQualifier = {},
|
|
3478
3516
|
oValueListInfo = {};
|
|
3479
3517
|
|
|
3480
3518
|
/*
|
|
@@ -3489,7 +3527,7 @@ sap.ui.define([
|
|
|
3489
3527
|
function addMapping(mValueListMapping, sQualifier, sMappingUrl, oModel) {
|
|
3490
3528
|
if ("CollectionRoot" in mValueListMapping) {
|
|
3491
3529
|
oModel = that.getOrCreateSharedModel(mValueListMapping.CollectionRoot,
|
|
3492
|
-
/*bCopyAnnotations*/true, bAutoExpandSelect);
|
|
3530
|
+
/*bCopyAnnotations*/true, bAutoExpandSelect, sQualifiedParentName);
|
|
3493
3531
|
if (oValueListInfo[sQualifier]
|
|
3494
3532
|
&& oValueListInfo[sQualifier].$model === oModel) {
|
|
3495
3533
|
// same model -> allow overriding the qualifier
|
|
@@ -3524,11 +3562,11 @@ sap.ui.define([
|
|
|
3524
3562
|
// fetch mappings for each entry and wait for all
|
|
3525
3563
|
return Promise.all(aMappingUrls.map(function (sMappingUrl) {
|
|
3526
3564
|
var oValueListModel = that.getOrCreateSharedModel(sMappingUrl,
|
|
3527
|
-
/*bCopyAnnotations*/true, bAutoExpandSelect);
|
|
3565
|
+
/*bCopyAnnotations*/true, bAutoExpandSelect, sQualifiedParentName);
|
|
3528
3566
|
|
|
3529
3567
|
// fetch the mappings for the given mapping URL
|
|
3530
|
-
return that.fetchValueListMappings(oValueListModel,
|
|
3531
|
-
|
|
3568
|
+
return that.fetchValueListMappings(oValueListModel, sQualifiedParentName,
|
|
3569
|
+
oProperty, aOverloads
|
|
3532
3570
|
).then(function (mValueListMappingByQualifier) {
|
|
3533
3571
|
// enrich with oValueListModel
|
|
3534
3572
|
return {
|
|
@@ -240,7 +240,7 @@ sap.ui.define([
|
|
|
240
240
|
* @extends sap.ui.model.Model
|
|
241
241
|
* @public
|
|
242
242
|
* @since 1.37.0
|
|
243
|
-
* @version 1.
|
|
243
|
+
* @version 1.139.0
|
|
244
244
|
*/
|
|
245
245
|
ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
246
246
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
|
|
@@ -962,11 +962,11 @@ sap.ui.define([
|
|
|
962
962
|
* Whether the binding always uses an own service request to read its data; only the value
|
|
963
963
|
* <code>true</code> is allowed.
|
|
964
964
|
* @param {string[]} [mParameters.$$separate]
|
|
965
|
-
* An array of navigation property names which are omitted from the main list request
|
|
966
|
-
*
|
|
967
|
-
*
|
|
968
|
-
*
|
|
969
|
-
*
|
|
965
|
+
* An array of navigation property names which are omitted from the main list request (since
|
|
966
|
+
* 1.137.0). Instead, each of them is loaded in a separate request. This results in the main
|
|
967
|
+
* list becoming available faster, while the separate properties are merged as soon as the
|
|
968
|
+
* data is received. Note that the separate properties must be single valued and part of the
|
|
969
|
+
* '$expand' system query option, either automatically via the "autoExpandSelect" model
|
|
970
970
|
* parameter (see {@link #constructor}) or manually. The <code>$$separate</code> parameter
|
|
971
971
|
* must not be combined with <code>$$aggregation</code>.
|
|
972
972
|
* @param {boolean} [mParameters.$$sharedRequest]
|
|
@@ -1266,7 +1266,7 @@ sap.ui.define([
|
|
|
1266
1266
|
* and missing headers remain unchanged. The following headers must not be used:
|
|
1267
1267
|
* <ul>
|
|
1268
1268
|
* <li> OData V4 requests headers as specified in <a href=
|
|
1269
|
-
* "https://docs.oasis-open.org/odata/odata/v4.0/
|
|
1269
|
+
* "https://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html#_Common_Headers"
|
|
1270
1270
|
* >"8.1 Common Headers"</a> and "8.2 Request Headers" of the specification "OData Version
|
|
1271
1271
|
* 4.0 Part 1: Protocol"
|
|
1272
1272
|
* <li> OData V2 request headers as specified in "2.2.5 HTTP Header Fields" of the
|
|
@@ -2880,7 +2880,8 @@ sap.ui.define([
|
|
|
2880
2880
|
* but take care to replace dashes with underscores.
|
|
2881
2881
|
* @throws {Error}
|
|
2882
2882
|
* If the given group ID is not a valid group ID or has
|
|
2883
|
-
* {@link sap.ui.model.odata.v4.SubmitMode.Direct}
|
|
2883
|
+
* {@link sap.ui.model.odata.v4.SubmitMode.Direct} or if multiple requests that apply the
|
|
2884
|
+
* preference "handling=strict" already exist in the same change set of the batch request
|
|
2884
2885
|
*
|
|
2885
2886
|
* @private
|
|
2886
2887
|
* @since 1.134.0
|
|
@@ -1097,7 +1097,7 @@ sap.ui.define([
|
|
|
1097
1097
|
* @private
|
|
1098
1098
|
*/
|
|
1099
1099
|
ODataParentBinding.prototype.getGeneration = function () {
|
|
1100
|
-
return this.bRelative && this.oContext
|
|
1100
|
+
return this.bRelative && this.oContext?.getGeneration?.() || 0;
|
|
1101
1101
|
};
|
|
1102
1102
|
|
|
1103
1103
|
/**
|
|
@@ -1263,7 +1263,7 @@ sap.ui.define([
|
|
|
1263
1263
|
* "unchanged" when compared to the given other value.
|
|
1264
1264
|
*
|
|
1265
1265
|
* @param {string} sName - The parameter's name
|
|
1266
|
-
* @param {any} vOtherValue - The parameter's other value
|
|
1266
|
+
* @param {any} [vOtherValue] - The parameter's other value
|
|
1267
1267
|
* @returns {boolean} Whether the parameter is "unchanged"
|
|
1268
1268
|
*
|
|
1269
1269
|
* @private
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @mixes sap.ui.model.odata.v4.ODataBinding
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.37.0
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.139.0
|
|
46
46
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
47
47
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
48
48
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -14,7 +14,7 @@ sap.ui.define([
|
|
|
14
14
|
], function (CalendarType, DateFormat, BaseODataUtils, _Batch, _Helper) {
|
|
15
15
|
"use strict";
|
|
16
16
|
|
|
17
|
-
// see
|
|
17
|
+
// see https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/abnf/
|
|
18
18
|
var oDateFormatter,
|
|
19
19
|
oDateTimeOffsetFormatter,
|
|
20
20
|
sDateValue = "\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])",
|
|
@@ -140,7 +140,7 @@ sap.ui.define([
|
|
|
140
140
|
*
|
|
141
141
|
* @param {any} vValue
|
|
142
142
|
* The value according to <a href=
|
|
143
|
-
* "https://docs.oasis-open.org/odata/odata-json-format/v4.0/
|
|
143
|
+
* "https://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html#_Primitive_Value"
|
|
144
144
|
* >"OData JSON Format Version 4.0" section "7.1 Primitive Value"</a>
|
|
145
145
|
* @param {string} sType
|
|
146
146
|
* The OData primitive type, for example "Edm.String"
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
sap.ui.define([
|
|
10
10
|
"../_AnnotationHelperBasics",
|
|
11
11
|
"sap/base/Log",
|
|
12
|
+
"sap/ui/base/BindingInfo",
|
|
12
13
|
"sap/ui/base/BindingParser",
|
|
13
|
-
"sap/ui/base/ManagedObject",
|
|
14
14
|
"sap/ui/base/SyncPromise",
|
|
15
15
|
"sap/ui/performance/Measurement"
|
|
16
|
-
], function (Basics, Log,
|
|
16
|
+
], function (Basics, Log, BindingInfo, BindingParser, SyncPromise, Measurement) {
|
|
17
17
|
"use strict";
|
|
18
18
|
|
|
19
|
-
// see
|
|
19
|
+
// see https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/abnf/
|
|
20
20
|
var sAnnotationHelper = "sap.ui.model.odata.v4.AnnotationHelper",
|
|
21
21
|
aPerformanceCategories = [sAnnotationHelper],
|
|
22
22
|
sPerformanceGetExpression = sAnnotationHelper + "/getExpression",
|
|
@@ -680,7 +680,7 @@ sap.ui.define([
|
|
|
680
680
|
Measurement.average(sPerformanceGetExpression, "", aPerformanceCategories);
|
|
681
681
|
|
|
682
682
|
if (!bSimpleParserWarningLogged
|
|
683
|
-
&&
|
|
683
|
+
&& BindingInfo.parse === BindingParser.simpleParser) {
|
|
684
684
|
Log.warning("Complex binding syntax not active", null, sAnnotationHelper);
|
|
685
685
|
bSimpleParserWarningLogged = true;
|
|
686
686
|
}
|