@openui5/sap.ui.core 1.108.17 → 1.108.19
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/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 +4 -4
- 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 +12 -18
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +4 -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/IconPool.js +1 -2
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +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 +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/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/_IconRegistry.js +84 -11
- 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/DateFormat.js +4 -0
- package/src/sap/ui/core/format/TimezoneUtil.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/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/Icon.less +2 -2
- package/src/sap/ui/core/theming/ThemeHelper.js +103 -0
- package/src/sap/ui/core/theming/ThemeManager.js +20 -19
- 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/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/ODataListBinding.js +24 -0
- 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 +3 -3
- package/src/sap/ui/model/odata/v4/ODataBinding.js +65 -38
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +5 -4
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +7 -6
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +8 -9
- package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +58 -27
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +5 -5
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +11 -7
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +5 -1
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +3 -3
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +1 -1
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/util/Mobile.js +10 -6
- package/src/sap/ui/util/Storage.js +1 -1
|
@@ -11,7 +11,6 @@ sap.ui.define([
|
|
|
11
11
|
"./lib/_Helper",
|
|
12
12
|
"sap/base/assert",
|
|
13
13
|
"sap/base/Log",
|
|
14
|
-
"sap/base/util/isEmptyObject",
|
|
15
14
|
"sap/base/util/JSTokenizer",
|
|
16
15
|
"sap/base/util/ObjectPath",
|
|
17
16
|
"sap/ui/base/ManagedObject",
|
|
@@ -43,11 +42,11 @@ sap.ui.define([
|
|
|
43
42
|
"sap/ui/model/odata/type/String",
|
|
44
43
|
"sap/ui/model/odata/type/TimeOfDay",
|
|
45
44
|
"sap/ui/thirdparty/URI"
|
|
46
|
-
], function (AnnotationHelper, ValueListType, _Helper, assert, Log,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
], function (AnnotationHelper, ValueListType, _Helper, assert, Log, JSTokenizer, ObjectPath,
|
|
46
|
+
ManagedObject, SyncPromise, BindingMode, ChangeReason, ClientListBinding, BaseContext,
|
|
47
|
+
ContextBinding, MetaModel, PropertyBinding, OperationMode, Boolean, Byte, EdmDate,
|
|
48
|
+
DateTimeOffset, Decimal, Double, Guid, Int16, Int32, Int64, Raw, SByte, Single, Stream,
|
|
49
|
+
String, TimeOfDay, URI) {
|
|
51
50
|
"use strict";
|
|
52
51
|
/*eslint max-nested-callbacks: 0 */
|
|
53
52
|
|
|
@@ -157,7 +156,7 @@ sap.ui.define([
|
|
|
157
156
|
* @hideconstructor
|
|
158
157
|
* @public
|
|
159
158
|
* @since 1.37.0
|
|
160
|
-
* @version 1.108.
|
|
159
|
+
* @version 1.108.19
|
|
161
160
|
*/
|
|
162
161
|
ODataMetaModel = MetaModel.extend("sap.ui.model.odata.v4.ODataMetaModel", {
|
|
163
162
|
constructor : constructor
|
|
@@ -1629,7 +1628,7 @@ sap.ui.define([
|
|
|
1629
1628
|
}
|
|
1630
1629
|
|
|
1631
1630
|
if (mFormatOptions) {
|
|
1632
|
-
if (isEmptyObject(mFormatOptions)) {
|
|
1631
|
+
if (_Helper.isEmptyObject(mFormatOptions)) {
|
|
1633
1632
|
mFormatOptions = undefined;
|
|
1634
1633
|
} else if ("parseKeepsEmptyString" in mFormatOptions
|
|
1635
1634
|
&& oProperty.$Type !== "Edm.String") {
|
|
@@ -3273,7 +3272,7 @@ sap.ui.define([
|
|
|
3273
3272
|
|
|
3274
3273
|
// Each reference must have contributed at least one qualifier. So if oValueListInfo
|
|
3275
3274
|
// is empty, there cannot have been a reference.
|
|
3276
|
-
if (isEmptyObject(oValueListInfo)) {
|
|
3275
|
+
if (_Helper.isEmptyObject(oValueListInfo)) {
|
|
3277
3276
|
throw new Error("No annotation '" + sValueListReferences.slice(1) + "' for "
|
|
3278
3277
|
+ sPropertyPath);
|
|
3279
3278
|
}
|
|
@@ -218,7 +218,7 @@ sap.ui.define([
|
|
|
218
218
|
* @extends sap.ui.model.Model
|
|
219
219
|
* @public
|
|
220
220
|
* @since 1.37.0
|
|
221
|
-
* @version 1.108.
|
|
221
|
+
* @version 1.108.19
|
|
222
222
|
*/
|
|
223
223
|
ODataModel = Model.extend("sap.ui.model.odata.v4.ODataModel",
|
|
224
224
|
/** @lends sap.ui.model.odata.v4.ODataModel.prototype */{
|
|
@@ -31,6 +31,7 @@ sap.ui.define([
|
|
|
31
31
|
this.mAggregatedQueryOptions = {};
|
|
32
32
|
// whether the aggregated query options are processed the first time
|
|
33
33
|
this.bAggregatedQueryOptionsInitial = true;
|
|
34
|
+
this.mCanUseCachePromiseByChildPath = {};
|
|
34
35
|
// auto-$expand/$select: promises to wait until child bindings have provided
|
|
35
36
|
// their path and query options
|
|
36
37
|
this.aChildCanUseCachePromises = [];
|
|
@@ -215,7 +216,7 @@ sap.ui.define([
|
|
|
215
216
|
* @param {object} mQueryOptions - The query options to be merged
|
|
216
217
|
* @param {string} sBaseMetaPath - This binding's meta path
|
|
217
218
|
* @param {boolean} bCacheImmutable - Whether the cache of this binding is immutable
|
|
218
|
-
* @param {boolean} bIsProperty - Whether the child is a property binding
|
|
219
|
+
* @param {boolean} [bIsProperty] - Whether the child is a property binding
|
|
219
220
|
* @returns {boolean} Whether the query options can be fulfilled by this binding
|
|
220
221
|
*
|
|
221
222
|
* @private
|
|
@@ -229,14 +230,19 @@ sap.ui.define([
|
|
|
229
230
|
/*
|
|
230
231
|
* Recursively merges the given query options into the given aggregated query options.
|
|
231
232
|
*
|
|
232
|
-
* @param {object} mAggregatedQueryOptions
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
* @param {
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
233
|
+
* @param {object} mAggregatedQueryOptions
|
|
234
|
+
* The aggregated query options
|
|
235
|
+
* @param {object} mQueryOptions0
|
|
236
|
+
* The query options to merge into the aggregated query options
|
|
237
|
+
* @param {string} [sMetaPath]
|
|
238
|
+
* The meta path for the current $expand (only used if cache is immutable)
|
|
239
|
+
* @param {boolean} [bInsideExpand]
|
|
240
|
+
* Whether the given query options are inside a $expand
|
|
241
|
+
* @param {boolean} [bAdd]
|
|
242
|
+
* Whether to add the given query options because they are in a $expand that has not been
|
|
243
|
+
* aggregated yet
|
|
244
|
+
* @returns {boolean}
|
|
245
|
+
* Whether the query options can be fulfilled by this binding
|
|
240
246
|
*/
|
|
241
247
|
function merge(mAggregatedQueryOptions, mQueryOptions0, sMetaPath, bInsideExpand, bAdd) {
|
|
242
248
|
/*
|
|
@@ -306,10 +312,13 @@ sap.ui.define([
|
|
|
306
312
|
}
|
|
307
313
|
|
|
308
314
|
if (merge(mAggregatedQueryOptionsClone, mQueryOptions, sBaseMetaPath)) {
|
|
309
|
-
if (
|
|
310
|
-
this.mAggregatedQueryOptions = mAggregatedQueryOptionsClone;
|
|
311
|
-
} else {
|
|
315
|
+
if (bCacheImmutable) {
|
|
312
316
|
this.mLateQueryOptions = mAggregatedQueryOptionsClone;
|
|
317
|
+
} else {
|
|
318
|
+
this.mAggregatedQueryOptions = mAggregatedQueryOptionsClone;
|
|
319
|
+
if (this.mLateQueryOptions) {
|
|
320
|
+
merge(this.mLateQueryOptions, mQueryOptions);
|
|
321
|
+
}
|
|
313
322
|
}
|
|
314
323
|
return true;
|
|
315
324
|
}
|
|
@@ -660,14 +669,14 @@ sap.ui.define([
|
|
|
660
669
|
* @param {sap.ui.model.odata.v4.Context} oContext
|
|
661
670
|
* A context of this binding which is the direct or indirect parent of the child binding.
|
|
662
671
|
* Initially it is the child binding's parent context (See
|
|
663
|
-
* {@link sap.ui.model.odata.v4.ODataBinding#
|
|
664
|
-
* delegates up to its parent binding, it passes its own parent context adjusting
|
|
672
|
+
* {@link sap.ui.model.odata.v4.ODataBinding#fetchOrGetQueryOptionsForOwnCache}). When a
|
|
673
|
+
* binding delegates up to its parent binding, it passes its own parent context adjusting
|
|
665
674
|
* <code>sChildPath</code> accordingly.
|
|
666
675
|
* @param {string} sChildPath
|
|
667
676
|
* The child binding's binding path relative to <code>oContext</code>
|
|
668
|
-
* @param {object|sap.ui.base.SyncPromise} vChildQueryOptions
|
|
669
|
-
* The child binding's (aggregated) query options or a promise resolving with them
|
|
670
|
-
* @param {boolean} bIsProperty
|
|
677
|
+
* @param {object|sap.ui.base.SyncPromise} [vChildQueryOptions={}]
|
|
678
|
+
* The child binding's (aggregated) query options (if any) or a promise resolving with them
|
|
679
|
+
* @param {boolean} [bIsProperty]
|
|
671
680
|
* Whether the child is a property binding
|
|
672
681
|
* @returns {sap.ui.base.SyncPromise}
|
|
673
682
|
* A promise resolved with the reduced path for the child binding if the child binding can use
|
|
@@ -682,7 +691,7 @@ sap.ui.define([
|
|
|
682
691
|
// getBaseForPathReduction must be called early, because the (virtual) parent context may be
|
|
683
692
|
// lost again when the path is needed
|
|
684
693
|
var sBaseForPathReduction = this.getBaseForPathReduction(),
|
|
685
|
-
sBaseMetaPath
|
|
694
|
+
sBaseMetaPath,
|
|
686
695
|
bCacheImmutable,
|
|
687
696
|
oCanUseCachePromise,
|
|
688
697
|
// whether this binding is an operation or depends on one
|
|
@@ -737,6 +746,23 @@ sap.ui.define([
|
|
|
737
746
|
return SyncPromise.resolve(sResolvedChildPath);
|
|
738
747
|
}
|
|
739
748
|
|
|
749
|
+
oCanUseCachePromise = this.mCanUseCachePromiseByChildPath[sChildPath];
|
|
750
|
+
if (oCanUseCachePromise && bIsProperty) {
|
|
751
|
+
return oCanUseCachePromise.then(function (sOldReducedPath) {
|
|
752
|
+
if (!sOldReducedPath) {
|
|
753
|
+
return undefined;
|
|
754
|
+
}
|
|
755
|
+
// Note: sResolvedChildPath could be "/SalesOrderList('42')/SO_2_SOITEM/0/Note"
|
|
756
|
+
// w/ index (thus getMetaPath helps), but getStrippedMetaPath makes no difference
|
|
757
|
+
if (!sChildPath.includes("/")
|
|
758
|
+
|| _Helper.getMetaPath(sOldReducedPath)
|
|
759
|
+
=== _Helper.getMetaPath(sResolvedChildPath)) {
|
|
760
|
+
return sResolvedChildPath;
|
|
761
|
+
}
|
|
762
|
+
return oMetaModel.getReducedPath(sResolvedChildPath, sBaseForPathReduction);
|
|
763
|
+
});
|
|
764
|
+
}
|
|
765
|
+
|
|
740
766
|
// Note: this.oCachePromise exists for all bindings except operation bindings; it might
|
|
741
767
|
// become pending again
|
|
742
768
|
bCacheImmutable = this.oCachePromise.isRejected()
|
|
@@ -744,16 +770,17 @@ sap.ui.define([
|
|
|
744
770
|
|| oContext.isKeepAlive() // kept-alive contexts have no index when not in aContexts
|
|
745
771
|
|| this.oCache === null
|
|
746
772
|
|| this.oCache && this.oCache.hasSentRequest();
|
|
773
|
+
sBaseMetaPath = _Helper.getMetaPath(oContext.getPath());
|
|
747
774
|
aPromises = [
|
|
748
|
-
this.
|
|
775
|
+
this.doFetchOrGetQueryOptions(this.oContext),
|
|
749
776
|
// After access to complete meta path of property, the metadata of all prefix paths
|
|
750
777
|
// is loaded so that synchronous access in wrapChildQueryOptions via getObject is
|
|
751
|
-
// possible
|
|
778
|
+
// possible - as well as #getReducedPath
|
|
752
779
|
fetchPropertyAndType(),
|
|
753
780
|
vChildQueryOptions
|
|
754
781
|
];
|
|
755
782
|
oCanUseCachePromise = SyncPromise.all(aPromises).then(function (aResult) {
|
|
756
|
-
var mChildQueryOptions = aResult[2],
|
|
783
|
+
var mChildQueryOptions = aResult[2] || {},
|
|
757
784
|
mWrappedChildQueryOptions,
|
|
758
785
|
mLocalQueryOptions = aResult[0],
|
|
759
786
|
oProperty = aResult[1],
|
|
@@ -774,7 +801,7 @@ sap.ui.define([
|
|
|
774
801
|
that.bHasPathReductionToParent = true;
|
|
775
802
|
return that.oContext.getBinding().fetchIfChildCanUseCache(that.oContext,
|
|
776
803
|
_Helper.getRelativePath(sResolvedChildPath, that.oContext.getPath()),
|
|
777
|
-
|
|
804
|
+
mChildQueryOptions, bIsProperty);
|
|
778
805
|
}
|
|
779
806
|
|
|
780
807
|
if (bDependsOnOperation || sReducedChildMetaPath === "$count"
|
|
@@ -823,8 +850,8 @@ sap.ui.define([
|
|
|
823
850
|
if (that.oCache) {
|
|
824
851
|
that.oCache.setLateQueryOptions(that.mLateQueryOptions);
|
|
825
852
|
} else if (that.oCache === null) {
|
|
826
|
-
return that.oContext.getBinding()
|
|
827
|
-
that.sPath,
|
|
853
|
+
return that.oContext.getBinding()
|
|
854
|
+
.fetchIfChildCanUseCache(that.oContext, that.sPath, that.mLateQueryOptions)
|
|
828
855
|
.then(function (sPath) {
|
|
829
856
|
return sPath && sReducedPath;
|
|
830
857
|
});
|
|
@@ -832,6 +859,9 @@ sap.ui.define([
|
|
|
832
859
|
}
|
|
833
860
|
return sReducedPath;
|
|
834
861
|
});
|
|
862
|
+
if (bIsProperty && !oContext.getPath().includes("($uid=")) {
|
|
863
|
+
this.mCanUseCachePromiseByChildPath[sChildPath] = oCanUseCachePromise;
|
|
864
|
+
}
|
|
835
865
|
this.aChildCanUseCachePromises.push(oCanUseCachePromise);
|
|
836
866
|
this.oCachePromise = SyncPromise.all([this.oCachePromise, oCanUseCachePromise])
|
|
837
867
|
.then(function (aResult) {
|
|
@@ -857,6 +887,7 @@ sap.ui.define([
|
|
|
857
887
|
that.oModel.reportError(that + ": Failed to enhance query options for "
|
|
858
888
|
+ "auto-$expand/$select for child " + sChildPath, sClassName, oError);
|
|
859
889
|
});
|
|
890
|
+
|
|
860
891
|
return oCanUseCachePromise;
|
|
861
892
|
};
|
|
862
893
|
|
|
@@ -980,7 +1011,7 @@ sap.ui.define([
|
|
|
980
1011
|
* @private
|
|
981
1012
|
*/
|
|
982
1013
|
ODataParentBinding.prototype.getQueryOptionsForPath = function (sPath, oContext) {
|
|
983
|
-
if (
|
|
1014
|
+
if (!_Helper.isEmptyObject(this.mParameters)) {
|
|
984
1015
|
// binding has parameters -> all query options need to be defined at the binding
|
|
985
1016
|
return _Helper.getQueryOptionsForPath(this.getQueryOptionsFromParameters(), sPath);
|
|
986
1017
|
}
|
|
@@ -1009,8 +1040,8 @@ sap.ui.define([
|
|
|
1009
1040
|
* @function
|
|
1010
1041
|
* @name sap.ui.model.odata.v4.ODataParentBinding.getQueryOptionsFromParameters
|
|
1011
1042
|
* @private
|
|
1012
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
1013
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
1043
|
+
* @see sap.ui.model.odata.v4.ODataBinding#fetchOrGetQueryOptionsForOwnCache
|
|
1044
|
+
* @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
|
|
1014
1045
|
*/
|
|
1015
1046
|
|
|
1016
1047
|
/**
|
|
@@ -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.108.
|
|
45
|
+
* @version 1.108.19
|
|
46
46
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getGroupId as #getGroupId
|
|
47
47
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getRootBinding as #getRootBinding
|
|
48
48
|
* @borrows sap.ui.model.odata.v4.ODataBinding#getUpdateGroupId as #getUpdateGroupId
|
|
@@ -103,7 +103,7 @@ sap.ui.define([
|
|
|
103
103
|
this.mQueryOptions = this.oModel.buildQueryOptions(_Helper.clone(mParameters),
|
|
104
104
|
/*bSystemQueryOptionsAllowed*/sPath.endsWith("$count"));
|
|
105
105
|
this.vValue = undefined;
|
|
106
|
-
// BEWARE: #
|
|
106
|
+
// BEWARE: #doFetchOrGetQueryOptions uses #isRoot which relies on this.oContext!
|
|
107
107
|
this.fetchCache(oContext);
|
|
108
108
|
oModel.bindingCreated(this);
|
|
109
109
|
}
|
|
@@ -401,10 +401,10 @@ sap.ui.define([
|
|
|
401
401
|
|
|
402
402
|
/**
|
|
403
403
|
* @override
|
|
404
|
-
* @see sap.ui.model.odata.v4.ODataBinding#
|
|
404
|
+
* @see sap.ui.model.odata.v4.ODataBinding#doFetchOrGetQueryOptions
|
|
405
405
|
*/
|
|
406
|
-
ODataPropertyBinding.prototype.
|
|
407
|
-
return this.isRoot() ?
|
|
406
|
+
ODataPropertyBinding.prototype.doFetchOrGetQueryOptions = function () {
|
|
407
|
+
return this.isRoot() ? this.mQueryOptions : undefined;
|
|
408
408
|
};
|
|
409
409
|
|
|
410
410
|
/**
|
|
@@ -10,10 +10,9 @@ sap.ui.define([
|
|
|
10
10
|
"./_Helper",
|
|
11
11
|
"./_Requestor",
|
|
12
12
|
"sap/base/Log",
|
|
13
|
-
"sap/base/util/isEmptyObject",
|
|
14
13
|
"sap/ui/base/SyncPromise",
|
|
15
14
|
"sap/ui/model/odata/ODataUtils"
|
|
16
|
-
], function (_GroupLock, _Helper, _Requestor, Log,
|
|
15
|
+
], function (_GroupLock, _Helper, _Requestor, Log, SyncPromise, ODataUtils) {
|
|
17
16
|
"use strict";
|
|
18
17
|
/*eslint max-nested-callbacks: 0 */
|
|
19
18
|
|
|
@@ -877,7 +876,7 @@ sap.ui.define([
|
|
|
877
876
|
}
|
|
878
877
|
}
|
|
879
878
|
|
|
880
|
-
if (!this.mLateQueryOptions) {
|
|
879
|
+
if (!(this.mLateQueryOptions || this.mQueryOptions && this.mQueryOptions.$select)) {
|
|
881
880
|
return false; // no autoExpandSelect
|
|
882
881
|
}
|
|
883
882
|
|
|
@@ -890,10 +889,15 @@ sap.ui.define([
|
|
|
890
889
|
aUpdateProperties = [sRequestedPropertyPath];
|
|
891
890
|
|
|
892
891
|
sFullResourceMetaPath = _Helper.buildPath(this.sMetaPath, sResourceMetaPath);
|
|
892
|
+
mQueryOptions = this.mLateQueryOptions
|
|
893
|
+
|| { // ensure that $select precedes $expand in the resulting query
|
|
894
|
+
$select : this.mQueryOptions.$select,
|
|
895
|
+
$expand : this.mQueryOptions.$expand
|
|
896
|
+
};
|
|
893
897
|
// sRequestedPropertyPath is also a metapath because the binding does not accept a path with
|
|
894
898
|
// a collection-valued navigation property for a late property
|
|
895
899
|
mQueryOptions = _Helper.intersectQueryOptions(
|
|
896
|
-
_Helper.getQueryOptionsForPath(
|
|
900
|
+
_Helper.getQueryOptionsForPath(mQueryOptions, sResourcePath),
|
|
897
901
|
[sRequestedPropertyPath], this.oRequestor.getModelInterface().fetchMetadata,
|
|
898
902
|
sFullResourceMetaPath);
|
|
899
903
|
if (!mQueryOptions) {
|
|
@@ -1130,7 +1134,7 @@ sap.ui.define([
|
|
|
1130
1134
|
/**
|
|
1131
1135
|
* Returns this cache's query options.
|
|
1132
1136
|
*
|
|
1133
|
-
* @returns {object} The query options
|
|
1137
|
+
* @returns {object|undefined} The query options, if any
|
|
1134
1138
|
*
|
|
1135
1139
|
* @public
|
|
1136
1140
|
* @see #setQueryOptions
|
|
@@ -1190,7 +1194,7 @@ sap.ui.define([
|
|
|
1190
1194
|
* @see #registerChangeListener
|
|
1191
1195
|
*/
|
|
1192
1196
|
_Cache.prototype.hasChangeListeners = function () {
|
|
1193
|
-
return !isEmptyObject(this.mChangeListeners);
|
|
1197
|
+
return !_Helper.isEmptyObject(this.mChangeListeners);
|
|
1194
1198
|
};
|
|
1195
1199
|
|
|
1196
1200
|
/**
|
|
@@ -3741,7 +3745,7 @@ sap.ui.define([
|
|
|
3741
3745
|
if (oData) {
|
|
3742
3746
|
sHttpMethod = oData["X-HTTP-Method"] || sHttpMethod;
|
|
3743
3747
|
delete oData["X-HTTP-Method"];
|
|
3744
|
-
if (this.oRequestor.isActionBodyOptional() &&
|
|
3748
|
+
if (this.oRequestor.isActionBodyOptional() && _Helper.isEmptyObject(oData)) {
|
|
3745
3749
|
oData = undefined;
|
|
3746
3750
|
}
|
|
3747
3751
|
}
|
|
@@ -1688,6 +1688,10 @@ sap.ui.define([
|
|
|
1688
1688
|
&& !mParameters.$$aggregation.hierarchyQualifier;
|
|
1689
1689
|
},
|
|
1690
1690
|
|
|
1691
|
+
// Trampoline property to allow for mocking function module in unit tests.
|
|
1692
|
+
// @see sap.base.util.isEmptyObject
|
|
1693
|
+
isEmptyObject : isEmptyObject,
|
|
1694
|
+
|
|
1691
1695
|
/**
|
|
1692
1696
|
* Tells whether the value is a safe integer.
|
|
1693
1697
|
*
|
|
@@ -2502,7 +2506,7 @@ sap.ui.define([
|
|
|
2502
2506
|
}
|
|
2503
2507
|
}
|
|
2504
2508
|
if (!oProperty || oProperty.$kind === "Property") {
|
|
2505
|
-
if (
|
|
2509
|
+
if (!isEmptyObject(mChildQueryOptions)) {
|
|
2506
2510
|
Log.error("Failed to enhance query options for auto-$expand/$select as the"
|
|
2507
2511
|
+ " child binding has query options, but its path '" + sChildMetaPath
|
|
2508
2512
|
+ "' points to a structural property",
|
|
@@ -477,7 +477,7 @@ sap.ui.define([
|
|
|
477
477
|
_Requestor.prototype.checkForOpenRequests = function () {
|
|
478
478
|
var that = this;
|
|
479
479
|
|
|
480
|
-
if (
|
|
480
|
+
if (!_Helper.isEmptyObject(this.mRunningChangeRequests) // running change requests
|
|
481
481
|
|| Object.keys(this.mBatchQueue).some(function (sGroupId) { // pending requests
|
|
482
482
|
return that.mBatchQueue[sGroupId].some(function (vRequest) {
|
|
483
483
|
return Array.isArray(vRequest) ? vRequest.length : true;
|
|
@@ -611,7 +611,7 @@ sap.ui.define([
|
|
|
611
611
|
sClassName);
|
|
612
612
|
}
|
|
613
613
|
});
|
|
614
|
-
if (aResult.length
|
|
614
|
+
if (aResult.length) {
|
|
615
615
|
oSemantics.type = {EnumMember : aResult.join(" ")};
|
|
616
616
|
}
|
|
617
617
|
}
|
|
@@ -690,7 +690,7 @@ sap.ui.define([
|
|
|
690
690
|
sTarget = sEntityContainerName + "/" + sEntitySetName;
|
|
691
691
|
mAnnotations = _Helper.merge(this.convertedV2Annotations[sTarget] || {},
|
|
692
692
|
this.mEntityType2EntitySetAnnotation[oEntitySet.$Type]);
|
|
693
|
-
if (
|
|
693
|
+
if (!_Helper.isEmptyObject(mAnnotations)) {
|
|
694
694
|
this.convertedV2Annotations[sTarget] = mAnnotations;
|
|
695
695
|
}
|
|
696
696
|
}
|
|
@@ -698,7 +698,7 @@ sap.ui.define([
|
|
|
698
698
|
|
|
699
699
|
if (this.schema.$Annotations) {
|
|
700
700
|
this.mergeAnnotations(this.convertedV2Annotations, this.schema.$Annotations);
|
|
701
|
-
} else if (
|
|
701
|
+
} else if (!_Helper.isEmptyObject(this.convertedV2Annotations)) {
|
|
702
702
|
this.schema.$Annotations = this.convertedV2Annotations;
|
|
703
703
|
}
|
|
704
704
|
this.convertedV2Annotations = {}; // reset schema annotations for next schema
|
|
@@ -760,7 +760,7 @@ sap.ui.define([
|
|
|
760
760
|
|
|
761
761
|
// only if all (nested) query options are processed, all selects are known
|
|
762
762
|
aSelects = Object.keys(mSelects);
|
|
763
|
-
if (aSelects.length
|
|
763
|
+
if (aSelects.length) {
|
|
764
764
|
if (!mQueryOptions.$select) {
|
|
765
765
|
aSelects.push("*");
|
|
766
766
|
}
|
|
@@ -229,7 +229,7 @@ sap.ui.define([
|
|
|
229
229
|
*
|
|
230
230
|
* @extends sap.ui.model.Model
|
|
231
231
|
* @public
|
|
232
|
-
* @version 1.108.
|
|
232
|
+
* @version 1.108.19
|
|
233
233
|
*/
|
|
234
234
|
var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
|
|
235
235
|
|
|
@@ -26,7 +26,7 @@ sap.ui.define([
|
|
|
26
26
|
* @extends sap.ui.model.SimpleType
|
|
27
27
|
*
|
|
28
28
|
* @author SAP SE
|
|
29
|
-
* @version 1.108.
|
|
29
|
+
* @version 1.108.19
|
|
30
30
|
*
|
|
31
31
|
* @public
|
|
32
32
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
|
|
@@ -33,7 +33,7 @@ sap.ui.define([
|
|
|
33
33
|
* @extends sap.ui.model.CompositeType
|
|
34
34
|
*
|
|
35
35
|
* @author SAP SE
|
|
36
|
-
* @version 1.108.
|
|
36
|
+
* @version 1.108.19
|
|
37
37
|
*
|
|
38
38
|
* @public
|
|
39
39
|
* @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.108.
|
|
22
|
+
* @version 1.108.19
|
|
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.108.
|
|
22
|
+
* @version 1.108.19
|
|
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}.
|
|
@@ -24,7 +24,7 @@ sap.ui.define([
|
|
|
24
24
|
* @extends sap.ui.model.SimpleType
|
|
25
25
|
*
|
|
26
26
|
* @author SAP SE
|
|
27
|
-
* @version 1.108.
|
|
27
|
+
* @version 1.108.19
|
|
28
28
|
*
|
|
29
29
|
* @public
|
|
30
30
|
* @param {object} [oFormatOptions] formatting options. Supports the same options as {@link sap.ui.core.format.FileSizeFormat.getInstance FileSizeFormat.getInstance}
|
|
@@ -26,7 +26,7 @@ sap.ui.define([
|
|
|
26
26
|
* @extends sap.ui.model.SimpleType
|
|
27
27
|
*
|
|
28
28
|
* @author SAP SE
|
|
29
|
-
* @version 1.108.
|
|
29
|
+
* @version 1.108.19
|
|
30
30
|
*
|
|
31
31
|
* @public
|
|
32
32
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
|
|
@@ -26,7 +26,7 @@ sap.ui.define([
|
|
|
26
26
|
* @extends sap.ui.model.SimpleType
|
|
27
27
|
*
|
|
28
28
|
* @author SAP SE
|
|
29
|
-
* @version 1.108.
|
|
29
|
+
* @version 1.108.19
|
|
30
30
|
*
|
|
31
31
|
* @public
|
|
32
32
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.NumberFormat NumberFormat}.
|
|
@@ -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.108.
|
|
22
|
+
* @version 1.108.19
|
|
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.108.
|
|
22
|
+
* @version 1.108.19
|
|
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}.
|
|
@@ -105,6 +105,8 @@ sap.ui.define(['sap/ui/Device', 'sap/base/Log', 'sap/base/util/extend', 'sap/ui/
|
|
|
105
105
|
mobileWebAppCapable: "default"
|
|
106
106
|
}, options);
|
|
107
107
|
|
|
108
|
+
var bAppleMobileDevice = Device.os.ios || (Device.os.macintosh && Device.browser.mobile);
|
|
109
|
+
|
|
108
110
|
// en-/disable automatic link generation for phone numbers
|
|
109
111
|
if (options.preventPhoneNumberDetection) {
|
|
110
112
|
// iOS specific meta tag
|
|
@@ -126,15 +128,17 @@ sap.ui.define(['sap/ui/Device', 'sap/base/Log', 'sap/base/util/extend', 'sap/ui/
|
|
|
126
128
|
// UI) and auto zoom (browser zooms in the UI automatically under some circumtances, for example when an
|
|
127
129
|
// input gets the focus and the font-size of the input is less than 16px on iOS) functionalities on the
|
|
128
130
|
// mobile platform, but there's some difference between the mobile platforms:
|
|
129
|
-
// *
|
|
130
|
-
//
|
|
131
|
-
//
|
|
131
|
+
// * Apple mobile device: This does not disable manual zoom in Safari and it only disables the auto
|
|
132
|
+
// zoom function. In Chrome browser on iOS, it does disable the manual zoom but since Chrome on iOS
|
|
133
|
+
// isn't in the support matrix, we can ignore this. The "Request Desktop Website" is turned on by
|
|
134
|
+
// default on iPad, therefore we need to check the (macintosh + touch) combination to detect the iPad
|
|
135
|
+
// with "Request Desktop Website" turned on to disable the auto zoom.
|
|
132
136
|
// * other mobile platform: it does disable the manual zoom option but there's no auto zoom function.
|
|
133
|
-
//
|
|
137
|
+
// So we need to remove the maximum-scale=1.0:
|
|
134
138
|
//
|
|
135
139
|
// Therefore we need to add the additional settings (maximum-scale and user-scalable) only for iOS
|
|
136
140
|
// platform
|
|
137
|
-
if (
|
|
141
|
+
if (bAppleMobileDevice) {
|
|
138
142
|
sMeta += ", maximum-scale=1.0, user-scalable=no";
|
|
139
143
|
}
|
|
140
144
|
|
|
@@ -155,7 +159,7 @@ sap.ui.define(['sap/ui/Device', 'sap/base/Log', 'sap/base/util/extend', 'sap/ui/
|
|
|
155
159
|
});
|
|
156
160
|
}
|
|
157
161
|
|
|
158
|
-
if (options.preventScroll &&
|
|
162
|
+
if (options.preventScroll && bAppleMobileDevice) {
|
|
159
163
|
_ready().then(function() {
|
|
160
164
|
document.documentElement.style.position = "fixed";
|
|
161
165
|
document.documentElement.style.overflow = "hidden";
|