@openui5/sap.ui.core 1.115.1 → 1.117.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/.dtsgenrc +18 -0
- package/.eslintrc.json +1 -11
- package/.reuse/dep5 +0 -5
- package/THIRDPARTY.txt +1 -7
- 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.sjax.js +2 -2
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +106 -0
- package/src/sap/base/Eventing.js +319 -0
- package/src/sap/base/config/MemoryConfigurationProvider.js +10 -1
- package/src/sap/base/config.js +3 -2
- package/src/sap/base/i18n/Formatting.js +989 -0
- package/src/sap/base/i18n/LanguageTag.js +189 -0
- package/src/sap/base/i18n/Localization.js +710 -0
- package/src/sap/base/i18n/ResourceBundle.js +5 -20
- package/src/sap/base/i18n/date/CalendarType.js +54 -0
- package/src/sap/base/i18n/date/CalendarWeekNumbering.js +105 -0
- package/src/sap/base/i18n/date/TimezoneUtils.js +287 -0
- package/src/sap/base/util/JSTokenizer.js +1 -1
- package/src/sap/base/util/fetch.js +4 -4
- package/src/sap/base/util/mixedFetch.js +2 -2
- 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 +2 -2
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/base/Event.js +6 -4
- package/src/sap/ui/base/EventProvider.js +4 -12
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +9 -15
- package/src/sap/ui/base/ManagedObjectMetadata.js +33 -12
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/base/SyncPromise.js +10 -5
- package/src/sap/ui/core/.library +3 -3
- package/src/sap/ui/core/AccessKeysEnablement.js +10 -5
- package/src/sap/ui/core/AnimationMode.js +49 -0
- package/src/sap/ui/core/BusyIndicator.js +33 -42
- package/src/sap/ui/core/CalendarType.js +11 -37
- package/src/sap/ui/core/Component.js +4 -5
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +2 -2
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/ConfigTest.js +17 -0
- package/src/sap/ui/core/Configuration.js +409 -1282
- package/src/sap/ui/core/Control.js +7 -12
- package/src/sap/ui/core/ControlBehavior.js +157 -0
- package/src/sap/ui/core/Core.js +126 -132
- 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 +14 -3
- package/src/sap/ui/core/ElementMetadata.js +2 -4
- 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 +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 +1 -2
- 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 +5 -7
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +12 -12
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +126 -38
- 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 +154 -430
- package/src/sap/ui/core/LocaleData.js +50 -14
- package/src/sap/ui/core/Manifest.js +5 -5
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Popup.js +37 -50
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/Rendering.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/Shortcut.js +11 -9
- package/src/sap/ui/core/StaticArea.js +31 -17
- package/src/sap/ui/core/Theming.js +458 -0
- 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/XMLTemplateProcessor.js +28 -5
- package/src/sap/ui/core/_IconRegistry.js +89 -12
- package/src/sap/ui/core/boot/_bootConfig.js +137 -0
- package/src/sap/ui/core/boot/_runBoot.js +16 -0
- package/src/sap/ui/core/boot/initDOM.js +96 -0
- package/src/sap/ui/core/boot/loadCalendar.js +50 -0
- package/src/sap/ui/core/boot/loadManifest.js +55 -0
- package/src/sap/ui/core/boot/loadModules.js +80 -0
- package/src/sap/ui/core/boot/manifest.json +11 -0
- package/src/sap/ui/core/boot/onInit.js +44 -0
- package/src/sap/ui/core/boot.js +107 -0
- package/src/sap/ui/core/date/CalendarWeekNumbering.js +12 -83
- package/src/sap/ui/core/date/UI5Date.js +10 -4
- package/src/sap/ui/core/delegate/ItemNavigation.js +8 -10
- package/src/sap/ui/core/delegate/ScrollEnablement.js +5 -5
- 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 +33 -27
- package/src/sap/ui/core/format/TimezoneUtil.js +15 -273
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +32 -6
- 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/MessageMixin.js +6 -5
- 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_ar.properties +57 -55
- package/src/sap/ui/core/messagebundle_bg.properties +57 -55
- package/src/sap/ui/core/messagebundle_ca.properties +30 -28
- package/src/sap/ui/core/messagebundle_cs.properties +44 -42
- package/src/sap/ui/core/messagebundle_cy.properties +59 -57
- package/src/sap/ui/core/messagebundle_da.properties +57 -55
- package/src/sap/ui/core/messagebundle_de.properties +59 -57
- package/src/sap/ui/core/messagebundle_el.properties +48 -46
- package/src/sap/ui/core/messagebundle_en.properties +59 -57
- package/src/sap/ui/core/messagebundle_en_GB.properties +59 -57
- package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +2 -0
- package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +3 -0
- package/src/sap/ui/core/messagebundle_es.properties +48 -46
- package/src/sap/ui/core/messagebundle_es_MX.properties +58 -56
- package/src/sap/ui/core/messagebundle_et.properties +55 -53
- package/src/sap/ui/core/messagebundle_fi.properties +51 -49
- package/src/sap/ui/core/messagebundle_fr.properties +36 -34
- package/src/sap/ui/core/messagebundle_fr_CA.properties +21 -19
- package/src/sap/ui/core/messagebundle_hi.properties +42 -40
- package/src/sap/ui/core/messagebundle_hr.properties +57 -55
- package/src/sap/ui/core/messagebundle_hu.properties +58 -56
- package/src/sap/ui/core/messagebundle_id.properties +59 -57
- package/src/sap/ui/core/messagebundle_it.properties +75 -73
- package/src/sap/ui/core/messagebundle_iw.properties +59 -57
- package/src/sap/ui/core/messagebundle_ja.properties +50 -48
- package/src/sap/ui/core/messagebundle_kk.properties +44 -42
- package/src/sap/ui/core/messagebundle_ko.properties +20 -18
- package/src/sap/ui/core/messagebundle_lt.properties +59 -57
- package/src/sap/ui/core/messagebundle_lv.properties +59 -57
- package/src/sap/ui/core/messagebundle_ms.properties +60 -58
- package/src/sap/ui/core/messagebundle_nl.properties +58 -56
- package/src/sap/ui/core/messagebundle_no.properties +56 -54
- package/src/sap/ui/core/messagebundle_pl.properties +56 -54
- package/src/sap/ui/core/messagebundle_pt.properties +58 -56
- package/src/sap/ui/core/messagebundle_pt_PT.properties +58 -56
- package/src/sap/ui/core/messagebundle_ro.properties +59 -57
- package/src/sap/ui/core/messagebundle_ru.properties +57 -55
- package/src/sap/ui/core/messagebundle_sh.properties +59 -57
- package/src/sap/ui/core/messagebundle_sk.properties +57 -55
- package/src/sap/ui/core/messagebundle_sl.properties +58 -56
- package/src/sap/ui/core/messagebundle_sv.properties +54 -52
- package/src/sap/ui/core/messagebundle_th.properties +18 -16
- package/src/sap/ui/core/messagebundle_tr.properties +58 -56
- package/src/sap/ui/core/messagebundle_uk.properties +59 -57
- package/src/sap/ui/core/messagebundle_vi.properties +59 -57
- package/src/sap/ui/core/messagebundle_zh_CN.properties +58 -56
- package/src/sap/ui/core/messagebundle_zh_TW.properties +58 -56
- 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 +14 -2
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +14 -16
- 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/HashChanger.js +1 -0
- package/src/sap/ui/core/routing/Route.js +1 -0
- package/src/sap/ui/core/routing/Router.js +3 -1
- package/src/sap/ui/core/rules/Config.support.js +2 -2
- package/src/sap/ui/core/rules/Misc.support.js +1 -1
- package/src/sap/ui/core/rules/Model.support.js +3 -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 +7 -4
- package/src/sap/ui/core/support/controls/TimelineOverview.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
- 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 +2 -2
- package/src/sap/ui/core/themes/base/LocalBusyIndicator.less +4 -4
- package/src/sap/ui/core/themes/base/base.less +41 -20
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/theming/Parameters.js +6 -10
- package/src/sap/ui/core/theming/ThemeManager.js +312 -450
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +5 -10
- 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 +4 -5
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +3 -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/events/PseudoEvents.js +17 -9
- package/src/sap/ui/model/Binding.js +19 -15
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeBinding.js +57 -19
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ListBinding.js +42 -1
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +5 -4
- package/src/sap/ui/model/PropertyBinding.js +10 -0
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +4 -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 +166 -79
- package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +4 -3
- package/src/sap/ui/model/analytics/BatchResponseCollector.js +2 -2
- package/src/sap/ui/model/analytics/ODataModelAdapter.js +14 -27
- package/src/sap/ui/model/analytics/odata4analytics.js +6 -12
- package/src/sap/ui/model/base/ManagedObjectModel.js +3 -2
- package/src/sap/ui/model/json/JSONModel.js +6 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +191 -5
- package/src/sap/ui/model/odata/ODataMetadata.js +38 -4
- package/src/sap/ui/model/odata/ODataModel.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 +8 -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 +3 -3
- 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 +3 -2
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +14 -3
- package/src/sap/ui/model/odata/v2/ODataModel.js +46 -32
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +4 -4
- package/src/sap/ui/model/odata/v4/Context.js +39 -32
- package/src/sap/ui/model/odata/v4/ODataBinding.js +85 -52
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +23 -19
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +139 -50
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +30 -36
- package/src/sap/ui/model/odata/v4/ODataModel.js +49 -44
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +72 -37
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +34 -29
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +95 -9
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +25 -27
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +95 -209
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +168 -1
- package/src/sap/ui/model/odata/v4/lib/_MetadataRequestor.js +14 -5
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +34 -19
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +4 -4
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/Opa5.js +1 -1
- package/src/sap/ui/test/TestUtils.js +1 -1
- package/src/sap/ui/test/autowaiter/_autoWaiter.js +1 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/generic/_EnforceSemanticRendering.js +1 -3
- package/src/sap/ui/test/gherkin/simpleGherkinParser.js +10 -5
- package/src/sap/ui/test/matchers/LabelFor.js +1 -0
- package/src/sap/ui/test/matchers/_Visitor.js +6 -1
- package/src/sap/ui/test/starter/_setupAndStart.js +2 -5
- package/src/sap/ui/thirdparty/caja-html-sanitizer.js +111 -96
- package/src/sap/ui/thirdparty/qunit-2.js +9 -3
- package/src/sap/ui/util/ActivityDetection.js +7 -1
- package/src/sap/ui/util/Mobile.js +21 -14
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap-ui-boot.js +23 -6
- package/src/ui5-boot.js +50 -0
- package/src/ui5loader-autoconfig.js +150 -75
- package/src/ui5loader.js +458 -514
- package/test/sap/ui/core/Device.js +1 -1
- package/test/sap/ui/core/FormatHelper.js +3 -2
- package/test/sap/ui/core/demokit/docuindex.json +6 -0
- package/test/sap/ui/core/demokit/sample/OpaAction/applicationUnderTest/view/Main.view.xml +1 -0
- package/test/sap/ui/core/demokit/sample/OpaBusyIndicator/OpaBusyIndicator.js +1 -1
- package/test/sap/ui/core/demokit/sample/OpaMatchers/OpaMatchers.js +2 -2
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/MIT.ODataTypes.html +9 -14
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +7 -0
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +2 -2
- package/test/sap/ui/core/demokit/sample/common/pages/Any.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +24 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.view.xml +24 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.view.xml +20 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/tests/filter.js +2 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Component.js +27 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ListReport.controller.js +43 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ListReport.view.xml +47 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Main.controller.js +27 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Main.view.xml +7 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/NotFound.view.xml +8 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.controller.js +123 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.view.xml +92 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.html +27 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +70 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/README.html +55 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/SandboxModel.js +56 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/POST-SalesOrderList.json +66 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000000')-SO_2_SOITEM.json +57 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000000').json +20 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000001').json +9 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList('0500000007')-SO_2_BP.json +12 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/SalesOrderList.json +62 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_CurrencyCode.json +85 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_CurrencyCode.xml +185 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_ProductID.json +93 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/VH_ProductID.xml +262 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/data/metadata.xml +1779 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/manifest.json +134 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/pages/Main.js +119 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.view.xml +4 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/GridTable.view.xml +12 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Main.controller.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +0 -41
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +26 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +4 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/manifest.json +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/manifest.json +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.controller.js +5 -17
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +18 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/Create.js +10 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/manifest.json +18 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Main.view.xml +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/pages/Main.js +4 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +2 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/controller/App.controller.js +1 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/controller/App.controller.js +1 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +1 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/arrangements/Startup.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +1 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +3 -8
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +3 -8
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +1 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/arrangements/Startup.js +1 -1
- package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +25 -7
- package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +86 -2
- package/test/sap/ui/core/qunit/DataState.qunit.js +2 -7
- package/test/sap/ui/core/qunit/HTML.qunit.js +31 -31
- package/test/sap/ui/core/qunit/IconPool.qunit.js +53 -4
- package/test/sap/ui/core/qunit/Lib.qunit.js +55 -2
- package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +22 -15
- package/test/sap/ui/core/qunit/ManagedObject.qunit.js +5 -3
- package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +43 -5
- package/test/sap/ui/core/qunit/Object.qunit.js +4 -1
- package/test/sap/ui/core/qunit/ThemeManager.qunit.js +2 -2
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +9 -3
- package/test/sap/ui/core/qunit/Theming.beforeBootstrap.qunit.js +13 -0
- package/test/sap/ui/core/qunit/Theming.qunit.js +247 -0
- package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +510 -185
- package/test/sap/ui/core/qunit/analytics/AnalyticalTreeBindingAdapter.qunit.js +2 -7
- package/test/sap/ui/core/qunit/analytics/ODataModelAdapter.qunit.js +81 -16
- package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +20 -29
- package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +18 -1
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.html +24 -0
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +277 -0
- package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +282 -0
- package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +5 -6
- package/test/sap/ui/core/qunit/base/security/sanitizeHTML.qunit.js +17 -0
- package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -2
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.beforeBootstrap.qunit.js +13 -12
- package/test/sap/ui/core/qunit/bootstrap/Configuration.main.qunit.js +11 -0
- package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.html +4 -3
- package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +451 -281
- package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +19 -30
- package/test/sap/ui/core/qunit/component/Models.qunit.js +12 -30
- package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +8 -26
- package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib2/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/lib2/library.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib3/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/lib3/library.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/lib4/library-preload.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/lib4/library.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/manifestcomp/Component-preload.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/manifestcomp/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/mycomp/Component-preload.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/mycomp/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/async/mysubcomp/Component-preload.js +1 -1
- package/test/sap/ui/core/qunit/component/testdata/async/mysubcomp/Component.js +2 -3
- package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/Component.js +0 -4
- package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/sync/Component.js +2 -6
- package/test/sap/ui/core/qunit/component/testdata/customizing/customersub/Component.js +0 -4
- package/test/sap/ui/core/qunit/component/testdata/inherit/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/inherit/parent/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentA/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentB/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentA/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentB/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/other/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/terminologies/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component1/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component2/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component3/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/component5/Component.js +2 -2
- package/test/sap/ui/core/qunit/component/testdata/terminologies/reuse/Component.js +2 -3
- package/test/sap/ui/core/qunit/component/testdata/v1/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/v1empty/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/v1inline/Component.js +2 -5
- package/test/sap/ui/core/qunit/component/testdata/v1missing/Component.js +2 -7
- package/test/sap/ui/core/qunit/component/testdata/v2/Component.js +2 -5
- package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/Component.js +2 -5
- package/test/sap/ui/core/qunit/component/testdata/v2empty/Component.js +2 -9
- package/test/sap/ui/core/qunit/component/testdata/v2inline/Component.js +2 -5
- package/test/sap/ui/core/qunit/component/testdata/v2missing/Component.js +2 -9
- package/test/sap/ui/core/qunit/component/testdata/v2version/Component.js +2 -2
- package/test/sap/ui/core/qunit/dnd/DragDropInfo.qunit.js +1 -2
- package/test/sap/ui/core/qunit/generic/EnforceSemanticRendering.qunit.js +2 -2
- package/test/sap/ui/core/qunit/generic/SettersContextReturn.qunit.js +2 -2
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +2 -0
- package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +2 -0
- package/test/sap/ui/core/qunit/generic/legacy/SettersContextReturn.qunit.js +2 -2
- package/test/sap/ui/core/qunit/gherkin/dataTableUtils.qunit.js +2 -2
- package/test/sap/ui/core/qunit/i18n/Locale.qunit.js +0 -52
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +49 -14
- package/test/sap/ui/core/qunit/i18n/UI5Date.qunit.js +16 -4
- package/test/sap/ui/core/qunit/i18n/UniversalDate.qunit.js +74 -114
- package/test/sap/ui/core/qunit/i18n/UniversalDateUtils.qunit.js +34 -39
- package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +18 -0
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +1 -0
- package/test/sap/ui/core/qunit/internal/BeforePush.ODataV4.js +28 -0
- package/test/sap/ui/core/qunit/internal/BeforePush.html +1 -0
- package/test/sap/ui/core/qunit/internal/BeforePush.js +15 -0
- package/test/sap/ui/core/qunit/internal/performance/ExpressionParser.performance.qunit.js +1 -0
- package/test/sap/ui/core/qunit/json/JSONListBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/json/JSONPropertyBinding.qunit.js +7 -12
- package/test/sap/ui/core/qunit/json/JSONTwoWay.qunit.js +3 -8
- package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +2 -2
- package/test/sap/ui/core/qunit/loader/asyncMode_unavoidablySync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/loader/fixture/amd-with-export-true/module1.js +2 -2
- package/test/sap/ui/core/qunit/loader/testsuite.loader.qunit.js +0 -3
- package/test/sap/ui/core/qunit/messages/MessageMixin.qunit.js +2 -7
- package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +1 -1
- package/test/sap/ui/core/qunit/model/Binding.qunit.js +36 -11
- package/test/sap/ui/core/qunit/model/ClientListBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/CompositeDataState.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/Context.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/ContextBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +2 -0
- package/test/sap/ui/core/qunit/model/ListBinding.qunit.js +63 -6
- package/test/sap/ui/core/qunit/model/Model.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +40 -0
- package/test/sap/ui/core/qunit/model/TreeBinding.qunit.js +2 -7
- package/test/sap/ui/core/qunit/model/TreeBindingAdapter.qunit.js +2 -7
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +51 -0
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +9 -8
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +4 -4
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +4 -4
- package/test/sap/ui/core/qunit/mvc/testdata/Async.view.xml +1 -1
- package/test/sap/ui/core/qunit/mvc/testdata/AsyncTypedView.js +5 -1
- package/test/sap/ui/core/qunit/odata/AnnotationParserNoFakeService.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +2 -8
- package/test/sap/ui/core/qunit/odata/ODataMetadataNoFakeService.qunit.js +68 -9
- package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +24 -0
- package/test/sap/ui/core/qunit/odata/v2/Context.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v2/ODataContextBindingNoFakeService.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +31 -17
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +260 -56
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +70 -15
- package/test/sap/ui/core/qunit/odata/v2/ODataPropertyBindingNoFakeService.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +4 -9
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v2/_CreatedContextsCache.qunit.js +2 -7
- package/test/sap/ui/core/qunit/odata/v4/AnnotationHelper.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +55 -22
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +184 -151
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +60 -30
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +305 -69
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +20 -69
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1282 -255
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +90 -61
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +0 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +283 -170
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +103 -78
- package/test/sap/ui/core/qunit/odata/v4/data/metadata.json +2 -1
- package/test/sap/ui/core/qunit/odata/v4/data/metadata.xml +4 -0
- package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +2 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +151 -1
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +24 -11
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +279 -458
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +204 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +7 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +145 -26
- package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +4 -0
- package/test/sap/ui/core/qunit/opa/_LogCollector.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +4 -2
- package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +129 -2
- package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +5 -1
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +5 -0
- package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +17 -37
- package/test/sap/ui/core/qunit/routing/HashChanger.qunit.js +1 -6
- package/test/sap/ui/core/qunit/routing/RouterHashChanger.qunit.js +1 -10
- package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +1 -22
- package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -4
- package/test/sap/ui/core/qunit/routing/fixture/Async1.view.xml +1 -1
- package/test/sap/ui/core/qunit/rule/model/modelSupport.qunit.js +34 -1
- package/test/sap/ui/core/qunit/testdata/fastnavigation/view/FastNavigation.view.xml +2 -2
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/i18n.properties +1 -0
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/library.js +10 -0
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib1/manifest.json +10 -0
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/library.js +10 -0
- package/test/sap/ui/core/qunit/testdata/libraries/resourcebundle/lib2/messagebundle.properties +1 -0
- package/test/sap/ui/core/qunit/testdata/xml-require/helper/Formatter.js +7 -4
- package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require_in_html.view.xml +36 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +29 -0
- package/test/sap/ui/core/qunit/types/DateFormatTimezones.qunit.js +1381 -1570
- package/test/sap/ui/core/qunit/types/SimpleType.qunit.js +16 -2
- package/test/sap/ui/core/qunit/types/Types.qunit.js +2 -37
- package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/Popup.qunit.js +7 -11
- package/test/sap/ui/core/qunit/util/SyncPromise.qunit.js +4 -1
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +3 -1
- package/test/sap/ui/core/qunit/util/jQuery.sap.Version.qunit.js +3 -0
- package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +16 -11
- package/test/sap/ui/core/qunit/util/reflection/BaseTreeModifier.qunit.js +1 -1
- package/test/sap/ui/core/qunit/xml/XMLListBinding.qunit.js +1 -3
- package/test/sap/ui/core/qunit/xml/XMLModel.qunit.js +4 -14
- package/test/sap/ui/core/qunit/xml/XMLPropertyBinding.qunit.js +7 -11
- package/test/sap/ui/core/qunit/xml/XMLTreeBinding.qunit.js +1 -1
- package/test/sap/ui/core/qunit/xml/XMLTwoWay.qunit.js +3 -7
- package/test/sap/ui/core/relnotes/changes-1.115.json +1 -37
- package/test/sap/ui/core/relnotes/changes-1.116.json +71 -0
- package/test/sap/ui/core/relnotes/changes-1.117.json +127 -0
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/HyphenationPlayground/windows/1600x1200/chrome/horizon/ltr/cozy/19_thirdParty_language_sl.ref.lnk +1 -1
- package/test/testsuite/js/samples.js +2 -0
- package/ui5.yaml +166 -1
- package/src/sap/ui/core/util/MockServerAnnotationsHandler.js +0 -45
- /package/test/sap/ui/core/qunit/bootstrap/{GlobalConfigurationSettings.js → Configuration.beforeBootstrap.qunit.js} +0 -0
|
@@ -87,7 +87,8 @@ sap.ui.define([
|
|
|
87
87
|
sharedRequests : true,
|
|
88
88
|
supportReferences : true,
|
|
89
89
|
synchronizationMode : true,
|
|
90
|
-
updateGroupId : true
|
|
90
|
+
updateGroupId : true,
|
|
91
|
+
withCredentials : true
|
|
91
92
|
},
|
|
92
93
|
// system query options allowed in mParameters
|
|
93
94
|
aSystemQueryOptions = ["$apply", "$count", "$expand", "$filter", "$orderby", "$search",
|
|
@@ -174,12 +175,16 @@ sap.ui.define([
|
|
|
174
175
|
* (Controls synchronization between different bindings which refer to the same data for
|
|
175
176
|
* the case data changes in one binding. Must be set to 'None' which means bindings are
|
|
176
177
|
* not synchronized at all; all other values are not supported and lead to an error.)
|
|
177
|
-
* <b>deprecated:</b> As of
|
|
178
|
+
* <b>deprecated:</b> As of Version 1.110.0, this parameter is optional; see also
|
|
178
179
|
* {@link topic:648e360fa22d46248ca783dc6eb44531 Data Reuse}
|
|
179
180
|
* @param {string} [mParameters.updateGroupId]
|
|
180
181
|
* The group ID that is used for update requests. If no update group ID is specified,
|
|
181
182
|
* <code>mParameters.groupId</code> is used. Valid update group IDs are
|
|
182
183
|
* <code>undefined</code>, '$auto', '$direct' or an application group ID.
|
|
184
|
+
* @param {boolean} [mParameters.withCredentials]
|
|
185
|
+
* Whether the XMLHttpRequest is called with <code>withCredentials</code>, so that user
|
|
186
|
+
* credentials are included in cross-origin requests by the browser (@experimental as of
|
|
187
|
+
* Version 1.117.0)
|
|
183
188
|
* @throws {Error} If an unsupported synchronization mode is given, if the given service
|
|
184
189
|
* root URL does not end with a forward slash, if an unsupported parameter is given, if
|
|
185
190
|
* OData system query options or parameter aliases are specified as parameters, if an
|
|
@@ -228,7 +233,7 @@ sap.ui.define([
|
|
|
228
233
|
* @extends sap.ui.model.Model
|
|
229
234
|
* @public
|
|
230
235
|
* @since 1.37.0
|
|
231
|
-
* @version 1.
|
|
236
|
+
* @version 1.117.0
|
|
232
237
|
*/
|
|
233
238
|
ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
234
239
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
|
|
@@ -347,13 +352,13 @@ sap.ui.define([
|
|
|
347
352
|
mQueryParams = Object.assign({}, mUriParameters, mParameters.metadataUrlParams);
|
|
348
353
|
this.oMetaModel = new ODataMetaModel(
|
|
349
354
|
_MetadataRequestor.create(this.mMetadataHeaders, sODataVersion,
|
|
350
|
-
mParameters.ignoreAnnotationsFromMetadata, mQueryParams
|
|
355
|
+
mParameters.ignoreAnnotationsFromMetadata, mQueryParams,
|
|
356
|
+
mParameters.withCredentials),
|
|
351
357
|
this.sServiceUrl + "$metadata", mParameters.annotationURI, this,
|
|
352
358
|
mParameters.supportReferences, mQueryParams["sap-language"]);
|
|
353
359
|
this.oInterface = {
|
|
354
360
|
fetchEntityContainer : this.oMetaModel.fetchEntityContainer.bind(this.oMetaModel),
|
|
355
361
|
fetchMetadata : this.oMetaModel.fetchObject.bind(this.oMetaModel),
|
|
356
|
-
fireMessageChange : this.fireMessageChange.bind(this),
|
|
357
362
|
fireDataReceived : this.fireDataReceived.bind(this),
|
|
358
363
|
fireDataRequested : this.fireDataRequested.bind(this),
|
|
359
364
|
fireSessionTimeout : function () {
|
|
@@ -372,10 +377,13 @@ sap.ui.define([
|
|
|
372
377
|
}
|
|
373
378
|
},
|
|
374
379
|
reportStateMessages : this.reportStateMessages.bind(this),
|
|
375
|
-
reportTransitionMessages : this.reportTransitionMessages.bind(this)
|
|
380
|
+
reportTransitionMessages : this.reportTransitionMessages.bind(this),
|
|
381
|
+
updateMessages : function (aOldMessages, aNewMessages) {
|
|
382
|
+
MessageManager.updateMessages(aOldMessages, aNewMessages);
|
|
383
|
+
}
|
|
376
384
|
};
|
|
377
385
|
this.oRequestor = _Requestor.create(this.sServiceUrl, this.oInterface, this.mHeaders,
|
|
378
|
-
mUriParameters, sODataVersion);
|
|
386
|
+
mUriParameters, sODataVersion, mParameters.withCredentials);
|
|
379
387
|
this.changeHttpHeaders(mParameters.httpHeaders);
|
|
380
388
|
this.bEarlyRequests = mParameters.earlyRequests;
|
|
381
389
|
if (this.bEarlyRequests) {
|
|
@@ -455,12 +463,12 @@ sap.ui.define([
|
|
|
455
463
|
* the entity is also available.
|
|
456
464
|
*
|
|
457
465
|
* @param {sap.ui.base.Event} oEvent
|
|
458
|
-
* @param {object} oEvent.getParameters
|
|
459
|
-
* @param {object} [oEvent.getParameters
|
|
466
|
+
* @param {object} oEvent.getParameters
|
|
467
|
+
* @param {object} [oEvent.getParameters.data]
|
|
460
468
|
* An empty data object if a back-end request succeeds
|
|
461
|
-
* @param {Error} [oEvent.getParameters
|
|
469
|
+
* @param {Error} [oEvent.getParameters.error]
|
|
462
470
|
* The error object if a back-end request failed.
|
|
463
|
-
* @param {string} [oEvent.getParameters
|
|
471
|
+
* @param {string} [oEvent.getParameters.path]
|
|
464
472
|
* The absolute path to the entity which caused the event. The path is only provided for
|
|
465
473
|
* additional property requests; for other requests it is <code>undefined</code>.
|
|
466
474
|
*
|
|
@@ -497,8 +505,8 @@ sap.ui.define([
|
|
|
497
505
|
* </ul>
|
|
498
506
|
*
|
|
499
507
|
* @param {sap.ui.base.Event} oEvent
|
|
500
|
-
* @param {object} oEvent.getParameters
|
|
501
|
-
* @param {string} [oEvent.getParameters
|
|
508
|
+
* @param {object} oEvent.getParameters
|
|
509
|
+
* @param {string} [oEvent.getParameters.path]
|
|
502
510
|
* The absolute path to the entity which caused the event. The path is only provided for
|
|
503
511
|
* additional property requests; for other requests it is <code>undefined</code>.
|
|
504
512
|
*
|
|
@@ -526,20 +534,20 @@ sap.ui.define([
|
|
|
526
534
|
* not user input.
|
|
527
535
|
*
|
|
528
536
|
* @param {sap.ui.base.Event} oEvent
|
|
529
|
-
* @param {object} oEvent.getParameters
|
|
530
|
-
* @param {sap.ui.model.Context} [oEvent.getParameters
|
|
537
|
+
* @param {object} oEvent.getParameters
|
|
538
|
+
* @param {sap.ui.model.Context} [oEvent.getParameters.context]
|
|
531
539
|
* The property binding's {@link sap.ui.model.Binding#getContext context}, if available
|
|
532
|
-
* @param {string} oEvent.getParameters
|
|
540
|
+
* @param {string} oEvent.getParameters.path
|
|
533
541
|
* The property binding's {@link sap.ui.model.Binding#getPath path}
|
|
534
|
-
* @param {Promise} [oEvent.getParameters
|
|
542
|
+
* @param {Promise<void>} [oEvent.getParameters.promise]
|
|
535
543
|
* A promise on the outcome of the PATCH request, much like
|
|
536
544
|
* {@link sap.ui.model.odata.v4.Context#setProperty} provides it for
|
|
537
545
|
* <code>bRetry === true</code>; missing in case there is no PATCH
|
|
538
|
-
* @param {sap.ui.model.ChangeReason} oEvent.getParameters
|
|
546
|
+
* @param {sap.ui.model.ChangeReason} oEvent.getParameters.reason
|
|
539
547
|
* The reason for the property change: always <code>sap.ui.model.ChangeReason.Binding</code>
|
|
540
|
-
* @param {string} oEvent.getParameters
|
|
548
|
+
* @param {string} oEvent.getParameters.resolvedPath
|
|
541
549
|
* The property binding's {@link sap.ui.model.Binding#getResolvedPath resolved path}
|
|
542
|
-
* @param {any} oEvent.getParameters
|
|
550
|
+
* @param {any} oEvent.getParameters.value
|
|
543
551
|
* The property binding's new
|
|
544
552
|
* {@link sap.ui.model.odata.v4.ODataPropertyBinding#getValue value}
|
|
545
553
|
*
|
|
@@ -1498,10 +1506,10 @@ sap.ui.define([
|
|
|
1498
1506
|
* If <code>true</code>, deletion fails if the entity does not exist (HTTP status code 404 or
|
|
1499
1507
|
* 412 due to the <code>If-Match: *</code> header); otherwise we assume that it has already
|
|
1500
1508
|
* been deleted by someone else and report success
|
|
1501
|
-
* @returns {Promise}
|
|
1502
|
-
* A promise
|
|
1503
|
-
* otherwise. In the latter case the HTTP status code of the
|
|
1504
|
-
* property <code>status</code>.
|
|
1509
|
+
* @returns {Promise<void>}
|
|
1510
|
+
* A promise which is resolved without a defined result when the delete succeeded, or rejected
|
|
1511
|
+
* with an instance of Error otherwise. In the latter case the HTTP status code of the
|
|
1512
|
+
* response is given in the error's property <code>status</code>.
|
|
1505
1513
|
* @throws {Error} If
|
|
1506
1514
|
* <ul>
|
|
1507
1515
|
* <li> the path does not start with a '/',
|
|
@@ -1543,6 +1551,7 @@ sap.ui.define([
|
|
|
1543
1551
|
).catch(function (oError) {
|
|
1544
1552
|
if (bRejectIfNotFound
|
|
1545
1553
|
|| !(oError.status === 404 || bInAllBindings && oError.status === 412)) {
|
|
1554
|
+
that.reportError("Failed to delete " + aResults[0], sClassName, oError);
|
|
1546
1555
|
throw oError;
|
|
1547
1556
|
} // else: map 404/412 to 204
|
|
1548
1557
|
}).then(function () {
|
|
@@ -1708,10 +1717,6 @@ sap.ui.define([
|
|
|
1708
1717
|
}
|
|
1709
1718
|
};
|
|
1710
1719
|
|
|
1711
|
-
ODataModel.prototype.fireMessageChange = function (mParameters) {
|
|
1712
|
-
MessageManager.updateMessages(mParameters.oldMessages, mParameters.newMessages);
|
|
1713
|
-
};
|
|
1714
|
-
|
|
1715
1720
|
/**
|
|
1716
1721
|
* Returns the model's bindings.
|
|
1717
1722
|
*
|
|
@@ -2408,7 +2413,7 @@ sap.ui.define([
|
|
|
2408
2413
|
});
|
|
2409
2414
|
});
|
|
2410
2415
|
if (aNewMessages.length || aOldMessages.length) {
|
|
2411
|
-
|
|
2416
|
+
MessageManager.updateMessages(aOldMessages, aNewMessages);
|
|
2412
2417
|
}
|
|
2413
2418
|
};
|
|
2414
2419
|
|
|
@@ -2427,12 +2432,10 @@ sap.ui.define([
|
|
|
2427
2432
|
var that = this;
|
|
2428
2433
|
|
|
2429
2434
|
if (aMessages && aMessages.length) {
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
})
|
|
2435
|
-
});
|
|
2435
|
+
MessageManager.updateMessages(undefined, aMessages.map(function (oMessage) {
|
|
2436
|
+
oMessage.transition = true;
|
|
2437
|
+
return that.createUI5Message(oMessage, sResourcePath);
|
|
2438
|
+
}));
|
|
2436
2439
|
}
|
|
2437
2440
|
};
|
|
2438
2441
|
|
|
@@ -2525,7 +2528,7 @@ sap.ui.define([
|
|
|
2525
2528
|
*
|
|
2526
2529
|
* @param {sap.ui.model.odata.v4.Context} oEntityContext
|
|
2527
2530
|
* A context in this model which must point to a non-contained OData entity
|
|
2528
|
-
* @returns {Promise}
|
|
2531
|
+
* @returns {Promise<string>}
|
|
2529
2532
|
* A promise which is resolved with the canonical path (e.g. "/SalesOrderList('0500000000')")
|
|
2530
2533
|
* in case of success, or rejected with an instance of <code>Error</code> in case of failure,
|
|
2531
2534
|
* e.g. when the given context does not point to an entity
|
|
@@ -2570,8 +2573,8 @@ sap.ui.define([
|
|
|
2570
2573
|
* The absolute paths to request side effects for; each path must not start with the fully
|
|
2571
2574
|
* qualified container name.
|
|
2572
2575
|
* @returns {sap.ui.base.SyncPromise|undefined}
|
|
2573
|
-
* A promise
|
|
2574
|
-
* effects fails, or <code>undefined</code> if there is nothing to do
|
|
2576
|
+
* A promise which is resolved without a defined result, or rejected with an error if loading
|
|
2577
|
+
* of side effects fails, or <code>undefined</code> if there is nothing to do
|
|
2575
2578
|
*
|
|
2576
2579
|
* @private
|
|
2577
2580
|
*/
|
|
@@ -2789,8 +2792,8 @@ sap.ui.define([
|
|
|
2789
2792
|
*
|
|
2790
2793
|
* @param {string} sGroupId
|
|
2791
2794
|
* A valid group ID as specified in {@link sap.ui.model.odata.v4.ODataModel}.
|
|
2792
|
-
* @returns {Promise<
|
|
2793
|
-
* A promise on the outcome of the HTTP request
|
|
2795
|
+
* @returns {Promise<void>}
|
|
2796
|
+
* A promise which is resolved without a defined result on the outcome of the HTTP request, or
|
|
2794
2797
|
* rejected with an error if the batch request itself fails
|
|
2795
2798
|
* @throws {Error}
|
|
2796
2799
|
* If the given group ID is not a valid group ID or has
|
|
@@ -2857,10 +2860,12 @@ sap.ui.define([
|
|
|
2857
2860
|
/**
|
|
2858
2861
|
* Cleans up the optimistic batch cache to a given point in time.
|
|
2859
2862
|
*
|
|
2860
|
-
* @param {Date} [dOlderThan]
|
|
2861
|
-
*
|
|
2862
|
-
*
|
|
2863
|
-
*
|
|
2863
|
+
* @param {Date} [dOlderThan]
|
|
2864
|
+
* The point in time from which on older cache entries are deleted. If not supplied, all
|
|
2865
|
+
* optimistic batch entries are deleted.
|
|
2866
|
+
* @returns {Promise<void>}
|
|
2867
|
+
* A promise which is resolved without a defined result, or rejected with an error if
|
|
2868
|
+
* deletion fails.
|
|
2864
2869
|
*
|
|
2865
2870
|
* @experimental As of version 1.102.0
|
|
2866
2871
|
* @private
|
|
@@ -31,6 +31,7 @@ sap.ui.define([
|
|
|
31
31
|
this.mAggregatedQueryOptions = {};
|
|
32
32
|
// whether the aggregated query options are processed the first time
|
|
33
33
|
this.bAggregatedQueryOptionsInitial = true;
|
|
34
|
+
this.mCanUseCachePromiseByChildPath = {};
|
|
34
35
|
// auto-$expand/$select: promises to wait until child bindings have provided
|
|
35
36
|
// their path and query options
|
|
36
37
|
this.aChildCanUseCachePromises = [];
|
|
@@ -215,28 +216,33 @@ sap.ui.define([
|
|
|
215
216
|
* @param {object} mQueryOptions - The query options to be merged
|
|
216
217
|
* @param {string} sBaseMetaPath - This binding's meta path
|
|
217
218
|
* @param {boolean} bCacheImmutable - Whether the cache of this binding is immutable
|
|
218
|
-
* @param {boolean} bIsProperty - Whether the child is a property binding
|
|
219
|
+
* @param {boolean} [bIsProperty] - Whether the child is a property binding
|
|
219
220
|
* @returns {boolean} Whether the query options can be fulfilled by this binding
|
|
220
221
|
*
|
|
221
222
|
* @private
|
|
222
223
|
*/
|
|
223
224
|
ODataParentBinding.prototype.aggregateQueryOptions = function (mQueryOptions, sBaseMetaPath,
|
|
224
225
|
bCacheImmutable, bIsProperty) {
|
|
225
|
-
var mAggregatedQueryOptionsClone = _Helper.
|
|
226
|
+
var mAggregatedQueryOptionsClone = _Helper.clone(
|
|
226
227
|
bCacheImmutable && this.mLateQueryOptions || this.mAggregatedQueryOptions),
|
|
227
228
|
that = this;
|
|
228
229
|
|
|
229
230
|
/*
|
|
230
231
|
* Recursively merges the given query options into the given aggregated query options.
|
|
231
232
|
*
|
|
232
|
-
* @param {object} mAggregatedQueryOptions
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
* @param {
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
233
|
+
* @param {object} mAggregatedQueryOptions
|
|
234
|
+
* The aggregated query options
|
|
235
|
+
* @param {object} mQueryOptions0
|
|
236
|
+
* The query options to merge into the aggregated query options
|
|
237
|
+
* @param {string} [sMetaPath]
|
|
238
|
+
* The meta path for the current $expand (only used if cache is immutable)
|
|
239
|
+
* @param {boolean} [bInsideExpand]
|
|
240
|
+
* Whether the given query options are inside a $expand
|
|
241
|
+
* @param {boolean} [bAdd]
|
|
242
|
+
* Whether to add the given query options because they are in a $expand that has not been
|
|
243
|
+
* aggregated yet
|
|
244
|
+
* @returns {boolean}
|
|
245
|
+
* Whether the query options can be fulfilled by this binding
|
|
240
246
|
*/
|
|
241
247
|
function merge(mAggregatedQueryOptions, mQueryOptions0, sMetaPath, bInsideExpand, bAdd) {
|
|
242
248
|
/*
|
|
@@ -306,10 +312,13 @@ sap.ui.define([
|
|
|
306
312
|
}
|
|
307
313
|
|
|
308
314
|
if (merge(mAggregatedQueryOptionsClone, mQueryOptions, sBaseMetaPath)) {
|
|
309
|
-
if (
|
|
310
|
-
this.mAggregatedQueryOptions = mAggregatedQueryOptionsClone;
|
|
311
|
-
} else {
|
|
315
|
+
if (bCacheImmutable) {
|
|
312
316
|
this.mLateQueryOptions = mAggregatedQueryOptionsClone;
|
|
317
|
+
} else {
|
|
318
|
+
this.mAggregatedQueryOptions = mAggregatedQueryOptionsClone;
|
|
319
|
+
if (this.mLateQueryOptions) {
|
|
320
|
+
merge(this.mLateQueryOptions, mQueryOptions);
|
|
321
|
+
}
|
|
313
322
|
}
|
|
314
323
|
return true;
|
|
315
324
|
}
|
|
@@ -450,9 +459,10 @@ sap.ui.define([
|
|
|
450
459
|
* parent context changed.
|
|
451
460
|
*
|
|
452
461
|
* @returns {sap.ui.base.SyncPromise}
|
|
453
|
-
* A promise
|
|
454
|
-
* case of an error
|
|
455
|
-
* @throws {Error}
|
|
462
|
+
* A promise which is resolved without a defined result when the check is finished, or
|
|
463
|
+
* rejected in case of an error
|
|
464
|
+
* @throws {Error}
|
|
465
|
+
* If called with parameters
|
|
456
466
|
*
|
|
457
467
|
* @private
|
|
458
468
|
*/
|
|
@@ -704,14 +714,14 @@ sap.ui.define([
|
|
|
704
714
|
* @param {sap.ui.model.odata.v4.Context} oContext
|
|
705
715
|
* A context of this binding which is the direct or indirect parent of the child binding.
|
|
706
716
|
* Initially it is the child binding's parent context (See
|
|
707
|
-
* {@link sap.ui.model.odata.v4.ODataBinding#
|
|
708
|
-
* delegates up to its parent binding, it passes its own parent context adjusting
|
|
717
|
+
* {@link sap.ui.model.odata.v4.ODataBinding#fetchOrGetQueryOptionsForOwnCache}). When a
|
|
718
|
+
* binding delegates up to its parent binding, it passes its own parent context adjusting
|
|
709
719
|
* <code>sChildPath</code> accordingly.
|
|
710
720
|
* @param {string} sChildPath
|
|
711
721
|
* The child binding's binding path relative to <code>oContext</code>
|
|
712
|
-
* @param {object|sap.ui.base.SyncPromise} vChildQueryOptions
|
|
713
|
-
* The child binding's (aggregated) query options or a promise resolving with them
|
|
714
|
-
* @param {boolean} bIsProperty
|
|
722
|
+
* @param {object|sap.ui.base.SyncPromise} [vChildQueryOptions={}]
|
|
723
|
+
* The child binding's (aggregated) query options (if any) or a promise resolving with them
|
|
724
|
+
* @param {boolean} [bIsProperty]
|
|
715
725
|
* Whether the child is a property binding
|
|
716
726
|
* @returns {sap.ui.base.SyncPromise}
|
|
717
727
|
* A promise resolved with the reduced path for the child binding if the child binding can use
|
|
@@ -726,7 +736,7 @@ sap.ui.define([
|
|
|
726
736
|
// getBaseForPathReduction must be called early, because the (virtual) parent context may be
|
|
727
737
|
// lost again when the path is needed
|
|
728
738
|
var sBaseForPathReduction = this.getBaseForPathReduction(),
|
|
729
|
-
sBaseMetaPath
|
|
739
|
+
sBaseMetaPath,
|
|
730
740
|
bCacheImmutable,
|
|
731
741
|
oCanUseCachePromise,
|
|
732
742
|
// whether this binding is an operation or depends on one
|
|
@@ -782,6 +792,23 @@ sap.ui.define([
|
|
|
782
792
|
return SyncPromise.resolve(sResolvedChildPath);
|
|
783
793
|
}
|
|
784
794
|
|
|
795
|
+
oCanUseCachePromise = this.mCanUseCachePromiseByChildPath[sChildPath];
|
|
796
|
+
if (oCanUseCachePromise && bIsProperty) {
|
|
797
|
+
return oCanUseCachePromise.then(function (sOldReducedPath) {
|
|
798
|
+
if (!sOldReducedPath) {
|
|
799
|
+
return undefined;
|
|
800
|
+
}
|
|
801
|
+
// Note: sResolvedChildPath could be "/SalesOrderList('42')/SO_2_SOITEM/0/Note"
|
|
802
|
+
// w/ index (thus getMetaPath helps), but getStrippedMetaPath makes no difference
|
|
803
|
+
if (!sChildPath.includes("/")
|
|
804
|
+
|| _Helper.getMetaPath(sOldReducedPath)
|
|
805
|
+
=== _Helper.getMetaPath(sResolvedChildPath)) {
|
|
806
|
+
return sResolvedChildPath;
|
|
807
|
+
}
|
|
808
|
+
return oMetaModel.getReducedPath(sResolvedChildPath, sBaseForPathReduction);
|
|
809
|
+
});
|
|
810
|
+
}
|
|
811
|
+
|
|
785
812
|
// Note: this.oCachePromise exists for all bindings except operation bindings; it might
|
|
786
813
|
// become pending again
|
|
787
814
|
bCacheImmutable = this.oCachePromise.isRejected()
|
|
@@ -789,16 +816,17 @@ sap.ui.define([
|
|
|
789
816
|
|| oContext.isEffectivelyKeptAlive() // no index when not in aContexts
|
|
790
817
|
|| this.oCache === null
|
|
791
818
|
|| this.oCache && this.oCache.hasSentRequest();
|
|
819
|
+
sBaseMetaPath = _Helper.getMetaPath(oContext.getPath());
|
|
792
820
|
aPromises = [
|
|
793
|
-
this.
|
|
821
|
+
this.doFetchOrGetQueryOptions(oParentContext),
|
|
794
822
|
// After access to complete meta path of property, the metadata of all prefix paths
|
|
795
823
|
// is loaded so that synchronous access in wrapChildQueryOptions via getObject is
|
|
796
|
-
// possible
|
|
824
|
+
// possible - as well as #getReducedPath
|
|
797
825
|
fetchPropertyAndType(),
|
|
798
826
|
vChildQueryOptions
|
|
799
827
|
];
|
|
800
828
|
oCanUseCachePromise = SyncPromise.all(aPromises).then(function (aResult) {
|
|
801
|
-
var mChildQueryOptions = aResult[2],
|
|
829
|
+
var mChildQueryOptions = aResult[2] || {},
|
|
802
830
|
mWrappedChildQueryOptions,
|
|
803
831
|
mLocalQueryOptions = aResult[0],
|
|
804
832
|
oProperty = aResult[1],
|
|
@@ -819,7 +847,7 @@ sap.ui.define([
|
|
|
819
847
|
that.bHasPathReductionToParent = true;
|
|
820
848
|
return oParentContext.getBinding().fetchIfChildCanUseCache(oParentContext,
|
|
821
849
|
_Helper.getRelativePath(sResolvedChildPath, oParentContext.getPath()),
|
|
822
|
-
|
|
850
|
+
mChildQueryOptions, bIsProperty);
|
|
823
851
|
}
|
|
824
852
|
|
|
825
853
|
if (bDependsOnOperation || sReducedChildMetaPath === "$count"
|
|
@@ -828,8 +856,8 @@ sap.ui.define([
|
|
|
828
856
|
}
|
|
829
857
|
|
|
830
858
|
if (that.bAggregatedQueryOptionsInitial) {
|
|
831
|
-
that.selectKeyProperties(mLocalQueryOptions, sBaseMetaPath);
|
|
832
859
|
that.mAggregatedQueryOptions = _Helper.clone(mLocalQueryOptions);
|
|
860
|
+
that.selectKeyProperties(that.mAggregatedQueryOptions, sBaseMetaPath);
|
|
833
861
|
that.bAggregatedQueryOptionsInitial = false;
|
|
834
862
|
}
|
|
835
863
|
if (bIsAdvertisement) {
|
|
@@ -869,8 +897,7 @@ sap.ui.define([
|
|
|
869
897
|
that.oCache.setLateQueryOptions(that.mLateQueryOptions);
|
|
870
898
|
} else if (that.oCache === null) {
|
|
871
899
|
return oParentContext.getBinding()
|
|
872
|
-
.fetchIfChildCanUseCache(oParentContext, that.sPath,
|
|
873
|
-
SyncPromise.resolve(that.mLateQueryOptions))
|
|
900
|
+
.fetchIfChildCanUseCache(oParentContext, that.sPath, that.mLateQueryOptions)
|
|
874
901
|
.then(function (sPath) {
|
|
875
902
|
return sPath && sReducedPath;
|
|
876
903
|
});
|
|
@@ -878,6 +905,9 @@ sap.ui.define([
|
|
|
878
905
|
}
|
|
879
906
|
return sReducedPath;
|
|
880
907
|
});
|
|
908
|
+
if (bIsProperty && !oContext.getPath().includes("($uid=")) {
|
|
909
|
+
this.mCanUseCachePromiseByChildPath[sChildPath] = oCanUseCachePromise;
|
|
910
|
+
}
|
|
881
911
|
this.aChildCanUseCachePromises.push(oCanUseCachePromise);
|
|
882
912
|
this.oCachePromise = SyncPromise.all([this.oCachePromise, oCanUseCachePromise])
|
|
883
913
|
.then(function (aResult) {
|
|
@@ -903,6 +933,7 @@ sap.ui.define([
|
|
|
903
933
|
that.oModel.reportError(that + ": Failed to enhance query options for "
|
|
904
934
|
+ "auto-$expand/$select for child " + sChildPath, sClassName, oError);
|
|
905
935
|
});
|
|
936
|
+
|
|
906
937
|
return oCanUseCachePromise;
|
|
907
938
|
};
|
|
908
939
|
|
|
@@ -932,7 +963,7 @@ sap.ui.define([
|
|
|
932
963
|
|
|
933
964
|
fnFetchMetadata = oModel.oInterface.fetchMetadata;
|
|
934
965
|
sMetaPath = _Helper.getMetaPath(oModel.resolve(this.sPath, oContext));
|
|
935
|
-
mConvertedQueryOptions = Object.assign({}, mQueryOptions, {$select : []});
|
|
966
|
+
mConvertedQueryOptions = Object.assign({}, _Helper.clone(mQueryOptions), {$select : []});
|
|
936
967
|
return SyncPromise.all(mQueryOptions.$select.map(function (sSelectPath) {
|
|
937
968
|
var sMetaSelectPath = sMetaPath + "/" + sSelectPath;
|
|
938
969
|
|
|
@@ -1026,7 +1057,7 @@ sap.ui.define([
|
|
|
1026
1057
|
* @private
|
|
1027
1058
|
*/
|
|
1028
1059
|
ODataParentBinding.prototype.getQueryOptionsForPath = function (sPath, oContext) {
|
|
1029
|
-
if (
|
|
1060
|
+
if (!_Helper.isEmptyObject(this.mParameters)) {
|
|
1030
1061
|
// binding has parameters -> all query options need to be defined at the binding
|
|
1031
1062
|
return _Helper.getQueryOptionsForPath(this.getQueryOptionsFromParameters(), sPath);
|
|
1032
1063
|
}
|
|
@@ -1055,8 +1086,8 @@ sap.ui.define([
|
|
|
1055
1086
|
* @function
|
|
1056
1087
|
* @name sap.ui.model.odata.v4.ODataParentBinding.getQueryOptionsFromParameters
|
|
1057
1088
|
* @private
|
|
1058
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
1059
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
1089
|
+
* @see sap.ui.model.odata.v4.ODataBinding#fetchOrGetQueryOptionsForOwnCache
|
|
1090
|
+
* @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
|
|
1060
1091
|
*/
|
|
1061
1092
|
|
|
1062
1093
|
/**
|
|
@@ -1227,8 +1258,8 @@ sap.ui.define([
|
|
|
1227
1258
|
* The context for which to request side effects; if this parameter is missing or if it is the
|
|
1228
1259
|
* header context of a list binding, the whole binding is affected
|
|
1229
1260
|
* @returns {sap.ui.base.SyncPromise}
|
|
1230
|
-
* A promise
|
|
1231
|
-
* effects fails
|
|
1261
|
+
* A promise which is resolved without a defined result, or rejected with an error if loading
|
|
1262
|
+
* of side effects fails
|
|
1232
1263
|
* @throws {Error}
|
|
1233
1264
|
* If this binding does not use own data service requests or if the binding's root binding is
|
|
1234
1265
|
* suspended and the given group ID is not the binding's group
|
|
@@ -1382,7 +1413,8 @@ sap.ui.define([
|
|
|
1382
1413
|
* Note: Some API calls are not allowed as long as the binding is in suspended mode, hence the
|
|
1383
1414
|
* returned promise can be used to get the point in time when these APIs can be called again.
|
|
1384
1415
|
*
|
|
1385
|
-
* @returns {Promise}
|
|
1416
|
+
* @returns {Promise<void>}
|
|
1417
|
+
* A promise which is resolved without a defined result when the binding is resumed.
|
|
1386
1418
|
* @throws {Error}
|
|
1387
1419
|
* If this binding is relative to an {@link sap.ui.model.odata.v4.Context} or if it is an
|
|
1388
1420
|
* operation binding or if it is not suspended
|
|
@@ -1525,7 +1557,10 @@ sap.ui.define([
|
|
|
1525
1557
|
|
|
1526
1558
|
aDependentBindings.forEach(function (oDependentBinding) {
|
|
1527
1559
|
var sPath = _Helper.buildPath(sPrefix,
|
|
1528
|
-
|
|
1560
|
+
oDependentBinding.oOperation
|
|
1561
|
+
? "" // operation's name cannot appear inside aPaths!
|
|
1562
|
+
: _Helper.getMetaPath(oDependentBinding.getPath())
|
|
1563
|
+
),
|
|
1529
1564
|
aStrippedPaths;
|
|
1530
1565
|
|
|
1531
1566
|
if (oDependentBinding.oCache) {
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @mixes sap.ui.model.odata.v4.ODataBinding
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.37.0
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.117.0
|
|
46
46
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
47
47
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
48
48
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -103,7 +103,7 @@ sap.ui.define([
|
|
|
103
103
|
this.mQueryOptions = this.oModel.buildQueryOptions(_Helper.clone(mParameters),
|
|
104
104
|
/*bSystemQueryOptionsAllowed*/sPath.endsWith("$count"));
|
|
105
105
|
this.vValue = undefined;
|
|
106
|
-
// BEWARE: #
|
|
106
|
+
// BEWARE: #doFetchOrGetQueryOptions uses #isRoot which relies on this.oContext!
|
|
107
107
|
this.fetchCache(oContext);
|
|
108
108
|
oModel.bindingCreated(this);
|
|
109
109
|
}
|
|
@@ -117,8 +117,8 @@ sap.ui.define([
|
|
|
117
117
|
* change reason as parameter.
|
|
118
118
|
*
|
|
119
119
|
* @param {sap.ui.base.Event} oEvent
|
|
120
|
-
* @param {object} oEvent.getParameters
|
|
121
|
-
* @param {sap.ui.model.ChangeReason} oEvent.getParameters
|
|
120
|
+
* @param {object} oEvent.getParameters
|
|
121
|
+
* @param {sap.ui.model.ChangeReason} oEvent.getParameters.reason
|
|
122
122
|
* The reason for the 'change' event could be
|
|
123
123
|
* <ul>
|
|
124
124
|
* <li> {@link sap.ui.model.ChangeReason.Change Change} when the binding is initialized,
|
|
@@ -154,10 +154,10 @@ sap.ui.define([
|
|
|
154
154
|
* 'error' event parameter.
|
|
155
155
|
*
|
|
156
156
|
* @param {sap.ui.base.Event} oEvent
|
|
157
|
-
* @param {object} oEvent.getParameters
|
|
158
|
-
* @param {object} [oEvent.getParameters
|
|
157
|
+
* @param {object} oEvent.getParameters
|
|
158
|
+
* @param {object} [oEvent.getParameters.data]
|
|
159
159
|
* An empty data object if a back-end request succeeds
|
|
160
|
-
* @param {Error} [oEvent.getParameters
|
|
160
|
+
* @param {Error} [oEvent.getParameters.error] The error object if a back-end request failed.
|
|
161
161
|
* If there are multiple failed back-end requests, the error of the first one is provided.
|
|
162
162
|
*
|
|
163
163
|
* @event sap.ui.model.odata.v4.ODataPropertyBinding#dataReceived
|
|
@@ -234,10 +234,10 @@ sap.ui.define([
|
|
|
234
234
|
* @param {any} [vValue]
|
|
235
235
|
* The new value obtained from the cache, see {@link #onChange}
|
|
236
236
|
* @returns {sap.ui.base.SyncPromise}
|
|
237
|
-
* A promise
|
|
238
|
-
* case of an error. If the cache is no longer the active cache when the response
|
|
239
|
-
* that response is ignored almost silently (that is, with a canceled error) and the
|
|
240
|
-
* remains unchanged.
|
|
237
|
+
* A promise which is resolved without a defined result when the check is finished, or
|
|
238
|
+
* rejected in case of an error. If the cache is no longer the active cache when the response
|
|
239
|
+
* arrives, that response is ignored almost silently (that is, with a canceled error) and the
|
|
240
|
+
* value remains unchanged.
|
|
241
241
|
*
|
|
242
242
|
* @private
|
|
243
243
|
* @see sap.ui.model.PropertyBinding#checkDataState
|
|
@@ -265,12 +265,9 @@ sap.ui.define([
|
|
|
265
265
|
that = this;
|
|
266
266
|
|
|
267
267
|
this.oCheckUpdateCallToken = oCallToken;
|
|
268
|
-
if (this.
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
if (sResolvedPath && !this.bHasDeclaredType && this.sInternalType !== "any"
|
|
272
|
-
&& !bIsMeta) {
|
|
273
|
-
vType = oMetaModel.fetchUI5Type(sResolvedPath);
|
|
268
|
+
if (!vType && sResolvedPath && this.sInternalType !== "any" && !bIsMeta
|
|
269
|
+
&& !sResolvedPath.includes(sVirtualPath)) {
|
|
270
|
+
vType = oMetaModel.fetchUI5Type(this.sReducedPath || sResolvedPath);
|
|
274
271
|
}
|
|
275
272
|
if (vValue === undefined) {
|
|
276
273
|
// if called via #onChange, we need to fetch implicit values
|
|
@@ -289,9 +286,7 @@ sap.ui.define([
|
|
|
289
286
|
return vResult;
|
|
290
287
|
});
|
|
291
288
|
}
|
|
292
|
-
if (!that.
|
|
293
|
-
// binding is unresolved or context was reset by another call to
|
|
294
|
-
// checkUpdateInternal
|
|
289
|
+
if (!that.isResolved()) {
|
|
295
290
|
return undefined;
|
|
296
291
|
}
|
|
297
292
|
if (sResolvedPath.includes(sVirtualPath)) {
|
|
@@ -332,7 +327,7 @@ sap.ui.define([
|
|
|
332
327
|
});
|
|
333
328
|
if (bForceUpdate && vValue.isFulfilled()) {
|
|
334
329
|
if (vType && vType.isFulfilled && vType.isFulfilled()) {
|
|
335
|
-
this.
|
|
330
|
+
this.oType = vType.getResult();
|
|
336
331
|
}
|
|
337
332
|
this.vValue = vValue.getResult();
|
|
338
333
|
}
|
|
@@ -346,7 +341,7 @@ sap.ui.define([
|
|
|
346
341
|
|
|
347
342
|
if (oCallToken === that.oCheckUpdateCallToken) { // latest call to checkUpdateInternal
|
|
348
343
|
that.oCheckUpdateCallToken = undefined;
|
|
349
|
-
that.
|
|
344
|
+
that.oType = oType;
|
|
350
345
|
if (oCallToken.forceUpdate || that.vValue !== vValue) {
|
|
351
346
|
that.bInitial = false;
|
|
352
347
|
that.vValue = vValue;
|
|
@@ -406,10 +401,10 @@ sap.ui.define([
|
|
|
406
401
|
|
|
407
402
|
/**
|
|
408
403
|
* @override
|
|
409
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
404
|
+
* @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
|
|
410
405
|
*/
|
|
411
|
-
ODataPropertyBinding.prototype.
|
|
412
|
-
return this.isRoot() ?
|
|
406
|
+
ODataPropertyBinding.prototype.doFetchOrGetQueryOptions = function () {
|
|
407
|
+
return this.isRoot() ? this.mQueryOptions : undefined;
|
|
413
408
|
};
|
|
414
409
|
|
|
415
410
|
/**
|
|
@@ -544,8 +539,8 @@ sap.ui.define([
|
|
|
544
539
|
* Requests the value of the property binding.
|
|
545
540
|
*
|
|
546
541
|
* @returns {Promise<any|undefined>}
|
|
547
|
-
* A promise
|
|
548
|
-
* determined, or
|
|
542
|
+
* A promise resolved with the resulting value or <code>undefined</code> if it could not be
|
|
543
|
+
* determined, or rejected in case of an error
|
|
549
544
|
*
|
|
550
545
|
* @public
|
|
551
546
|
* @since 1.69
|
|
@@ -565,7 +560,7 @@ sap.ui.define([
|
|
|
565
560
|
* The value of the parameter <code>autoExpandSelect</code> for value list models created by
|
|
566
561
|
* this method. If the value list model is this binding's model, this flag has no effect.
|
|
567
562
|
* Supported since 1.68.0
|
|
568
|
-
* @returns {Promise}
|
|
563
|
+
* @returns {Promise<Object<object>>}
|
|
569
564
|
* See {@link sap.ui.model.odata.v4.ODataMetaModel#requestValueListInfo}
|
|
570
565
|
* @throws {Error}
|
|
571
566
|
* If the binding is unresolved (see {@link sap.ui.model.Binding#isResolved})
|
|
@@ -586,7 +581,7 @@ sap.ui.define([
|
|
|
586
581
|
/**
|
|
587
582
|
* Determines which type of value list exists for this property.
|
|
588
583
|
*
|
|
589
|
-
* @returns {Promise}
|
|
584
|
+
* @returns {Promise<sap.ui.model.odata.v4.ValueListType>}
|
|
590
585
|
* A promise that is resolved with the type of the value list. It is rejected if the property
|
|
591
586
|
* cannot be found in the metadata.
|
|
592
587
|
* @throws {Error}
|
|
@@ -679,6 +674,15 @@ sap.ui.define([
|
|
|
679
674
|
if (this.bRelative) {
|
|
680
675
|
this.checkSuspended(true);
|
|
681
676
|
this.deregisterChangeListener();
|
|
677
|
+
if (oContext) {
|
|
678
|
+
if (this.oType && !this.bHasDeclaredType
|
|
679
|
+
// Note: this.oType => this.sReducedPath
|
|
680
|
+
&& _Helper.getMetaPath(this.oModel.resolve(this.sPath, oContext))
|
|
681
|
+
!== _Helper.getMetaPath(this.sReducedPath)) {
|
|
682
|
+
this.oType = undefined;
|
|
683
|
+
}
|
|
684
|
+
this.sReducedPath = undefined;
|
|
685
|
+
}
|
|
682
686
|
}
|
|
683
687
|
this.oContext = oContext;
|
|
684
688
|
this.sResumeChangeReason = undefined;
|
|
@@ -709,6 +713,7 @@ sap.ui.define([
|
|
|
709
713
|
ODataPropertyBinding.prototype.setType = function (oType, _sInternalType) {
|
|
710
714
|
var oOldType = this.oType;
|
|
711
715
|
|
|
716
|
+
this.bHasDeclaredType = !!oType;
|
|
712
717
|
if (oType && oType.getName() === "sap.ui.model.odata.type.DateTimeOffset") {
|
|
713
718
|
oType.setV4();
|
|
714
719
|
}
|