@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
|
@@ -57,7 +57,7 @@ sap.ui.define([
|
|
|
57
57
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
58
58
|
* @public
|
|
59
59
|
* @since 1.37.0
|
|
60
|
-
* @version 1.
|
|
60
|
+
* @version 1.117.0
|
|
61
61
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
62
62
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
63
63
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -338,7 +338,7 @@ sap.ui.define([
|
|
|
338
338
|
sApply = _AggregationHelper.buildApply(mParameters.$$aggregation).$apply;
|
|
339
339
|
}
|
|
340
340
|
this.mQueryOptions = this.oModel.buildQueryOptions(mParameters, true);
|
|
341
|
-
this.oQueryOptionsPromise = undefined; // @see #
|
|
341
|
+
this.oQueryOptionsPromise = undefined; // @see #doFetchOrGetQueryOptions
|
|
342
342
|
this.mParameters = mParameters; // store mParameters at binding after validation
|
|
343
343
|
if (sApply) {
|
|
344
344
|
this.mQueryOptions.$apply = sApply;
|
|
@@ -376,8 +376,8 @@ sap.ui.define([
|
|
|
376
376
|
* detailed reason as parameters.
|
|
377
377
|
*
|
|
378
378
|
* @param {sap.ui.base.Event} oEvent
|
|
379
|
-
* @param {object} oEvent.getParameters
|
|
380
|
-
* @param {sap.ui.model.ChangeReason} oEvent.getParameters
|
|
379
|
+
* @param {object} oEvent.getParameters
|
|
380
|
+
* @param {sap.ui.model.ChangeReason} oEvent.getParameters.reason
|
|
381
381
|
* The reason for the 'change' event is
|
|
382
382
|
* <ul>
|
|
383
383
|
* <li> {@link sap.ui.model.ChangeReason.Add Add} when a new context is created,
|
|
@@ -388,7 +388,7 @@ sap.ui.define([
|
|
|
388
388
|
* </ul>
|
|
389
389
|
* Additionally each {@link #event:refresh 'refresh'} event is followed by a 'change' event
|
|
390
390
|
* repeating the change reason when the requested data is available.
|
|
391
|
-
* @param {string} oEvent.getParameters
|
|
391
|
+
* @param {string} oEvent.getParameters.detailedReason
|
|
392
392
|
* During automatic determination of $expand and $select, a "virtual" context is first added
|
|
393
393
|
* with detailed reason "AddVirtualContext" and then removed with detailed reason
|
|
394
394
|
* "RemoveVirtualContext" (since 1.69.0); <code>undefined</code> is used in all other cases
|
|
@@ -408,7 +408,7 @@ sap.ui.define([
|
|
|
408
408
|
*
|
|
409
409
|
* @param {sap.ui.base.Event} oEvent The event object
|
|
410
410
|
* @param {sap.ui.model.odata.v4.ODataListBinding} oEvent.getSource() This binding
|
|
411
|
-
* @param {sap.ui.model.odata.v4.Context} oEvent.getParameters
|
|
411
|
+
* @param {sap.ui.model.odata.v4.Context} oEvent.getParameters.context The affected context
|
|
412
412
|
*
|
|
413
413
|
* @event sap.ui.model.odata.v4.ODataListBinding#createActivate
|
|
414
414
|
* @public
|
|
@@ -423,10 +423,10 @@ sap.ui.define([
|
|
|
423
423
|
*
|
|
424
424
|
* @param {sap.ui.base.Event} oEvent The event object
|
|
425
425
|
* @param {sap.ui.model.odata.v4.ODataListBinding} oEvent.getSource() This binding
|
|
426
|
-
* @param {object} oEvent.getParameters
|
|
427
|
-
* @param {sap.ui.model.odata.v4.Context} oEvent.getParameters
|
|
426
|
+
* @param {object} oEvent.getParameters Object containing all event parameters
|
|
427
|
+
* @param {sap.ui.model.odata.v4.Context} oEvent.getParameters.context
|
|
428
428
|
* The context for the created entity
|
|
429
|
-
* @param {boolean} oEvent.getParameters
|
|
429
|
+
* @param {boolean} oEvent.getParameters.success
|
|
430
430
|
* Whether the POST was successfully processed; in case of an error, the error is already
|
|
431
431
|
* reported to the {@link sap.ui.core.message.MessageManager}
|
|
432
432
|
*
|
|
@@ -442,8 +442,8 @@ sap.ui.define([
|
|
|
442
442
|
*
|
|
443
443
|
* @param {sap.ui.base.Event} oEvent The event object
|
|
444
444
|
* @param {sap.ui.model.odata.v4.ODataListBinding} oEvent.getSource() This binding
|
|
445
|
-
* @param {object} oEvent.getParameters
|
|
446
|
-
* @param {sap.ui.model.odata.v4.Context} oEvent.getParameters
|
|
445
|
+
* @param {object} oEvent.getParameters Object containing all event parameters
|
|
446
|
+
* @param {sap.ui.model.odata.v4.Context} oEvent.getParameters.context
|
|
447
447
|
* The context for the created entity
|
|
448
448
|
*
|
|
449
449
|
* @event sap.ui.model.odata.v4.ODataListBinding#createSent
|
|
@@ -474,10 +474,10 @@ sap.ui.define([
|
|
|
474
474
|
* @param {sap.ui.base.Event} oEvent
|
|
475
475
|
* @param {function} oEvent.cancelBubble
|
|
476
476
|
* A callback function to prevent that the event is bubbled up to the model
|
|
477
|
-
* @param {object} oEvent.getParameters
|
|
478
|
-
* @param {object} [oEvent.getParameters
|
|
477
|
+
* @param {object} oEvent.getParameters
|
|
478
|
+
* @param {object} [oEvent.getParameters.data]
|
|
479
479
|
* An empty data object if a back-end request succeeds
|
|
480
|
-
* @param {Error} [oEvent.getParameters
|
|
480
|
+
* @param {Error} [oEvent.getParameters.error] The error object if a back-end request failed.
|
|
481
481
|
* If there are multiple failed back-end requests, the error of the first one is provided.
|
|
482
482
|
*
|
|
483
483
|
* @event sap.ui.model.odata.v4.ODataListBinding#dataReceived
|
|
@@ -513,8 +513,8 @@ sap.ui.define([
|
|
|
513
513
|
*
|
|
514
514
|
* @param {sap.ui.base.Event} oEvent The event object
|
|
515
515
|
* @param {sap.ui.model.odata.v4.ODataListBinding} oEvent.getSource() This binding
|
|
516
|
-
* @param {object} oEvent.getParameters
|
|
517
|
-
* @param {boolean} oEvent.getParameters
|
|
516
|
+
* @param {object} oEvent.getParameters Object containing all event parameters
|
|
517
|
+
* @param {boolean} oEvent.getParameters.success
|
|
518
518
|
* Whether all PATCHes are successfully processed
|
|
519
519
|
*
|
|
520
520
|
* @event sap.ui.model.odata.v4.ODataListBinding#patchCompleted
|
|
@@ -544,8 +544,8 @@ sap.ui.define([
|
|
|
544
544
|
* binding. Registered event handlers are called with the change reason as parameter.
|
|
545
545
|
*
|
|
546
546
|
* @param {sap.ui.base.Event} oEvent
|
|
547
|
-
* @param {object} oEvent.getParameters
|
|
548
|
-
* @param {sap.ui.model.ChangeReason} oEvent.getParameters
|
|
547
|
+
* @param {object} oEvent.getParameters
|
|
548
|
+
* @param {sap.ui.model.ChangeReason} oEvent.getParameters.reason
|
|
549
549
|
* The reason for the 'refresh' event could be
|
|
550
550
|
* <ul>
|
|
551
551
|
* <li> {@link sap.ui.model.ChangeReason.Context Context} when the binding's
|
|
@@ -731,7 +731,7 @@ sap.ui.define([
|
|
|
731
731
|
* method then adds a transient entity to the parent's navigation property, which is sent with
|
|
732
732
|
* the payload of the parent entity. Such a nested context cannot be inactive.
|
|
733
733
|
*
|
|
734
|
-
* <b>
|
|
734
|
+
* <b>Note:</b> After a succesful creation of the main entity the context returned for a
|
|
735
735
|
* nested entity is no longer valid. Do not use the
|
|
736
736
|
* {@link sap.ui.model.odata.v4.Context#created created} promise of such a context! New contexts
|
|
737
737
|
* are created for the nested collection because it is not possible to reliably assign the
|
|
@@ -740,6 +740,13 @@ sap.ui.define([
|
|
|
740
740
|
* of <code>Error</code>, even if the deep create succeeds. This error always has the property
|
|
741
741
|
* <code>canceled</code> with the value <code>true</code>.
|
|
742
742
|
*
|
|
743
|
+
* Since 1.117.0 deep create also supports single-valued navigation properties; no API call is
|
|
744
|
+
* required in this case. Simply bind properties of the related entity relative to a transient
|
|
745
|
+
* context. An update to the property adds it to the POST request of the parent entity, and by
|
|
746
|
+
* this the create becomes deep.
|
|
747
|
+
*
|
|
748
|
+
* <b>Note</b>: Deep create for single-valued navigation properties is <b>experimental</b>.
|
|
749
|
+
*
|
|
743
750
|
* Deep create requires the <code>autoExpandSelect</code> parameter at the
|
|
744
751
|
* {@link sap.ui.model.odata.v4.ODataModel#constructor model}. The refresh after a deep create
|
|
745
752
|
* is optimized. Only the (navigation) properties missing from the POST response are actually
|
|
@@ -750,11 +757,25 @@ sap.ui.define([
|
|
|
750
757
|
* the case if the complete collection has been read or if the system query option
|
|
751
758
|
* <code>$count</code> is <code>true</code> and the binding has processed at least one request.
|
|
752
759
|
*
|
|
760
|
+
* Creating a new child beneath an existing and visible parent node (which must either be a leaf
|
|
761
|
+
* or expanded, but not collapsed) is supported (@experimental as of version 1.117.0) in case of
|
|
762
|
+
* a recursive hierarchy (see {@link #setAggregation}). The parent node must be identified via a
|
|
763
|
+
* {@link sap.ui.model.odata.v4.Context} instance given as
|
|
764
|
+
* <code>oInitialData["@$ui5.node.parent"]</code>. <code>oAggregation.expandTo</code> (see
|
|
765
|
+
* {@link #setAggregation}) must be one, <code>bSkipRefresh</code> must be set, but both
|
|
766
|
+
* <code>bAtEnd</code> and <code>bInactive</code> must not be set. No other creation must be
|
|
767
|
+
* pending, and no other modification (including collapse of some ancestor node) must happen
|
|
768
|
+
* while this creation is pending!
|
|
769
|
+
*
|
|
753
770
|
* @param {object} [oInitialData={}]
|
|
754
771
|
* The initial data for the created entity
|
|
755
772
|
* @param {boolean} [bSkipRefresh]
|
|
756
|
-
* Whether an automatic refresh of the created entity will be skipped
|
|
757
|
-
*
|
|
773
|
+
* Whether an automatic refresh of the created entity will be skipped.
|
|
774
|
+
* <br>
|
|
775
|
+
* <b>Note:</b> Do not use this parameter for a deep create. It leads to multiple single row
|
|
776
|
+
* requests if the POST response did not supply all properties of the nested list. If it is
|
|
777
|
+
* not set, the model checks whether all required properties and child entities are available
|
|
778
|
+
* on the client and requests only data that is missing.
|
|
758
779
|
* @param {boolean} [bAtEnd]
|
|
759
780
|
* Whether the entity is inserted at the end of the list. Supported since 1.66.0.
|
|
760
781
|
* Since 1.99.0 the first insertion determines the overall position of created contexts
|
|
@@ -798,17 +819,22 @@ sap.ui.define([
|
|
|
798
819
|
* <li> an automatic refresh of the created entity cannot be performed and
|
|
799
820
|
* <code>bSkipRefresh</code> is missing. This could be caused by a side-effects refresh
|
|
800
821
|
* happening in parallel to creation (error thrown since 1.114.0; previously failed
|
|
801
|
-
* without an adequate error message)
|
|
822
|
+
* without an adequate error message),
|
|
823
|
+
* <li> the restrictions for creating in a recursive hierarchy (see above) are not met.
|
|
802
824
|
* </ul>
|
|
803
825
|
* @public
|
|
804
826
|
* @since 1.43.0
|
|
805
827
|
*/
|
|
806
828
|
ODataListBinding.prototype.create = function (oInitialData, bSkipRefresh, bAtEnd, bInactive) {
|
|
807
|
-
var
|
|
829
|
+
var oAggregation = this.mParameters.$$aggregation,
|
|
830
|
+
iChildIndex,
|
|
831
|
+
oContext,
|
|
808
832
|
oCreatePathPromise = this.fetchResourcePath(),
|
|
809
833
|
oCreatePromise,
|
|
834
|
+
oEntityData,
|
|
810
835
|
sGroupId = this.getUpdateGroupId(),
|
|
811
836
|
oGroupLock,
|
|
837
|
+
oParentContext,
|
|
812
838
|
sResolvedPath = this.getResolvedPath(),
|
|
813
839
|
sTransientPredicate = "($uid=" + _Helper.uid() + ")",
|
|
814
840
|
sTransientPath = sResolvedPath + sTransientPredicate,
|
|
@@ -819,7 +845,7 @@ sap.ui.define([
|
|
|
819
845
|
throw new Error("Binding is unresolved: " + this);
|
|
820
846
|
}
|
|
821
847
|
this.checkSuspended();
|
|
822
|
-
if (this.mParameters
|
|
848
|
+
if (_Helper.isDataAggregation(this.mParameters)) {
|
|
823
849
|
throw new Error("Cannot create in " + this + " when using data aggregation");
|
|
824
850
|
}
|
|
825
851
|
if (this.isTransient()) {
|
|
@@ -842,7 +868,7 @@ sap.ui.define([
|
|
|
842
868
|
throw new Error("Missing $$ownRequest at " + this);
|
|
843
869
|
}
|
|
844
870
|
sGroupId = "$inactive." + sGroupId;
|
|
845
|
-
} else {
|
|
871
|
+
} else if (!oAggregation) {
|
|
846
872
|
this.iActiveContexts += 1;
|
|
847
873
|
}
|
|
848
874
|
|
|
@@ -850,6 +876,32 @@ sap.ui.define([
|
|
|
850
876
|
this.bFirstCreateAtEnd = bAtEnd;
|
|
851
877
|
}
|
|
852
878
|
|
|
879
|
+
// clone data to avoid modifications outside the cache
|
|
880
|
+
// remove any property starting with "@$ui5."
|
|
881
|
+
oEntityData = _Helper.publicClone(oInitialData, true) || {};
|
|
882
|
+
if (oAggregation) {
|
|
883
|
+
if (oAggregation.expandTo > 1) {
|
|
884
|
+
throw new Error("Unsupported $$aggregation.expandTo: " + oAggregation.expandTo);
|
|
885
|
+
}
|
|
886
|
+
if (!bSkipRefresh) {
|
|
887
|
+
throw new Error("Missing bSkipRefresh");
|
|
888
|
+
}
|
|
889
|
+
if (arguments.length > 2) {
|
|
890
|
+
throw new Error("Only the parameters oInitialData and bSkipRefresh are supported");
|
|
891
|
+
}
|
|
892
|
+
oParentContext = oInitialData["@$ui5.node.parent"];
|
|
893
|
+
iChildIndex = this.aContexts.indexOf(oParentContext) + 1;
|
|
894
|
+
if (iChildIndex <= 0) {
|
|
895
|
+
throw new Error("Invalid parent context: " + oParentContext);
|
|
896
|
+
}
|
|
897
|
+
if (oParentContext.isExpanded() === false) {
|
|
898
|
+
throw new Error("Unsupported collapsed parent: " + oParentContext);
|
|
899
|
+
}
|
|
900
|
+
oEntityData["@$ui5.node.parent"] = oParentContext.getCanonicalPath().slice(1);
|
|
901
|
+
} else {
|
|
902
|
+
this.iCreatedContexts += 1;
|
|
903
|
+
}
|
|
904
|
+
|
|
853
905
|
// only for createInCache
|
|
854
906
|
oGroupLock = this.lockGroup(sGroupId, true, true, function () {
|
|
855
907
|
if (!that.aContexts.includes(oContext)) { // #setContext changed the parent context
|
|
@@ -867,7 +919,7 @@ sap.ui.define([
|
|
|
867
919
|
});
|
|
868
920
|
});
|
|
869
921
|
oCreatePromise = this.createInCache(oGroupLock, oCreatePathPromise, sResolvedPath,
|
|
870
|
-
sTransientPredicate,
|
|
922
|
+
sTransientPredicate, oEntityData, this.bFirstCreateAtEnd !== bAtEnd,
|
|
871
923
|
function (oError) { // error callback
|
|
872
924
|
that.oModel.reportError("POST on '" + oCreatePathPromise
|
|
873
925
|
+ "' failed; will be repeated automatically", sClassName, oError);
|
|
@@ -904,8 +956,8 @@ sap.ui.define([
|
|
|
904
956
|
throw oError;
|
|
905
957
|
});
|
|
906
958
|
|
|
907
|
-
this.
|
|
908
|
-
|
|
959
|
+
oContext = Context.create(this.oModel, this, sTransientPath,
|
|
960
|
+
oParentContext ? iChildIndex : -this.iCreatedContexts,
|
|
909
961
|
oCreatePromise, bInactive);
|
|
910
962
|
if (this.isTransient()) {
|
|
911
963
|
oContext.created().catch(this.oModel.getReporter());
|
|
@@ -918,7 +970,15 @@ sap.ui.define([
|
|
|
918
970
|
} // else: context already destroyed
|
|
919
971
|
});
|
|
920
972
|
|
|
921
|
-
if (
|
|
973
|
+
if (oParentContext) {
|
|
974
|
+
this.aContexts.splice(iChildIndex, 0, oContext);
|
|
975
|
+
for (i = this.aContexts.length - 1; i > iChildIndex; i -= 1) {
|
|
976
|
+
if (this.aContexts[i]) {
|
|
977
|
+
this.aContexts[i].iIndex += 1;
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
this.iMaxLength += 1;
|
|
981
|
+
} else if (this.bFirstCreateAtEnd !== bAtEnd) {
|
|
922
982
|
this.aContexts.splice(this.iCreatedContexts - 1, 0, oContext);
|
|
923
983
|
for (i = this.iCreatedContexts - 1; i >= 0; i -= 1) {
|
|
924
984
|
this.aContexts[i].iIndex = i - this.iCreatedContexts;
|
|
@@ -1193,7 +1253,8 @@ sap.ui.define([
|
|
|
1193
1253
|
* @private
|
|
1194
1254
|
*/
|
|
1195
1255
|
ODataListBinding.prototype.destroyPreviousContexts = function (aPathsToDelete) {
|
|
1196
|
-
var mPreviousContextsByPath = this.mPreviousContextsByPath
|
|
1256
|
+
var mPreviousContextsByPath = this.mPreviousContextsByPath,
|
|
1257
|
+
that = this;
|
|
1197
1258
|
|
|
1198
1259
|
if (mPreviousContextsByPath) { // binding may have been destroyed already
|
|
1199
1260
|
(aPathsToDelete || Object.keys(mPreviousContextsByPath)).forEach(function (sPath) {
|
|
@@ -1206,6 +1267,11 @@ sap.ui.define([
|
|
|
1206
1267
|
} else {
|
|
1207
1268
|
if (!oContext.isTransient()) {
|
|
1208
1269
|
oContext.destroy();
|
|
1270
|
+
if (oContext.iIndex === undefined && that.oCache) {
|
|
1271
|
+
// was kept alive (or deleted)
|
|
1272
|
+
that.oCache.removeKeptElement(
|
|
1273
|
+
_Helper.getRelativePath(sPath, that.oHeaderContext.getPath()));
|
|
1274
|
+
}
|
|
1209
1275
|
}
|
|
1210
1276
|
delete mPreviousContextsByPath[sPath];
|
|
1211
1277
|
}
|
|
@@ -1282,9 +1348,9 @@ sap.ui.define([
|
|
|
1282
1348
|
|
|
1283
1349
|
/**
|
|
1284
1350
|
* @override
|
|
1285
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
1351
|
+
* @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
|
|
1286
1352
|
*/
|
|
1287
|
-
ODataListBinding.prototype.
|
|
1353
|
+
ODataListBinding.prototype.doFetchOrGetQueryOptions = function (oContext) {
|
|
1288
1354
|
// Note: an absolute binding needs no parent context :-)
|
|
1289
1355
|
var sMetaPath = oContext && _Helper.getMetaPath(oContext.getPath()),
|
|
1290
1356
|
that = this;
|
|
@@ -2445,14 +2511,20 @@ sap.ui.define([
|
|
|
2445
2511
|
* Additionally, you must be aware of server-driven paging and be ready to send a follow-up
|
|
2446
2512
|
* request if the response contains <code>@odata.nextlink</code>.
|
|
2447
2513
|
*
|
|
2514
|
+
* The URL cannot be determined synchronously in all cases; use {@link #requestDownloadUrl} to
|
|
2515
|
+
* allow for asynchronous determination then.
|
|
2516
|
+
*
|
|
2448
2517
|
* @returns {string}
|
|
2449
2518
|
* The download URL
|
|
2450
2519
|
* @throws {Error}
|
|
2451
|
-
* If the binding is unresolved or if the URL
|
|
2520
|
+
* If the binding is unresolved or if the URL cannot be determined synchronously (either due
|
|
2521
|
+
* to a pending metadata request or because the <code>autoExpandSelect</code> parameter at the
|
|
2522
|
+
* {@link sap.ui.model.odata.v4.ODataModel#constructor model} is used and the binding has been
|
|
2523
|
+
* newly created and is thus still automatically generating its $select and $expand system
|
|
2524
|
+
* query options from the binding hierarchy)
|
|
2452
2525
|
*
|
|
2453
2526
|
* @function
|
|
2454
2527
|
* @public
|
|
2455
|
-
* @see #requestDownloadUrl
|
|
2456
2528
|
* @since 1.74.0
|
|
2457
2529
|
*/
|
|
2458
2530
|
ODataListBinding.prototype.getDownloadUrl = _Helper.createGetMethod("fetchDownloadUrl", true);
|
|
@@ -2805,7 +2877,7 @@ sap.ui.define([
|
|
|
2805
2877
|
ODataListBinding.prototype.inheritQueryOptions = function (mQueryOptions, oContext) {
|
|
2806
2878
|
var mInheritedQueryOptions;
|
|
2807
2879
|
|
|
2808
|
-
if (
|
|
2880
|
+
if (_Helper.isEmptyObject(this.mParameters)) {
|
|
2809
2881
|
// mix-in inherited static query options
|
|
2810
2882
|
mInheritedQueryOptions = this.getQueryOptionsForPath("", oContext);
|
|
2811
2883
|
if (mQueryOptions.$orderby && mInheritedQueryOptions.$orderby) {
|
|
@@ -2815,7 +2887,7 @@ sap.ui.define([
|
|
|
2815
2887
|
mQueryOptions.$filter = "(" + mQueryOptions.$filter + ") and ("
|
|
2816
2888
|
+ mInheritedQueryOptions.$filter + ")";
|
|
2817
2889
|
}
|
|
2818
|
-
mQueryOptions =
|
|
2890
|
+
mQueryOptions = _Helper.merge({}, mInheritedQueryOptions, mQueryOptions);
|
|
2819
2891
|
_Helper.aggregateExpandSelect(mQueryOptions, mInheritedQueryOptions);
|
|
2820
2892
|
}
|
|
2821
2893
|
|
|
@@ -2880,7 +2952,7 @@ sap.ui.define([
|
|
|
2880
2952
|
// When suspended it matches if it already has contexts. Then its getKeepAliveContext fails.
|
|
2881
2953
|
return this.mParameters.$$getKeepAliveContext && this.getResolvedPath() === sPath
|
|
2882
2954
|
&& (!this.isRootBindingSuspended() || this.aContexts.length
|
|
2883
|
-
||
|
|
2955
|
+
|| !_Helper.isEmptyObject(this.mPreviousContextsByPath));
|
|
2884
2956
|
};
|
|
2885
2957
|
|
|
2886
2958
|
/**
|
|
@@ -2995,6 +3067,21 @@ sap.ui.define([
|
|
|
2995
3067
|
}
|
|
2996
3068
|
};
|
|
2997
3069
|
|
|
3070
|
+
/**
|
|
3071
|
+
* Notification from a context that its effective keep-alive status changed.
|
|
3072
|
+
*
|
|
3073
|
+
* @param {sap.ui.model.odata.v4.Context} oContext - The context
|
|
3074
|
+
*
|
|
3075
|
+
* @private
|
|
3076
|
+
*/
|
|
3077
|
+
ODataListBinding.prototype.onKeepAliveChanged = function (oContext) {
|
|
3078
|
+
if (!oContext.isDeleted() // data of a deleted context must remain for the exclusion filter
|
|
3079
|
+
&& oContext.getPath() in this.mPreviousContextsByPath
|
|
3080
|
+
&& !oContext.isEffectivelyKeptAlive()) {
|
|
3081
|
+
this.destroyPreviousContextsLater([oContext.getPath()]);
|
|
3082
|
+
}
|
|
3083
|
+
};
|
|
3084
|
+
|
|
2998
3085
|
/**
|
|
2999
3086
|
* Prepares the nested binding for a deep create if it is below a transient parent context. Adds
|
|
3000
3087
|
* a transient collection to the parent binding's cache. Creates contexts for nested entities in
|
|
@@ -3180,8 +3267,8 @@ sap.ui.define([
|
|
|
3180
3267
|
* @param {string} sGroupId
|
|
3181
3268
|
* The effective group ID
|
|
3182
3269
|
* @returns {sap.ui.base.SyncPromise}
|
|
3183
|
-
* A promise
|
|
3184
|
-
* fails.
|
|
3270
|
+
* A promise which is resolved without a defined result, or rejected with an error if the
|
|
3271
|
+
* refresh fails.
|
|
3185
3272
|
*
|
|
3186
3273
|
* @private
|
|
3187
3274
|
*/
|
|
@@ -3570,10 +3657,9 @@ sap.ui.define([
|
|
|
3570
3657
|
});
|
|
3571
3658
|
}
|
|
3572
3659
|
|
|
3573
|
-
if (
|
|
3660
|
+
if (_Helper.isDataAggregation(this.mParameters)) {
|
|
3574
3661
|
if (bSingle) {
|
|
3575
|
-
throw new Error(
|
|
3576
|
-
"Must not request side effects for a context of a binding with $$aggregation");
|
|
3662
|
+
throw new Error("Must not request side effects when using data aggregation");
|
|
3577
3663
|
}
|
|
3578
3664
|
|
|
3579
3665
|
if (_AggregationHelper.isAffected(this.mParameters.$$aggregation,
|
|
@@ -3813,7 +3899,8 @@ sap.ui.define([
|
|
|
3813
3899
|
* Since 1.105.0, either a recursive hierarchy or pure data aggregation is supported, but no
|
|
3814
3900
|
* mix; <code>hierarchyQualifier</code> is the leading property that decides between those two
|
|
3815
3901
|
* use cases - this is an <b>experimental API</b> and is only supported if the model uses the
|
|
3816
|
-
* <code>autoExpandSelect</code> parameter!
|
|
3902
|
+
* <code>autoExpandSelect</code> parameter! Since 1.117.0, it is available for read-only
|
|
3903
|
+
* hierarchies.
|
|
3817
3904
|
* @param {object} [oAggregation.aggregate]
|
|
3818
3905
|
* A map from aggregatable property names or aliases to objects containing the following
|
|
3819
3906
|
* details:
|
|
@@ -3843,9 +3930,10 @@ sap.ui.define([
|
|
|
3843
3930
|
* </ul>
|
|
3844
3931
|
* @param {number} [oAggregation.expandTo=1]
|
|
3845
3932
|
* The number (as a positive integer) of different levels initially available without calling
|
|
3846
|
-
* {@link sap.ui.model.odata.v4.Context#expand} (@experimental as of version 1.105.0
|
|
3847
|
-
*
|
|
3848
|
-
*
|
|
3933
|
+
* {@link sap.ui.model.odata.v4.Context#expand} (@experimental as of version 1.105.0;
|
|
3934
|
+
* available for read-only hierarchies since 1.117.0), supported only if a
|
|
3935
|
+
* <code>hierarchyQualifier</code> is given. Root nodes are on the first level. By default,
|
|
3936
|
+
* only root nodes are available; they are not yet expanded.
|
|
3849
3937
|
* @param {boolean} [oAggregation.grandTotalAtBottomOnly]
|
|
3850
3938
|
* Tells whether the grand totals for aggregatable properties are displayed at the bottom only
|
|
3851
3939
|
* (since 1.86.0); <code>true</code> for bottom only, <code>false</code> for top and bottom,
|
|
@@ -3871,10 +3959,10 @@ sap.ui.define([
|
|
|
3871
3959
|
* @param {string} [oAggregation.hierarchyQualifier]
|
|
3872
3960
|
* The qualifier for the pair of "Org.OData.Aggregation.V1.RecursiveHierarchy" and
|
|
3873
3961
|
* "com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchy" annotations at this binding's
|
|
3874
|
-
* entity type (@experimental as of version 1.105.0
|
|
3875
|
-
* without data aggregation is defined, and the
|
|
3876
|
-
* <code>expandTo</code> and <code>search</code>. A
|
|
3877
|
-
* with:
|
|
3962
|
+
* entity type (@experimental as of version 1.105.0; available for read-only hierarchies since
|
|
3963
|
+
* 1.117.0). If present, a recursive hierarchy without data aggregation is defined, and the
|
|
3964
|
+
* only other supported properties are <code>expandTo</code> and <code>search</code>. A
|
|
3965
|
+
* recursive hierarchy cannot be combined with:
|
|
3878
3966
|
* <ul>
|
|
3879
3967
|
* <li> "$search",
|
|
3880
3968
|
* <li> the <code>vGroup</code> parameter of {@link sap.ui.model.Sorter} (since 1.107.0),
|
|
@@ -4009,6 +4097,7 @@ sap.ui.define([
|
|
|
4009
4097
|
if (this.mParameters.$$aggregation) {
|
|
4010
4098
|
_AggregationHelper.setPath(this.mParameters.$$aggregation, sResolvedPath);
|
|
4011
4099
|
} else if (this.bHasPathReductionToParent && this.oModel.bAutoExpandSelect) {
|
|
4100
|
+
this.mCanUseCachePromiseByChildPath = {};
|
|
4012
4101
|
this.sChangeReason = "AddVirtualContext"; // JIRA: CPOUI5ODATAV4-848
|
|
4013
4102
|
}
|
|
4014
4103
|
if (oContext.getBinding && oContext.getBinding().isRootBindingSuspended()) {
|
|
@@ -11,7 +11,6 @@ sap.ui.define([
|
|
|
11
11
|
"./lib/_Helper",
|
|
12
12
|
"sap/base/assert",
|
|
13
13
|
"sap/base/Log",
|
|
14
|
-
"sap/base/util/isEmptyObject",
|
|
15
14
|
"sap/base/util/JSTokenizer",
|
|
16
15
|
"sap/base/util/ObjectPath",
|
|
17
16
|
"sap/ui/base/ManagedObject",
|
|
@@ -43,11 +42,11 @@ sap.ui.define([
|
|
|
43
42
|
"sap/ui/model/odata/type/String",
|
|
44
43
|
"sap/ui/model/odata/type/TimeOfDay",
|
|
45
44
|
"sap/ui/thirdparty/URI"
|
|
46
|
-
], function (AnnotationHelper, ValueListType, _Helper, assert, Log,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
], function (AnnotationHelper, ValueListType, _Helper, assert, Log, JSTokenizer, ObjectPath,
|
|
46
|
+
ManagedObject, SyncPromise, BindingMode, ChangeReason, ClientListBinding, BaseContext,
|
|
47
|
+
ContextBinding, MetaModel, PropertyBinding, OperationMode, Boolean, Byte, EdmDate,
|
|
48
|
+
DateTimeOffset, Decimal, Double, Guid, Int16, Int32, Int64, Raw, SByte, Single, Stream,
|
|
49
|
+
String, TimeOfDay, URI) {
|
|
51
50
|
"use strict";
|
|
52
51
|
/*eslint max-nested-callbacks: 0 */
|
|
53
52
|
|
|
@@ -157,7 +156,7 @@ sap.ui.define([
|
|
|
157
156
|
* @hideconstructor
|
|
158
157
|
* @public
|
|
159
158
|
* @since 1.37.0
|
|
160
|
-
* @version 1.
|
|
159
|
+
* @version 1.117.0
|
|
161
160
|
*/
|
|
162
161
|
ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
|
|
163
162
|
constructor : constructor
|
|
@@ -1630,7 +1629,7 @@ sap.ui.define([
|
|
|
1630
1629
|
}
|
|
1631
1630
|
|
|
1632
1631
|
if (mFormatOptions) {
|
|
1633
|
-
if (isEmptyObject(mFormatOptions)) {
|
|
1632
|
+
if (_Helper.isEmptyObject(mFormatOptions)) {
|
|
1634
1633
|
mFormatOptions = undefined;
|
|
1635
1634
|
} else if ("parseKeepsEmptyString" in mFormatOptions
|
|
1636
1635
|
&& oProperty.$Type !== "Edm.String") {
|
|
@@ -1724,6 +1723,7 @@ sap.ui.define([
|
|
|
1724
1723
|
// The relative path following sEntityPath (parameter re-used - encoded)
|
|
1725
1724
|
//sPropertyPath,
|
|
1726
1725
|
aSegments, // The resource path split in segments (encoded)
|
|
1726
|
+
bTransient = false, // Whether the property is within a transient entity
|
|
1727
1727
|
oType; // The type of the data at sInstancePath
|
|
1728
1728
|
|
|
1729
1729
|
// Determines the predicate from a segment (empty string if there is none)
|
|
@@ -1733,10 +1733,10 @@ sap.ui.define([
|
|
|
1733
1733
|
return i >= 0 ? sSegment.slice(i) : "";
|
|
1734
1734
|
}
|
|
1735
1735
|
|
|
1736
|
-
// Pushes a request to append the key predicate
|
|
1736
|
+
// Pushes a request to append the segment with the key predicate of the instance at
|
|
1737
1737
|
// sInstancePath. Does not calculate it yet, because it might be replaced again later.
|
|
1738
1738
|
function prepareKeyPredicate(sSegment) {
|
|
1739
|
-
aEditUrl.push({path : sInstancePath, prefix : sSegment
|
|
1739
|
+
aEditUrl.push({path : sInstancePath, prefix : sSegment});
|
|
1740
1740
|
}
|
|
1741
1741
|
|
|
1742
1742
|
// Strips off the predicate from a segment
|
|
@@ -1746,16 +1746,6 @@ sap.ui.define([
|
|
|
1746
1746
|
return i >= 0 ? sSegment.slice(0, i) : sSegment;
|
|
1747
1747
|
}
|
|
1748
1748
|
|
|
1749
|
-
// The segment is added to the edit URL; transient predicate is converted to real
|
|
1750
|
-
// predicate
|
|
1751
|
-
function pushToEditUrl(sSegment) {
|
|
1752
|
-
if (sSegment.includes("($uid=")) {
|
|
1753
|
-
prepareKeyPredicate(stripPredicate(sSegment));
|
|
1754
|
-
} else {
|
|
1755
|
-
aEditUrl.push(sSegment);
|
|
1756
|
-
}
|
|
1757
|
-
}
|
|
1758
|
-
|
|
1759
1749
|
aSegments = sResolvedPath.slice(1).split("/");
|
|
1760
1750
|
sFirstSegment = aSegments.shift();
|
|
1761
1751
|
sInstancePath = "/" + sFirstSegment;
|
|
@@ -1768,8 +1758,8 @@ sap.ui.define([
|
|
|
1768
1758
|
oType = mScope[oEntitySet.$Type];
|
|
1769
1759
|
sPropertyPath = "";
|
|
1770
1760
|
sNavigationPath = "";
|
|
1771
|
-
aEditUrl = [];
|
|
1772
|
-
|
|
1761
|
+
aEditUrl = [sFirstSegment];
|
|
1762
|
+
bTransient = sFirstSegment.includes("($uid=");
|
|
1773
1763
|
aSegments.forEach(function (sSegment) {
|
|
1774
1764
|
var oProperty, sPropertyName;
|
|
1775
1765
|
|
|
@@ -1793,7 +1783,12 @@ sap.ui.define([
|
|
|
1793
1783
|
}
|
|
1794
1784
|
}
|
|
1795
1785
|
oType = mScope[oProperty.$Type];
|
|
1796
|
-
if (
|
|
1786
|
+
if (sSegment.includes("($uid=")) {
|
|
1787
|
+
// a transient entity in a nested collection
|
|
1788
|
+
sEntityPath = sInstancePath;
|
|
1789
|
+
sPropertyPath = "";
|
|
1790
|
+
bTransient = true;
|
|
1791
|
+
} else if (!bTransient && oProperty.$kind === "NavigationProperty") {
|
|
1797
1792
|
if (oEntitySet.$NavigationPropertyBinding
|
|
1798
1793
|
&& sNavigationPath in oEntitySet.$NavigationPropertyBinding) {
|
|
1799
1794
|
sEntitySetName = oEntitySet.$NavigationPropertyBinding[sNavigationPath];
|
|
@@ -1809,7 +1804,7 @@ sap.ui.define([
|
|
|
1809
1804
|
prepareKeyPredicate(aEditUrl.pop());
|
|
1810
1805
|
}
|
|
1811
1806
|
} else {
|
|
1812
|
-
|
|
1807
|
+
aEditUrl.push(sSegment);
|
|
1813
1808
|
}
|
|
1814
1809
|
sEntityPath = sInstancePath;
|
|
1815
1810
|
sPropertyPath = "";
|
|
@@ -1819,7 +1814,7 @@ sap.ui.define([
|
|
|
1819
1814
|
}
|
|
1820
1815
|
});
|
|
1821
1816
|
|
|
1822
|
-
if (bNoEditUrl) {
|
|
1817
|
+
if (bTransient || bNoEditUrl) {
|
|
1823
1818
|
return SyncPromise.resolve({
|
|
1824
1819
|
editUrl : undefined,
|
|
1825
1820
|
entityPath : sEntityPath,
|
|
@@ -1839,10 +1834,6 @@ sap.ui.define([
|
|
|
1839
1834
|
if (!oEntity) {
|
|
1840
1835
|
error("No instance to calculate key predicate at " + vSegment.path);
|
|
1841
1836
|
}
|
|
1842
|
-
if (oEntity["@$ui5.context.isTransient"]) {
|
|
1843
|
-
bNoEditUrl = true;
|
|
1844
|
-
return undefined;
|
|
1845
|
-
}
|
|
1846
1837
|
sPredicate = _Helper.getPrivateAnnotation(oEntity, "predicate");
|
|
1847
1838
|
if (!sPredicate) {
|
|
1848
1839
|
error("No key predicate known at " + vSegment.path);
|
|
@@ -1853,7 +1844,7 @@ sap.ui.define([
|
|
|
1853
1844
|
});
|
|
1854
1845
|
})).then(function (aFinalEditUrl) {
|
|
1855
1846
|
return {
|
|
1856
|
-
editUrl :
|
|
1847
|
+
editUrl : aFinalEditUrl.join("/"),
|
|
1857
1848
|
entityPath : sEntityPath,
|
|
1858
1849
|
propertyPath : sPropertyPath
|
|
1859
1850
|
};
|
|
@@ -2203,6 +2194,9 @@ sap.ui.define([
|
|
|
2203
2194
|
if (oProperty.$Nullable === false) {
|
|
2204
2195
|
setConstraint("nullable", false);
|
|
2205
2196
|
}
|
|
2197
|
+
if (oProperty.$Type === "Edm.DateTimeOffset") {
|
|
2198
|
+
setConstraint("V4", true);
|
|
2199
|
+
}
|
|
2206
2200
|
}
|
|
2207
2201
|
return mConstraints;
|
|
2208
2202
|
};
|
|
@@ -2739,7 +2733,7 @@ sap.ui.define([
|
|
|
2739
2733
|
* parameter <code>supportReferences</code> of
|
|
2740
2734
|
* {@link sap.ui.model.odata.v4.ODataModel#constructor}).
|
|
2741
2735
|
*
|
|
2742
|
-
* @returns {Promise}
|
|
2736
|
+
* @returns {Promise<object>}
|
|
2743
2737
|
* A promise which is resolved with the OData metadata as a "JSON" object as soon as it is
|
|
2744
2738
|
* available.
|
|
2745
2739
|
*
|
|
@@ -2986,7 +2980,7 @@ sap.ui.define([
|
|
|
2986
2980
|
* Optional (binding) parameters; if they are given, <code>oContext</code> cannot be omitted
|
|
2987
2981
|
* @param {object} [mParameters.scope]
|
|
2988
2982
|
* Optional scope for lookup of aliases for computed annotations (since 1.43.0)
|
|
2989
|
-
* @returns {Promise}
|
|
2983
|
+
* @returns {Promise<any>}
|
|
2990
2984
|
* A promise which is resolved with the requested metadata value as soon as it is available;
|
|
2991
2985
|
* it is rejected if the requested metadata cannot be loaded
|
|
2992
2986
|
*
|
|
@@ -3008,7 +3002,7 @@ sap.ui.define([
|
|
|
3008
3002
|
* Type-specific format options, since 1.81.0. The boolean format option
|
|
3009
3003
|
* "parseKeepsEmptyString" applies to {@link sap.ui.model.odata.type.String} only and is
|
|
3010
3004
|
* ignored for all other types. All other format options are passed "as is".
|
|
3011
|
-
* @returns {Promise}
|
|
3005
|
+
* @returns {Promise<sap.ui.model.odata.type.ODataType>}
|
|
3012
3006
|
* A promise that gets resolved with the corresponding UI5 type from
|
|
3013
3007
|
* {@link sap.ui.model.odata.type}; if no specific type can be
|
|
3014
3008
|
* determined, a warning is logged and {@link sap.ui.model.odata.type.Raw} is used
|
|
@@ -3119,7 +3113,7 @@ sap.ui.define([
|
|
|
3119
3113
|
* Context to resolve "14.5.12 Expression edm:Path" references contained in a
|
|
3120
3114
|
* "com.sap.vocabularies.Common.v1.ValueListRelevantQualifiers" annotation. Supported since
|
|
3121
3115
|
* 1.84.0
|
|
3122
|
-
* @returns {Promise}
|
|
3116
|
+
* @returns {Promise<Object<object>>}
|
|
3123
3117
|
* A promise which is resolved with a map of qualifier to value list mapping objects
|
|
3124
3118
|
* structured as defined by <code>com.sap.vocabularies.Common.v1.ValueListType</code>;
|
|
3125
3119
|
* the map entry with key "" represents the mapping without qualifier. Each entry has an
|
|
@@ -3270,7 +3264,7 @@ sap.ui.define([
|
|
|
3270
3264
|
|
|
3271
3265
|
// Each reference must have contributed at least one qualifier. So if oValueListInfo
|
|
3272
3266
|
// is empty, there cannot have been a reference.
|
|
3273
|
-
if (isEmptyObject(oValueListInfo)) {
|
|
3267
|
+
if (_Helper.isEmptyObject(oValueListInfo)) {
|
|
3274
3268
|
throw new Error("No annotation '" + sValueListReferences.slice(1) + "' for "
|
|
3275
3269
|
+ sPropertyPath);
|
|
3276
3270
|
}
|
|
@@ -3341,7 +3335,7 @@ sap.ui.define([
|
|
|
3341
3335
|
*
|
|
3342
3336
|
* @param {string} sPropertyPath
|
|
3343
3337
|
* An absolute path to an OData property within the OData data model
|
|
3344
|
-
* @returns {Promise}
|
|
3338
|
+
* @returns {Promise<sap.ui.model.odata.v4.ValueListType>}
|
|
3345
3339
|
* A promise that is resolved with the type of the value list, a constant of the enumeration
|
|
3346
3340
|
* {@link sap.ui.model.odata.v4.ValueListType}. The promise is rejected if the property cannot
|
|
3347
3341
|
* be found in the metadata.
|