@openui5/sap.ui.core 1.103.1 → 1.106.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.reuse/dep5 +35 -15
- package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +5 -0
- package/THIRDPARTY.txt +64 -21
- package/package.json +1 -1
- package/src/jquery.sap.dom.js +10 -10
- package/src/jquery.sap.global.js +24 -216
- package/src/jquery.sap.history.js +1 -1
- package/src/jquery.sap.properties.js +2 -2
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +4 -4
- package/src/sap/base/i18n/ResourceBundle.js +7 -11
- package/src/sap/base/util/LoaderExtensions.js +69 -61
- package/src/sap/base/util/ObjectPath.js +1 -1
- package/src/sap/base/util/Properties.js +1 -1
- package/src/sap/base/util/fetch.js +228 -0
- package/src/sap/base/util/mixedFetch.js +69 -0
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/base/util/syncFetch.js +66 -0
- package/src/sap/ui/Device.js +5 -5
- package/src/sap/ui/Global.js +7 -14
- package/src/sap/ui/VersionInfo.js +57 -54
- package/src/sap/ui/base/BindingInfo.js +198 -0
- package/src/sap/ui/base/DataType.js +1 -1
- package/src/sap/ui/base/Event.js +2 -2
- package/src/sap/ui/base/EventProvider.js +2 -2
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +209 -979
- package/src/sap/ui/base/ManagedObjectMetadata.js +6 -6
- package/src/sap/ui/base/ManagedObjectObserver.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 +72 -50
- package/src/sap/ui/core/AccessKeysEnablement.js +173 -0
- package/src/sap/ui/core/AppCacheBuster.js +65 -51
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +52 -25
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +16 -23
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +598 -358
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +126 -185
- 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 +68 -4
- package/src/sap/ui/core/ElementMetadata.js +6 -4
- 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 +2 -2
- package/src/sap/ui/core/FocusHandler.js +84 -39
- package/src/sap/ui/core/Fragment.js +1 -1
- 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/IconPool.js +8 -8
- package/src/sap/ui/core/IndicationColorSupport.js +2 -2
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +4 -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 +8 -51
- package/src/sap/ui/core/Manifest.js +3 -5
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Popup.js +13 -8
- package/src/sap/ui/core/RenderManager.js +17 -21
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +28 -49
- 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 +12 -13
- package/src/sap/ui/core/UIArea.js +13 -12
- package/src/sap/ui/core/UIComponent.js +3 -3
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +2 -2
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +5 -2
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +7 -7
- package/src/sap/ui/core/_ConfigurationProvider.js +187 -0
- package/src/sap/ui/core/_IconRegistry.js +66 -55
- package/src/sap/ui/core/cache/CacheManager.js +20 -16
- package/src/sap/ui/core/cache/CacheManagerNOP.js +5 -2
- package/src/sap/ui/core/cache/LRUPersistentCache.js +15 -8
- package/src/sap/ui/core/cldr/en.json +0 -1
- package/src/sap/ui/core/cldr/es_BO.json +3 -3
- package/src/sap/ui/core/cldr/es_CL.json +3 -3
- package/src/sap/ui/core/cldr/es_MX.json +3 -3
- package/src/sap/ui/core/cldr/es_PE.json +3 -3
- package/src/sap/ui/core/cldr/es_UY.json +3 -3
- package/src/sap/ui/core/cldr/es_VE.json +2 -2
- package/src/sap/ui/core/date/Buddhist.js +15 -13
- package/src/sap/ui/core/date/Japanese.js +0 -6
- package/src/sap/ui/core/date/UniversalDate.js +144 -34
- package/src/sap/ui/core/delegate/ItemNavigation.js +2 -2
- package/src/sap/ui/core/delegate/ScrollEnablement.js +7 -6
- package/src/sap/ui/core/dnd/DragAndDrop.js +13 -9
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +3 -3
- 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/DateFormat.js +36 -9
- package/src/sap/ui/core/format/NumberFormat.js +92 -26
- package/src/sap/ui/core/format/TimezoneUtil.js +2 -2
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +44 -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/messagebundle.properties +2 -0
- package/src/sap/ui/core/messagebundle_ar.properties +54 -53
- package/src/sap/ui/core/messagebundle_bg.properties +54 -53
- package/src/sap/ui/core/messagebundle_ca.properties +28 -27
- package/src/sap/ui/core/messagebundle_cs.properties +37 -36
- package/src/sap/ui/core/messagebundle_cy.properties +57 -56
- package/src/sap/ui/core/messagebundle_da.properties +53 -52
- package/src/sap/ui/core/messagebundle_de.properties +54 -53
- package/src/sap/ui/core/messagebundle_el.properties +46 -45
- package/src/sap/ui/core/messagebundle_en.properties +57 -56
- package/src/sap/ui/core/messagebundle_en_GB.properties +57 -56
- package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +1 -0
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
- package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +1 -0
- package/src/sap/ui/core/messagebundle_es.properties +42 -41
- package/src/sap/ui/core/messagebundle_es_MX.properties +54 -53
- package/src/sap/ui/core/messagebundle_et.properties +51 -50
- package/src/sap/ui/core/messagebundle_fi.properties +48 -47
- package/src/sap/ui/core/messagebundle_fr.properties +37 -36
- package/src/sap/ui/core/messagebundle_fr_CA.properties +22 -21
- package/src/sap/ui/core/messagebundle_hi.properties +42 -41
- package/src/sap/ui/core/messagebundle_hr.properties +55 -54
- package/src/sap/ui/core/messagebundle_hu.properties +56 -55
- package/src/sap/ui/core/messagebundle_id.properties +55 -54
- package/src/sap/ui/core/messagebundle_it.properties +55 -54
- package/src/sap/ui/core/messagebundle_iw.properties +55 -54
- package/src/sap/ui/core/messagebundle_ja.properties +48 -47
- package/src/sap/ui/core/messagebundle_kk.properties +41 -40
- package/src/sap/ui/core/messagebundle_ko.properties +21 -20
- package/src/sap/ui/core/messagebundle_lt.properties +55 -54
- package/src/sap/ui/core/messagebundle_lv.properties +55 -54
- package/src/sap/ui/core/messagebundle_ms.properties +52 -51
- package/src/sap/ui/core/messagebundle_nl.properties +53 -52
- package/src/sap/ui/core/messagebundle_no.properties +53 -52
- package/src/sap/ui/core/messagebundle_pl.properties +52 -51
- package/src/sap/ui/core/messagebundle_pt.properties +54 -53
- package/src/sap/ui/core/messagebundle_pt_PT.properties +55 -54
- package/src/sap/ui/core/messagebundle_ro.properties +56 -55
- package/src/sap/ui/core/messagebundle_ru.properties +52 -51
- package/src/sap/ui/core/messagebundle_sh.properties +57 -56
- package/src/sap/ui/core/messagebundle_sk.properties +54 -53
- package/src/sap/ui/core/messagebundle_sl.properties +56 -55
- package/src/sap/ui/core/messagebundle_sv.properties +52 -51
- package/src/sap/ui/core/messagebundle_th.properties +25 -24
- package/src/sap/ui/core/messagebundle_tr.properties +56 -55
- package/src/sap/ui/core/messagebundle_uk.properties +55 -54
- package/src/sap/ui/core/messagebundle_vi.properties +56 -55
- package/src/sap/ui/core/messagebundle_zh_CN.properties +55 -54
- package/src/sap/ui/core/messagebundle_zh_TW.properties +55 -54
- package/src/sap/ui/core/mvc/Controller.js +17 -12
- 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 +2 -2
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +7 -7
- package/src/sap/ui/core/mvc/XMLView.js +1 -2
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +16 -14
- package/src/sap/ui/core/plugin/TemplatingSupport.js +2 -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 +4 -4
- package/src/sap/ui/core/routing/async/TargetCache.js +4 -0
- package/src/sap/ui/core/rules/App.support.js +11 -13
- package/src/sap/ui/core/rules/Config.support.js +14 -14
- package/src/sap/ui/core/rules/CoreHelper.support.js +3 -3
- package/src/sap/ui/core/rules/Model.support.js +8 -8
- package/src/sap/ui/core/rules/Rendering.support.js +1 -1
- package/src/sap/ui/core/rules/Theming.support.js +8 -8
- package/src/sap/ui/core/rules/View.support.js +20 -13
- package/src/sap/ui/core/search/OpenSearchProvider.js +25 -12
- package/src/sap/ui/core/search/SearchProvider.js +2 -2
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Hotkeys.js +2 -3
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +3 -4
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Debugging.js +4 -4
- 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 +46 -33
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +3 -4
- package/src/sap/ui/core/support/support.html +1 -1
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +3 -3
- package/src/sap/ui/core/themes/base/Icon.less +4 -0
- package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +1 -1
- package/src/sap/ui/core/themes/base/base.less +26 -26
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/themes/base/global.less +5 -1
- package/src/sap/ui/core/themes/base/shared.less +6 -0
- package/src/sap/ui/core/theming/Parameters.js +52 -53
- 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 +7 -5
- 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 +61 -42
- package/src/sap/ui/core/util/MockServer.js +45 -71
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/ResponsivePaddingsEnablement.js +4 -3
- package/src/sap/ui/core/util/XMLPreprocessor.js +3 -3
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +1 -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/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.css +1 -31
- package/src/sap/ui/debug/PropertyList.js +6 -240
- package/src/sap/ui/dom/getScrollbarSize.js +1 -1
- package/src/sap/ui/dom/jquery/control.js +1 -0
- package/src/sap/ui/events/jquery/EventSimulation.js +4 -4
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/Context.js +3 -0
- package/src/sap/ui/model/ContextBinding.js +1 -1
- package/src/sap/ui/model/DataState.js +3 -3
- package/src/sap/ui/model/ListBinding.js +2 -2
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +871 -0
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +16 -5
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +2 -2
- package/src/sap/ui/model/Sorter.js +2 -2
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/_Helper.js +3 -1
- package/src/sap/ui/model/analytics/odata4analytics.js +2 -2
- package/src/sap/ui/model/base/ManagedObjectModel.js +2 -2
- package/src/sap/ui/model/json/JSONModel.js +2 -2
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/AnnotationHelper.js +4 -4
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
- package/src/sap/ui/model/odata/ODataMetaModel.js +10 -10
- package/src/sap/ui/model/odata/ODataMetadata.js +6 -3
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +459 -268
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +5 -5
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +5 -2
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +26 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +164 -125
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +18 -2
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +3 -3
- package/src/sap/ui/model/odata/v4/Context.js +169 -79
- package/src/sap/ui/model/odata/v4/ODataBinding.js +51 -12
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +111 -92
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +206 -150
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +13 -10
- package/src/sap/ui/model/odata/v4/ODataModel.js +249 -28
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +33 -18
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +17 -11
- package/src/sap/ui/model/odata/v4/ODataUtils.js +7 -4
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +142 -35
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +167 -16
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +388 -188
- package/src/sap/ui/model/odata/v4/lib/_ConcatHelper.js +2 -3
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +119 -43
- package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +2 -3
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +13 -6
- package/src/sap/ui/model/resource/ResourceModel.js +2 -2
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +2 -2
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +2 -2
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +4 -2
- package/src/sap/ui/performance/trace/FESR.js +27 -24
- package/src/sap/ui/performance/trace/Interaction.js +66 -16
- package/src/sap/ui/qunit/QUnitUtils.js +1 -2
- package/src/sap/ui/qunit/sinon-qunit-bridge.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/Opa5.js +1 -1
- package/src/sap/ui/test/OpaBuilder.js +1 -1
- package/src/sap/ui/test/TestUtils.js +35 -2
- package/src/sap/ui/test/actions/Press.js +7 -0
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/matchers/AggregationContainsPropertyEqual.js +2 -3
- package/src/sap/ui/test/matchers/AggregationFilled.js +2 -3
- package/src/sap/ui/test/matchers/AggregationLengthEquals.js +2 -3
- package/src/sap/ui/test/matchers/Matcher.js +9 -11
- package/src/sap/ui/test/opaQunit.js +15 -9
- package/src/sap/ui/test/pipelines/ActionPipeline.js +2 -3
- package/src/sap/ui/test/pipelines/MatcherPipeline.js +2 -3
- package/src/sap/ui/test/pipelines/PipelineFactory.js +2 -3
- package/src/sap/ui/thirdparty/IPv6.js +1 -1
- package/src/sap/ui/thirdparty/SecondLevelDomains.js +1 -1
- package/src/sap/ui/thirdparty/URI.js +8 -2
- package/src/sap/ui/thirdparty/URITemplate.js +1 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/XMLHelper.js +1 -1
|
@@ -74,7 +74,7 @@ sap.ui.define([
|
|
|
74
74
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
75
75
|
* @public
|
|
76
76
|
* @since 1.37.0
|
|
77
|
-
* @version 1.
|
|
77
|
+
* @version 1.106.0
|
|
78
78
|
*
|
|
79
79
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
80
80
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
@@ -235,7 +235,10 @@ sap.ui.define([
|
|
|
235
235
|
// the context(s) in that uppermost binding. Note that no data may be available in the
|
|
236
236
|
// uppermost context binding and hence the deletion would not work there, BCP 1980308439.
|
|
237
237
|
var oEmptyPathParentContext = this._findEmptyPathParentContext(this.oElementContext),
|
|
238
|
-
oEmptyPathParentBinding = oEmptyPathParentContext.getBinding()
|
|
238
|
+
oEmptyPathParentBinding = oEmptyPathParentContext.getBinding(),
|
|
239
|
+
oDeleteParentContext = oEmptyPathParentBinding.getContext(),
|
|
240
|
+
oReturnValueContext = oEmptyPathParentBinding.oReturnValueContext,
|
|
241
|
+
that = this;
|
|
239
242
|
|
|
240
243
|
// In case the uppermost parent reached with empty paths is a list binding, delete there.
|
|
241
244
|
if (!oEmptyPathParentBinding.execute) {
|
|
@@ -249,27 +252,27 @@ sap.ui.define([
|
|
|
249
252
|
// deleteFromCache call below. In Context#delete the error is reported.
|
|
250
253
|
}
|
|
251
254
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
});
|
|
256
|
-
};
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* Destroys the element context and, if available, the return value context, and fires a
|
|
260
|
-
* change. The method is called by #_delete, possibly at another context binding for the same
|
|
261
|
-
* entity, after the successful deletion in the back end.
|
|
262
|
-
*
|
|
263
|
-
* @private
|
|
264
|
-
*/
|
|
265
|
-
ODataContextBinding.prototype._destroyContextAfterDelete = function () {
|
|
266
|
-
this.oElementContext.destroy();
|
|
267
|
-
this.oElementContext = null;
|
|
268
|
-
if (this.oReturnValueContext) {
|
|
269
|
-
this.oReturnValueContext.destroy();
|
|
270
|
-
this.oReturnValueContext = null;
|
|
255
|
+
oEmptyPathParentBinding.oElementContext = null;
|
|
256
|
+
if (oReturnValueContext) {
|
|
257
|
+
oEmptyPathParentBinding.oReturnValueContext = null;
|
|
271
258
|
}
|
|
272
259
|
this._fireChange({reason : ChangeReason.Remove});
|
|
260
|
+
return this.deleteFromCache(oGroupLock, sEditUrl, "", null).then(function () {
|
|
261
|
+
oEmptyPathParentContext.destroy();
|
|
262
|
+
if (oReturnValueContext) {
|
|
263
|
+
oReturnValueContext.destroy();
|
|
264
|
+
}
|
|
265
|
+
}, function (oError) {
|
|
266
|
+
if (!oEmptyPathParentBinding.isRelative()
|
|
267
|
+
|| oDeleteParentContext === oEmptyPathParentBinding.getContext()) {
|
|
268
|
+
oEmptyPathParentBinding.oElementContext = oEmptyPathParentContext;
|
|
269
|
+
if (oReturnValueContext) {
|
|
270
|
+
oEmptyPathParentBinding.oReturnValueContext = oReturnValueContext;
|
|
271
|
+
}
|
|
272
|
+
that._fireChange({reason : ChangeReason.Insert});
|
|
273
|
+
}
|
|
274
|
+
throw oError;
|
|
275
|
+
});
|
|
273
276
|
};
|
|
274
277
|
|
|
275
278
|
/**
|
|
@@ -343,39 +346,43 @@ sap.ui.define([
|
|
|
343
346
|
|
|
344
347
|
if (that.isReturnValueLikeBindingParameter(oOperationMetadata)) {
|
|
345
348
|
oOldValue = that.oContext.getValue();
|
|
349
|
+
// Note: sContextPredicate missing e.g. when collection-bound
|
|
346
350
|
sContextPredicate = oOldValue
|
|
347
351
|
&& _Helper.getPrivateAnnotation(oOldValue, "predicate");
|
|
348
352
|
sResponsePredicate = _Helper.getPrivateAnnotation(
|
|
349
353
|
oResponseEntity, "predicate");
|
|
350
|
-
if (sContextPredicate === sResponsePredicate) {
|
|
351
|
-
// this is synchronous, because the entity to be patched is available in
|
|
352
|
-
// the context (we already read its predicate)
|
|
353
|
-
that.oContext.patch(oResponseEntity);
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
if (that.hasReturnValueContext(oOperationMetadata)) {
|
|
358
|
-
if (that.oReturnValueContext) {
|
|
359
|
-
that.oReturnValueContext.destroy();
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
if (bReplaceWithRVC) {
|
|
363
|
-
that.oCache = null;
|
|
364
|
-
that.oCachePromise = SyncPromise.resolve(null);
|
|
365
|
-
oResult = that.oContext.getBinding().doReplaceWith(that.oContext,
|
|
366
|
-
oResponseEntity, sResponsePredicate);
|
|
367
|
-
oResult.setNewGeneration();
|
|
368
354
|
|
|
369
|
-
|
|
355
|
+
if (sResponsePredicate) {
|
|
356
|
+
if (sContextPredicate === sResponsePredicate) {
|
|
357
|
+
// this is sync, because the entity to be patched is available in
|
|
358
|
+
// the context (we already read its predicate)
|
|
359
|
+
that.oContext.patch(oResponseEntity);
|
|
360
|
+
}
|
|
361
|
+
if (that.hasReturnValueContext()) {
|
|
362
|
+
if (bReplaceWithRVC) {
|
|
363
|
+
that.oCache = null;
|
|
364
|
+
that.oCachePromise = SyncPromise.resolve(null);
|
|
365
|
+
oResult = that.oContext.getBinding()
|
|
366
|
+
.doReplaceWith(that.oContext, oResponseEntity,
|
|
367
|
+
sResponsePredicate);
|
|
368
|
+
oResult.setNewGeneration();
|
|
369
|
+
|
|
370
|
+
return oResult;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
that.oReturnValueContext = Context.createNewContext(that.oModel,
|
|
374
|
+
that,
|
|
375
|
+
getReturnValueContextPath(sResolvedPath, sResponsePredicate));
|
|
376
|
+
// set the resource path for late property requests
|
|
377
|
+
that.oCache.setResourcePath(
|
|
378
|
+
that.oReturnValueContext.getPath().slice(1));
|
|
379
|
+
|
|
380
|
+
return that.oReturnValueContext;
|
|
381
|
+
}
|
|
370
382
|
}
|
|
383
|
+
}
|
|
371
384
|
|
|
372
|
-
|
|
373
|
-
that, getReturnValueContextPath(sResolvedPath, sResponsePredicate));
|
|
374
|
-
// set the resource path for late property requests
|
|
375
|
-
that.oCache.setResourcePath(that.oReturnValueContext.getPath().slice(1));
|
|
376
|
-
|
|
377
|
-
return that.oReturnValueContext;
|
|
378
|
-
} else if (bReplaceWithRVC) {
|
|
385
|
+
if (bReplaceWithRVC) {
|
|
379
386
|
throw new Error("Cannot replace w/o return value context");
|
|
380
387
|
}
|
|
381
388
|
});
|
|
@@ -393,10 +400,6 @@ sap.ui.define([
|
|
|
393
400
|
});
|
|
394
401
|
}).catch(function (oError) {
|
|
395
402
|
oGroupLock.unlock(true);
|
|
396
|
-
if (that.oReturnValueContext) {
|
|
397
|
-
that.oReturnValueContext.destroy();
|
|
398
|
-
that.oReturnValueContext = null;
|
|
399
|
-
}
|
|
400
403
|
that.oModel.reportError("Failed to execute " + sResolvedPath, sClassName, oError);
|
|
401
404
|
throw oError;
|
|
402
405
|
});
|
|
@@ -497,7 +500,12 @@ sap.ui.define([
|
|
|
497
500
|
* If a back-end request fails, the 'dataReceived' event provides an <code>Error</code> in the
|
|
498
501
|
* 'error' event parameter.
|
|
499
502
|
*
|
|
503
|
+
* Since 1.106 this event is bubbled up to the model, unless a listener calls
|
|
504
|
+
* {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
|
|
505
|
+
*
|
|
500
506
|
* @param {sap.ui.base.Event} oEvent
|
|
507
|
+
* @param {function} oEvent.cancelBubble
|
|
508
|
+
* A callback function to prevent that the event is bubbled up to the model
|
|
501
509
|
* @param {object} oEvent.getParameters()
|
|
502
510
|
* @param {object} [oEvent.getParameters().data]
|
|
503
511
|
* An empty data object if a back-end request succeeds
|
|
@@ -506,6 +514,7 @@ sap.ui.define([
|
|
|
506
514
|
*
|
|
507
515
|
* @event sap.ui.model.odata.v4.ODataContextBinding#dataReceived
|
|
508
516
|
* @public
|
|
517
|
+
* @see sap.ui.model.odata.v4.ODataModel#event:dataReceived
|
|
509
518
|
* @since 1.37.0
|
|
510
519
|
*/
|
|
511
520
|
|
|
@@ -517,10 +526,16 @@ sap.ui.define([
|
|
|
517
526
|
* fired: Whatever should happen in the event handler attached to that event, can instead be
|
|
518
527
|
* done before calling {@link #execute}.
|
|
519
528
|
*
|
|
529
|
+
* Since 1.106 this event is bubbled up to the model, unless a listener calls
|
|
530
|
+
* {@link sap.ui.base.Event#cancelBubble oEvent.cancelBubble()}.
|
|
531
|
+
*
|
|
520
532
|
* @param {sap.ui.base.Event} oEvent
|
|
533
|
+
* @param {function} oEvent.cancelBubble
|
|
534
|
+
* A callback function to prevent that the event is bubbled up to the model
|
|
521
535
|
*
|
|
522
536
|
* @event sap.ui.model.odata.v4.ODataContextBinding#dataRequested
|
|
523
537
|
* @public
|
|
538
|
+
* @see sap.ui.model.odata.v4.ODataModel#event:dataRequested
|
|
524
539
|
* @since 1.37.0
|
|
525
540
|
*/
|
|
526
541
|
|
|
@@ -650,15 +665,16 @@ sap.ui.define([
|
|
|
650
665
|
* @returns {string} The original resource path
|
|
651
666
|
*/
|
|
652
667
|
function getOriginalResourcePath(oResponseEntity) {
|
|
653
|
-
if (that.
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
668
|
+
if (that.isReturnValueLikeBindingParameter(oOperationMetadata)) {
|
|
669
|
+
if (that.hasReturnValueContext()) {
|
|
670
|
+
return getReturnValueContextPath(sOriginalResourcePath,
|
|
671
|
+
_Helper.getPrivateAnnotation(oResponseEntity, "predicate"));
|
|
672
|
+
}
|
|
673
|
+
if (_Helper.getPrivateAnnotation(vEntity, "predicate")
|
|
674
|
+
=== _Helper.getPrivateAnnotation(oResponseEntity, "predicate")) {
|
|
675
|
+
// return value is *same* as binding parameter: attach messages to the latter
|
|
676
|
+
return sOriginalResourcePath.slice(0, sOriginalResourcePath.lastIndexOf("/"));
|
|
677
|
+
}
|
|
662
678
|
}
|
|
663
679
|
|
|
664
680
|
return sOriginalResourcePath;
|
|
@@ -717,6 +733,10 @@ sap.ui.define([
|
|
|
717
733
|
throw new Error("Unsupported parameters for navigation property");
|
|
718
734
|
}
|
|
719
735
|
|
|
736
|
+
if (that.oReturnValueContext) {
|
|
737
|
+
that.oReturnValueContext.destroy();
|
|
738
|
+
that.oReturnValueContext = null;
|
|
739
|
+
}
|
|
720
740
|
this.oOperation.bAction = bAction;
|
|
721
741
|
this.oOperation.mRefreshParameters = mParameters;
|
|
722
742
|
mParameters = Object.assign({}, mParameters);
|
|
@@ -869,16 +889,17 @@ sap.ui.define([
|
|
|
869
889
|
* @param {boolean} [bReplaceWithRVC]
|
|
870
890
|
* Whether this operation binding's parent context, which must belong to a list binding, is
|
|
871
891
|
* replaced with the operation's return value context (see below) and that list context is
|
|
872
|
-
* returned instead.
|
|
892
|
+
* returned instead. That list context may be a newly created context or an existing context.
|
|
873
893
|
* A newly created context has the same <code>keepAlive</code> attribute and
|
|
874
894
|
* <code>fnOnBeforeDestroy</code> function as the parent context, see
|
|
875
895
|
* {@link sap.ui.model.odata.v4.Context#setKeepAlive}; <code>fnOnBeforeDestroy</code> will be
|
|
876
896
|
* called with the new context instance as the only argument in this case. An existing context
|
|
877
897
|
* does not change its <code>keepAlive</code> attribute. In any case, the resulting context
|
|
878
|
-
* takes the place (index, position) of the parent context
|
|
879
|
-
* {@link sap.ui.model.odata.v4.Context#getIndex}
|
|
880
|
-
*
|
|
881
|
-
*
|
|
898
|
+
* takes the place (index, position) of the parent context (see
|
|
899
|
+
* {@link sap.ui.model.odata.v4.Context#getIndex}), which need not be in the collection
|
|
900
|
+
* currently if it is {@link sap.ui.model.odata.v4.Context#isKeepAlive kept alive}. If the
|
|
901
|
+
* parent context has requested messages when it was kept alive, they will be inherited if the
|
|
902
|
+
* $$inheritExpandSelect binding parameter is set to <code>true</code>. Since 1.97.0.
|
|
882
903
|
* @returns {Promise}
|
|
883
904
|
* A promise that is resolved without data or with a return value context when the operation
|
|
884
905
|
* call succeeded, or rejected with an <code>Error</code> instance <code>oError</code> in case
|
|
@@ -901,7 +922,8 @@ sap.ui.define([
|
|
|
901
922
|
* operation response. It is created only if the operation is bound and has a single entity
|
|
902
923
|
* return value from the same entity set as the operation's binding parameter and has a
|
|
903
924
|
* parent context which is a {@link sap.ui.model.odata.v4.Context} and points to an entity
|
|
904
|
-
* from an entity set
|
|
925
|
+
* from an entity set. It is destroyed the next time this operation binding is executed again!
|
|
926
|
+
* <br>
|
|
905
927
|
* If a return value context is created, it must be used instead of
|
|
906
928
|
* <code>this.getBoundContext()</code>. All bound messages will be related to the return value
|
|
907
929
|
* context only. Such a message can only be connected to a corresponding control if the
|
|
@@ -950,7 +972,7 @@ sap.ui.define([
|
|
|
950
972
|
if (bReplaceWithRVC) {
|
|
951
973
|
if (!this.oContext.getBinding) {
|
|
952
974
|
throw new Error("Cannot replace this parent context: " + this.oContext);
|
|
953
|
-
}
|
|
975
|
+
} // Note: parent context need not have a key predicate!
|
|
954
976
|
this.oContext.getBinding().checkKeepAlive(this.oContext);
|
|
955
977
|
}
|
|
956
978
|
} else if (bReplaceWithRVC) {
|
|
@@ -996,7 +1018,8 @@ sap.ui.define([
|
|
|
996
1018
|
throw oError;
|
|
997
1019
|
}
|
|
998
1020
|
return oCachePromise.then(function (oCache) {
|
|
999
|
-
var
|
|
1021
|
+
var bPreventBubbling,
|
|
1022
|
+
bDataRequested = false,
|
|
1000
1023
|
oGroupLock,
|
|
1001
1024
|
sResolvedPath = that.getResolvedPath(),
|
|
1002
1025
|
sRelativePath = oCache || that.oOperation
|
|
@@ -1031,11 +1054,12 @@ sap.ui.define([
|
|
|
1031
1054
|
oGroupLock = that.oReadGroupLock || that.lockGroup();
|
|
1032
1055
|
that.oReadGroupLock = undefined;
|
|
1033
1056
|
}
|
|
1057
|
+
bPreventBubbling = that.isRefreshWithoutBubbling();
|
|
1034
1058
|
|
|
1035
1059
|
return that.resolveRefreshPromise(
|
|
1036
1060
|
oCache.fetchValue(oGroupLock, sRelativePath, function () {
|
|
1037
1061
|
bDataRequested = true;
|
|
1038
|
-
that.fireDataRequested();
|
|
1062
|
+
that.fireDataRequested(bPreventBubbling);
|
|
1039
1063
|
}, oListener)
|
|
1040
1064
|
).then(function (vValue) {
|
|
1041
1065
|
that.assertSameCache(oCache);
|
|
@@ -1043,7 +1067,7 @@ sap.ui.define([
|
|
|
1043
1067
|
return vValue;
|
|
1044
1068
|
}).then(function (vValue) {
|
|
1045
1069
|
if (bDataRequested) {
|
|
1046
|
-
that.fireDataReceived({data : {}});
|
|
1070
|
+
that.fireDataReceived({data : {}}, bPreventBubbling);
|
|
1047
1071
|
}
|
|
1048
1072
|
return vValue;
|
|
1049
1073
|
}, function (oError) {
|
|
@@ -1051,7 +1075,8 @@ sap.ui.define([
|
|
|
1051
1075
|
if (bDataRequested) {
|
|
1052
1076
|
that.oModel.reportError("Failed to read path " + sResolvedPath, sClassName,
|
|
1053
1077
|
oError);
|
|
1054
|
-
that.fireDataReceived(oError.canceled ? {data : {}} : {error : oError}
|
|
1078
|
+
that.fireDataReceived(oError.canceled ? {data : {}} : {error : oError},
|
|
1079
|
+
bPreventBubbling);
|
|
1055
1080
|
}
|
|
1056
1081
|
throw oError;
|
|
1057
1082
|
});
|
|
@@ -1202,19 +1227,15 @@ sap.ui.define([
|
|
|
1202
1227
|
* (a) a V4 parent context which
|
|
1203
1228
|
* (b) points to an entity from an entity set w/o navigation properties.
|
|
1204
1229
|
*
|
|
1205
|
-
*
|
|
1230
|
+
* BEWARE: It is the caller's duty to check 1. through 4.(a) via
|
|
1231
|
+
* {@link #isReturnValueLikeBindingParameter}!
|
|
1232
|
+
*
|
|
1206
1233
|
* @returns {boolean} Whether a return value context is created
|
|
1207
1234
|
*
|
|
1208
1235
|
* @private
|
|
1209
1236
|
*/
|
|
1210
|
-
ODataContextBinding.prototype.hasReturnValueContext = function (
|
|
1211
|
-
var aMetaSegments;
|
|
1212
|
-
|
|
1213
|
-
if (!this.isReturnValueLikeBindingParameter(oMetadata)) {
|
|
1214
|
-
return false;
|
|
1215
|
-
}
|
|
1216
|
-
|
|
1217
|
-
aMetaSegments = _Helper.getMetaPath(this.getResolvedPath()).split("/");
|
|
1237
|
+
ODataContextBinding.prototype.hasReturnValueContext = function () {
|
|
1238
|
+
var aMetaSegments = _Helper.getMetaPath(this.getResolvedPath()).split("/");
|
|
1218
1239
|
|
|
1219
1240
|
// case 4b
|
|
1220
1241
|
return aMetaSegments.length === 3
|
|
@@ -1256,6 +1277,7 @@ sap.ui.define([
|
|
|
1256
1277
|
* @returns {boolean} Whether operation's return value is like its binding parameter
|
|
1257
1278
|
*
|
|
1258
1279
|
* @private
|
|
1280
|
+
* @see #hasReturnValueContext
|
|
1259
1281
|
*/
|
|
1260
1282
|
ODataContextBinding.prototype.isReturnValueLikeBindingParameter = function (oMetadata) {
|
|
1261
1283
|
var oParentMetaData, sParentMetaPath;
|
|
@@ -1362,7 +1384,9 @@ sap.ui.define([
|
|
|
1362
1384
|
bKeepCacheOnError ? sGroupId : undefined);
|
|
1363
1385
|
// Do not fire a change event, or else ManagedObject destroys and recreates the
|
|
1364
1386
|
// binding hierarchy causing a flood of events.
|
|
1365
|
-
oPromise = bHasChangeListeners
|
|
1387
|
+
oPromise = bHasChangeListeners
|
|
1388
|
+
? that.createRefreshPromise(/*bPreventBubbling*/bKeepCacheOnError)
|
|
1389
|
+
: undefined;
|
|
1366
1390
|
if (bKeepCacheOnError && oPromise) {
|
|
1367
1391
|
oPromise = oPromise.catch(function (oError) {
|
|
1368
1392
|
return that.fetchResourcePath(that.oContext).then(function (sResourcePath) {
|
|
@@ -1450,9 +1474,6 @@ sap.ui.define([
|
|
|
1450
1474
|
*/
|
|
1451
1475
|
ODataContextBinding.prototype.requestSideEffects = function (sGroupId, aPaths, oContext) {
|
|
1452
1476
|
var oModel = this.oModel,
|
|
1453
|
-
// Hash set of collection-valued navigation property meta paths (relative to the cache's
|
|
1454
|
-
// root) which need to be refreshed, maps string to <code>true</code>
|
|
1455
|
-
mNavigationPropertyPaths = {},
|
|
1456
1477
|
aPromises = [],
|
|
1457
1478
|
that = this;
|
|
1458
1479
|
|
|
@@ -1476,10 +1497,9 @@ sap.ui.define([
|
|
|
1476
1497
|
try {
|
|
1477
1498
|
aPromises.push(
|
|
1478
1499
|
this.oCache.requestSideEffects(this.lockGroup(sGroupId), aPaths,
|
|
1479
|
-
|
|
1500
|
+
oContext && oContext.getPath().slice(1)));
|
|
1480
1501
|
|
|
1481
|
-
this.visitSideEffects(sGroupId, aPaths, oContext,
|
|
1482
|
-
aPromises);
|
|
1502
|
+
this.visitSideEffects(sGroupId, aPaths, oContext, aPromises);
|
|
1483
1503
|
|
|
1484
1504
|
return SyncPromise.all(aPromises.map(reportError)).then(function () {
|
|
1485
1505
|
return that.refreshDependentListBindingsWithoutCache();
|
|
@@ -1498,10 +1518,9 @@ sap.ui.define([
|
|
|
1498
1518
|
/**
|
|
1499
1519
|
* Returns a promise on the value for the given path relative to this binding. The function
|
|
1500
1520
|
* allows access to the complete data the binding points to (if <code>sPath</code> is "") or
|
|
1501
|
-
* any part thereof. The data is a JSON structure as described in
|
|
1502
|
-
*
|
|
1503
|
-
*
|
|
1504
|
-
* "OData JSON Format Version 4.0"</a>.
|
|
1521
|
+
* any part thereof. The data is a JSON structure as described in <a href=
|
|
1522
|
+
* "https://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html"
|
|
1523
|
+
* >"OData JSON Format Version 4.0"</a>.
|
|
1505
1524
|
* Note that the function clones the result. Modify values via
|
|
1506
1525
|
* {@link sap.ui.model.odata.v4.Context#setProperty}.
|
|
1507
1526
|
*
|
|
@@ -1510,7 +1529,7 @@ sap.ui.define([
|
|
|
1510
1529
|
*
|
|
1511
1530
|
* @param {string} [sPath=""]
|
|
1512
1531
|
* A path relative to this context binding
|
|
1513
|
-
* @returns {Promise}
|
|
1532
|
+
* @returns {Promise<any|undefined>}
|
|
1514
1533
|
* A promise on the requested value; in case there is no bound context this promise resolves
|
|
1515
1534
|
* with <code>undefined</code>
|
|
1516
1535
|
* @throws {Error}
|