@openui5/sap.ui.core 1.98.0 → 1.99.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 +32 -1
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.mobile.js +29 -11
- 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 +4 -4
- package/src/sap/ui/VersionInfo.js +13 -10
- package/src/sap/ui/base/BindingParser.js +34 -7
- 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 +32 -22
- 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/core/.library +1 -1
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +3 -3
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- 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 +77 -10
- package/src/sap/ui/core/Control.js +2 -1
- package/src/sap/ui/core/Core.js +3 -3
- 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 +4 -7
- 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 +1 -1
- package/src/sap/ui/core/FocusHandler.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/HTMLRenderer.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/IconRenderer.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 +9 -2
- 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/LocalBusyIndicatorRenderer.js +2 -2
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +37 -2
- 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 +2 -2
- 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/ScrollBarRenderer.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 +1 -1
- 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/_IconRegistry.js +10 -1
- package/src/sap/ui/core/date/Japanese.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +9 -6
- 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/DateFormat.js +524 -172
- package/src/sap/ui/core/format/DateFormatTimezoneDisplay.js +43 -0
- package/src/sap/ui/core/format/ListFormat.js +2 -2
- package/src/sap/ui/core/format/NumberFormat.js +190 -56
- package/src/sap/ui/core/format/TimezoneUtil.js +248 -0
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +5 -5
- 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 +4 -0
- package/src/sap/ui/core/messagebundle_ar.properties +2 -0
- package/src/sap/ui/core/messagebundle_bg.properties +7 -5
- package/src/sap/ui/core/messagebundle_ca.properties +2 -0
- package/src/sap/ui/core/messagebundle_cs.properties +2 -0
- package/src/sap/ui/core/messagebundle_cy.properties +2 -0
- package/src/sap/ui/core/messagebundle_da.properties +2 -0
- package/src/sap/ui/core/messagebundle_de.properties +3 -1
- package/src/sap/ui/core/messagebundle_el.properties +2 -0
- package/src/sap/ui/core/messagebundle_en.properties +2 -0
- package/src/sap/ui/core/messagebundle_en_GB.properties +2 -0
- package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +1 -0
- package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +2 -0
- package/src/sap/ui/core/messagebundle_es.properties +2 -0
- package/src/sap/ui/core/messagebundle_es_MX.properties +2 -0
- package/src/sap/ui/core/messagebundle_et.properties +2 -0
- package/src/sap/ui/core/messagebundle_fi.properties +2 -0
- package/src/sap/ui/core/messagebundle_fr.properties +2 -0
- package/src/sap/ui/core/messagebundle_fr_CA.properties +2 -0
- package/src/sap/ui/core/messagebundle_hi.properties +2 -0
- package/src/sap/ui/core/messagebundle_hr.properties +2 -0
- package/src/sap/ui/core/messagebundle_hu.properties +2 -0
- package/src/sap/ui/core/messagebundle_id.properties +4 -2
- package/src/sap/ui/core/messagebundle_it.properties +2 -0
- package/src/sap/ui/core/messagebundle_iw.properties +2 -0
- package/src/sap/ui/core/messagebundle_ja.properties +2 -0
- package/src/sap/ui/core/messagebundle_kk.properties +2 -0
- package/src/sap/ui/core/messagebundle_ko.properties +2 -0
- package/src/sap/ui/core/messagebundle_lt.properties +2 -0
- package/src/sap/ui/core/messagebundle_lv.properties +3 -1
- package/src/sap/ui/core/messagebundle_ms.properties +2 -0
- package/src/sap/ui/core/messagebundle_nl.properties +2 -0
- package/src/sap/ui/core/messagebundle_no.properties +2 -0
- package/src/sap/ui/core/messagebundle_pl.properties +2 -0
- package/src/sap/ui/core/messagebundle_pt.properties +2 -0
- package/src/sap/ui/core/messagebundle_pt_PT.properties +2 -0
- package/src/sap/ui/core/messagebundle_ro.properties +2 -0
- package/src/sap/ui/core/messagebundle_ru.properties +2 -0
- package/src/sap/ui/core/messagebundle_sh.properties +2 -0
- package/src/sap/ui/core/messagebundle_sk.properties +2 -0
- package/src/sap/ui/core/messagebundle_sl.properties +2 -0
- package/src/sap/ui/core/messagebundle_sv.properties +2 -0
- package/src/sap/ui/core/messagebundle_th.properties +2 -0
- package/src/sap/ui/core/messagebundle_tr.properties +2 -0
- package/src/sap/ui/core/messagebundle_uk.properties +2 -0
- package/src/sap/ui/core/messagebundle_vi.properties +2 -0
- package/src/sap/ui/core/messagebundle_zh_CN.properties +2 -0
- package/src/sap/ui/core/messagebundle_zh_TW.properties +2 -0
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/HTMLViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/JSViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/View.js +1 -1
- package/src/sap/ui/core/mvc/ViewRenderer.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +1 -1
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/Router.js +1 -1
- package/src/sap/ui/core/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 +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 +1 -1
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- 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 +19 -17
- package/src/sap/ui/core/util/PasteHelper.js +4 -4
- package/src/sap/ui/core/util/XMLPreprocessor.js +16 -4
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +1 -1
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +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.js +1 -1
- package/src/sap/ui/dom/includeStylesheet.js +8 -3
- package/src/sap/ui/events/jquery/EventExtension.js +1 -1
- package/src/sap/ui/model/Binding.js +4 -3
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +1 -1
- package/src/sap/ui/model/CompositeBinding.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/ContextBinding.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/MetaModel.js +1 -2
- 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 +1 -2
- package/src/sap/ui/model/base/ManagedObjectModel.js +1 -1
- package/src/sap/ui/model/json/JSONListBinding.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/json/JSONPropertyBinding.js +1 -1
- package/src/sap/ui/model/message/MessageListBinding.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/message/MessagePropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.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 +3 -3
- package/src/sap/ui/model/odata/ODataModel.js +2 -2
- package/src/sap/ui/model/odata/ODataTreeBinding.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/DateTimeWithTimezone.js +338 -0
- 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/ODataContextBinding.js +8 -4
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +32 -26
- package/src/sap/ui/model/odata/v2/ODataModel.js +11 -6
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +3 -4
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +16 -17
- package/src/sap/ui/model/odata/v4/Context.js +90 -52
- package/src/sap/ui/model/odata/v4/ODataBinding.js +16 -9
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +129 -170
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +205 -179
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +91 -63
- package/src/sap/ui/model/odata/v4/ODataModel.js +316 -249
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +48 -25
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +63 -60
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +2 -1
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +41 -10
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +6 -2
- package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +2 -2
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +20 -18
- 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/resource/ResourcePropertyBinding.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 -1
- package/src/sap/ui/model/xml/XMLListBinding.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/model/xml/XMLPropertyBinding.js +1 -1
- package/src/sap/ui/performance/trace/Passport.js +3 -3
- 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/thirdparty/jqueryui/jquery-ui-datepicker.js +143 -3
- package/src/sap/ui/thirdparty/jqueryui/jquery-ui-position.js +8 -1
- package/src/sap/ui/thirdparty/mobify-carousel.js +1 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader.js +1 -1
|
@@ -145,7 +145,7 @@ sap.ui.define([
|
|
|
145
145
|
/**
|
|
146
146
|
* @see sap.ui.model.ContextBinding.prototype.checkUpdate
|
|
147
147
|
*
|
|
148
|
-
* @param {boolean} bForceUpdate unused
|
|
148
|
+
* @param {boolean} [bForceUpdate] unused
|
|
149
149
|
*/
|
|
150
150
|
ODataContextBinding.prototype.checkUpdate = function(/*bForceUpdate*/) {
|
|
151
151
|
var oContext,
|
|
@@ -280,7 +280,7 @@ sap.ui.define([
|
|
|
280
280
|
* @private
|
|
281
281
|
*/
|
|
282
282
|
ODataContextBinding.prototype.setContext = function(oContext) {
|
|
283
|
-
var oBindingContext, sContextPath, oData, bReloadNeeded, sResolvedPath,
|
|
283
|
+
var oBindingContext, sContextPath, oData, sNavigationProperty, bReloadNeeded, sResolvedPath,
|
|
284
284
|
bForceUpdate = oContext && oContext.isRefreshForced(),
|
|
285
285
|
bPreliminary = oContext && oContext.isPreliminary(),
|
|
286
286
|
bTransient = oContext && oContext.isTransient && oContext.isTransient(),
|
|
@@ -303,8 +303,12 @@ sap.ui.define([
|
|
|
303
303
|
if (Context.hasChanged(this.oContext, oContext)) {
|
|
304
304
|
this.oContext = oContext;
|
|
305
305
|
sResolvedPath = this.getResolvedPath();
|
|
306
|
-
|
|
307
|
-
|
|
306
|
+
if (sResolvedPath && bTransient) {
|
|
307
|
+
// prevent propagation of transient context if it refers to a navigation property
|
|
308
|
+
sNavigationProperty = this.oModel.oMetadata
|
|
309
|
+
._splitByLastNavigationProperty(sResolvedPath).lastNavigationProperty;
|
|
310
|
+
}
|
|
311
|
+
if (!sResolvedPath || sNavigationProperty) {
|
|
308
312
|
if (this.oElementContext !== null) {
|
|
309
313
|
this.oElementContext = null;
|
|
310
314
|
this._fireChange({ reason: ChangeReason.Context });
|
|
@@ -225,7 +225,7 @@ sap.ui.define([
|
|
|
225
225
|
var aContexts, oInterval, aIntervals, iLimit, oSkipAndTop,
|
|
226
226
|
aContextData = [];
|
|
227
227
|
|
|
228
|
-
if (this.bInitial) {
|
|
228
|
+
if (this.bInitial || this._hasTransientParentContext()) {
|
|
229
229
|
return [];
|
|
230
230
|
}
|
|
231
231
|
|
|
@@ -418,10 +418,9 @@ sap.ui.define([
|
|
|
418
418
|
* {@link sap.ui.model.odata.v2.Context#isTransient}
|
|
419
419
|
*/
|
|
420
420
|
ODataListBinding.prototype.setContext = function (oContext) {
|
|
421
|
-
var
|
|
421
|
+
var bHadNonTransientContext, sResolvedPath,
|
|
422
422
|
bForceUpdate = oContext && oContext.isRefreshForced(),
|
|
423
423
|
bPreliminary = oContext && oContext.isPreliminary(),
|
|
424
|
-
bTransient = oContext && oContext.isTransient && oContext.isTransient(),
|
|
425
424
|
bUpdated = oContext && oContext.isUpdated();
|
|
426
425
|
|
|
427
426
|
// If binding is initial or not a relative binding, nothing to do here
|
|
@@ -438,9 +437,7 @@ sap.ui.define([
|
|
|
438
437
|
return;
|
|
439
438
|
}
|
|
440
439
|
if (Context.hasChanged(this.oContext, oContext)) {
|
|
441
|
-
|
|
442
|
-
bHasCreatedContexts = this._getCreatedContexts().length > 0;
|
|
443
|
-
}
|
|
440
|
+
bHadNonTransientContext = this.isResolved() && !this._hasTransientParentContext();
|
|
444
441
|
this.oContext = oContext;
|
|
445
442
|
sResolvedPath = this.getResolvedPath(); // resolved path with the new context
|
|
446
443
|
this.sDeepPath = this.oModel.resolveDeep(this.sPath, this.oContext);
|
|
@@ -450,13 +447,12 @@ sap.ui.define([
|
|
|
450
447
|
// ensure that data state is updated with each change of the context
|
|
451
448
|
this.checkDataState();
|
|
452
449
|
// If path does not resolve or parent context is created, reset current list
|
|
453
|
-
if (!sResolvedPath ||
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
this.bLengthFinal = true;
|
|
450
|
+
if (!sResolvedPath || this._hasTransientParentContext()) {
|
|
451
|
+
this.aAllKeys = null;
|
|
452
|
+
this.aKeys = [];
|
|
453
|
+
this.iLength = 0;
|
|
454
|
+
this.bLengthFinal = true;
|
|
455
|
+
if (bHadNonTransientContext) {
|
|
460
456
|
this._fireChange({reason : ChangeReason.Context});
|
|
461
457
|
}
|
|
462
458
|
|
|
@@ -961,7 +957,7 @@ sap.ui.define([
|
|
|
961
957
|
/**
|
|
962
958
|
* Refreshes the binding.
|
|
963
959
|
*
|
|
964
|
-
* @param {boolean} bForceUpdate Whether an update should be forced
|
|
960
|
+
* @param {boolean} [bForceUpdate] Whether an update should be forced
|
|
965
961
|
* @param {object} [mChangedEntities] A map of changed entities
|
|
966
962
|
* @param {object} [mEntityTypes] A map of entity types
|
|
967
963
|
*
|
|
@@ -969,11 +965,9 @@ sap.ui.define([
|
|
|
969
965
|
*/
|
|
970
966
|
ODataListBinding.prototype._refresh = function(bForceUpdate, mChangedEntities, mEntityTypes) {
|
|
971
967
|
var oEntityType, sResolvedPath,
|
|
972
|
-
bChangeDetected = false
|
|
973
|
-
bRelativeAndTransient = this.isRelative()
|
|
974
|
-
&& this.oContext && this.oContext.isTransient && this.oContext.isTransient();
|
|
968
|
+
bChangeDetected = false;
|
|
975
969
|
|
|
976
|
-
if (
|
|
970
|
+
if (this._hasTransientParentContext()) {
|
|
977
971
|
return;
|
|
978
972
|
}
|
|
979
973
|
this.bPendingRefresh = false;
|
|
@@ -1091,11 +1085,8 @@ sap.ui.define([
|
|
|
1091
1085
|
* @public
|
|
1092
1086
|
*/
|
|
1093
1087
|
ODataListBinding.prototype.initialize = function() {
|
|
1094
|
-
var bRelativeAndTransient = this.isRelative()
|
|
1095
|
-
&& this.oContext && this.oContext.isTransient && this.oContext.isTransient();
|
|
1096
|
-
|
|
1097
1088
|
if (this.oModel.oMetadata && this.oModel.oMetadata.isLoaded() && this.bInitial
|
|
1098
|
-
&& !
|
|
1089
|
+
&& !this._hasTransientParentContext()) {
|
|
1099
1090
|
if (!this._checkPathType()) {
|
|
1100
1091
|
Log.error("List Binding is not bound against a list for " + this.getResolvedPath());
|
|
1101
1092
|
}
|
|
@@ -1105,6 +1096,7 @@ sap.ui.define([
|
|
|
1105
1096
|
if (this.bDataAvailable) {
|
|
1106
1097
|
this._fireChange({reason: ChangeReason.Change});
|
|
1107
1098
|
} else {
|
|
1099
|
+
this.resetData();
|
|
1108
1100
|
this._fireRefresh({reason: ChangeReason.Refresh});
|
|
1109
1101
|
}
|
|
1110
1102
|
}
|
|
@@ -1119,7 +1111,7 @@ sap.ui.define([
|
|
|
1119
1111
|
* Check whether this Binding would provide new values and in case it changed,
|
|
1120
1112
|
* inform interested parties about this.
|
|
1121
1113
|
*
|
|
1122
|
-
* @param {boolean} bForceUpdate Force control update
|
|
1114
|
+
* @param {boolean} [bForceUpdate] Force control update
|
|
1123
1115
|
* @param {object} mChangedEntities Map of changed entities
|
|
1124
1116
|
* @private
|
|
1125
1117
|
*/
|
|
@@ -1211,7 +1203,7 @@ sap.ui.define([
|
|
|
1211
1203
|
this.aKeys = [];
|
|
1212
1204
|
this.aAllKeys = null;
|
|
1213
1205
|
this.iLength = 0;
|
|
1214
|
-
this.bLengthFinal =
|
|
1206
|
+
this.bLengthFinal = this._hasTransientParentContext() || !this.isResolved();
|
|
1215
1207
|
this.sChangeReason = undefined;
|
|
1216
1208
|
this.bDataAvailable = false;
|
|
1217
1209
|
this.bLengthRequested = false;
|
|
@@ -1704,7 +1696,9 @@ sap.ui.define([
|
|
|
1704
1696
|
* Creates a new entity for this binding's collection via
|
|
1705
1697
|
* {@link sap.ui.model.odata.v2.ODataModel#createEntry} using the parameters given in
|
|
1706
1698
|
* <code>mParameters</code> and inserts it at the list position specified by the
|
|
1707
|
-
* <code>bAtEnd</code> parameter.
|
|
1699
|
+
* <code>bAtEnd</code> parameter. See
|
|
1700
|
+
* {@link topic:6c47b2b39db9404582994070ec3d57a2#loio4c4cd99af9b14e08bb72470cc7cabff4 Creating
|
|
1701
|
+
* Entities documentation} for comprehensive information on the topic.
|
|
1708
1702
|
*
|
|
1709
1703
|
* Note: This method requires that the model metadata has been loaded; see
|
|
1710
1704
|
* {@link sap.ui.model.odata.v2.ODataModel#metadataLoaded}.
|
|
@@ -1777,7 +1771,7 @@ sap.ui.define([
|
|
|
1777
1771
|
throw new Error("Parameter '" + sParameterKey + "' is not supported");
|
|
1778
1772
|
}
|
|
1779
1773
|
});
|
|
1780
|
-
if (this.
|
|
1774
|
+
if (this._hasTransientParentContext()) {
|
|
1781
1775
|
throw new Error("Parent context is transient");
|
|
1782
1776
|
}
|
|
1783
1777
|
if (this.bUseExpandedList) {
|
|
@@ -1957,5 +1951,17 @@ sap.ui.define([
|
|
|
1957
1951
|
}).length;
|
|
1958
1952
|
};
|
|
1959
1953
|
|
|
1954
|
+
/**
|
|
1955
|
+
* Returns whether this binding is relative and has a transient parent context.
|
|
1956
|
+
*
|
|
1957
|
+
* @returns {boolean} Whether this binding is relative and has a transient parent context
|
|
1958
|
+
*
|
|
1959
|
+
* @private
|
|
1960
|
+
*/
|
|
1961
|
+
ODataListBinding.prototype._hasTransientParentContext = function () {
|
|
1962
|
+
return this.isRelative()
|
|
1963
|
+
&& !!(this.oContext && this.oContext.isTransient && this.oContext.isTransient());
|
|
1964
|
+
};
|
|
1965
|
+
|
|
1960
1966
|
return ODataListBinding;
|
|
1961
1967
|
});
|
|
@@ -201,7 +201,7 @@ sap.ui.define([
|
|
|
201
201
|
* This model is not prepared to be inherited from.
|
|
202
202
|
*
|
|
203
203
|
* @author SAP SE
|
|
204
|
-
* @version 1.
|
|
204
|
+
* @version 1.99.0
|
|
205
205
|
*
|
|
206
206
|
* @public
|
|
207
207
|
* @alias sap.ui.model.odata.v2.ODataModel
|
|
@@ -1887,7 +1887,7 @@ sap.ui.define([
|
|
|
1887
1887
|
* function lead to a single synchronous call where <code>mChangedEntities</code> is the union
|
|
1888
1888
|
* of all <code>mChangedEntities</Code> from the asynchronous calls.
|
|
1889
1889
|
*
|
|
1890
|
-
* @param {boolean} bForceUpdate
|
|
1890
|
+
* @param {boolean} [bForceUpdate]
|
|
1891
1891
|
* The parameter <code>bForceUpdate</code> for the <code>checkUpdate</code> call on the
|
|
1892
1892
|
* bindings
|
|
1893
1893
|
* @param {boolean} bAsync
|
|
@@ -2922,7 +2922,7 @@ sap.ui.define([
|
|
|
2922
2922
|
oResultValue = {};
|
|
2923
2923
|
for (i = 0; i < aOwnPropSelect.length; i++) {
|
|
2924
2924
|
sSelect = aOwnPropSelect[i];
|
|
2925
|
-
if (oValue[sSelect] !== undefined) {
|
|
2925
|
+
if (oValue[sSelect] !== undefined || oValue.__metadata.created) {
|
|
2926
2926
|
oResultValue[sSelect] = oValue[sSelect];
|
|
2927
2927
|
} else {
|
|
2928
2928
|
Log.fatal("No data loaded for select property: " + sSelect + " of entry: " + that.getKey(oValue));
|
|
@@ -4928,7 +4928,10 @@ sap.ui.define([
|
|
|
4928
4928
|
};
|
|
4929
4929
|
|
|
4930
4930
|
/**
|
|
4931
|
-
* Trigger a <code>POST</code> request to the OData service that was specified in the model
|
|
4931
|
+
* Trigger a <code>POST</code> request to the OData service that was specified in the model
|
|
4932
|
+
* constructor; see
|
|
4933
|
+
* {@link topic:6c47b2b39db9404582994070ec3d57a2#loio4c4cd99af9b14e08bb72470cc7cabff4 Creating
|
|
4934
|
+
* Entities documentation} for comprehensive information on the topic.
|
|
4932
4935
|
*
|
|
4933
4936
|
* Please note that deep creates are not supported and may not work.
|
|
4934
4937
|
*
|
|
@@ -6514,7 +6517,9 @@ sap.ui.define([
|
|
|
6514
6517
|
/**
|
|
6515
6518
|
* Creates a new entry object which is described by the metadata of the entity type of the
|
|
6516
6519
|
* specified <code>sPath</code> Name. A context object is returned which can be used to bind
|
|
6517
|
-
* against the newly created object.
|
|
6520
|
+
* against the newly created object. See
|
|
6521
|
+
* {@link topic:6c47b2b39db9404582994070ec3d57a2#loio4c4cd99af9b14e08bb72470cc7cabff4 Creating
|
|
6522
|
+
* Entities documentation} for comprehensive information on the topic.
|
|
6518
6523
|
*
|
|
6519
6524
|
* For each created entry a request is created and stored in a request queue.
|
|
6520
6525
|
* The request queue can be submitted by calling {@link #submitChanges}. As long as the context
|
|
@@ -7876,7 +7881,7 @@ sap.ui.define([
|
|
|
7876
7881
|
* path prefix. Use <code>fullTarget</code> to determine whether a message matches the resolved
|
|
7877
7882
|
* binding path prefix.
|
|
7878
7883
|
*
|
|
7879
|
-
* @param {string}
|
|
7884
|
+
* @param {string} sMessagePath
|
|
7880
7885
|
* The messages target used as key in <code>this.mMessages</code>
|
|
7881
7886
|
* @param {string} sPathPrefix
|
|
7882
7887
|
* The resolved binding path prefix
|
|
@@ -92,7 +92,7 @@ sap.ui.define([
|
|
|
92
92
|
* @extends sap.ui.model.TreeBinding
|
|
93
93
|
* @hideconstructor
|
|
94
94
|
* @public
|
|
95
|
-
* @version 1.
|
|
95
|
+
* @version 1.99.0
|
|
96
96
|
*/
|
|
97
97
|
var ODataTreeBinding = TreeBinding.extend("sap.ui.model.odata.v2.ODataTreeBinding", /** @lends sap.ui.model.odata.v2.ODataTreeBinding.prototype */ {
|
|
98
98
|
|
|
@@ -906,8 +906,7 @@ sap.ui.define([
|
|
|
906
906
|
* Retrieves parent ids from a given data set
|
|
907
907
|
*
|
|
908
908
|
* @param {Array} aData Lookup array to search for parent ids
|
|
909
|
-
* @
|
|
910
|
-
* @returns {Array} Array of all parent ids
|
|
909
|
+
* @returns {Object<string,string>} Map of all parent ids
|
|
911
910
|
*
|
|
912
911
|
* @private
|
|
913
912
|
*/
|
|
@@ -1821,7 +1820,7 @@ sap.ui.define([
|
|
|
1821
1820
|
* Check whether this Binding would provide new values and in case it changed,fire a change
|
|
1822
1821
|
* event.
|
|
1823
1822
|
*
|
|
1824
|
-
* @param {boolean} bForceUpdate
|
|
1823
|
+
* @param {boolean} [bForceUpdate]
|
|
1825
1824
|
* Whether to fire the event regardless of the bindings state
|
|
1826
1825
|
* @param {object} mChangedEntities
|
|
1827
1826
|
* A map of changed entities
|
|
@@ -15,7 +15,6 @@ sap.ui.define([
|
|
|
15
15
|
rPaths = /\$(?:(?:Annotation)|(?:(?:Navigation)?Property))?Path/,
|
|
16
16
|
rSplitPathSegment = /^(.+?\/(\$(?:Annotation)?Path))(\/?)(.*)$/,
|
|
17
17
|
rUnsupportedPathSegments = /\$(?:Navigation)?PropertyPath/,
|
|
18
|
-
|
|
19
18
|
/**
|
|
20
19
|
* @classdesc
|
|
21
20
|
* A collection of methods which help to consume
|
|
@@ -113,16 +112,16 @@ sap.ui.define([
|
|
|
113
112
|
* Example for "$AnnotationPath" in the context's path:
|
|
114
113
|
* <pre>
|
|
115
114
|
* <Annotations Target="com.sap.gateway.default.iwbep.tea_busi.v0001.EQUIPMENT">
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
115
|
+
* <Annotation Term="com.sap.vocabularies.UI.v1.Facets">
|
|
116
|
+
* <Collection>
|
|
117
|
+
* <Record Type="com.sap.vocabularies.UI.v1.ReferenceFacet">
|
|
118
|
+
* <PropertyValue Property="Target" AnnotationPath="EQUIPMENT_2_PRODUCT/@com.sap.vocabularies.Common.v1.QuickInfo" />
|
|
119
|
+
* </Record>
|
|
120
|
+
* </Collection>
|
|
121
|
+
* </Annotation>
|
|
123
122
|
* </Annotations>
|
|
124
123
|
* <Annotations Target="com.sap.gateway.default.iwbep.tea_busi_product.v0001.Product">
|
|
125
|
-
*
|
|
124
|
+
* <Annotation Term="com.sap.vocabularies.Common.v1.QuickInfo" Path="Name" />
|
|
126
125
|
* </Annotations>
|
|
127
126
|
* </pre>
|
|
128
127
|
* <pre>
|
|
@@ -134,16 +133,16 @@ sap.ui.define([
|
|
|
134
133
|
* Example for "$Path" in the context's path:
|
|
135
134
|
* <pre>
|
|
136
135
|
* <Annotations Target="com.sap.gateway.default.iwbep.tea_busi.v0001.EQUIPMENT">
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
136
|
+
* <Annotation Term="com.sap.vocabularies.UI.v1.LineItem">
|
|
137
|
+
* <Collection>
|
|
138
|
+
* <Record Type="com.sap.vocabularies.UI.v1.DataField">
|
|
139
|
+
* <PropertyValue Property="Value" Path="EQUIPMENT_2_PRODUCT/Name" />
|
|
140
|
+
* </Record>
|
|
141
|
+
* </Collection>
|
|
142
|
+
* </Annotation>
|
|
144
143
|
* </Annotations>
|
|
145
144
|
* <Annotations Target="com.sap.gateway.default.iwbep.tea_busi_product.v0001.Product/Name">
|
|
146
|
-
*
|
|
145
|
+
* <Annotation Term="com.sap.vocabularies.Common.v1.QuickInfo" Path="PRODUCT_2_SUPPLIER/Supplier_Name" />
|
|
147
146
|
* </Annotations>
|
|
148
147
|
* </pre>
|
|
149
148
|
* <pre>
|
|
@@ -18,7 +18,35 @@ sap.ui.define([
|
|
|
18
18
|
iGenerationCounter = 0,
|
|
19
19
|
oModule,
|
|
20
20
|
// index of virtual context used for auto-$expand/$select
|
|
21
|
-
iVIRTUAL = -9007199254740991/*Number.MIN_SAFE_INTEGER
|
|
21
|
+
iVIRTUAL = -9007199254740991/*Number.MIN_SAFE_INTEGER*/,
|
|
22
|
+
/**
|
|
23
|
+
* @alias sap.ui.model.odata.v4.Context
|
|
24
|
+
* @author SAP SE
|
|
25
|
+
* @class Implementation of an OData V4 model's context.
|
|
26
|
+
*
|
|
27
|
+
* The context is a pointer to model data as returned by a query from a
|
|
28
|
+
* {@link sap.ui.model.odata.v4.ODataContextBinding} or a
|
|
29
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding}. Contexts are always and only
|
|
30
|
+
* created by such bindings. A context for a context binding points to the complete query
|
|
31
|
+
* result. A context for a list binding points to one specific entry in the binding's
|
|
32
|
+
* collection. A property binding does not have a context, you can access its value via
|
|
33
|
+
* {@link sap.ui.model.odata.v4.ODataPropertyBinding#getValue}.
|
|
34
|
+
*
|
|
35
|
+
* Applications can access model data only via a context, either synchronously with the
|
|
36
|
+
* risk that the values are not available yet ({@link #getProperty} and
|
|
37
|
+
* {@link #getObject}) or asynchronously ({@link #requestProperty} and
|
|
38
|
+
* {@link #requestObject}).
|
|
39
|
+
*
|
|
40
|
+
* Context instances are immutable except for their indexes.
|
|
41
|
+
* @extends sap.ui.model.Context
|
|
42
|
+
* @hideconstructor
|
|
43
|
+
* @public
|
|
44
|
+
* @since 1.39.0
|
|
45
|
+
* @version 1.99.0
|
|
46
|
+
*/
|
|
47
|
+
Context = BaseContext.extend("sap.ui.model.odata.v4.Context", {
|
|
48
|
+
constructor : constructor
|
|
49
|
+
});
|
|
22
50
|
|
|
23
51
|
/*
|
|
24
52
|
* Fetches and formats the primitive value at the given path.
|
|
@@ -54,6 +82,10 @@ sap.ui.define([
|
|
|
54
82
|
});
|
|
55
83
|
}
|
|
56
84
|
|
|
85
|
+
//*********************************************************************************************
|
|
86
|
+
// Context
|
|
87
|
+
//*********************************************************************************************
|
|
88
|
+
|
|
57
89
|
/**
|
|
58
90
|
* Do <strong>NOT</strong> call this private constructor. In the OData V4 model you cannot
|
|
59
91
|
* create contexts at will: retrieve them from a binding or a view element instead.
|
|
@@ -79,52 +111,27 @@ sap.ui.define([
|
|
|
79
111
|
* property update
|
|
80
112
|
* @throws {Error}
|
|
81
113
|
* If an invalid path is given
|
|
82
|
-
*
|
|
83
|
-
* @alias sap.ui.model.odata.v4.Context
|
|
84
|
-
* @author SAP SE
|
|
85
|
-
* @class Implementation of an OData V4 model's context.
|
|
86
|
-
*
|
|
87
|
-
* The context is a pointer to model data as returned by a query from a
|
|
88
|
-
* {@link sap.ui.model.odata.v4.ODataContextBinding} or a
|
|
89
|
-
* {@link sap.ui.model.odata.v4.ODataListBinding}. Contexts are always and only
|
|
90
|
-
* created by such bindings. A context for a context binding points to the complete query
|
|
91
|
-
* result. A context for a list binding points to one specific entry in the binding's
|
|
92
|
-
* collection. A property binding does not have a context, you can access its value via
|
|
93
|
-
* {@link sap.ui.model.odata.v4.ODataPropertyBinding#getValue}.
|
|
94
|
-
*
|
|
95
|
-
* Applications can access model data only via a context, either synchronously with the risk
|
|
96
|
-
* that the values are not available yet ({@link #getProperty} and {@link #getObject}) or
|
|
97
|
-
* asynchronously ({@link #requestProperty} and {@link #requestObject}).
|
|
98
|
-
*
|
|
99
|
-
* Context instances are immutable except for their indexes.
|
|
100
|
-
* @extends sap.ui.model.Context
|
|
101
|
-
* @hideconstructor
|
|
102
|
-
* @public
|
|
103
|
-
* @since 1.39.0
|
|
104
|
-
* @version 1.98.0
|
|
105
114
|
*/
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
127
|
-
});
|
|
115
|
+
function constructor(oModel, oBinding, sPath, iIndex, oCreatePromise, iGeneration,
|
|
116
|
+
bInactive) {
|
|
117
|
+
if (sPath[0] !== "/") {
|
|
118
|
+
throw new Error("Not an absolute path: " + sPath);
|
|
119
|
+
}
|
|
120
|
+
if (sPath.endsWith("/")) {
|
|
121
|
+
throw new Error("Unsupported trailing slash: " + sPath);
|
|
122
|
+
}
|
|
123
|
+
BaseContext.call(this, oModel, sPath);
|
|
124
|
+
this.oBinding = oBinding;
|
|
125
|
+
this.oCreatedPromise = oCreatePromise
|
|
126
|
+
// ensure to return a promise that is resolved w/o data
|
|
127
|
+
&& Promise.resolve(oCreatePromise).then(function () {});
|
|
128
|
+
this.oSyncCreatePromise = oCreatePromise;
|
|
129
|
+
this.iGeneration = iGeneration || 0;
|
|
130
|
+
this.bInactive = bInactive || undefined; // be in sync with the annotation
|
|
131
|
+
this.iIndex = iIndex;
|
|
132
|
+
this.bKeepAlive = false;
|
|
133
|
+
this.fnOnBeforeDestroy = undefined;
|
|
134
|
+
}
|
|
128
135
|
|
|
129
136
|
/**
|
|
130
137
|
* Deletes the OData entity this context points to.
|
|
@@ -532,9 +539,24 @@ sap.ui.define([
|
|
|
532
539
|
* @private
|
|
533
540
|
*/
|
|
534
541
|
Context.prototype.fetchValue = function (sPath, oListener, bCached) {
|
|
542
|
+
var oBinding = this.oBinding;
|
|
543
|
+
|
|
535
544
|
if (this.iIndex === iVIRTUAL) {
|
|
536
545
|
return SyncPromise.resolve(); // no cache access for virtual contexts
|
|
537
546
|
}
|
|
547
|
+
if (oBinding.getHeaderContext && oBinding.getHeaderContext() === this) {
|
|
548
|
+
if (sPath && sPath.startsWith(this.sPath)) {
|
|
549
|
+
sPath = sPath.slice(this.sPath.length + 1);
|
|
550
|
+
}
|
|
551
|
+
if (!sPath) {
|
|
552
|
+
return oBinding.fetchValue(this.sPath, oListener, bCached)
|
|
553
|
+
.then(function (aElements) {
|
|
554
|
+
return {$count : aElements.$count};
|
|
555
|
+
});
|
|
556
|
+
} else if (sPath !== "$count") {
|
|
557
|
+
throw new Error("Invalid header path: " + sPath);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
538
560
|
if (!sPath || sPath[0] !== "/") {
|
|
539
561
|
// Create an absolute path based on the context's path and reduce it. This is only
|
|
540
562
|
// necessary for data access via Context APIs, bindings already use absolute paths.
|
|
@@ -680,12 +702,16 @@ sap.ui.define([
|
|
|
680
702
|
* Returns <code>undefined</code> if the data is not (yet) available; no request is triggered.
|
|
681
703
|
* Use {@link #requestObject} for asynchronous access.
|
|
682
704
|
*
|
|
705
|
+
* The header context of a list binding only delivers <code>$count</code> (wrapped in an object
|
|
706
|
+
* if <code>sPath</code> is "").
|
|
707
|
+
*
|
|
683
708
|
* @param {string} [sPath=""]
|
|
684
709
|
* A path relative to this context
|
|
685
710
|
* @returns {any}
|
|
686
711
|
* The requested value
|
|
687
712
|
* @throws {Error}
|
|
688
|
-
* If the context's root binding is suspended
|
|
713
|
+
* If the context's root binding is suspended or if the context is a header context and the
|
|
714
|
+
* path is neither empty nor "$count".
|
|
689
715
|
*
|
|
690
716
|
* @public
|
|
691
717
|
* @see sap.ui.model.Context#getObject
|
|
@@ -710,8 +736,12 @@ sap.ui.define([
|
|
|
710
736
|
* If the type is not yet available, <code>undefined</code> is returned.
|
|
711
737
|
* @returns {any}
|
|
712
738
|
* The requested property value
|
|
713
|
-
* @throws {Error}
|
|
714
|
-
*
|
|
739
|
+
* @throws {Error} If
|
|
740
|
+
* <ul>
|
|
741
|
+
* <li> the context's root binding is suspended,
|
|
742
|
+
* <li> the value is not primitive,
|
|
743
|
+
* <li> or the context is a header context and the path is not "$count"
|
|
744
|
+
* </ul>
|
|
715
745
|
*
|
|
716
746
|
* @public
|
|
717
747
|
* @see sap.ui.model.Context#getProperty
|
|
@@ -809,7 +839,8 @@ sap.ui.define([
|
|
|
809
839
|
* Returns whether there are pending changes for bindings dependent on this context, or for
|
|
810
840
|
* unresolved bindings (see {@link sap.ui.model.Binding#isResolved}) which were dependent on
|
|
811
841
|
* this context at the time the pending change was created. This includes the context itself
|
|
812
|
-
* being transient
|
|
842
|
+
* being {@link #isTransient transient}. Since 1.98.0, {@link #isInactive inactive} contexts are
|
|
843
|
+
* ignored.
|
|
813
844
|
*
|
|
814
845
|
* @returns {boolean}
|
|
815
846
|
* Whether there are pending changes
|
|
@@ -850,6 +881,7 @@ sap.ui.define([
|
|
|
850
881
|
* otherwise.
|
|
851
882
|
*
|
|
852
883
|
* @public
|
|
884
|
+
* @see #isTransient
|
|
853
885
|
* @see sap.ui.model.odata.v4.ODataListBinding#create
|
|
854
886
|
* @see sap.ui.model.odata.v4.ODataListBinding#event:createActivate
|
|
855
887
|
* @since 1.98.0
|
|
@@ -884,6 +916,7 @@ sap.ui.define([
|
|
|
884
916
|
* created using {@link sap.ui.model.odata.v4.ODataListBinding#create}
|
|
885
917
|
*
|
|
886
918
|
* @public
|
|
919
|
+
* @see #isInactive
|
|
887
920
|
* @since 1.43.0
|
|
888
921
|
*/
|
|
889
922
|
Context.prototype.isTransient = function () {
|
|
@@ -1035,12 +1068,16 @@ sap.ui.define([
|
|
|
1035
1068
|
* Note that the function clones the result. Modify values via
|
|
1036
1069
|
* {@link sap.ui.model.odata.v4.Context#setProperty}.
|
|
1037
1070
|
*
|
|
1071
|
+
* The header context of a list binding only delivers <code>$count</code> (wrapped in an object
|
|
1072
|
+
* if <code>sPath</code> is "").
|
|
1073
|
+
*
|
|
1038
1074
|
* If you want {@link #requestObject} to read fresh data, call {@link #refresh} first.
|
|
1039
1075
|
*
|
|
1040
1076
|
* @param {string} [sPath=""]
|
|
1041
1077
|
* A path relative to this context
|
|
1042
1078
|
* @returns {Promise}
|
|
1043
|
-
* A promise on the requested value
|
|
1079
|
+
* A promise on the requested value; it is rejected if the context is a header context and the
|
|
1080
|
+
* path is neither empty nor "$count".
|
|
1044
1081
|
* @throws {Error}
|
|
1045
1082
|
* If the context's root binding is suspended
|
|
1046
1083
|
*
|
|
@@ -1068,7 +1105,8 @@ sap.ui.define([
|
|
|
1068
1105
|
* If <code>true</code>, the values are returned in external format using UI5 types for the
|
|
1069
1106
|
* given property paths that format corresponding to the properties' EDM types and constraints
|
|
1070
1107
|
* @returns {Promise}
|
|
1071
|
-
* A promise on the requested value or values; it is rejected if a value is not primitive
|
|
1108
|
+
* A promise on the requested value or values; it is rejected if a value is not primitive or
|
|
1109
|
+
* if the context is a header context and a path is not "$count"
|
|
1072
1110
|
* @throws {Error}
|
|
1073
1111
|
* If the context's root binding is suspended
|
|
1074
1112
|
*
|
|
@@ -166,6 +166,7 @@ sap.ui.define([
|
|
|
166
166
|
}
|
|
167
167
|
break;
|
|
168
168
|
case "$$canonicalPath":
|
|
169
|
+
case "$$getKeepAliveContext":
|
|
169
170
|
case "$$noPatch":
|
|
170
171
|
case "$$ownRequest":
|
|
171
172
|
case "$$patchWithoutSideEffects":
|
|
@@ -533,7 +534,7 @@ sap.ui.define([
|
|
|
533
534
|
// With $$aggregation, no auto-$expand/$select is needed
|
|
534
535
|
oQueryOptionsPromise = this.doFetchQueryOptions(oContext);
|
|
535
536
|
if (this.oModel.bAutoExpandSelect && this.aChildCanUseCachePromises
|
|
536
|
-
&& !
|
|
537
|
+
&& !this.mParameters.$$aggregation) {
|
|
537
538
|
// For auto-$expand/$select, wait for query options of dependent bindings:
|
|
538
539
|
// Promise.resolve() ensures all dependent bindings are created and have sent their
|
|
539
540
|
// query options promise to this binding via fetchIfChildCanUseCache.
|
|
@@ -567,7 +568,8 @@ sap.ui.define([
|
|
|
567
568
|
return wrapQueryOptions(oQueryOptionsPromise);
|
|
568
569
|
}
|
|
569
570
|
return oContext.getBinding()
|
|
570
|
-
.fetchIfChildCanUseCache(oContext, that.sPath, oQueryOptionsPromise
|
|
571
|
+
.fetchIfChildCanUseCache(oContext, that.sPath, oQueryOptionsPromise,
|
|
572
|
+
!this.mParameters) // duck typing for property binding
|
|
571
573
|
.then(function (sReducedPath) {
|
|
572
574
|
return wrapQueryOptions(sReducedPath ? undefined : oQueryOptionsPromise,
|
|
573
575
|
sReducedPath);
|
|
@@ -814,7 +816,8 @@ sap.ui.define([
|
|
|
814
816
|
* changes or created entities which have not been sent successfully to the server. This
|
|
815
817
|
* function does not take into account the deletion of entities (see
|
|
816
818
|
* {@link sap.ui.model.odata.v4.Context#delete}) and the execution of OData operations
|
|
817
|
-
* (see {@link sap.ui.model.odata.v4.ODataContextBinding#execute}).
|
|
819
|
+
* (see {@link sap.ui.model.odata.v4.ODataContextBinding#execute}). Since 1.98.0,
|
|
820
|
+
* {@link sap.ui.model.odata.v4.Context#isInactive inactive} contexts are ignored.
|
|
818
821
|
*
|
|
819
822
|
* Note: If this binding is relative, its data is cached separately for each parent context
|
|
820
823
|
* path. This method returns <code>true</code> if there are pending changes for the current
|
|
@@ -823,11 +826,15 @@ sap.ui.define([
|
|
|
823
826
|
*
|
|
824
827
|
* @param {boolean} [bIgnoreKeptAlive]
|
|
825
828
|
* Whether to ignore changes which will not be lost by APIs like
|
|
826
|
-
*
|
|
827
|
-
*
|
|
828
|
-
*
|
|
829
|
-
*
|
|
830
|
-
*
|
|
829
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding#changeParameters changeParameters},
|
|
830
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding#filter filter},
|
|
831
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding#sort sort}, or
|
|
832
|
+
* {@link sap.ui.model.odata.v4.ODataListBinding#suspend suspend} because they relate to a
|
|
833
|
+
* {@link sap.ui.model.odata.v4.Context#setKeepAlive kept-alive} context of this binding.
|
|
834
|
+
* Since 1.98.0, {@link sap.ui.model.odata.v4.Context#isTransient transient} contexts
|
|
835
|
+
* of a {@link #getRootBinding root binding} are treated as kept-alive by this flag.
|
|
836
|
+
* Since 1.99.0, the same happens for bindings using the <code>$$ownRequest</code> parameter
|
|
837
|
+
* (see {@link sap.ui.model.odata.v4.ODataModel#bindList}).
|
|
831
838
|
* @returns {boolean}
|
|
832
839
|
* <code>true</code> if the binding is resolved and has pending changes
|
|
833
840
|
*
|
|
@@ -857,7 +864,7 @@ sap.ui.define([
|
|
|
857
864
|
ODataBinding.prototype.hasPendingChangesForPath = function (sPath, bIgnoreKeptAlive) {
|
|
858
865
|
return this.withCache(function (oCache, sCachePath, oBinding) {
|
|
859
866
|
return oCache.hasPendingChangesForPath(sCachePath, bIgnoreKeptAlive,
|
|
860
|
-
bIgnoreKeptAlive && oBinding.isRoot()
|
|
867
|
+
bIgnoreKeptAlive && (oBinding.isRoot() || oBinding.mParameters.$$ownRequest));
|
|
861
868
|
}, sPath, true).unwrap();
|
|
862
869
|
};
|
|
863
870
|
|