@openui5/sap.ui.core 1.138.0 → 1.140.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/README.md +1 -1
- package/REUSE.toml +8 -1
- package/THIRDPARTY.txt +72 -66
- package/package.json +2 -2
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.mobile.js +0 -8
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +22 -1
- package/src/sap/base/i18n/LanguageFallback.js +18 -2
- package/src/sap/base/i18n/LanguageTag.js +11 -5
- package/src/sap/base/i18n/Localization.js +36 -9
- package/src/sap/base/i18n/ResourceBundle.js +59 -35
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/security/URLListValidator.js +7 -3
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +3 -3
- package/src/sap/ui/base/BindingInfo.js +6 -1
- package/src/sap/ui/base/BindingParser.js +1 -1
- package/src/sap/ui/base/DataType.js +27 -2
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +49 -12
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/base/OwnStatics.js +49 -0
- package/src/sap/ui/core/.library +8 -3
- package/src/sap/ui/core/BlockLayerUtils.js +2 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +11 -9
- package/src/sap/ui/core/ComponentContainer.js +13 -3
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +2 -11
- 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 +10 -4
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/Fragment.js +10 -8
- 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/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +54 -132
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +1 -1
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Theming.js +145 -76
- 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 +6 -2
- 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 +1 -1
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +44 -20
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/i18n/interaction_ar.xml +1 -1
- package/src/sap/ui/core/interaction/KeyboardInteractionDisplay.js +64 -37
- package/src/sap/ui/core/library.js +3 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/messagebundle.properties +58 -28
- package/src/sap/ui/core/messagebundle_ar.properties +26 -11
- package/src/sap/ui/core/messagebundle_bg.properties +21 -6
- package/src/sap/ui/core/messagebundle_ca.properties +24 -9
- package/src/sap/ui/core/messagebundle_cnr.properties +25 -10
- package/src/sap/ui/core/messagebundle_cs.properties +24 -9
- package/src/sap/ui/core/messagebundle_cy.properties +24 -9
- package/src/sap/ui/core/messagebundle_da.properties +21 -6
- package/src/sap/ui/core/messagebundle_de.properties +16 -1
- package/src/sap/ui/core/messagebundle_el.properties +26 -11
- package/src/sap/ui/core/messagebundle_en.properties +24 -9
- package/src/sap/ui/core/messagebundle_en_GB.properties +24 -9
- package/src/sap/ui/core/messagebundle_en_US_saprigi.properties +24 -9
- package/src/sap/ui/core/messagebundle_es.properties +21 -6
- package/src/sap/ui/core/messagebundle_es_MX.properties +24 -9
- package/src/sap/ui/core/messagebundle_et.properties +31 -16
- package/src/sap/ui/core/messagebundle_fi.properties +22 -7
- package/src/sap/ui/core/messagebundle_fr.properties +22 -7
- package/src/sap/ui/core/messagebundle_fr_CA.properties +20 -5
- package/src/sap/ui/core/messagebundle_hi.properties +24 -9
- package/src/sap/ui/core/messagebundle_hr.properties +20 -5
- package/src/sap/ui/core/messagebundle_hu.properties +23 -8
- package/src/sap/ui/core/messagebundle_id.properties +20 -5
- package/src/sap/ui/core/messagebundle_it.properties +23 -8
- package/src/sap/ui/core/messagebundle_iw.properties +21 -6
- package/src/sap/ui/core/messagebundle_ja.properties +19 -4
- package/src/sap/ui/core/messagebundle_kk.properties +25 -10
- package/src/sap/ui/core/messagebundle_ko.properties +26 -11
- package/src/sap/ui/core/messagebundle_lt.properties +20 -5
- package/src/sap/ui/core/messagebundle_lv.properties +22 -7
- package/src/sap/ui/core/messagebundle_mk.properties +25 -10
- package/src/sap/ui/core/messagebundle_ms.properties +24 -9
- package/src/sap/ui/core/messagebundle_nl.properties +22 -7
- package/src/sap/ui/core/messagebundle_no.properties +22 -7
- package/src/sap/ui/core/messagebundle_pl.properties +19 -4
- package/src/sap/ui/core/messagebundle_pt.properties +18 -3
- package/src/sap/ui/core/messagebundle_pt_PT.properties +18 -3
- package/src/sap/ui/core/messagebundle_ro.properties +24 -9
- package/src/sap/ui/core/messagebundle_ru.properties +19 -4
- package/src/sap/ui/core/messagebundle_sh.properties +25 -10
- package/src/sap/ui/core/messagebundle_sk.properties +24 -9
- package/src/sap/ui/core/messagebundle_sl.properties +20 -5
- package/src/sap/ui/core/messagebundle_sr.properties +25 -10
- package/src/sap/ui/core/messagebundle_sv.properties +23 -8
- package/src/sap/ui/core/messagebundle_th.properties +20 -5
- package/src/sap/ui/core/messagebundle_tr.properties +20 -5
- package/src/sap/ui/core/messagebundle_uk.properties +22 -7
- package/src/sap/ui/core/messagebundle_vi.properties +26 -11
- package/src/sap/ui/core/messagebundle_zh_CN.properties +24 -9
- package/src/sap/ui/core/messagebundle_zh_TW.properties +26 -11
- package/src/sap/ui/core/mvc/Controller.js +5 -3
- package/src/sap/ui/core/mvc/HTMLView.js +6 -2
- package/src/sap/ui/core/mvc/JSONView.js +6 -2
- package/src/sap/ui/core/mvc/JSView.js +6 -3
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +63 -20
- package/src/sap/ui/core/mvc/XMLView.js +6 -2
- package/src/sap/ui/core/mvc/_ViewFactory.js +8 -4
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/Route.js +1 -1
- package/src/sap/ui/core/routing/Router.js +19 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/themes/base/base.less +6 -6
- package/src/sap/ui/core/themes/base/shared.less +4 -1
- package/src/sap/ui/core/themes/base/skeleton.less +3 -3
- package/src/sap/ui/core/theming/Parameters.js +717 -755
- package/src/sap/ui/core/theming/ThemeHelper.js +0 -77
- package/src/sap/ui/core/theming/ThemeManager.js +535 -526
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/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/webc/WebComponent.js +93 -45
- package/src/sap/ui/core/webc/WebComponentMetadata.js +40 -6
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/dom/findTabbable.js +1 -1
- package/src/sap/ui/dom/includeStylesheet.js +4 -1
- package/src/sap/ui/model/ClientModel.js +2 -2
- 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/Filter.js +55 -35
- package/src/sap/ui/model/FilterOperator.js +79 -9
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +7 -7
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/json/JSONPropertyBinding.js +14 -2
- package/src/sap/ui/model/json/TypedJSONContext.js +16 -0
- package/src/sap/ui/model/json/TypedJSONModel.js +16 -0
- 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 +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +4 -4
- package/src/sap/ui/model/odata/ODataModel.js +3 -3
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +9 -8
- package/src/sap/ui/model/odata/_AnnotationHelperExpression.js +2 -2
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +17 -11
- package/src/sap/ui/model/odata/v2/ODataContextBinding.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataModel.js +44 -61
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +82 -60
- package/src/sap/ui/model/odata/v4/Context.js +19 -15
- package/src/sap/ui/model/odata/v4/ODataBinding.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +4 -4
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +26 -14
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +38 -23
- package/src/sap/ui/model/odata/v4/ODataModel.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +34 -7
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataUtils.js +2 -2
- package/src/sap/ui/model/odata/v4/_AnnotationHelperExpression.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +78 -26
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +10 -7
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +32 -27
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +50 -32
- package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +19 -9
- 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 +19 -5
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -2
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/TestUtils.js +27 -15
- package/src/sap/ui/test/generic/GenericTestCollection.js +11 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/generic/Utils.js +6 -6
- package/src/sap/ui/test/opaQunit.js +3 -0
- package/src/sap/ui/thirdparty/jquery.js +1 -1
- package/src/sap/ui/thirdparty/qunit-2.js +4 -1
- package/src/sap/ui/util/Mobile.js +0 -9
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +49 -42
- package/src/ui5loader.js +1 -1
- package/ui5.yaml +0 -1
- package/src/sap/ui/base/_runWithOwner.js +0 -43
- package/src/sap/ui/core/plugin/LessSupport.js +0 -542
|
@@ -219,7 +219,7 @@ sap.ui.define([
|
|
|
219
219
|
* If present, a recursive hierarchy w/o data aggregation is defined and
|
|
220
220
|
* {@link _AggregationHelper.buildApply4Hierarchy} is invoked instead.
|
|
221
221
|
* @param {object} [mQueryOptions={}]
|
|
222
|
-
* A map of key-value pairs representing the query string
|
|
222
|
+
* A read-only map of key-value pairs representing the query string
|
|
223
223
|
* @param {boolean} [mQueryOptions.$count]
|
|
224
224
|
* The value for a "$count" system query option; it is removed from the returned map for a
|
|
225
225
|
* follow-up request or in case it is turned into an aggregate "$count as UI5__count"
|
|
@@ -434,7 +434,7 @@ sap.ui.define([
|
|
|
434
434
|
* DistanceFromRoot, DrillState, LimitedDescendantCount, LimitedRank, NodeProperty, and
|
|
435
435
|
* ParentNavigationProperty are stored at <code>oAggregation</code> using a "$" prefix (if
|
|
436
436
|
* not already stored). The "com.sap.vocabularies.Hierarchy.v1.RecursiveHierarchyActions"
|
|
437
|
-
* annotation is stored as "$Actions".
|
|
437
|
+
* annotation is stored as "$Actions". "expandTo" is normalized.
|
|
438
438
|
*
|
|
439
439
|
* @param {object} oAggregation
|
|
440
440
|
* An object holding the information needed for a recursive hierarchy; see
|
|
@@ -455,7 +455,7 @@ sap.ui.define([
|
|
|
455
455
|
* Like the value for a "$search" system query option (remember ODATA-1452); it is turned
|
|
456
456
|
* into the search expression parameter of an "ancestors()" transformation
|
|
457
457
|
* @param {object} [mQueryOptions={}]
|
|
458
|
-
* A map of key-value pairs representing the query string
|
|
458
|
+
* A read-only map of key-value pairs representing the query string
|
|
459
459
|
* @param {string} [mQueryOptions.$$filterBeforeAggregate]
|
|
460
460
|
* The value for a filter which identifies a parent node; it is removed from the returned
|
|
461
461
|
* map and turned into a "filter()" transformation
|
|
@@ -558,6 +558,9 @@ sap.ui.define([
|
|
|
558
558
|
delete mQueryOptions.$orderby;
|
|
559
559
|
}
|
|
560
560
|
oAggregation.expandTo ??= 1;
|
|
561
|
+
if (oAggregation.expandTo > Number.MAX_SAFE_INTEGER) { // normalization
|
|
562
|
+
oAggregation.expandTo = Number.MAX_SAFE_INTEGER;
|
|
563
|
+
}
|
|
561
564
|
const sExpandLevels = !bAllLevels && oAggregation.$ExpandLevels;
|
|
562
565
|
sApply += sSapHierarchy + "TopLevels(HierarchyNodes=$root"
|
|
563
566
|
+ (oAggregation.$path || "")
|
|
@@ -706,7 +709,7 @@ sap.ui.define([
|
|
|
706
709
|
* {@link sap.ui.model.odata.v4.ODataListBinding#setAggregation}.
|
|
707
710
|
* @param {string} [oAggregation.search] - Ignored
|
|
708
711
|
* @param {object} mQueryOptions
|
|
709
|
-
* A map of key-value pairs representing the query string
|
|
712
|
+
* A read-only map of key-value pairs representing the query string
|
|
710
713
|
* @param {string} [mQueryOptions.$$filterBeforeAggregate] - Removed from the returned map
|
|
711
714
|
* @param {string} [mQueryOptions.$apply] - Replaced in the returned map
|
|
712
715
|
* @param {string} [mQueryOptions.$count] - Removed from the returned map
|
|
@@ -793,7 +796,7 @@ sap.ui.define([
|
|
|
793
796
|
* Returns a copy of the given query options with a filtered "$orderby".
|
|
794
797
|
*
|
|
795
798
|
* @param {object} mQueryOptions
|
|
796
|
-
* A map of key-value pairs representing the query string
|
|
799
|
+
* A read-only map of key-value pairs representing the query string
|
|
797
800
|
* @param {object} oAggregation
|
|
798
801
|
* An object holding the information needed for data aggregation;
|
|
799
802
|
* (see {@link .buildApply})
|
|
@@ -1042,7 +1045,7 @@ sap.ui.define([
|
|
|
1042
1045
|
* @param {object} oAggregation
|
|
1043
1046
|
* An object holding the information needed for data aggregation; see {@link .buildApply}
|
|
1044
1047
|
* @param {object} mQueryOptions
|
|
1045
|
-
* A map of key-value pairs representing the query string
|
|
1048
|
+
* A read-only map of key-value pairs representing the query string
|
|
1046
1049
|
* @returns {object}
|
|
1047
1050
|
* The created query options
|
|
1048
1051
|
*
|
|
@@ -1085,7 +1088,7 @@ sap.ui.define([
|
|
|
1085
1088
|
* @param {object} oAggregation
|
|
1086
1089
|
* An object holding the information needed for data aggregation; see {@link .buildApply}
|
|
1087
1090
|
* @param {object} mQueryOptions
|
|
1088
|
-
* A map of key-value pairs representing the query string
|
|
1091
|
+
* A read-only map of key-value pairs representing the query string
|
|
1089
1092
|
* @returns {object}
|
|
1090
1093
|
* The created query options
|
|
1091
1094
|
*
|
|
@@ -1313,7 +1313,7 @@ sap.ui.define([
|
|
|
1313
1313
|
/**
|
|
1314
1314
|
* Returns this cache's query options.
|
|
1315
1315
|
*
|
|
1316
|
-
* @returns {object|undefined} The query options, if any
|
|
1316
|
+
* @returns {object|undefined} The query options, if any (requires "copy on write"!)
|
|
1317
1317
|
*
|
|
1318
1318
|
* @public
|
|
1319
1319
|
* @see #setQueryOptions
|
|
@@ -1522,19 +1522,17 @@ sap.ui.define([
|
|
|
1522
1522
|
mQueryOptions.$select.push(sMessagesPath);
|
|
1523
1523
|
bKeepReportedMessagesPath = true;
|
|
1524
1524
|
}
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
delete mQueryOptions.$search;
|
|
1531
|
-
sReadUrl += that.oRequestor.buildQueryString(that.sMetaPath, mQueryOptions, false,
|
|
1532
|
-
that.bSortExpandSelect);
|
|
1525
|
+
const mMergeableQueryOptions = _Helper.extractMergeableQueryOptions(mQueryOptions);
|
|
1526
|
+
mMergeableQueryOptions.$$sortIfMerged = true;
|
|
1527
|
+
sReadUrl += that.oRequestor.buildQueryString(that.sMetaPath, mQueryOptions,
|
|
1528
|
+
// drop system query options to allow merging with late property requests
|
|
1529
|
+
/*bDropSystemQueryOptions*/true, that.bSortExpandSelect);
|
|
1533
1530
|
|
|
1534
1531
|
that.bSentRequest = true;
|
|
1535
1532
|
return SyncPromise.all([
|
|
1536
1533
|
that.oRequestor
|
|
1537
|
-
.request("GET", sReadUrl, oGroupLock, undefined, undefined, fnDataRequested
|
|
1534
|
+
.request("GET", sReadUrl, oGroupLock, undefined, undefined, fnDataRequested,
|
|
1535
|
+
undefined, undefined, undefined, undefined, mMergeableQueryOptions),
|
|
1538
1536
|
that.fetchTypes()
|
|
1539
1537
|
]).then(function (aResult) {
|
|
1540
1538
|
var oElement = aResult[0];
|
|
@@ -1853,6 +1851,9 @@ sap.ui.define([
|
|
|
1853
1851
|
aElements[iIndex] = aElements.$byPredicate[sPredicate] = oElement;
|
|
1854
1852
|
sTransientPredicate = _Helper.getPrivateAnnotation(oOldElement, "transientPredicate");
|
|
1855
1853
|
if (sTransientPredicate) {
|
|
1854
|
+
if ("@$ui5.context.isInactive" in oOldElement) {
|
|
1855
|
+
oElement["@$ui5.context.isInactive"] = false;
|
|
1856
|
+
}
|
|
1856
1857
|
oElement["@$ui5.context.isTransient"] = false;
|
|
1857
1858
|
aElements.$byPredicate[sTransientPredicate] = oElement;
|
|
1858
1859
|
_Helper.setPrivateAnnotation(oElement, "transientPredicate", sTransientPredicate);
|
|
@@ -2096,7 +2097,7 @@ sap.ui.define([
|
|
|
2096
2097
|
* Updates this cache's query options if it has not yet sent a request.
|
|
2097
2098
|
*
|
|
2098
2099
|
* @param {object} [mQueryOptions={}]
|
|
2099
|
-
* The new query options
|
|
2100
|
+
* The new query options (requires "copy on write"!)
|
|
2100
2101
|
* @param {boolean} [bForce]
|
|
2101
2102
|
* Forces an update even if a request has been already sent
|
|
2102
2103
|
* @throws {Error}
|
|
@@ -2112,7 +2113,7 @@ sap.ui.define([
|
|
|
2112
2113
|
throw new Error("Cannot set query options: Cache has already sent a request");
|
|
2113
2114
|
}
|
|
2114
2115
|
|
|
2115
|
-
this.mQueryOptions = mQueryOptions;
|
|
2116
|
+
this.mQueryOptions = mQueryOptions; // Note: requires "copy on write"!
|
|
2116
2117
|
this.sQueryString = this.oRequestor.buildQueryString(this.sMetaPath, mQueryOptions, false,
|
|
2117
2118
|
this.bSortExpandSelect);
|
|
2118
2119
|
};
|
|
@@ -2687,7 +2688,7 @@ sap.ui.define([
|
|
|
2687
2688
|
* @param {string} sResourcePath
|
|
2688
2689
|
* A resource path relative to the service URL
|
|
2689
2690
|
* @param {object} [mQueryOptions]
|
|
2690
|
-
* A map of key-value pairs representing the query string
|
|
2691
|
+
* A map of key-value pairs representing the query string (requires "copy on write"!)
|
|
2691
2692
|
* @param {boolean} [bSortExpandSelect]
|
|
2692
2693
|
* Whether the paths in $expand and $select shall be sorted in the cache's query string
|
|
2693
2694
|
* @param {string} [sDeepResourcePath=sResourcePath]
|
|
@@ -3224,6 +3225,8 @@ sap.ui.define([
|
|
|
3224
3225
|
if (sNewPredicate) {
|
|
3225
3226
|
sPredicate = sNewPredicate;
|
|
3226
3227
|
oKeptElement = oElement; // leads to no-op for _Helper.updateNonExisting
|
|
3228
|
+
} else if (iIndex < iStart || iIndex >= iStart + iResultLength) {
|
|
3229
|
+
oKeptElement = oElement; // leads to no-op for _Helper.updateNonExisting
|
|
3227
3230
|
} else {
|
|
3228
3231
|
throw new Error("Duplicate key predicate: " + sPredicate);
|
|
3229
3232
|
}
|
|
@@ -4015,7 +4018,7 @@ sap.ui.define([
|
|
|
4015
4018
|
* rows and transient elements with a different batch group shall be kept in place and a
|
|
4016
4019
|
* backup shall be remembered for a later {@link #restore}
|
|
4017
4020
|
* @param {object} [mQueryOptions]
|
|
4018
|
-
* The new query options
|
|
4021
|
+
* The new query options (requires "copy on write"!)
|
|
4019
4022
|
* @param {object} [_oAggregation]
|
|
4020
4023
|
* An object holding the information needed for data aggregation; see also "OData Extension
|
|
4021
4024
|
* for Data Aggregation Version 4.0"; must already be normalized by
|
|
@@ -4217,7 +4220,7 @@ sap.ui.define([
|
|
|
4217
4220
|
* @param {string} sResourcePath
|
|
4218
4221
|
* A resource path relative to the service URL
|
|
4219
4222
|
* @param {object} [mQueryOptions]
|
|
4220
|
-
* A map of key-value pairs representing the query string
|
|
4223
|
+
* A map of key-value pairs representing the query string (requires "copy on write"!)
|
|
4221
4224
|
*
|
|
4222
4225
|
* @alias sap.ui.model.odata.v4.lib._PropertyCache
|
|
4223
4226
|
* @constructor
|
|
@@ -4327,7 +4330,7 @@ sap.ui.define([
|
|
|
4327
4330
|
* @param {string} sResourcePath
|
|
4328
4331
|
* A resource path relative to the service URL
|
|
4329
4332
|
* @param {object} [mQueryOptions]
|
|
4330
|
-
* A map of key-value pairs representing the query string
|
|
4333
|
+
* A map of key-value pairs representing the query string (requires "copy on write"!)
|
|
4331
4334
|
* @param {boolean} [bSortExpandSelect]
|
|
4332
4335
|
* Whether the paths in $expand and $select shall be sorted in the cache's query string
|
|
4333
4336
|
* @param {boolean} [bSharedRequest]
|
|
@@ -4595,7 +4598,9 @@ sap.ui.define([
|
|
|
4595
4598
|
}
|
|
4596
4599
|
}
|
|
4597
4600
|
|
|
4598
|
-
|
|
4601
|
+
// Note: ODLB#getKeepAliveContext creates an empty initial object w/ private annotations
|
|
4602
|
+
if (bIgnoreETag && oEntity && !("@odata.etag" in oEntity)
|
|
4603
|
+
&& !_Helper.isEmptyObject(_Helper.publicClone(oEntity))) {
|
|
4599
4604
|
bIgnoreETag = false;
|
|
4600
4605
|
}
|
|
4601
4606
|
if (bIgnoreETag || oEntity) {
|
|
@@ -4749,7 +4754,7 @@ sap.ui.define([
|
|
|
4749
4754
|
* @param {string} sResourcePath
|
|
4750
4755
|
* A resource path relative to the service URL
|
|
4751
4756
|
* @param {object} [mQueryOptions]
|
|
4752
|
-
* A map of key-value pairs representing the query string
|
|
4757
|
+
* A map of key-value pairs representing the query string (requires "copy on write"!)
|
|
4753
4758
|
* @private
|
|
4754
4759
|
*/
|
|
4755
4760
|
function _SingletonPropertyCache(oRequestor, sResourcePath, mQueryOptions) {
|
|
@@ -4845,9 +4850,9 @@ sap.ui.define([
|
|
|
4845
4850
|
* <br>
|
|
4846
4851
|
* Example: Products
|
|
4847
4852
|
* @param {object} [mQueryOptions]
|
|
4848
|
-
* A map of key-value pairs representing the query string
|
|
4849
|
-
* be a string or an array of strings; if it is an array, the
|
|
4850
|
-
* repeats the key for each array value.
|
|
4853
|
+
* A map of key-value pairs representing the query string (requires "copy on write"!), the
|
|
4854
|
+
* value in this pair has to be a string or an array of strings; if it is an array, the
|
|
4855
|
+
* resulting query string repeats the key for each array value.
|
|
4851
4856
|
* Examples:
|
|
4852
4857
|
* {foo : "bar", "bar" : "baz"} results in the query string "foo=bar&bar=baz"
|
|
4853
4858
|
* {foo : ["bar", "baz"]} results in the query string "foo=bar&foo=baz"
|
|
@@ -4915,9 +4920,9 @@ sap.ui.define([
|
|
|
4915
4920
|
* <br>
|
|
4916
4921
|
* Example: Products
|
|
4917
4922
|
* @param {object} [mQueryOptions]
|
|
4918
|
-
* A map of key-value pairs representing the query string
|
|
4919
|
-
* be a string or an array of strings; if it is an array, the
|
|
4920
|
-
* repeats the key for each array value.
|
|
4923
|
+
* A map of key-value pairs representing the query string (requires "copy on write"!), the
|
|
4924
|
+
* value in this pair has to be a string or an array of strings; if it is an array, the
|
|
4925
|
+
* resulting query string repeats the key for each array value.
|
|
4921
4926
|
* Examples:
|
|
4922
4927
|
* {foo : "bar", "bar" : "baz"} results in the query string "foo=bar&bar=baz"
|
|
4923
4928
|
* {foo : ["bar", "baz"]} results in the query string "foo=bar&foo=baz"
|
|
@@ -4943,9 +4948,9 @@ sap.ui.define([
|
|
|
4943
4948
|
* <br>
|
|
4944
4949
|
* Example: Products
|
|
4945
4950
|
* @param {object} [mQueryOptions]
|
|
4946
|
-
* A map of key-value pairs representing the query string
|
|
4947
|
-
* be a string or an array of strings; if it is an array, the
|
|
4948
|
-
* repeats the key for each array value.
|
|
4951
|
+
* A map of key-value pairs representing the query string (requires "copy on write"!), the
|
|
4952
|
+
* value in this pair has to be a string or an array of strings; if it is an array, the
|
|
4953
|
+
* resulting query string repeats the key for each array value.
|
|
4949
4954
|
* Examples:
|
|
4950
4955
|
* {foo : "bar", "bar" : "baz"} results in the query string "foo=bar&bar=baz"
|
|
4951
4956
|
* {foo : ["bar", "baz"]} results in the query string "foo=bar&foo=baz"
|
|
@@ -144,8 +144,8 @@ sap.ui.define([
|
|
|
144
144
|
/**
|
|
145
145
|
* Adds the given paths to $select of the given query options.
|
|
146
146
|
*
|
|
147
|
-
* @param {object} mQueryOptions The query options
|
|
148
|
-
* @param {string[]} aSelectPaths The paths to add to $select
|
|
147
|
+
* @param {object} mQueryOptions - The query options to be MODIFIED
|
|
148
|
+
* @param {string[]} aSelectPaths - The paths to add to $select
|
|
149
149
|
*
|
|
150
150
|
* @public
|
|
151
151
|
*/
|
|
@@ -237,9 +237,10 @@ sap.ui.define([
|
|
|
237
237
|
* Recursively merges $select and $expand from mQueryOptions into mAggregatedQueryOptions.
|
|
238
238
|
* All other query options in mAggregatedQueryOptions remain untouched.
|
|
239
239
|
*
|
|
240
|
-
* @param {object} mAggregatedQueryOptions
|
|
241
|
-
*
|
|
242
|
-
*
|
|
240
|
+
* @param {object} mAggregatedQueryOptions
|
|
241
|
+
* The aggregated query options to be MODIFIED
|
|
242
|
+
* @param {object} mQueryOptions
|
|
243
|
+
* The read-only query options to merge into the aggregated query options
|
|
243
244
|
*
|
|
244
245
|
* @public
|
|
245
246
|
*/
|
|
@@ -302,7 +303,8 @@ sap.ui.define([
|
|
|
302
303
|
/**
|
|
303
304
|
* Builds a query string from the given parameter map. Takes care of encoding, but ensures
|
|
304
305
|
* that the characters "$", "(", ")", ";" and "=" are not encoded, so that OData queries
|
|
305
|
-
* remain readable.
|
|
306
|
+
* remain readable. A parameter starting with "$$" is meant to be internal and does not
|
|
307
|
+
* become part of the query string.
|
|
306
308
|
*
|
|
307
309
|
* ';' is not encoded although RFC 1866 encourages its usage as separator between query
|
|
308
310
|
* parameters. However OData Version 4.0 Part 2 specifies that only '&' is a valid
|
|
@@ -330,7 +332,7 @@ sap.ui.define([
|
|
|
330
332
|
return "";
|
|
331
333
|
}
|
|
332
334
|
|
|
333
|
-
aKeys = Object.keys(mParameters);
|
|
335
|
+
aKeys = Object.keys(mParameters).filter((sKey) => !sKey.startsWith("$$"));
|
|
334
336
|
if (aKeys.length === 0) {
|
|
335
337
|
return "";
|
|
336
338
|
}
|
|
@@ -493,7 +495,7 @@ sap.ui.define([
|
|
|
493
495
|
*
|
|
494
496
|
* $expand must not contain collection-valued navigation properties.
|
|
495
497
|
*
|
|
496
|
-
* @param {object} mQueryOptions - The query options
|
|
498
|
+
* @param {object} mQueryOptions - The read-only query options
|
|
497
499
|
* @returns {string[]} The paths
|
|
498
500
|
*
|
|
499
501
|
* @public
|
|
@@ -604,7 +606,7 @@ sap.ui.define([
|
|
|
604
606
|
* status code 412 and response header "Preference-Applied:handling=strict"
|
|
605
607
|
* </ul>
|
|
606
608
|
* @see <a href=
|
|
607
|
-
* "
|
|
609
|
+
* "https://docs.oasis-open.org/odata/odata-json-format/v4.0/odata-json-format-v4.0.html#_Representing_Errors_in"
|
|
608
610
|
* >"19 Error Response"</a>
|
|
609
611
|
*
|
|
610
612
|
* @public
|
|
@@ -710,6 +712,10 @@ sap.ui.define([
|
|
|
710
712
|
* <code>null</code> value
|
|
711
713
|
*
|
|
712
714
|
* @public
|
|
715
|
+
* @see .deleteProperty
|
|
716
|
+
* @see .drillDown
|
|
717
|
+
* @see .inheritPathValue
|
|
718
|
+
* @see .makeUpdateData
|
|
713
719
|
*/
|
|
714
720
|
createMissing : function (oObject, aSegments) {
|
|
715
721
|
aSegments.reduce(function (oCurrent, sSegment, i) {
|
|
@@ -895,6 +901,10 @@ sap.ui.define([
|
|
|
895
901
|
* @param {string} sPath - Some relative path
|
|
896
902
|
*
|
|
897
903
|
* @public
|
|
904
|
+
* @see .createMissing
|
|
905
|
+
* @see .drillDown
|
|
906
|
+
* @see .inheritPathValue
|
|
907
|
+
* @see .makeUpdateData
|
|
898
908
|
*/
|
|
899
909
|
deleteProperty : function (oObject, sPath) {
|
|
900
910
|
var aSegments;
|
|
@@ -950,6 +960,10 @@ sap.ui.define([
|
|
|
950
960
|
* into void
|
|
951
961
|
*
|
|
952
962
|
* @public
|
|
963
|
+
* @see .createMissing
|
|
964
|
+
* @see .deleteProperty
|
|
965
|
+
* @see .inheritPathValue
|
|
966
|
+
* @see .makeUpdateData
|
|
953
967
|
*/
|
|
954
968
|
drillDown : function (oObject, vSegments) {
|
|
955
969
|
if (typeof vSegments === "string") {
|
|
@@ -1004,24 +1018,21 @@ sap.ui.define([
|
|
|
1004
1018
|
* Extracts the mergeable query options "$expand" and "$select" from the given ones, returns
|
|
1005
1019
|
* them as a new map while replacing their value with "~" in the old map.
|
|
1006
1020
|
*
|
|
1007
|
-
* @param {object} mQueryOptions
|
|
1008
|
-
*
|
|
1009
|
-
* @returns {object}
|
|
1010
|
-
* The extracted query options
|
|
1021
|
+
* @param {object} mQueryOptions - The original query options to be MODIFIED
|
|
1022
|
+
* @returns {object} The extracted query options in the same order
|
|
1011
1023
|
*
|
|
1012
1024
|
* @public
|
|
1013
1025
|
*/
|
|
1014
1026
|
extractMergeableQueryOptions : function (mQueryOptions) {
|
|
1015
1027
|
var mExtractedQueryOptions = {};
|
|
1016
1028
|
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
}
|
|
1029
|
+
// ensure to keep the order of the query options
|
|
1030
|
+
Object.keys(mQueryOptions).forEach(function (sKey) {
|
|
1031
|
+
if (sKey === "$expand" || sKey === "$select") {
|
|
1032
|
+
mExtractedQueryOptions[sKey] = mQueryOptions[sKey];
|
|
1033
|
+
mQueryOptions[sKey] = "~";
|
|
1034
|
+
}
|
|
1035
|
+
});
|
|
1025
1036
|
|
|
1026
1037
|
return mExtractedQueryOptions;
|
|
1027
1038
|
},
|
|
@@ -1668,7 +1679,8 @@ sap.ui.define([
|
|
|
1668
1679
|
* care of the details).
|
|
1669
1680
|
*
|
|
1670
1681
|
* @param {object|object[]} vEntityOrCollection - The entity (collection)
|
|
1671
|
-
* @param {object} mQueryOptions
|
|
1682
|
+
* @param {object} mQueryOptions
|
|
1683
|
+
* The read-only query options (only $select and $expand required)
|
|
1672
1684
|
* @returns {string[]}
|
|
1673
1685
|
* A list of paths relative to vEntityOrCollection for which the property value is missing
|
|
1674
1686
|
* @throws {Error} If there is a path containing "*"
|
|
@@ -1755,7 +1767,7 @@ sap.ui.define([
|
|
|
1755
1767
|
* Returns the query options corresponding to the given path.
|
|
1756
1768
|
*
|
|
1757
1769
|
* @param {object} [mQueryOptions]
|
|
1758
|
-
* A map of query options as returned by
|
|
1770
|
+
* A map of read-only query options as returned by
|
|
1759
1771
|
* {@link sap.ui.model.odata.v4.ODataModel#buildQueryOptions}
|
|
1760
1772
|
* @param {string} sPath
|
|
1761
1773
|
* The path of the cache value in the cache
|
|
@@ -1946,6 +1958,10 @@ sap.ui.define([
|
|
|
1946
1958
|
* untolerated <code>null</code> value
|
|
1947
1959
|
*
|
|
1948
1960
|
* @public
|
|
1961
|
+
* @see .createMissing
|
|
1962
|
+
* @see .deleteProperty
|
|
1963
|
+
* @see .drillDown
|
|
1964
|
+
* @see .makeUpdateData
|
|
1949
1965
|
*/
|
|
1950
1966
|
inheritPathValue : function (aSegments, oSource, oTarget, bTolerateNull) {
|
|
1951
1967
|
aSegments.forEach(function (sSegment, i) {
|
|
@@ -1997,7 +2013,7 @@ sap.ui.define([
|
|
|
1997
2013
|
* key predicate.
|
|
1998
2014
|
*
|
|
1999
2015
|
* @param {object} [mCacheQueryOptions]
|
|
2000
|
-
* A map of query options as returned by
|
|
2016
|
+
* A read-only map of query options as returned by
|
|
2001
2017
|
* {@link sap.ui.model.odata.v4.ODataModel#buildQueryOptions}
|
|
2002
2018
|
* @param {string[]} aPaths
|
|
2003
2019
|
* The "14.5.11 Expression edm:NavigationPropertyPath" or
|
|
@@ -2206,7 +2222,7 @@ sap.ui.define([
|
|
|
2206
2222
|
// The safe integers consist of all integers from -(2^53 - 1) inclusive to 2^53 - 1
|
|
2207
2223
|
// inclusive.
|
|
2208
2224
|
// 2^53 - 1 = 9007199254740991
|
|
2209
|
-
return iNumber <=
|
|
2225
|
+
return iNumber <= Number.MAX_SAFE_INTEGER && Math.floor(iNumber) === iNumber;
|
|
2210
2226
|
},
|
|
2211
2227
|
|
|
2212
2228
|
/**
|
|
@@ -2227,7 +2243,7 @@ sap.ui.define([
|
|
|
2227
2243
|
* ok, because within all known scenarios such combinations do not happen.
|
|
2228
2244
|
*
|
|
2229
2245
|
* @param {string} sPropertyPath The path to the structural property as meta path
|
|
2230
|
-
* @param {object} [mQueryOptions] The query options to be analyzed
|
|
2246
|
+
* @param {object} [mQueryOptions] The read-only query options to be analyzed
|
|
2231
2247
|
* @returns {boolean} Whether the property for the given path was already selected
|
|
2232
2248
|
*
|
|
2233
2249
|
* @public
|
|
@@ -2307,6 +2323,10 @@ sap.ui.define([
|
|
|
2307
2323
|
* The resulting object
|
|
2308
2324
|
*
|
|
2309
2325
|
* @public
|
|
2326
|
+
* @see .createMissing
|
|
2327
|
+
* @see .deleteProperty
|
|
2328
|
+
* @see .drillDown
|
|
2329
|
+
* @see .inheritPathValue
|
|
2310
2330
|
*/
|
|
2311
2331
|
makeUpdateData : function (aPropertyPath, vValue, bUpdating) {
|
|
2312
2332
|
return aPropertyPath.reduceRight(function (vValue0, sSegment) {
|
|
@@ -2330,7 +2350,7 @@ sap.ui.define([
|
|
|
2330
2350
|
* Ensures that the original map is left unchanged, but creates a copy only if necessary.
|
|
2331
2351
|
*
|
|
2332
2352
|
* @param {object} [mQueryOptions]
|
|
2333
|
-
* The map of query options
|
|
2353
|
+
* The read-only map of query options
|
|
2334
2354
|
* @param {string} [sOrderby]
|
|
2335
2355
|
* The new value for the query option "$orderby"
|
|
2336
2356
|
* @param {string[]} [aFilters]
|
|
@@ -2640,10 +2660,8 @@ sap.ui.define([
|
|
|
2640
2660
|
/**
|
|
2641
2661
|
* Adds the key properties of the given entity type to $select of the given query options.
|
|
2642
2662
|
*
|
|
2643
|
-
* @param {object} mQueryOptions
|
|
2644
|
-
*
|
|
2645
|
-
* @param {object} oType
|
|
2646
|
-
* The entity type's metadata "JSON"
|
|
2663
|
+
* @param {object} mQueryOptions - The query options to be MODIFIED
|
|
2664
|
+
* @param {object} oType - The entity type's metadata "JSON"
|
|
2647
2665
|
*
|
|
2648
2666
|
* @public
|
|
2649
2667
|
*/
|
|
@@ -2941,7 +2959,7 @@ sap.ui.define([
|
|
|
2941
2959
|
* regarding order and count.
|
|
2942
2960
|
*
|
|
2943
2961
|
* @param {object} mChangeListeners - A map of change listeners by path
|
|
2944
|
-
* @param {object} mQueryOptions - The query options
|
|
2962
|
+
* @param {object} mQueryOptions - The read-only query options
|
|
2945
2963
|
* @param {string} sPath
|
|
2946
2964
|
* The path of the target entity relative to mChangeListeners and mQueryOptions
|
|
2947
2965
|
* @param {object} oTargetEntity - The target entity
|
|
@@ -25,7 +25,7 @@ sap.ui.define([
|
|
|
25
25
|
* Extension for Data Aggregation Version 4.0"; must already be normalized by
|
|
26
26
|
* {@link _AggregationHelper.buildApply}
|
|
27
27
|
* @param {object} mQueryOptions
|
|
28
|
-
* A map of key-value pairs representing the query string
|
|
28
|
+
* A map of key-value pairs representing the query string (requires "copy on write"!)
|
|
29
29
|
* @returns {sap.ui.model.odata.v4.lib._Cache}
|
|
30
30
|
* The cache
|
|
31
31
|
*/
|
|
@@ -192,11 +192,14 @@ sap.ui.define([
|
|
|
192
192
|
* @param {string} sResourcePath The resource path with possible query options and placeholders
|
|
193
193
|
* @param {string} sMetaPath The absolute meta path matching the resource path
|
|
194
194
|
* @param {object} mQueryOptions Query options to add to the resource path
|
|
195
|
+
* @param {boolean} [bSortSystemQueryOptions]
|
|
196
|
+
* Whether system query options are sorted alphabetically and moved to the query string's end
|
|
195
197
|
* @returns {string} The resource path with the query options
|
|
196
198
|
*
|
|
197
199
|
* @private
|
|
198
200
|
*/
|
|
199
|
-
_Requestor.prototype.addQueryString = function (sResourcePath, sMetaPath, mQueryOptions
|
|
201
|
+
_Requestor.prototype.addQueryString = function (sResourcePath, sMetaPath, mQueryOptions,
|
|
202
|
+
bSortSystemQueryOptions) {
|
|
200
203
|
var sQueryString;
|
|
201
204
|
|
|
202
205
|
mQueryOptions = this.convertQueryOptions(sMetaPath, mQueryOptions, false, true);
|
|
@@ -209,7 +212,7 @@ sap.ui.define([
|
|
|
209
212
|
return _Helper.encodePair(sOption, sValue);
|
|
210
213
|
});
|
|
211
214
|
|
|
212
|
-
sQueryString = _Helper.buildQuery(mQueryOptions);
|
|
215
|
+
sQueryString = _Helper.buildQuery(mQueryOptions, bSortSystemQueryOptions);
|
|
213
216
|
if (!sQueryString) {
|
|
214
217
|
return sResourcePath;
|
|
215
218
|
}
|
|
@@ -297,7 +300,7 @@ sap.ui.define([
|
|
|
297
300
|
* @param {string} sMetaPath
|
|
298
301
|
* The meta path corresponding to the resource path
|
|
299
302
|
* @param {object} [mQueryOptions]
|
|
300
|
-
* A map of key-value pairs representing the query string
|
|
303
|
+
* A read-only map of key-value pairs representing the query string
|
|
301
304
|
* @param {boolean} [bDropSystemQueryOptions]
|
|
302
305
|
* Whether all system query options are dropped (useful for non-GET requests)
|
|
303
306
|
* @param {boolean} [bSortExpandSelect]
|
|
@@ -708,7 +711,7 @@ sap.ui.define([
|
|
|
708
711
|
*
|
|
709
712
|
* @param {string} sMetaPath
|
|
710
713
|
* The meta path corresponding to the resource path
|
|
711
|
-
* @param {object} [mQueryOptions] The query options
|
|
714
|
+
* @param {object} [mQueryOptions] The read-only query options
|
|
712
715
|
* @param {boolean} [bDropSystemQueryOptions]
|
|
713
716
|
* Whether all system query options are dropped (useful for non-GET requests)
|
|
714
717
|
* @param {boolean} [bSortExpandSelect]
|
|
@@ -812,7 +815,7 @@ sap.ui.define([
|
|
|
812
815
|
*
|
|
813
816
|
* @param {string} _sMetaPath
|
|
814
817
|
* The meta path corresponding to the resource path
|
|
815
|
-
* @param {object} mQueryOptions The query options
|
|
818
|
+
* @param {object} mQueryOptions The read-only query options
|
|
816
819
|
* @param {function (string,any)} fnResultHandler
|
|
817
820
|
* The function to process the converted options getting the name and the value
|
|
818
821
|
* @param {boolean} [bDropSystemQueryOptions]
|
|
@@ -1285,6 +1288,9 @@ sap.ui.define([
|
|
|
1285
1288
|
if (oCandidate.$mergeRequests && oRequest.$mergeRequests) {
|
|
1286
1289
|
oCandidate.$mergeRequests(oRequest.$mergeRequests());
|
|
1287
1290
|
}
|
|
1291
|
+
oCandidate.$sortSystemQueryOptions
|
|
1292
|
+
||= oCandidate.$queryOptions.$$sortIfMerged
|
|
1293
|
+
|| oRequest.$queryOptions.$$sortIfMerged;
|
|
1288
1294
|
|
|
1289
1295
|
return true;
|
|
1290
1296
|
}
|
|
@@ -1302,10 +1308,12 @@ sap.ui.define([
|
|
|
1302
1308
|
var mQueryOptions = oRequest.$queryOptions;
|
|
1303
1309
|
|
|
1304
1310
|
if (mQueryOptions) {
|
|
1305
|
-
if
|
|
1311
|
+
// if there was no $select, don't introduce one
|
|
1312
|
+
if (mQueryOptions.$expand && mQueryOptions.$select?.length === 0) {
|
|
1306
1313
|
mQueryOptions.$select = Object.keys(mQueryOptions.$expand).sort().slice(0, 1);
|
|
1307
1314
|
}
|
|
1308
|
-
oRequest.url = that.addQueryString(oRequest.url, oRequest.$metaPath, mQueryOptions
|
|
1315
|
+
oRequest.url = that.addQueryString(oRequest.url, oRequest.$metaPath, mQueryOptions,
|
|
1316
|
+
oRequest.$sortSystemQueryOptions);
|
|
1309
1317
|
}
|
|
1310
1318
|
});
|
|
1311
1319
|
aResultingRequests.iChangeSet = aRequests.iChangeSet;
|
|
@@ -1853,10 +1861,12 @@ sap.ui.define([
|
|
|
1853
1861
|
* contain $expand
|
|
1854
1862
|
* @param {any} [vOwner]
|
|
1855
1863
|
* An additional precondition for the merging of GET requests: the owner must be identical.
|
|
1864
|
+
* This is probably relevant when using parameter <code>fnMergeRequests</code> to ensure both
|
|
1865
|
+
* functions work well together.
|
|
1856
1866
|
* @param {function(string[]):string[]} [fnMergeRequests]
|
|
1857
1867
|
* Function which is called during merging of GET or PATCH requests. If a merged request has a
|
|
1858
|
-
* function given, this function will be called and its return value is
|
|
1859
|
-
*
|
|
1868
|
+
* function given, this function will be called and its return value is given to the one
|
|
1869
|
+
* remaining request's function as a parameter. See also <code>vOwner</code>.
|
|
1860
1870
|
* @returns {Promise}
|
|
1861
1871
|
* A promise on the outcome of the HTTP request; it will be rejected with an error having the
|
|
1862
1872
|
* property <code>canceled = true</code> instead of sending a request if
|
|
@@ -764,7 +764,7 @@ sap.ui.define([
|
|
|
764
764
|
|
|
765
765
|
/**
|
|
766
766
|
* Formats a given internal value into a literal suitable for usage in OData V2 URLs. See
|
|
767
|
-
*
|
|
767
|
+
* https://www.odata.org/documentation/odata-version-2-0/overview#AbstractTypeSystem.
|
|
768
768
|
*
|
|
769
769
|
* @param {any} vValue
|
|
770
770
|
* The value
|
|
@@ -227,7 +227,7 @@ sap.ui.define([
|
|
|
227
227
|
*
|
|
228
228
|
* @extends sap.ui.model.Model
|
|
229
229
|
* @public
|
|
230
|
-
* @version 1.
|
|
230
|
+
* @version 1.140.0
|
|
231
231
|
*/
|
|
232
232
|
var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
|
|
233
233
|
|
|
@@ -27,7 +27,7 @@ sap.ui.define([
|
|
|
27
27
|
* @extends sap.ui.model.SimpleType
|
|
28
28
|
*
|
|
29
29
|
* @author SAP SE
|
|
30
|
-
* @version 1.
|
|
30
|
+
* @version 1.140.0
|
|
31
31
|
*
|
|
32
32
|
* @public
|
|
33
33
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.Date
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.140.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.DateInterval
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.140.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|