@openui5/sap.ui.core 1.139.0 → 1.139.1
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/THIRDPARTY.txt +1 -1
- 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.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 +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- 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/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 +1 -1
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +1 -1
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +1 -1
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +2 -2
- 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 +1 -1
- 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 +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/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/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 +7 -4
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Popup.js +9 -2
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +1 -1
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/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/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/interaction/KeyboardInteractionDisplay.js +21 -2
- 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/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 +1 -1
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/History.js +1 -0
- 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/theming/ThemeManager.js +7 -3
- 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 +1 -1
- package/src/sap/ui/core/webc/WebComponentMetadata.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/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +1 -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 +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- 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 +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 +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +10 -2
- package/src/sap/ui/model/odata/v4/Context.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +27 -42
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +11 -11
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +16 -6
- 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/generic/TestBase.js +1 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader.js +1 -1
|
@@ -74,7 +74,7 @@ sap.ui.define([
|
|
|
74
74
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
75
75
|
* @public
|
|
76
76
|
* @since 1.37.0
|
|
77
|
-
* @version 1.139.
|
|
77
|
+
* @version 1.139.1
|
|
78
78
|
*
|
|
79
79
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
80
80
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
@@ -60,7 +60,7 @@ sap.ui.define([
|
|
|
60
60
|
* @mixes sap.ui.model.odata.v4.ODataParentBinding
|
|
61
61
|
* @public
|
|
62
62
|
* @since 1.37.0
|
|
63
|
-
* @version 1.139.
|
|
63
|
+
* @version 1.139.1
|
|
64
64
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
65
65
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
66
66
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -240,7 +240,7 @@ sap.ui.define([
|
|
|
240
240
|
* @extends sap.ui.model.Model
|
|
241
241
|
* @public
|
|
242
242
|
* @since 1.37.0
|
|
243
|
-
* @version 1.139.
|
|
243
|
+
* @version 1.139.1
|
|
244
244
|
*/
|
|
245
245
|
ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
246
246
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @mixes sap.ui.model.odata.v4.ODataBinding
|
|
43
43
|
* @public
|
|
44
44
|
* @since 1.37.0
|
|
45
|
-
* @version 1.139.
|
|
45
|
+
* @version 1.139.1
|
|
46
46
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
47
47
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
48
48
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -1308,7 +1308,7 @@ sap.ui.define([
|
|
|
1308
1308
|
throw new Error("Unsupported path: " + sPath);
|
|
1309
1309
|
}
|
|
1310
1310
|
|
|
1311
|
-
const mQueryOptions = _Helper.clone(this.
|
|
1311
|
+
const mQueryOptions = _Helper.clone({...this.mQueryOptions, ...this.mLateExpandSelect});
|
|
1312
1312
|
const iIndex = mQueryOptions.$select.indexOf(this.oAggregation.$NodeProperty);
|
|
1313
1313
|
if (iIndex >= 0) {
|
|
1314
1314
|
mQueryOptions.$select.splice(iIndex, 1);
|
|
@@ -586,7 +586,7 @@ sap.ui.define([
|
|
|
586
586
|
_Helper.getPrivateAnnotation(oEntityData, "select"));
|
|
587
587
|
if (!bDeepCreate) { // after a deep create the complete response is accepted
|
|
588
588
|
aSelect = _Helper.getQueryOptionsForPath(
|
|
589
|
-
that.
|
|
589
|
+
that.mLateExpandSelect || that.mQueryOptions, sPath
|
|
590
590
|
).$select;
|
|
591
591
|
}
|
|
592
592
|
// update selected properties (or in case of a deep create all of them incl.
|
|
@@ -998,7 +998,7 @@ sap.ui.define([
|
|
|
998
998
|
}
|
|
999
999
|
}
|
|
1000
1000
|
|
|
1001
|
-
if (!(this.
|
|
1001
|
+
if (!(this.mLateExpandSelect || this.mQueryOptions && this.mQueryOptions.$select)) {
|
|
1002
1002
|
return false; // no autoExpandSelect
|
|
1003
1003
|
}
|
|
1004
1004
|
|
|
@@ -1011,7 +1011,7 @@ sap.ui.define([
|
|
|
1011
1011
|
aUpdateProperties = [sRequestedPropertyPath];
|
|
1012
1012
|
|
|
1013
1013
|
sFullResourceMetaPath = _Helper.buildPath(this.sMetaPath, sResourceMetaPath);
|
|
1014
|
-
mQueryOptions = this.
|
|
1014
|
+
mQueryOptions = this.mLateExpandSelect
|
|
1015
1015
|
|| { // ensure that $select precedes $expand in the resulting query
|
|
1016
1016
|
$select : this.mQueryOptions.$select,
|
|
1017
1017
|
$expand : this.mQueryOptions.$expand
|
|
@@ -1284,18 +1284,6 @@ sap.ui.define([
|
|
|
1284
1284
|
return aFilteredElements;
|
|
1285
1285
|
};
|
|
1286
1286
|
|
|
1287
|
-
/**
|
|
1288
|
-
* Returns the query options for late properties.
|
|
1289
|
-
*
|
|
1290
|
-
* @returns {object} The late query options
|
|
1291
|
-
*
|
|
1292
|
-
* @public
|
|
1293
|
-
* @see #setLateQueryOptions
|
|
1294
|
-
*/
|
|
1295
|
-
_Cache.prototype.getLateQueryOptions = function () {
|
|
1296
|
-
return this.mLateQueryOptions;
|
|
1297
|
-
};
|
|
1298
|
-
|
|
1299
1287
|
/**
|
|
1300
1288
|
* Returns a promise that is pending while DELETEs or POSTs are being sent, or
|
|
1301
1289
|
* <code>null</code> in case no such requests are currently being sent.
|
|
@@ -1511,10 +1499,10 @@ sap.ui.define([
|
|
|
1511
1499
|
throw new Error("No key predicate known");
|
|
1512
1500
|
}
|
|
1513
1501
|
sReadUrl = _Helper.buildPath(that.sResourcePath, sPath, sPredicate);
|
|
1514
|
-
if (bKeepAlive && that.
|
|
1502
|
+
if (bKeepAlive && that.mLateExpandSelect) {
|
|
1515
1503
|
// bKeepAlive === true -> own cache of the list binding -> sPath === ''
|
|
1516
1504
|
// -> no need to apply _Helper.getQueryOptionsForPath
|
|
1517
|
-
_Helper.aggregateExpandSelect(mQueryOptions, that.
|
|
1505
|
+
_Helper.aggregateExpandSelect(mQueryOptions, that.mLateExpandSelect);
|
|
1518
1506
|
}
|
|
1519
1507
|
if (sMessagesPath && mQueryOptions.$select
|
|
1520
1508
|
&& !mQueryOptions.$select.includes(sMessagesPath)) {
|
|
@@ -1522,19 +1510,17 @@ sap.ui.define([
|
|
|
1522
1510
|
mQueryOptions.$select.push(sMessagesPath);
|
|
1523
1511
|
bKeepReportedMessagesPath = true;
|
|
1524
1512
|
}
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
delete mQueryOptions.$search;
|
|
1531
|
-
sReadUrl += that.oRequestor.buildQueryString(that.sMetaPath, mQueryOptions, false,
|
|
1532
|
-
that.bSortExpandSelect);
|
|
1513
|
+
const mMergeableQueryOptions = _Helper.extractMergeableQueryOptions(mQueryOptions);
|
|
1514
|
+
mMergeableQueryOptions.$$sortIfMerged = true;
|
|
1515
|
+
sReadUrl += that.oRequestor.buildQueryString(that.sMetaPath, mQueryOptions,
|
|
1516
|
+
// drop system query options to allow merging with late property requests
|
|
1517
|
+
/*bDropSystemQueryOptions*/true, that.bSortExpandSelect);
|
|
1533
1518
|
|
|
1534
1519
|
that.bSentRequest = true;
|
|
1535
1520
|
return SyncPromise.all([
|
|
1536
1521
|
that.oRequestor
|
|
1537
|
-
.request("GET", sReadUrl, oGroupLock, undefined, undefined, fnDataRequested
|
|
1522
|
+
.request("GET", sReadUrl, oGroupLock, undefined, undefined, fnDataRequested,
|
|
1523
|
+
undefined, undefined, undefined, undefined, mMergeableQueryOptions),
|
|
1538
1524
|
that.fetchTypes()
|
|
1539
1525
|
]).then(function (aResult) {
|
|
1540
1526
|
var oElement = aResult[0];
|
|
@@ -1641,10 +1627,10 @@ sap.ui.define([
|
|
|
1641
1627
|
|
|
1642
1628
|
that.bSentRequest = true;
|
|
1643
1629
|
if (bKeepAlive) {
|
|
1644
|
-
if (that.
|
|
1630
|
+
if (that.mLateExpandSelect) {
|
|
1645
1631
|
// bKeepAlive === true -> own cache of the list binding -> sPath === ''
|
|
1646
1632
|
// -> no need to apply _Helper.getQueryOptionsForPath
|
|
1647
|
-
_Helper.aggregateExpandSelect(mQueryOptions, that.
|
|
1633
|
+
_Helper.aggregateExpandSelect(mQueryOptions, that.mLateExpandSelect);
|
|
1648
1634
|
}
|
|
1649
1635
|
// clone query options for possible second request to check if entity is in
|
|
1650
1636
|
// the collection
|
|
@@ -2042,26 +2028,25 @@ sap.ui.define([
|
|
|
2042
2028
|
|
|
2043
2029
|
/**
|
|
2044
2030
|
* Sets query options after the cache has sent a request to allow adding late properties.
|
|
2045
|
-
*
|
|
2031
|
+
* Remembers only $expand and $select, and ignores others.
|
|
2046
2032
|
*
|
|
2047
2033
|
* @param {object} mQueryOptions
|
|
2048
2034
|
* The new late query options or <code>null</code> to reset
|
|
2049
2035
|
*
|
|
2050
2036
|
* @public
|
|
2051
|
-
* @see #getLateQueryOptions
|
|
2052
2037
|
* @see #hasSentRequest
|
|
2053
2038
|
*/
|
|
2054
2039
|
_Cache.prototype.setLateQueryOptions = function (mQueryOptions) {
|
|
2055
2040
|
// this.checkSharedRequest(); // don't do that here! it might work well enough
|
|
2056
2041
|
if (mQueryOptions) {
|
|
2057
|
-
this.
|
|
2042
|
+
this.mLateExpandSelect = {
|
|
2058
2043
|
// must contain both properties for requestSideEffects
|
|
2059
2044
|
// ensure that $select precedes $expand in the resulting query
|
|
2060
2045
|
$select : mQueryOptions.$select,
|
|
2061
2046
|
$expand : mQueryOptions.$expand
|
|
2062
2047
|
};
|
|
2063
2048
|
} else {
|
|
2064
|
-
this.
|
|
2049
|
+
this.mLateExpandSelect = null;
|
|
2065
2050
|
}
|
|
2066
2051
|
};
|
|
2067
2052
|
|
|
@@ -2141,7 +2126,7 @@ sap.ui.define([
|
|
|
2141
2126
|
this.oTypePromise = undefined;
|
|
2142
2127
|
|
|
2143
2128
|
// the query options extended by $select for late properties
|
|
2144
|
-
this.
|
|
2129
|
+
this.mLateExpandSelect = null;
|
|
2145
2130
|
// map from resource path to request Promise for pending late property requests
|
|
2146
2131
|
this.mPropertyRequestByPath = {};
|
|
2147
2132
|
};
|
|
@@ -3542,8 +3527,8 @@ sap.ui.define([
|
|
|
3542
3527
|
var aKeyFilters,
|
|
3543
3528
|
mQueryOptions = _Helper.clone(that.mQueryOptions);
|
|
3544
3529
|
|
|
3545
|
-
if (that.
|
|
3546
|
-
_Helper.aggregateExpandSelect(mQueryOptions, that.
|
|
3530
|
+
if (that.mLateExpandSelect) {
|
|
3531
|
+
_Helper.aggregateExpandSelect(mQueryOptions, that.mLateExpandSelect);
|
|
3547
3532
|
}
|
|
3548
3533
|
if (bDropApply) {
|
|
3549
3534
|
delete mQueryOptions.$apply;
|
|
@@ -3945,7 +3930,7 @@ sap.ui.define([
|
|
|
3945
3930
|
this.checkSharedRequest();
|
|
3946
3931
|
|
|
3947
3932
|
mQueryOptions = _Helper.intersectQueryOptions(
|
|
3948
|
-
Object.assign({}, this.mQueryOptions, this.
|
|
3933
|
+
Object.assign({}, this.mQueryOptions, this.mLateExpandSelect), aPaths,
|
|
3949
3934
|
this.oRequestor.getModelInterface().fetchMetadata, this.sMetaPath, "", bWithMessages);
|
|
3950
3935
|
if (!mQueryOptions) {
|
|
3951
3936
|
return SyncPromise.resolve(); // micro optimization: use *sync.* promise which is cached
|
|
@@ -4657,7 +4642,7 @@ sap.ui.define([
|
|
|
4657
4642
|
this.checkSharedRequest();
|
|
4658
4643
|
|
|
4659
4644
|
mQueryOptions = this.oPromise && _Helper.intersectQueryOptions(
|
|
4660
|
-
Object.assign({}, this.mQueryOptions, this.
|
|
4645
|
+
Object.assign({}, this.mQueryOptions, this.mLateExpandSelect), aPaths,
|
|
4661
4646
|
this.oRequestor.getModelInterface().fetchMetadata, this.sMetaPath);
|
|
4662
4647
|
if (!mQueryOptions) {
|
|
4663
4648
|
return SyncPromise.resolve();
|
|
@@ -4782,7 +4767,7 @@ sap.ui.define([
|
|
|
4782
4767
|
|
|
4783
4768
|
/**
|
|
4784
4769
|
* Delegates to #fetchValue of its shared OData Singleton _SingleCache. Within the 1st call its
|
|
4785
|
-
* own relative property path is added to the
|
|
4770
|
+
* own relative property path is added to the mLateExpandSelect of its _SingleCache.
|
|
4786
4771
|
*
|
|
4787
4772
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
4788
4773
|
* A lock for the group to associate the request with
|
|
@@ -4807,18 +4792,18 @@ sap.ui.define([
|
|
|
4807
4792
|
_SingletonPropertyCache.prototype.fetchValue = function (oGroupLock, _sPath, fnDataRequested,
|
|
4808
4793
|
oListener, bCreateOnDemand) {
|
|
4809
4794
|
var sPropertyPath = this.oSingleton.sResourcePath + "/" + this.sRelativePath,
|
|
4810
|
-
|
|
4795
|
+
mLateExpandSelect,
|
|
4811
4796
|
oMetadataPromise = this.oMetadataPromise || this.oRequestor.getModelInterface()
|
|
4812
4797
|
.fetchMetadata("/" + _Helper.getMetaPath(sPropertyPath)),
|
|
4813
4798
|
that = this;
|
|
4814
4799
|
|
|
4815
4800
|
return oMetadataPromise.then(function () {
|
|
4816
4801
|
if (!that.oMetadataPromise) {
|
|
4817
|
-
|
|
4818
|
-
_Helper.aggregateExpandSelect(
|
|
4802
|
+
mLateExpandSelect = that.oSingleton.mLateExpandSelect || {};
|
|
4803
|
+
_Helper.aggregateExpandSelect(mLateExpandSelect,
|
|
4819
4804
|
_Helper.wrapChildQueryOptions("/" + that.oSingleton.sResourcePath,
|
|
4820
4805
|
that.sRelativePath, {}, that.oRequestor.getModelInterface().fetchMetadata));
|
|
4821
|
-
that.oSingleton.setLateQueryOptions(
|
|
4806
|
+
that.oSingleton.setLateQueryOptions(mLateExpandSelect);
|
|
4822
4807
|
}
|
|
4823
4808
|
that.oMetadataPromise = oMetadataPromise;
|
|
4824
4809
|
return that.oSingleton.fetchValue(oGroupLock, that.sRelativePath, fnDataRequested,
|
|
@@ -303,7 +303,8 @@ sap.ui.define([
|
|
|
303
303
|
/**
|
|
304
304
|
* Builds a query string from the given parameter map. Takes care of encoding, but ensures
|
|
305
305
|
* that the characters "$", "(", ")", ";" and "=" are not encoded, so that OData queries
|
|
306
|
-
* remain readable.
|
|
306
|
+
* remain readable. A parameter starting with "$$" is meant to be internal and does not
|
|
307
|
+
* become part of the query string.
|
|
307
308
|
*
|
|
308
309
|
* ';' is not encoded although RFC 1866 encourages its usage as separator between query
|
|
309
310
|
* parameters. However OData Version 4.0 Part 2 specifies that only '&' is a valid
|
|
@@ -331,7 +332,7 @@ sap.ui.define([
|
|
|
331
332
|
return "";
|
|
332
333
|
}
|
|
333
334
|
|
|
334
|
-
aKeys = Object.keys(mParameters);
|
|
335
|
+
aKeys = Object.keys(mParameters).filter((sKey) => !sKey.startsWith("$$"));
|
|
335
336
|
if (aKeys.length === 0) {
|
|
336
337
|
return "";
|
|
337
338
|
}
|
|
@@ -1018,21 +1019,20 @@ sap.ui.define([
|
|
|
1018
1019
|
* them as a new map while replacing their value with "~" in the old map.
|
|
1019
1020
|
*
|
|
1020
1021
|
* @param {object} mQueryOptions - The original query options to be MODIFIED
|
|
1021
|
-
* @returns {object} The extracted query options
|
|
1022
|
+
* @returns {object} The extracted query options in the same order
|
|
1022
1023
|
*
|
|
1023
1024
|
* @public
|
|
1024
1025
|
*/
|
|
1025
1026
|
extractMergeableQueryOptions : function (mQueryOptions) {
|
|
1026
1027
|
var mExtractedQueryOptions = {};
|
|
1027
1028
|
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
}
|
|
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
|
+
});
|
|
1036
1036
|
|
|
1037
1037
|
return mExtractedQueryOptions;
|
|
1038
1038
|
},
|
|
@@ -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
|
}
|
|
@@ -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
|
|
@@ -227,7 +227,7 @@ sap.ui.define([
|
|
|
227
227
|
*
|
|
228
228
|
* @extends sap.ui.model.Model
|
|
229
229
|
* @public
|
|
230
|
-
* @version 1.139.
|
|
230
|
+
* @version 1.139.1
|
|
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.139.
|
|
30
|
+
* @version 1.139.1
|
|
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.139.
|
|
22
|
+
* @version 1.139.1
|
|
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.139.
|
|
22
|
+
* @version 1.139.1
|
|
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(['./Date', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.Date
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.139.
|
|
22
|
+
* @version 1.139.1
|
|
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.getTimeInstance 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.139.
|
|
22
|
+
* @version 1.139.1
|
|
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.getTimeInstance DateFormat}.
|