@openui5/sap.ui.core 1.95.0 → 1.96.3
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 +12 -0
- package/.reuse/dep5 +10 -5
- package/THIRDPARTY.txt +17 -8
- package/package.json +1 -1
- 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/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 +6 -5
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +1 -1
- package/src/sap/ui/base/ManagedObjectMetadata.js +2 -2
- 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 +2 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +2 -3
- package/src/sap/ui/core/ComponentContainer.js +9 -3
- 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 +6 -2
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +64 -6
- 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 +1 -1
- 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/Fragment.js +2 -2
- 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 +3 -4
- package/src/sap/ui/core/IconPool.js +11 -0
- package/src/sap/ui/core/IconRenderer.js +4 -4
- 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/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/Patcher.js +27 -3
- package/src/sap/ui/core/Placeholder.js +4 -4
- package/src/sap/ui/core/RenderManager.js +20 -4
- 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/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 +3 -4
- 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 +2 -2
- package/src/sap/ui/core/XMLCompositeMetadata.js +2 -2
- package/src/sap/ui/core/XMLTemplateProcessor.js +112 -37
- package/src/sap/ui/core/_IconRegistry.js +31 -98
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +16 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- 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 +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +1 -1
- package/src/sap/ui/core/mvc/XMLViewRenderer.js +17 -20
- 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 +8 -1
- package/src/sap/ui/core/routing/async/Target.js +2 -4
- 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 -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/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +37 -43
- 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 +1 -1
- package/src/sap/ui/core/themes/base/Icon.less +9 -0
- package/src/sap/ui/core/themes/base/SAP-icons.css +2 -0
- package/src/sap/ui/core/themes/base/SAP-icons.less +10 -0
- package/src/sap/ui/core/themes/base/base.less +543 -390
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/themes/base/global.less +38 -0
- package/src/sap/ui/core/themes/base/library.source.less +1 -2
- package/src/sap/ui/core/themes/sap_hcb/global.less +34 -0
- package/src/sap/ui/core/theming/Parameters.js +22 -142
- package/src/sap/ui/core/theming/ThemeHelper.js +26 -37
- 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 +1 -1
- 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/reflection/BaseTreeModifier.js +4 -0
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +36 -28
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +6 -3
- 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/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/Highlighter.js +8 -2
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/Binding.js +174 -118
- package/src/sap/ui/model/ClientContextBinding.js +1 -1
- package/src/sap/ui/model/ClientListBinding.js +1 -3
- package/src/sap/ui/model/ClientModel.js +4 -4
- package/src/sap/ui/model/ClientPropertyBinding.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +1 -1
- package/src/sap/ui/model/ClientTreeBindingAdapter.js +28 -23
- package/src/sap/ui/model/CompositeBinding.js +98 -77
- package/src/sap/ui/model/CompositeDataState.js +2 -2
- package/src/sap/ui/model/CompositeType.js +2 -2
- package/src/sap/ui/model/Context.js +4 -2
- package/src/sap/ui/model/ContextBinding.js +6 -14
- package/src/sap/ui/model/DataState.js +2 -2
- package/src/sap/ui/model/Filter.js +255 -53
- package/src/sap/ui/model/FilterOperator.js +1 -1
- package/src/sap/ui/model/FilterProcessor.js +27 -17
- package/src/sap/ui/model/FilterType.js +1 -1
- package/src/sap/ui/model/ListBinding.js +180 -117
- package/src/sap/ui/model/MetaModel.js +4 -9
- package/src/sap/ui/model/Model.js +345 -294
- package/src/sap/ui/model/PropertyBinding.js +92 -58
- package/src/sap/ui/model/SelectionModel.js +2 -2
- package/src/sap/ui/model/SimpleType.js +2 -2
- package/src/sap/ui/model/Sorter.js +1 -1
- package/src/sap/ui/model/SorterProcessor.js +1 -1
- package/src/sap/ui/model/StaticBinding.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +2 -2
- package/src/sap/ui/model/TreeBinding.js +1 -1
- package/src/sap/ui/model/TreeBindingAdapter.js +251 -100
- package/src/sap/ui/model/TreeBindingCompatibilityAdapter.js +16 -9
- package/src/sap/ui/model/TreeBindingUtils.js +1 -0
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +41 -29
- package/src/sap/ui/model/analytics/AnalyticalTreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
- package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +1 -1
- package/src/sap/ui/model/analytics/odata4analytics.js +3 -2
- package/src/sap/ui/model/json/JSONListBinding.js +8 -5
- package/src/sap/ui/model/json/JSONModel.js +21 -14
- package/src/sap/ui/model/json/JSONPropertyBinding.js +4 -3
- package/src/sap/ui/model/json/JSONTreeBinding.js +1 -1
- package/src/sap/ui/model/message/MessageListBinding.js +6 -3
- package/src/sap/ui/model/message/MessageModel.js +20 -14
- package/src/sap/ui/model/message/MessagePropertyBinding.js +2 -2
- package/src/sap/ui/model/odata/AnnotationHelper.js +1 -1
- package/src/sap/ui/model/odata/AnnotationParser.js +1 -1
- package/src/sap/ui/model/odata/CountMode.js +1 -1
- package/src/sap/ui/model/odata/Filter.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +2 -2
- package/src/sap/ui/model/odata/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +2 -2
- package/src/sap/ui/model/odata/ODataMetaModel.js +2 -2
- package/src/sap/ui/model/odata/ODataMetadata.js +2 -2
- package/src/sap/ui/model/odata/ODataModel.js +2 -2
- package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBinding.js +65 -33
- package/src/sap/ui/model/odata/ODataTreeBindingAdapter.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +2 -2
- package/src/sap/ui/model/odata/ODataUtils.js +1 -1
- package/src/sap/ui/model/odata/OperationMode.js +1 -1
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +1 -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/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 +59 -9
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +212 -45
- package/src/sap/ui/model/odata/v2/ODataModel.js +139 -59
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +2 -2
- package/src/sap/ui/model/odata/v2/_CreatedContextsCache.js +129 -0
- package/src/sap/ui/model/odata/v4/Context.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataBinding.js +2 -3
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +37 -26
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +22 -12
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +30 -20
- package/src/sap/ui/model/odata/v4/ODataModel.js +4 -4
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +37 -28
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +3 -5
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +2 -2
- package/src/sap/ui/model/resource/ResourceModel.js +2 -1
- package/src/sap/ui/model/resource/ResourcePropertyBinding.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +2 -2
- package/src/sap/ui/model/type/Currency.js +2 -2
- package/src/sap/ui/model/type/Date.js +9 -3
- package/src/sap/ui/model/type/DateInterval.js +4 -2
- package/src/sap/ui/model/type/DateTime.js +2 -2
- package/src/sap/ui/model/type/DateTimeInterval.js +2 -2
- package/src/sap/ui/model/type/FileSize.js +4 -2
- package/src/sap/ui/model/type/Float.js +4 -2
- package/src/sap/ui/model/type/Integer.js +4 -2
- package/src/sap/ui/model/type/String.js +2 -2
- package/src/sap/ui/model/type/Time.js +2 -2
- package/src/sap/ui/model/type/TimeInterval.js +2 -2
- package/src/sap/ui/model/type/Unit.js +14 -7
- package/src/sap/ui/model/xml/XMLListBinding.js +15 -9
- package/src/sap/ui/model/xml/XMLModel.js +67 -40
- package/src/sap/ui/model/xml/XMLPropertyBinding.js +4 -4
- package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -4
- package/src/sap/ui/performance/trace/Interaction.js +1 -1
- package/src/sap/ui/qunit/QUnitUtils.js +3 -2
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +9 -11
- package/src/sap/ui/test/matchers/I18NText.js +2 -2
- package/src/sap/ui/test/opaQunit.js +1 -1
- package/src/sap/ui/test/starter/createSuite.js +2 -1
- package/src/sap/ui/thirdparty/IPv6.js +2 -2
- package/src/sap/ui/thirdparty/SecondLevelDomains.js +2 -2
- package/src/sap/ui/thirdparty/URI.js +14 -5
- package/src/sap/ui/thirdparty/URITemplate.js +2 -2
- package/src/sap/ui/thirdparty/jquery.js +9 -1
- package/src/sap/ui/thirdparty/qunit-2.js +1 -1
- package/src/sap/ui/thirdparty/qunit.js +1 -1
- package/src/sap/ui/util/Mobile.js +2 -20
- package/src/sap/ui/util/Storage.js +1 -1
- package/ui5.yaml +5 -2
|
@@ -106,7 +106,7 @@ sap.ui.define([
|
|
|
106
106
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
107
107
|
* @public
|
|
108
108
|
* @since 1.37.0
|
|
109
|
-
* @version 1.
|
|
109
|
+
* @version 1.96.3
|
|
110
110
|
*
|
|
111
111
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
112
112
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
@@ -296,7 +296,7 @@ sap.ui.define([
|
|
|
296
296
|
return that.refreshDependentBindings("", oGroupLock.getGroupId(), true);
|
|
297
297
|
}
|
|
298
298
|
|
|
299
|
-
oPromise = oMetaModel.fetchObject(
|
|
299
|
+
oPromise = oMetaModel.fetchObject(_Helper.getMetaPath(sResolvedPath) + "/@$ui5.overload")
|
|
300
300
|
.then(function (aOperationMetadata) {
|
|
301
301
|
var fnGetEntity, iIndex, sPath;
|
|
302
302
|
|
|
@@ -403,7 +403,9 @@ sap.ui.define([
|
|
|
403
403
|
this.mParameters = mParameters; // store mParameters at binding after validation
|
|
404
404
|
|
|
405
405
|
if (this.isRootBindingSuspended()) {
|
|
406
|
-
this.
|
|
406
|
+
if (!this.oOperation) {
|
|
407
|
+
this.sResumeChangeReason = ChangeReason.Change;
|
|
408
|
+
}
|
|
407
409
|
} else if (!this.oOperation) {
|
|
408
410
|
this.fetchCache(this.oContext);
|
|
409
411
|
if (sChangeReason) {
|
|
@@ -601,7 +603,7 @@ sap.ui.define([
|
|
|
601
603
|
oCache,
|
|
602
604
|
vEntity = fnGetEntity,
|
|
603
605
|
oModel = this.oModel,
|
|
604
|
-
sMetaPath =
|
|
606
|
+
sMetaPath = _Helper.getMetaPath(sPath) + "/@$ui5.overload/0/$ReturnType",
|
|
605
607
|
sOriginalResourcePath = sPath.slice(1),
|
|
606
608
|
oRequestor = oModel.oRequestor,
|
|
607
609
|
that = this;
|
|
@@ -714,7 +716,6 @@ sap.ui.define([
|
|
|
714
716
|
this.oReturnValueContext = undefined;
|
|
715
717
|
}
|
|
716
718
|
this.oModel.bindingDestroyed(this);
|
|
717
|
-
this.mCacheByResourcePath = undefined;
|
|
718
719
|
this.oOperation = undefined;
|
|
719
720
|
this.mParameters = undefined;
|
|
720
721
|
this.mQueryOptions = undefined;
|
|
@@ -778,7 +779,7 @@ sap.ui.define([
|
|
|
778
779
|
* @see sap.ui.model.odata.v4.ODataParentBinding#doSuspend
|
|
779
780
|
*/
|
|
780
781
|
ODataContextBinding.prototype.doSuspend = function () {
|
|
781
|
-
if (this.bInitial) {
|
|
782
|
+
if (this.bInitial && !this.oOperation) {
|
|
782
783
|
// if the binding is still initial, it must fire an event in resume
|
|
783
784
|
this.sResumeChangeReason = ChangeReason.Change;
|
|
784
785
|
}
|
|
@@ -1031,7 +1032,9 @@ sap.ui.define([
|
|
|
1031
1032
|
mQueryOptions = Object.assign({}, mQueryOptions);
|
|
1032
1033
|
// keep $select before $expand
|
|
1033
1034
|
if ("$select" in mInheritableQueryOptions) {
|
|
1034
|
-
mQueryOptions.$select
|
|
1035
|
+
// avoid that this.mQueryOptions.$select is modified
|
|
1036
|
+
mQueryOptions.$select = mQueryOptions.$select && mQueryOptions.$select.slice();
|
|
1037
|
+
_Helper.addToSelect(mQueryOptions, mInheritableQueryOptions.$select);
|
|
1035
1038
|
}
|
|
1036
1039
|
if ("$expand" in mInheritableQueryOptions) {
|
|
1037
1040
|
mQueryOptions.$expand = mInheritableQueryOptions.$expand;
|
|
@@ -1099,17 +1102,17 @@ sap.ui.define([
|
|
|
1099
1102
|
* @private
|
|
1100
1103
|
*/
|
|
1101
1104
|
ODataContextBinding.prototype.hasReturnValueContext = function (oMetadata) {
|
|
1102
|
-
var
|
|
1103
|
-
aMetaSegments;
|
|
1105
|
+
var aMetaSegments;
|
|
1104
1106
|
|
|
1105
1107
|
if (!this.isReturnValueLikeBindingParameter(oMetadata)) {
|
|
1106
1108
|
return false;
|
|
1107
1109
|
}
|
|
1108
1110
|
|
|
1109
|
-
aMetaSegments =
|
|
1111
|
+
aMetaSegments = _Helper.getMetaPath(this.getResolvedPath()).split("/");
|
|
1110
1112
|
|
|
1113
|
+
// case 4b
|
|
1111
1114
|
return aMetaSegments.length === 3
|
|
1112
|
-
&&
|
|
1115
|
+
&& this.oModel.getMetaModel().getObject("/" + aMetaSegments[1]).$kind === "EntitySet";
|
|
1113
1116
|
};
|
|
1114
1117
|
|
|
1115
1118
|
/**
|
|
@@ -1249,7 +1252,7 @@ sap.ui.define([
|
|
|
1249
1252
|
if (bKeepCacheOnError && oPromise) {
|
|
1250
1253
|
oPromise = oPromise.catch(function (oError) {
|
|
1251
1254
|
return that.fetchResourcePath(that.oContext).then(function (sResourcePath) {
|
|
1252
|
-
if (!that.bRelative || oCache
|
|
1255
|
+
if (!that.bRelative || oCache.getResourcePath() === sResourcePath) {
|
|
1253
1256
|
that.oCache = oCache;
|
|
1254
1257
|
that.oCachePromise = SyncPromise.resolve(oCache);
|
|
1255
1258
|
oCache.setActive(true);
|
|
@@ -1394,23 +1397,31 @@ sap.ui.define([
|
|
|
1394
1397
|
* @see sap.ui.model.odata.v4.ODataParentBinding#resumeInternal
|
|
1395
1398
|
*/
|
|
1396
1399
|
ODataContextBinding.prototype.resumeInternal = function (bCheckUpdate, bParentHasChanges) {
|
|
1397
|
-
var sResumeChangeReason = this.sResumeChangeReason
|
|
1398
|
-
|
|
1399
|
-
this.sResumeChangeReason = undefined;
|
|
1400
|
+
var sResumeChangeReason = this.sResumeChangeReason,
|
|
1401
|
+
that = this;
|
|
1400
1402
|
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
this.mAggregatedQueryOptions = {};
|
|
1404
|
-
this.bAggregatedQueryOptionsInitial = true;
|
|
1405
|
-
this.removeCachesAndMessages("");
|
|
1406
|
-
this.fetchCache(this.oContext);
|
|
1407
|
-
}
|
|
1408
|
-
this.getDependentBindings().forEach(function (oDependentBinding) {
|
|
1403
|
+
function resumeDependents() {
|
|
1404
|
+
that.getDependentBindings().forEach(function (oDependentBinding) {
|
|
1409
1405
|
oDependentBinding.resumeInternal(bCheckUpdate, !!sResumeChangeReason);
|
|
1410
1406
|
});
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
this.sResumeChangeReason = undefined;
|
|
1410
|
+
|
|
1411
|
+
if (this.oOperation) {
|
|
1412
|
+
resumeDependents();
|
|
1413
|
+
return;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
if (bParentHasChanges || sResumeChangeReason) {
|
|
1417
|
+
this.mAggregatedQueryOptions = {};
|
|
1418
|
+
this.bAggregatedQueryOptionsInitial = true;
|
|
1419
|
+
this.removeCachesAndMessages("");
|
|
1420
|
+
this.fetchCache(this.oContext);
|
|
1421
|
+
}
|
|
1422
|
+
resumeDependents();
|
|
1423
|
+
if (sResumeChangeReason) {
|
|
1424
|
+
this._fireChange({reason : sResumeChangeReason});
|
|
1414
1425
|
}
|
|
1415
1426
|
};
|
|
1416
1427
|
|
|
@@ -76,7 +76,7 @@ sap.ui.define([
|
|
|
76
76
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
77
77
|
* @public
|
|
78
78
|
* @since 1.37.0
|
|
79
|
-
* @version 1.
|
|
79
|
+
* @version 1.96.3
|
|
80
80
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
81
81
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
82
82
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -1511,6 +1511,22 @@ sap.ui.define([
|
|
|
1511
1511
|
* <code>false</code>. This property has to be set on each filter, it is not inherited from a
|
|
1512
1512
|
* multi-filter.
|
|
1513
1513
|
*
|
|
1514
|
+
* <h4>Application and Control Filters</h4>
|
|
1515
|
+
* Each list binding maintains two separate lists of filters, one for filters defined by the
|
|
1516
|
+
* control that owns the binding, and another list for filters that an application can define in
|
|
1517
|
+
* addition. When executing the filter operation, both sets of filters are combined.
|
|
1518
|
+
*
|
|
1519
|
+
* By using the <code>sFilterType</code> parameter of the <code>filter</code> method, the
|
|
1520
|
+
* caller can control which set of filters is modified.
|
|
1521
|
+
*
|
|
1522
|
+
* <h4>Auto-Grouping of Filters</h4>
|
|
1523
|
+
* Filters are first grouped according to their binding path. All filters belonging to the same
|
|
1524
|
+
* path are ORed, and after that the results of all paths are ANDed. Usually this means that all
|
|
1525
|
+
* filters applied to the same property are ORed, while filters on different properties are
|
|
1526
|
+
* ANDed.
|
|
1527
|
+
* Please use either the automatic grouping of filters (where applicable) or explicit
|
|
1528
|
+
* AND/OR filters, as a mixture of both is not supported.
|
|
1529
|
+
*
|
|
1514
1530
|
* @param {sap.ui.model.Filter|sap.ui.model.Filter[]} [vFilters]
|
|
1515
1531
|
* The dynamic filters to be used; replaces the dynamic filters given in
|
|
1516
1532
|
* {@link sap.ui.model.odata.v4.ODataModel#bindList}.
|
|
@@ -2351,7 +2367,7 @@ sap.ui.define([
|
|
|
2351
2367
|
throw oError;
|
|
2352
2368
|
}
|
|
2353
2369
|
return that.fetchResourcePath(that.oContext).then(function (sResourcePath) {
|
|
2354
|
-
if (!that.bRelative || oCache
|
|
2370
|
+
if (!that.bRelative || oCache.getResourcePath() === sResourcePath) {
|
|
2355
2371
|
that.oCache = oCache;
|
|
2356
2372
|
that.oCachePromise = SyncPromise.resolve(oCache);
|
|
2357
2373
|
that.iCreatedContexts = iCreatedContexts;
|
|
@@ -2626,7 +2642,7 @@ sap.ui.define([
|
|
|
2626
2642
|
return Promise.resolve(null);
|
|
2627
2643
|
}
|
|
2628
2644
|
|
|
2629
|
-
sMetaPath =
|
|
2645
|
+
sMetaPath = _Helper.getMetaPath(sResolvedPath);
|
|
2630
2646
|
return oMetaModel.requestObject(sMetaPath + "/").then(function (oEntityType) {
|
|
2631
2647
|
var aFilters,
|
|
2632
2648
|
mPredicates = {};
|
|
@@ -2661,8 +2677,7 @@ sap.ui.define([
|
|
|
2661
2677
|
* @see sap.ui.model.odata.v4.ODataParentBinding#requestSideEffects
|
|
2662
2678
|
*/
|
|
2663
2679
|
ODataListBinding.prototype.requestSideEffects = function (sGroupId, aPaths, oContext) {
|
|
2664
|
-
var
|
|
2665
|
-
aContexts,
|
|
2680
|
+
var aContexts,
|
|
2666
2681
|
bMissingPredicate,
|
|
2667
2682
|
oModel = this.oModel,
|
|
2668
2683
|
// Hash set of collection-valued navigation property meta paths (relative to the cache's
|
|
@@ -2743,13 +2758,8 @@ sap.ui.define([
|
|
|
2743
2758
|
if (bSingle) {
|
|
2744
2759
|
return this.refreshSingle(oContext, this.lockGroup(sGroupId), false);
|
|
2745
2760
|
}
|
|
2746
|
-
if (this.
|
|
2747
|
-
|
|
2748
|
-
return oContext.isTransient();
|
|
2749
|
-
});
|
|
2750
|
-
if (bAllContextsTransient) {
|
|
2751
|
-
return SyncPromise.resolve();
|
|
2752
|
-
}
|
|
2761
|
+
if (this.iCurrentEnd === 0) {
|
|
2762
|
+
return SyncPromise.resolve();
|
|
2753
2763
|
}
|
|
2754
2764
|
return this.refreshInternal("", sGroupId, false, true);
|
|
2755
2765
|
};
|
|
@@ -658,7 +658,7 @@ sap.ui.define([
|
|
|
658
658
|
* @hideconstructor
|
|
659
659
|
* @public
|
|
660
660
|
* @since 1.37.0
|
|
661
|
-
* @version 1.
|
|
661
|
+
* @version 1.96.3
|
|
662
662
|
*/
|
|
663
663
|
var ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
|
|
664
664
|
/*
|
|
@@ -1663,7 +1663,7 @@ sap.ui.define([
|
|
|
1663
1663
|
|
|
1664
1664
|
// First fetch the complete metapath to ensure that everything is in mScope
|
|
1665
1665
|
// This also ensures that the metadata is valid
|
|
1666
|
-
return this.fetchObject(
|
|
1666
|
+
return this.fetchObject(_Helper.getMetaPath(sResolvedPath)).then(function () {
|
|
1667
1667
|
// Then fetch mScope
|
|
1668
1668
|
return that.fetchEntityContainer();
|
|
1669
1669
|
}).then(function (mScope) {
|
|
@@ -2081,7 +2081,8 @@ sap.ui.define([
|
|
|
2081
2081
|
&& aSegments0[i + 1] === "$Parameter") {
|
|
2082
2082
|
// Filter via the binding parameter
|
|
2083
2083
|
aOverloadMetadata = that.getObject(
|
|
2084
|
-
|
|
2084
|
+
_Helper.getMetaPath(aSegments0.slice(0, i + 1).join("/")
|
|
2085
|
+
+ "/@$ui5.overload")
|
|
2085
2086
|
);
|
|
2086
2087
|
// Note: This must be a bound operation with a binding parameter; otherwise it
|
|
2087
2088
|
// would be in the first segment and the loop would not touch it due to
|
|
@@ -2100,7 +2101,7 @@ sap.ui.define([
|
|
|
2100
2101
|
return j < iBasePathLength || sSegment[0] === "#" || sSegment[0] === "@"
|
|
2101
2102
|
|| rNumber.test(sSegment) || sSegment === "$Parameter"
|
|
2102
2103
|
? {} // simply an object w/o $Partner and $isCollection
|
|
2103
|
-
: that.getObject(
|
|
2104
|
+
: that.getObject(_Helper.getMetaPath(aSegments.slice(0, j + 1).join("/"))) || {};
|
|
2104
2105
|
});
|
|
2105
2106
|
mPaths[sPath] = true;
|
|
2106
2107
|
if (!(bNoReduceBeforeCollection
|
|
@@ -2229,7 +2230,7 @@ sap.ui.define([
|
|
|
2229
2230
|
* @since 1.37.0
|
|
2230
2231
|
*/
|
|
2231
2232
|
ODataMetaModel.prototype.getMetaContext = function (sPath) {
|
|
2232
|
-
return new BaseContext(this,
|
|
2233
|
+
return new BaseContext(this, _Helper.getMetaPath(sPath));
|
|
2233
2234
|
};
|
|
2234
2235
|
|
|
2235
2236
|
/**
|
|
@@ -3085,7 +3086,8 @@ sap.ui.define([
|
|
|
3085
3086
|
* instead, see {@link sap.ui.model.odata.v4.ODataModel#bindList}.
|
|
3086
3087
|
*
|
|
3087
3088
|
* For fixed values, only one mapping is expected and the qualifier is ignored. The mapping
|
|
3088
|
-
* is available with key ""
|
|
3089
|
+
* is available with key "" and has an additional property "$qualifier" which is the original
|
|
3090
|
+
* qualifier (useful in case of "ValueListRelevantQualifiers" annotation).
|
|
3089
3091
|
*
|
|
3090
3092
|
* The promise is rejected with an error if there is no value list information available
|
|
3091
3093
|
* for the given property path. Use {@link #getValueListType} to determine if value list
|
|
@@ -3113,7 +3115,7 @@ sap.ui.define([
|
|
|
3113
3115
|
*/
|
|
3114
3116
|
ODataMetaModel.prototype.requestValueListInfo = function (sPropertyPath, bAutoExpandSelect,
|
|
3115
3117
|
oContext) {
|
|
3116
|
-
var sPropertyMetaPath =
|
|
3118
|
+
var sPropertyMetaPath = _Helper.getMetaPath(sPropertyPath),
|
|
3117
3119
|
sParentMetaPath = sPropertyMetaPath.slice(0, sPropertyMetaPath.lastIndexOf("/"))
|
|
3118
3120
|
.replace("/$Parameter", ""),
|
|
3119
3121
|
sQualifiedName = sParentMetaPath.slice(sParentMetaPath.lastIndexOf("/") + 1),
|
|
@@ -3213,7 +3215,7 @@ sap.ui.define([
|
|
|
3213
3215
|
});
|
|
3214
3216
|
});
|
|
3215
3217
|
})).then(function () {
|
|
3216
|
-
var
|
|
3218
|
+
var aRelevantQualifiers = mAnnotationByTerm[sValueListRelevantQualifiers];
|
|
3217
3219
|
|
|
3218
3220
|
// add all mappings in the data service (or local annotation files)
|
|
3219
3221
|
Object.keys(mAnnotationByTerm).filter(function (sTerm) {
|
|
@@ -3222,28 +3224,36 @@ sap.ui.define([
|
|
|
3222
3224
|
addMapping(mAnnotationByTerm[sTerm], getValueListQualifier(sTerm), that.sUrl,
|
|
3223
3225
|
that.oModel);
|
|
3224
3226
|
});
|
|
3225
|
-
aQualifiers = Object.keys(oValueListInfo);
|
|
3226
3227
|
|
|
3227
3228
|
// Each reference must have contributed at least one qualifier. So if oValueListInfo
|
|
3228
3229
|
// is empty, there cannot have been a reference.
|
|
3229
|
-
if (
|
|
3230
|
+
if (isEmptyObject(oValueListInfo)) {
|
|
3230
3231
|
throw new Error("No annotation '" + sValueListReferences.slice(1) + "' for " +
|
|
3231
3232
|
sPropertyPath);
|
|
3232
3233
|
}
|
|
3234
|
+
|
|
3235
|
+
return aRelevantQualifiers && oContext && oContext.getBinding
|
|
3236
|
+
? that.filterValueListRelevantQualifiers(oValueListInfo, aRelevantQualifiers,
|
|
3237
|
+
sPropertyMetaPath + sValueListRelevantQualifiers, oContext)
|
|
3238
|
+
: oValueListInfo;
|
|
3239
|
+
}).then(function (mValueListByRelevantQualifier) {
|
|
3240
|
+
var aQualifiers, mValueListMapping;
|
|
3241
|
+
|
|
3233
3242
|
if (bFixedValues) {
|
|
3234
|
-
|
|
3235
|
-
|
|
3243
|
+
aQualifiers = Object.keys(mValueListByRelevantQualifier);
|
|
3244
|
+
// With fixed values, only one mapping should exist. Return it for qualifier "".
|
|
3245
|
+
if (aQualifiers.length !== 1) {
|
|
3236
3246
|
throw new Error("Annotation '" + sValueListWithFixedValues.slice(1)
|
|
3237
|
-
+ "' but
|
|
3247
|
+
+ "' but not exactly one '" + sValueList.slice(1)
|
|
3238
3248
|
+ "' for property " + sPropertyPath);
|
|
3239
3249
|
}
|
|
3240
|
-
|
|
3250
|
+
mValueListMapping = mValueListByRelevantQualifier[aQualifiers[0]];
|
|
3251
|
+
mValueListMapping.$qualifier = aQualifiers[0];
|
|
3252
|
+
|
|
3253
|
+
return {"" : mValueListMapping};
|
|
3241
3254
|
}
|
|
3242
|
-
|
|
3243
|
-
return
|
|
3244
|
-
? that.filterValueListRelevantQualifiers(oValueListInfo, aQualifiers,
|
|
3245
|
-
sPropertyMetaPath + sValueListRelevantQualifiers, oContext)
|
|
3246
|
-
: oValueListInfo;
|
|
3255
|
+
|
|
3256
|
+
return mValueListByRelevantQualifier;
|
|
3247
3257
|
});
|
|
3248
3258
|
});
|
|
3249
3259
|
};
|
|
@@ -3443,4 +3453,4 @@ sap.ui.define([
|
|
|
3443
3453
|
};
|
|
3444
3454
|
|
|
3445
3455
|
return ODataMetaModel;
|
|
3446
|
-
});
|
|
3456
|
+
});
|
|
@@ -210,7 +210,7 @@ sap.ui.define([
|
|
|
210
210
|
* @extends sap.ui.model.Model
|
|
211
211
|
* @public
|
|
212
212
|
* @since 1.37.0
|
|
213
|
-
* @version 1.
|
|
213
|
+
* @version 1.96.3
|
|
214
214
|
*/
|
|
215
215
|
var ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
216
216
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */
|
|
@@ -540,8 +540,8 @@ sap.ui.define([
|
|
|
540
540
|
* @param {boolean} [mParameters.$$inheritExpandSelect]
|
|
541
541
|
* For operation bindings only: Whether $expand and $select from the parent binding are used
|
|
542
542
|
* in the request sent on {@link #execute}. If set to <code>true</code>, the binding must not
|
|
543
|
-
* set the $expand
|
|
544
|
-
*
|
|
543
|
+
* set the $expand itself, the operation must be bound, and the return value and the binding
|
|
544
|
+
* parameter must belong to the same entity set.
|
|
545
545
|
* @param {boolean} [mParameters.$$ownRequest]
|
|
546
546
|
* Whether the binding always uses an own service request to read its data; only the value
|
|
547
547
|
* <code>true</code> is allowed.
|
|
@@ -561,7 +561,7 @@ sap.ui.define([
|
|
|
561
561
|
* @throws {Error}
|
|
562
562
|
* If disallowed binding parameters are provided, for example if the binding parameter
|
|
563
563
|
* $$inheritExpandSelect is set to <code>true</code> and the binding is no operation binding
|
|
564
|
-
* or the binding has
|
|
564
|
+
* or the binding has the parameter $expand.
|
|
565
565
|
*
|
|
566
566
|
* @public
|
|
567
567
|
* @see sap.ui.model.Model#bindContext
|
|
@@ -434,7 +434,7 @@ sap.ui.define([
|
|
|
434
434
|
return this.oCachePromise.then(function (oCache) {
|
|
435
435
|
if (oCache && that.bRelative) {
|
|
436
436
|
return that.fetchResourcePath(that.oContext).then(function (sResourcePath) {
|
|
437
|
-
if (oCache
|
|
437
|
+
if (oCache.getResourcePath() === sResourcePath) {
|
|
438
438
|
return updateDependents();
|
|
439
439
|
}
|
|
440
440
|
return that.refreshInternal(""); // entity of context changed
|
|
@@ -481,10 +481,10 @@ sap.ui.define([
|
|
|
481
481
|
return oCache.create(oUpdateGroupLock, vCreatePath, sPathInCache,
|
|
482
482
|
sTransientPredicate, oInitialData, fnErrorCallback, fnSubmitCallback
|
|
483
483
|
).then(function (oCreatedEntity) {
|
|
484
|
-
if (
|
|
484
|
+
if (that.mCacheByResourcePath) {
|
|
485
485
|
// Ensure that cache containing non-transient created entity is recreated
|
|
486
486
|
// when the parent binding changes to another row and back again.
|
|
487
|
-
delete that.mCacheByResourcePath[oCache
|
|
487
|
+
delete that.mCacheByResourcePath[oCache.getResourcePath()];
|
|
488
488
|
}
|
|
489
489
|
return oCreatedEntity;
|
|
490
490
|
});
|
|
@@ -653,17 +653,16 @@ sap.ui.define([
|
|
|
653
653
|
// getBaseForPathReduction must be called early, because the (virtual) parent context may be
|
|
654
654
|
// lost again when the path is needed
|
|
655
655
|
var sBaseForPathReduction = this.getBaseForPathReduction(),
|
|
656
|
-
sBaseMetaPath,
|
|
656
|
+
sBaseMetaPath = _Helper.getMetaPath(oContext.getPath()),
|
|
657
657
|
bCacheImmutable,
|
|
658
658
|
oCanUseCachePromise,
|
|
659
|
-
|
|
659
|
+
// whether this binding is an operation or depends on one
|
|
660
|
+
bDependsOnOperation = oContext.getPath().includes("(...)"),
|
|
660
661
|
iIndex = oContext.getIndex(),
|
|
661
662
|
bIsAdvertisement = sChildPath[0] === "#",
|
|
662
663
|
oMetaModel = this.oModel.getMetaModel(),
|
|
663
664
|
aPromises,
|
|
664
665
|
sResolvedChildPath = this.oModel.resolve(sChildPath, oContext),
|
|
665
|
-
// whether this binding is an operation or depends on one
|
|
666
|
-
bDependsOnOperation = oContext.getPath().includes("(...)"),
|
|
667
666
|
that = this;
|
|
668
667
|
|
|
669
668
|
/*
|
|
@@ -677,12 +676,27 @@ sap.ui.define([
|
|
|
677
676
|
if (bIsAdvertisement) {
|
|
678
677
|
// Ensure entity type metadata is loaded even for advertisement so that sync access
|
|
679
678
|
// to key properties is possible
|
|
680
|
-
return oMetaModel.fetchObject(
|
|
681
|
-
sFullMetaPath.lastIndexOf("/") + 1));
|
|
679
|
+
return oMetaModel.fetchObject(sBaseMetaPath + "/");
|
|
682
680
|
}
|
|
683
681
|
|
|
684
682
|
return _Helper.fetchPropertyAndType(that.oModel.oInterface.fetchMetadata,
|
|
685
|
-
|
|
683
|
+
getStrippedMetaPath(sResolvedChildPath));
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
/*
|
|
687
|
+
* Returns the meta path corresponding to the given path, with its annotation part stripped
|
|
688
|
+
* off.
|
|
689
|
+
*
|
|
690
|
+
* @param {string} sPath - A path
|
|
691
|
+
* @returns {string} The meta path with its annotation part stripped off
|
|
692
|
+
*/
|
|
693
|
+
function getStrippedMetaPath(sPath) {
|
|
694
|
+
var iIndex;
|
|
695
|
+
|
|
696
|
+
sPath = _Helper.getMetaPath(sPath);
|
|
697
|
+
iIndex = sPath.indexOf("@"); // Note: sPath[0] !== "@"
|
|
698
|
+
|
|
699
|
+
return iIndex > 0 ? sPath.slice(0, iIndex) : sPath;
|
|
686
700
|
}
|
|
687
701
|
|
|
688
702
|
if (bDependsOnOperation && !sResolvedChildPath.includes("/$Parameter/")
|
|
@@ -701,8 +715,6 @@ sap.ui.define([
|
|
|
701
715
|
|| oContext.isKeepAlive() // kept-alive contexts have no index when not in aContexts
|
|
702
716
|
|| this.oCache === null
|
|
703
717
|
|| this.oCache && this.oCache.hasSentRequest();
|
|
704
|
-
sBaseMetaPath = oMetaModel.getMetaPath(oContext.getPath());
|
|
705
|
-
sFullMetaPath = oMetaModel.getMetaPath(sResolvedChildPath);
|
|
706
718
|
aPromises = [
|
|
707
719
|
this.doFetchQueryOptions(this.oContext),
|
|
708
720
|
// After access to complete meta path of property, the metadata of all prefix paths
|
|
@@ -712,11 +724,11 @@ sap.ui.define([
|
|
|
712
724
|
vChildQueryOptions
|
|
713
725
|
];
|
|
714
726
|
oCanUseCachePromise = SyncPromise.all(aPromises).then(function (aResult) {
|
|
715
|
-
var
|
|
716
|
-
mChildQueryOptions = aResult[2],
|
|
727
|
+
var mChildQueryOptions = aResult[2],
|
|
717
728
|
mWrappedChildQueryOptions,
|
|
718
729
|
mLocalQueryOptions = aResult[0],
|
|
719
730
|
oProperty = aResult[1],
|
|
731
|
+
sReducedChildMetaPath,
|
|
720
732
|
sReducedPath;
|
|
721
733
|
|
|
722
734
|
if (Array.isArray(oProperty)) { // Arrays are only used for functions and actions
|
|
@@ -725,15 +737,10 @@ sap.ui.define([
|
|
|
725
737
|
}
|
|
726
738
|
|
|
727
739
|
sReducedPath = oMetaModel.getReducedPath(sResolvedChildPath, sBaseForPathReduction);
|
|
728
|
-
|
|
729
|
-
if (sChildPath === "$count" || sChildPath.endsWith("/$count")
|
|
730
|
-
|| sChildPath[0] === "@") {
|
|
731
|
-
return sReducedPath;
|
|
732
|
-
}
|
|
733
|
-
|
|
734
|
-
sChildMetaPath = _Helper.getRelativePath(_Helper.getMetaPath(sReducedPath),
|
|
740
|
+
sReducedChildMetaPath = _Helper.getRelativePath(getStrippedMetaPath(sReducedPath),
|
|
735
741
|
sBaseMetaPath);
|
|
736
|
-
|
|
742
|
+
|
|
743
|
+
if (sReducedChildMetaPath === undefined) {
|
|
737
744
|
// the child's data does not fit into this bindings's cache, try the parent
|
|
738
745
|
that.bHasPathReductionToParent = true;
|
|
739
746
|
return that.oContext.getBinding().fetchIfChildCanUseCache(that.oContext,
|
|
@@ -741,7 +748,8 @@ sap.ui.define([
|
|
|
741
748
|
vChildQueryOptions);
|
|
742
749
|
}
|
|
743
750
|
|
|
744
|
-
if (bDependsOnOperation
|
|
751
|
+
if (bDependsOnOperation || sReducedChildMetaPath === "$count"
|
|
752
|
+
|| sReducedChildMetaPath.endsWith("/$count")) {
|
|
745
753
|
return sReducedPath;
|
|
746
754
|
}
|
|
747
755
|
|
|
@@ -751,17 +759,18 @@ sap.ui.define([
|
|
|
751
759
|
that.bAggregatedQueryOptionsInitial = false;
|
|
752
760
|
}
|
|
753
761
|
if (bIsAdvertisement) {
|
|
754
|
-
mWrappedChildQueryOptions = {"$select" : [
|
|
762
|
+
mWrappedChildQueryOptions = {"$select" : [sReducedChildMetaPath.slice(1)]};
|
|
755
763
|
return that.aggregateQueryOptions(mWrappedChildQueryOptions, sBaseMetaPath,
|
|
756
764
|
bCacheImmutable)
|
|
757
765
|
? sReducedPath
|
|
758
766
|
: undefined;
|
|
759
767
|
}
|
|
760
|
-
if (
|
|
768
|
+
if (sReducedChildMetaPath === ""
|
|
761
769
|
|| oProperty
|
|
762
770
|
&& (oProperty.$kind === "Property" || oProperty.$kind === "NavigationProperty")) {
|
|
763
771
|
mWrappedChildQueryOptions = _Helper.wrapChildQueryOptions(sBaseMetaPath,
|
|
764
|
-
|
|
772
|
+
sReducedChildMetaPath, mChildQueryOptions,
|
|
773
|
+
that.oModel.oInterface.fetchMetadata);
|
|
765
774
|
if (mWrappedChildQueryOptions) {
|
|
766
775
|
return that.aggregateQueryOptions(mWrappedChildQueryOptions, sBaseMetaPath,
|
|
767
776
|
bCacheImmutable)
|
|
@@ -770,14 +779,14 @@ sap.ui.define([
|
|
|
770
779
|
}
|
|
771
780
|
return undefined;
|
|
772
781
|
}
|
|
773
|
-
if (
|
|
782
|
+
if (sReducedChildMetaPath === "value") { // symbolic name for operation result
|
|
774
783
|
return that.aggregateQueryOptions(mChildQueryOptions, sBaseMetaPath,
|
|
775
784
|
bCacheImmutable)
|
|
776
785
|
? sReducedPath
|
|
777
786
|
: undefined;
|
|
778
787
|
}
|
|
779
788
|
Log.error("Failed to enhance query options for auto-$expand/$select as the path '"
|
|
780
|
-
+
|
|
789
|
+
+ sResolvedChildPath + "' does not point to a property",
|
|
781
790
|
JSON.stringify(oProperty), sClassName);
|
|
782
791
|
return undefined;
|
|
783
792
|
}).then(function (sReducedPath) {
|
|
@@ -57,7 +57,7 @@ sap.ui.define([
|
|
|
57
57
|
* @mixes sap.ui.model.odata.v4.ODataBinding
|
|
58
58
|
* @public
|
|
59
59
|
* @since 1.37.0
|
|
60
|
-
* @version 1.
|
|
60
|
+
* @version 1.96.3
|
|
61
61
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
62
62
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
63
63
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -599,7 +599,7 @@ sap.ui.define([
|
|
|
599
599
|
vValue = vValue[vIndex];
|
|
600
600
|
}
|
|
601
601
|
// missing advertisement or annotation is not an error
|
|
602
|
-
return vValue === undefined && sSegment[0] !== "#" &&
|
|
602
|
+
return vValue === undefined && sSegment[0] !== "#" && !sSegment.includes("@")
|
|
603
603
|
? missingValue(oParentValue, sSegment, i + 1)
|
|
604
604
|
: vValue;
|
|
605
605
|
});
|
|
@@ -1617,7 +1617,7 @@ sap.ui.define([
|
|
|
1617
1617
|
* Path of the unit or currency for the property, relative to the entity
|
|
1618
1618
|
* @param {boolean} [bPatchWithoutSideEffects]
|
|
1619
1619
|
* Whether the PATCH response is ignored, except for a new ETag
|
|
1620
|
-
* @param {function}
|
|
1620
|
+
* @param {function} fnPatchSent
|
|
1621
1621
|
* The function is called just before a back-end request is sent for the first time.
|
|
1622
1622
|
* If no back-end request is needed, the function is not called.
|
|
1623
1623
|
* @returns {Promise}
|
|
@@ -1681,9 +1681,7 @@ sap.ui.define([
|
|
|
1681
1681
|
*/
|
|
1682
1682
|
function onSubmit() {
|
|
1683
1683
|
oRequestLock = that.oRequestor.lockGroup(sGroupId, that, true);
|
|
1684
|
-
|
|
1685
|
-
fnPatchSent();
|
|
1686
|
-
}
|
|
1684
|
+
fnPatchSent();
|
|
1687
1685
|
}
|
|
1688
1686
|
|
|
1689
1687
|
if (bPatchWithoutSideEffects) {
|
|
@@ -1845,7 +1845,7 @@ sap.ui.define([
|
|
|
1845
1845
|
/**
|
|
1846
1846
|
* Converts given value to an array.
|
|
1847
1847
|
* <code>null</code> and <code>undefined</code> are converted to the empty array, a
|
|
1848
|
-
* non-array value is wrapped with an array and an array is returned as
|
|
1848
|
+
* non-array value is wrapped with an array and an array is returned as a shallow copy.
|
|
1849
1849
|
*
|
|
1850
1850
|
* @param {any} [vElement]
|
|
1851
1851
|
* The element to be converted into an array.
|
|
@@ -1857,7 +1857,7 @@ sap.ui.define([
|
|
|
1857
1857
|
return [];
|
|
1858
1858
|
}
|
|
1859
1859
|
if (Array.isArray(vElement)) {
|
|
1860
|
-
return vElement;
|
|
1860
|
+
return vElement.slice();
|
|
1861
1861
|
}
|
|
1862
1862
|
return [vElement];
|
|
1863
1863
|
},
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
|
+
/*eslint-disable max-len */
|
|
6
7
|
/**
|
|
7
8
|
* ResourceBundle-based DataBinding
|
|
8
9
|
*
|
|
@@ -227,7 +228,7 @@ sap.ui.define([
|
|
|
227
228
|
*
|
|
228
229
|
* @extends sap.ui.model.Model
|
|
229
230
|
* @public
|
|
230
|
-
* @version 1.
|
|
231
|
+
* @version 1.96.3
|
|
231
232
|
*/
|
|
232
233
|
var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
|
|
233
234
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
/*eslint-disable max-len */
|
|
7
7
|
// Provides the resource model implementation of a property binding
|
|
8
8
|
sap.ui.define(['sap/ui/model/PropertyBinding', 'sap/ui/model/ChangeReason'],
|
|
9
9
|
function(PropertyBinding, ChangeReason) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
/*eslint-disable max-len */
|
|
7
7
|
// Provides the base implementation for all model implementations
|
|
8
8
|
sap.ui.define(['sap/ui/model/SimpleType', 'sap/ui/model/FormatException', 'sap/ui/model/ParseException'],
|
|
9
9
|
function(SimpleType, FormatException, ParseException) {
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['sap/ui/model/SimpleType', 'sap/ui/model/FormatException', 'sap/u
|
|
|
19
19
|
* @extends sap.ui.model.SimpleType
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.96.3
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions]
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
/*eslint-disable max-len */
|
|
7
7
|
// Provides the base implementation for all model implementations
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
"sap/base/Log",
|
|
@@ -32,7 +32,7 @@ sap.ui.define([
|
|
|
32
32
|
* @extends sap.ui.model.CompositeType
|
|
33
33
|
*
|
|
34
34
|
* @author SAP SE
|
|
35
|
-
* @version 1.
|
|
35
|
+
* @version 1.96.3
|
|
36
36
|
*
|
|
37
37
|
* @public
|
|
38
38
|
* @param {object} [oFormatOptions]
|