@openui5/sap.ui.core 1.136.4 → 1.136.6
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/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/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/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 +1 -1
- 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 +12 -14
- 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 +21 -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;
|
|
@@ -3940,7 +3925,7 @@ sap.ui.define([
|
|
|
3940
3925
|
this.checkSharedRequest();
|
|
3941
3926
|
|
|
3942
3927
|
mQueryOptions = _Helper.intersectQueryOptions(
|
|
3943
|
-
Object.assign({}, this.mQueryOptions, this.
|
|
3928
|
+
Object.assign({}, this.mQueryOptions, this.mLateExpandSelect), aPaths,
|
|
3944
3929
|
this.oRequestor.getModelInterface().fetchMetadata, this.sMetaPath, "", bWithMessages);
|
|
3945
3930
|
if (!mQueryOptions) {
|
|
3946
3931
|
return SyncPromise.resolve(); // micro optimization: use *sync.* promise which is cached
|
|
@@ -4651,7 +4636,7 @@ sap.ui.define([
|
|
|
4651
4636
|
this.checkSharedRequest();
|
|
4652
4637
|
|
|
4653
4638
|
mQueryOptions = this.oPromise && _Helper.intersectQueryOptions(
|
|
4654
|
-
Object.assign({}, this.mQueryOptions, this.
|
|
4639
|
+
Object.assign({}, this.mQueryOptions, this.mLateExpandSelect), aPaths,
|
|
4655
4640
|
this.oRequestor.getModelInterface().fetchMetadata, this.sMetaPath);
|
|
4656
4641
|
if (!mQueryOptions) {
|
|
4657
4642
|
return SyncPromise.resolve();
|
|
@@ -4776,7 +4761,7 @@ sap.ui.define([
|
|
|
4776
4761
|
|
|
4777
4762
|
/**
|
|
4778
4763
|
* Delegates to #fetchValue of its shared OData Singleton _SingleCache. Within the 1st call its
|
|
4779
|
-
* own relative property path is added to the
|
|
4764
|
+
* own relative property path is added to the mLateExpandSelect of its _SingleCache.
|
|
4780
4765
|
*
|
|
4781
4766
|
* @param {sap.ui.model.odata.v4.lib._GroupLock} oGroupLock
|
|
4782
4767
|
* A lock for the group to associate the request with
|
|
@@ -4801,18 +4786,18 @@ sap.ui.define([
|
|
|
4801
4786
|
_SingletonPropertyCache.prototype.fetchValue = function (oGroupLock, _sPath, fnDataRequested,
|
|
4802
4787
|
oListener, bCreateOnDemand) {
|
|
4803
4788
|
var sPropertyPath = this.oSingleton.sResourcePath + "/" + this.sRelativePath,
|
|
4804
|
-
|
|
4789
|
+
mLateExpandSelect,
|
|
4805
4790
|
oMetadataPromise = this.oMetadataPromise || this.oRequestor.getModelInterface()
|
|
4806
4791
|
.fetchMetadata("/" + _Helper.getMetaPath(sPropertyPath)),
|
|
4807
4792
|
that = this;
|
|
4808
4793
|
|
|
4809
4794
|
return oMetadataPromise.then(function () {
|
|
4810
4795
|
if (!that.oMetadataPromise) {
|
|
4811
|
-
|
|
4812
|
-
_Helper.aggregateExpandSelect(
|
|
4796
|
+
mLateExpandSelect = that.oSingleton.mLateExpandSelect || {};
|
|
4797
|
+
_Helper.aggregateExpandSelect(mLateExpandSelect,
|
|
4813
4798
|
_Helper.wrapChildQueryOptions("/" + that.oSingleton.sResourcePath,
|
|
4814
4799
|
that.sRelativePath, {}, that.oRequestor.getModelInterface().fetchMetadata));
|
|
4815
|
-
that.oSingleton.setLateQueryOptions(
|
|
4800
|
+
that.oSingleton.setLateQueryOptions(mLateExpandSelect);
|
|
4816
4801
|
}
|
|
4817
4802
|
that.oMetadataPromise = oMetadataPromise;
|
|
4818
4803
|
return that.oSingleton.fetchValue(oGroupLock, that.sRelativePath, fnDataRequested,
|
|
@@ -302,7 +302,8 @@ sap.ui.define([
|
|
|
302
302
|
/**
|
|
303
303
|
* Builds a query string from the given parameter map. Takes care of encoding, but ensures
|
|
304
304
|
* that the characters "$", "(", ")", ";" and "=" are not encoded, so that OData queries
|
|
305
|
-
* remain readable.
|
|
305
|
+
* remain readable. A parameter starting with "$$" is meant to be internal and does not
|
|
306
|
+
* become part of the query string.
|
|
306
307
|
*
|
|
307
308
|
* ';' is not encoded although RFC 1866 encourages its usage as separator between query
|
|
308
309
|
* parameters. However OData Version 4.0 Part 2 specifies that only '&' is a valid
|
|
@@ -330,7 +331,7 @@ sap.ui.define([
|
|
|
330
331
|
return "";
|
|
331
332
|
}
|
|
332
333
|
|
|
333
|
-
aKeys = Object.keys(mParameters);
|
|
334
|
+
aKeys = Object.keys(mParameters).filter((sKey) => !sKey.startsWith("$$"));
|
|
334
335
|
if (aKeys.length === 0) {
|
|
335
336
|
return "";
|
|
336
337
|
}
|
|
@@ -1002,24 +1003,21 @@ sap.ui.define([
|
|
|
1002
1003
|
* Extracts the mergeable query options "$expand" and "$select" from the given ones, returns
|
|
1003
1004
|
* them as a new map while replacing their value with "~" in the old map.
|
|
1004
1005
|
*
|
|
1005
|
-
* @param {object} mQueryOptions
|
|
1006
|
-
*
|
|
1007
|
-
* @returns {object}
|
|
1008
|
-
* The extracted query options
|
|
1006
|
+
* @param {object} mQueryOptions - The original query options to be MODIFIED
|
|
1007
|
+
* @returns {object} The extracted query options in the same order
|
|
1009
1008
|
*
|
|
1010
1009
|
* @public
|
|
1011
1010
|
*/
|
|
1012
1011
|
extractMergeableQueryOptions : function (mQueryOptions) {
|
|
1013
1012
|
var mExtractedQueryOptions = {};
|
|
1014
1013
|
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
}
|
|
1014
|
+
// ensure to keep the order of the query options
|
|
1015
|
+
Object.keys(mQueryOptions).forEach(function (sKey) {
|
|
1016
|
+
if (sKey === "$expand" || sKey === "$select") {
|
|
1017
|
+
mExtractedQueryOptions[sKey] = mQueryOptions[sKey];
|
|
1018
|
+
mQueryOptions[sKey] = "~";
|
|
1019
|
+
}
|
|
1020
|
+
});
|
|
1023
1021
|
|
|
1024
1022
|
return mExtractedQueryOptions;
|
|
1025
1023
|
},
|
|
@@ -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
|
}
|
|
@@ -1266,6 +1269,9 @@ sap.ui.define([
|
|
|
1266
1269
|
if (oCandidate.$mergeRequests && oRequest.$mergeRequests) {
|
|
1267
1270
|
oCandidate.$mergeRequests(oRequest.$mergeRequests());
|
|
1268
1271
|
}
|
|
1272
|
+
oCandidate.$sortSystemQueryOptions
|
|
1273
|
+
||= oCandidate.$queryOptions.$$sortIfMerged
|
|
1274
|
+
|| oRequest.$queryOptions.$$sortIfMerged;
|
|
1269
1275
|
|
|
1270
1276
|
return true;
|
|
1271
1277
|
}
|
|
@@ -1283,10 +1289,12 @@ sap.ui.define([
|
|
|
1283
1289
|
var mQueryOptions = oRequest.$queryOptions;
|
|
1284
1290
|
|
|
1285
1291
|
if (mQueryOptions) {
|
|
1286
|
-
if
|
|
1292
|
+
// if there was no $select, don't introduce one
|
|
1293
|
+
if (mQueryOptions.$expand && mQueryOptions.$select?.length === 0) {
|
|
1287
1294
|
mQueryOptions.$select = Object.keys(mQueryOptions.$expand).sort().slice(0, 1);
|
|
1288
1295
|
}
|
|
1289
|
-
oRequest.url = that.addQueryString(oRequest.url, oRequest.$metaPath, mQueryOptions
|
|
1296
|
+
oRequest.url = that.addQueryString(oRequest.url, oRequest.$metaPath, mQueryOptions,
|
|
1297
|
+
oRequest.$sortSystemQueryOptions);
|
|
1290
1298
|
}
|
|
1291
1299
|
});
|
|
1292
1300
|
aResultingRequests.iChangeSet = aRequests.iChangeSet;
|
|
@@ -1833,10 +1841,12 @@ sap.ui.define([
|
|
|
1833
1841
|
* contain $expand
|
|
1834
1842
|
* @param {any} [vOwner]
|
|
1835
1843
|
* An additional precondition for the merging of GET requests: the owner must be identical.
|
|
1844
|
+
* This is probably relevant when using parameter <code>fnMergeRequests</code> to ensure both
|
|
1845
|
+
* functions work well together.
|
|
1836
1846
|
* @param {function(string[]):string[]} [fnMergeRequests]
|
|
1837
1847
|
* Function which is called during merging of GET or PATCH requests. If a merged request has a
|
|
1838
|
-
* function given, this function will be called and its return value is
|
|
1839
|
-
*
|
|
1848
|
+
* function given, this function will be called and its return value is given to the one
|
|
1849
|
+
* remaining request's function as a parameter. See also <code>vOwner</code>.
|
|
1840
1850
|
* @returns {Promise}
|
|
1841
1851
|
* A promise on the outcome of the HTTP request; it will be rejected with an error having the
|
|
1842
1852
|
* 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.136.
|
|
230
|
+
* @version 1.136.6
|
|
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.136.
|
|
30
|
+
* @version 1.136.6
|
|
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.136.
|
|
22
|
+
* @version 1.136.6
|
|
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.136.
|
|
22
|
+
* @version 1.136.6
|
|
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.136.
|
|
22
|
+
* @version 1.136.6
|
|
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.136.
|
|
22
|
+
* @version 1.136.6
|
|
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}.
|
package/src/ui5loader.js
CHANGED
|
@@ -18,6 +18,26 @@
|
|
|
18
18
|
(function(__global) {
|
|
19
19
|
"use strict";
|
|
20
20
|
|
|
21
|
+
// Polyfill `Promise.withResolvers` for older browsers.
|
|
22
|
+
if (typeof Promise.withResolvers === "undefined") {
|
|
23
|
+
Object.defineProperty(Promise, "withResolvers", {
|
|
24
|
+
writable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
// enumerable: false
|
|
27
|
+
value: function() {
|
|
28
|
+
let resolve, reject;
|
|
29
|
+
return {
|
|
30
|
+
promise: new this((_resolve, _reject) => {
|
|
31
|
+
resolve = _resolve;
|
|
32
|
+
reject = _reject;
|
|
33
|
+
}),
|
|
34
|
+
resolve,
|
|
35
|
+
reject
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
21
41
|
/*
|
|
22
42
|
* Helper function that removes any query and/or hash parts from the given URL.
|
|
23
43
|
*
|
|
@@ -2696,7 +2716,7 @@
|
|
|
2696
2716
|
/**
|
|
2697
2717
|
* Root namespace for JavaScript functionality provided by SAP SE.
|
|
2698
2718
|
*
|
|
2699
|
-
* @version 1.136.
|
|
2719
|
+
* @version 1.136.6
|
|
2700
2720
|
* @namespace
|
|
2701
2721
|
* @public
|
|
2702
2722
|
* @name sap
|