@openui5/sap.ui.core 1.111.0 → 1.112.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dtsgenrc +38 -0
- package/package.json +1 -1
- package/src/jquery.sap.global.js +4 -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/deepClone.js +4 -0
- 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/VersionInfo.js +14 -0
- 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 +4 -4
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +3 -3
- 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 +14 -2
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +17 -8
- 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/Lib.js +40 -28
- 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 +19 -4
- package/src/sap/ui/core/date/Islamic.js +1 -0
- package/src/sap/ui/core/date/UI5Date.js +25 -5
- package/src/sap/ui/core/date/UniversalDate.js +2 -0
- package/src/sap/ui/core/date/UniversalDateUtils.js +1 -2
- 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 +13 -15
- package/src/sap/ui/core/format/NumberFormat.js +6 -4
- package/src/sap/ui/core/format/TimezoneUtil.js +21 -17
- package/src/sap/ui/core/hyphenation/Hyphenation.js +3 -3
- 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/Controller.js +1 -1
- package/src/sap/ui/core/mvc/ControllerExtension.js +1 -1
- package/src/sap/ui/core/mvc/ControllerMetadata.js +4 -3
- 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 +13 -9
- 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/fonts/SAP-icons.ttf +0 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/theming/ThemeManager.js +11 -2
- 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 +3 -3
- 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 +2 -2
- 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/analytics/AnalyticalBinding.js +3 -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 +4 -3
- 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/ODataUtils.js +5 -2
- package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +62 -24
- 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 +3 -2
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +2 -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 +2 -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 +2 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +4 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +131 -66
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +50 -14
- package/src/sap/ui/model/odata/v4/ODataBinding.js +83 -14
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +2 -4
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +89 -12
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +3 -2
- package/src/sap/ui/model/odata/v4/ODataModel.js +5 -4
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +14 -3
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +9 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +63 -62
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +32 -7
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +210 -10
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +71 -29
- 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 +4 -3
- package/src/sap/ui/model/type/DateInterval.js +9 -8
- 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/QUnitUtils.js +6 -4
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/Opa5.js +4 -4
- package/src/sap/ui/test/generic/TestBase.js +14 -4
- package/src/sap/ui/thirdparty/jquery-mobile-custom.js +10 -4
- package/src/sap/ui/thirdparty/qunit-2.js +4 -1
- package/src/sap/ui/thirdparty/qunit.js +41 -11
- package/src/sap/ui/util/Storage.js +1 -1
|
@@ -11,8 +11,9 @@ sap.ui.define([
|
|
|
11
11
|
"sap/base/util/isEmptyObject",
|
|
12
12
|
"sap/base/util/merge",
|
|
13
13
|
"sap/base/util/uid",
|
|
14
|
+
"sap/ui/base/SyncPromise",
|
|
14
15
|
"sap/ui/thirdparty/URI"
|
|
15
|
-
], function (Log, deepEqual, isEmptyObject, merge, uid, URI) {
|
|
16
|
+
], function (Log, deepEqual, isEmptyObject, merge, uid, SyncPromise, URI) {
|
|
16
17
|
"use strict";
|
|
17
18
|
|
|
18
19
|
var rAmpersand = /&/g,
|
|
@@ -90,6 +91,19 @@ sap.ui.define([
|
|
|
90
91
|
}
|
|
91
92
|
},
|
|
92
93
|
|
|
94
|
+
/**
|
|
95
|
+
* Adds a SyncPromise to private annotations of the element and returns it.
|
|
96
|
+
*
|
|
97
|
+
* @param {object} oElement - The cache element
|
|
98
|
+
* @returns {sap.ui.base.SyncPromise} The promise
|
|
99
|
+
*/
|
|
100
|
+
addDeepCreatePromise : function (oElement) {
|
|
101
|
+
return new SyncPromise(function (fnResolve, fnReject) {
|
|
102
|
+
_Helper.setPrivateAnnotation(oElement, "resolve", fnResolve);
|
|
103
|
+
_Helper.setPrivateAnnotation(oElement, "reject", fnReject);
|
|
104
|
+
});
|
|
105
|
+
},
|
|
106
|
+
|
|
93
107
|
/**
|
|
94
108
|
* Adds the given paths to $select of the given query options.
|
|
95
109
|
*
|
|
@@ -727,6 +741,23 @@ sap.ui.define([
|
|
|
727
741
|
}
|
|
728
742
|
},
|
|
729
743
|
|
|
744
|
+
/**
|
|
745
|
+
* Deletes the property identified by the given path from the given object.
|
|
746
|
+
*
|
|
747
|
+
* @param {object} oObject - The object to start at
|
|
748
|
+
* @param {string} sPath - Some relative path
|
|
749
|
+
*/
|
|
750
|
+
deleteProperty : function (oObject, sPath) {
|
|
751
|
+
var aSegments;
|
|
752
|
+
|
|
753
|
+
if (sPath.includes("/")) {
|
|
754
|
+
aSegments = sPath.split("/");
|
|
755
|
+
sPath = aSegments.pop();
|
|
756
|
+
oObject = _Helper.drillDown(oObject, aSegments);
|
|
757
|
+
}
|
|
758
|
+
delete oObject[sPath];
|
|
759
|
+
},
|
|
760
|
+
|
|
730
761
|
/**
|
|
731
762
|
* Deletes within the given entity and property path the property annotation
|
|
732
763
|
* "@$ui5.updating".
|
|
@@ -759,14 +790,17 @@ sap.ui.define([
|
|
|
759
790
|
*
|
|
760
791
|
* @param {object} oObject
|
|
761
792
|
* The object to start at
|
|
762
|
-
* @param {string[]}
|
|
763
|
-
* Relative path to drill-down into, as array of segments
|
|
793
|
+
* @param {string|string[]} vSegments
|
|
794
|
+
* Relative path to drill-down into, may already be split as array of segments
|
|
764
795
|
* @returns {any}
|
|
765
796
|
* The result matching to the given path, or <code>undefined</code> if the path leads
|
|
766
797
|
* into void
|
|
767
798
|
*/
|
|
768
|
-
drillDown : function (oObject,
|
|
769
|
-
|
|
799
|
+
drillDown : function (oObject, vSegments) {
|
|
800
|
+
if (typeof vSegments === "string") {
|
|
801
|
+
vSegments = vSegments.split("/");
|
|
802
|
+
}
|
|
803
|
+
return vSegments.reduce(function (oCurrent, sSegment) {
|
|
770
804
|
return (oCurrent && sSegment in oCurrent) ? oCurrent[sSegment] : undefined;
|
|
771
805
|
}, oObject);
|
|
772
806
|
},
|
|
@@ -1499,6 +1533,20 @@ sap.ui.define([
|
|
|
1499
1533
|
return sPath;
|
|
1500
1534
|
},
|
|
1501
1535
|
|
|
1536
|
+
/**
|
|
1537
|
+
* Tells whether <code>sPath</code> has <code>sBasePath</code> as path prefix. It returns
|
|
1538
|
+
* <code>true</code> iff {@link .getRelativePath} does not return <code>undefined</code>.
|
|
1539
|
+
*
|
|
1540
|
+
* @param {string} sPath The path
|
|
1541
|
+
* @param {string} sBasePath The base path
|
|
1542
|
+
* @returns {boolean} true if sBasePath path is a prefix of sPath
|
|
1543
|
+
*
|
|
1544
|
+
* @see .getRelativePath
|
|
1545
|
+
*/
|
|
1546
|
+
hasPathPrefix : function (sPath, sBasePath) {
|
|
1547
|
+
return _Helper.getRelativePath(sPath, sBasePath) !== undefined;
|
|
1548
|
+
},
|
|
1549
|
+
|
|
1502
1550
|
/**
|
|
1503
1551
|
* Tells whether the given object has a private client-side instance annotation with the
|
|
1504
1552
|
* given unqualified name (no matter what the value is).
|
|
@@ -1520,14 +1568,17 @@ sap.ui.define([
|
|
|
1520
1568
|
/**
|
|
1521
1569
|
* Fires change events for all properties that differ between the old and the new value.
|
|
1522
1570
|
* The function recursively handles modified, added or removed structural properties
|
|
1523
|
-
* and fires change events for all modified/added/removed primitive properties therein.
|
|
1571
|
+
* and fires change events for all modified/added/removed primitive properties therein. If
|
|
1572
|
+
* the new value is <code>undefined</code>, the event is fired with <code>null</code> as a
|
|
1573
|
+
* value unless <code>bAllowUndefined</code> is set.
|
|
1524
1574
|
*
|
|
1525
1575
|
* @param {object} mChangeListeners A map of change listeners by path
|
|
1526
1576
|
* @param {string} sPath The path of both values in mChangeListeners
|
|
1527
1577
|
* @param {any} vOld The old value
|
|
1528
1578
|
* @param {any} vNew The new value
|
|
1579
|
+
* @param {boolean} [bAllowUndefined] Allows undefined values
|
|
1529
1580
|
*/
|
|
1530
|
-
informAll : function (mChangeListeners, sPath, vOld, vNew) {
|
|
1581
|
+
informAll : function (mChangeListeners, sPath, vOld, vNew, bAllowUndefined) {
|
|
1531
1582
|
if (vNew === vOld) {
|
|
1532
1583
|
return;
|
|
1533
1584
|
}
|
|
@@ -1535,12 +1586,13 @@ sap.ui.define([
|
|
|
1535
1586
|
if (vNew && typeof vNew === "object") {
|
|
1536
1587
|
Object.keys(vNew).forEach(function (sProperty) {
|
|
1537
1588
|
_Helper.informAll(mChangeListeners, _Helper.buildPath(sPath, sProperty),
|
|
1538
|
-
vOld && vOld[sProperty], vNew[sProperty]);
|
|
1589
|
+
vOld && vOld[sProperty], vNew[sProperty], bAllowUndefined);
|
|
1539
1590
|
});
|
|
1540
1591
|
} else {
|
|
1541
1592
|
// must fire null to guarantee that a property binding has not
|
|
1542
1593
|
// this.vValue === undefined, see ODataPropertyBinding.setValue
|
|
1543
|
-
_Helper.fireChange(mChangeListeners, sPath,
|
|
1594
|
+
_Helper.fireChange(mChangeListeners, sPath,
|
|
1595
|
+
!bAllowUndefined && vNew === undefined ? null : vNew);
|
|
1544
1596
|
vNew = {};
|
|
1545
1597
|
}
|
|
1546
1598
|
|
|
@@ -1549,7 +1601,7 @@ sap.ui.define([
|
|
|
1549
1601
|
// not covered in the new value
|
|
1550
1602
|
if (!vNew.hasOwnProperty(sProperty)) {
|
|
1551
1603
|
_Helper.informAll(mChangeListeners, _Helper.buildPath(sPath, sProperty),
|
|
1552
|
-
vOld[sProperty], undefined);
|
|
1604
|
+
vOld[sProperty], undefined, bAllowUndefined);
|
|
1553
1605
|
}
|
|
1554
1606
|
});
|
|
1555
1607
|
}
|
|
@@ -1737,20 +1789,6 @@ sap.ui.define([
|
|
|
1737
1789
|
return mResult;
|
|
1738
1790
|
},
|
|
1739
1791
|
|
|
1740
|
-
/**
|
|
1741
|
-
* Tells whether <code>sPath</code> has <code>sBasePath</code> as path prefix. It returns
|
|
1742
|
-
* <code>true</code> iff {@link .getRelativePath} does not return <code>undefined</code>.
|
|
1743
|
-
*
|
|
1744
|
-
* @param {string} sPath The path
|
|
1745
|
-
* @param {string} sBasePath The base path
|
|
1746
|
-
* @returns {boolean} true if sBasePath path is a prefix of sPath
|
|
1747
|
-
*
|
|
1748
|
-
* @see .getRelativePath
|
|
1749
|
-
*/
|
|
1750
|
-
hasPathPrefix : function (sPath, sBasePath) {
|
|
1751
|
-
return _Helper.getRelativePath(sPath, sBasePath) !== undefined;
|
|
1752
|
-
},
|
|
1753
|
-
|
|
1754
1792
|
/**
|
|
1755
1793
|
* Tells whether the given map of binding parameters is defining data aggregation, but not a
|
|
1756
1794
|
* recursive hierarchy.
|
|
@@ -2016,18 +2054,19 @@ sap.ui.define([
|
|
|
2016
2054
|
*/
|
|
2017
2055
|
resetInactiveEntity : function (mChangeListeners, sPath, oEntity) {
|
|
2018
2056
|
var oInitialData = _Helper.getPrivateAnnotation(oEntity, "initialData"),
|
|
2019
|
-
oPostBody = _Helper.getPrivateAnnotation(oEntity, "postBody")
|
|
2057
|
+
oPostBody = _Helper.getPrivateAnnotation(oEntity, "postBody"),
|
|
2058
|
+
oOldPostBody = Object.assign({}, oPostBody);
|
|
2020
2059
|
|
|
2021
2060
|
Object.keys(oPostBody).forEach(function (sKey) {
|
|
2022
2061
|
if (sKey in oInitialData) {
|
|
2023
|
-
oEntity[sKey] = oPostBody[sKey] = oInitialData[sKey];
|
|
2062
|
+
oEntity[sKey] = oPostBody[sKey] = _Helper.clone(oInitialData[sKey]);
|
|
2024
2063
|
} else {
|
|
2025
2064
|
delete oPostBody[sKey];
|
|
2026
2065
|
delete oEntity[sKey];
|
|
2027
2066
|
}
|
|
2028
|
-
_Helper.fireChange(mChangeListeners, sPath + "/" + sKey, oEntity[sKey]);
|
|
2029
2067
|
});
|
|
2030
2068
|
|
|
2069
|
+
_Helper.informAll(mChangeListeners, sPath, oOldPostBody, oPostBody, true);
|
|
2031
2070
|
_Helper.updateAll(mChangeListeners, sPath, oEntity,
|
|
2032
2071
|
{"@$ui5.context.isInactive" : true}
|
|
2033
2072
|
);
|
|
@@ -2485,8 +2524,11 @@ sap.ui.define([
|
|
|
2485
2524
|
}
|
|
2486
2525
|
} else if (Array.isArray(vSourceProperty)) {
|
|
2487
2526
|
// copy complete collection; no change events as long as collection-valued
|
|
2488
|
-
// properties are not supported
|
|
2489
|
-
|
|
2527
|
+
// properties are not supported; transient entity collections from a deep
|
|
2528
|
+
// insert are handled elsewhere
|
|
2529
|
+
if (!(vTargetProperty && vTargetProperty.$transient)) {
|
|
2530
|
+
oTarget[sProperty] = vSourceProperty;
|
|
2531
|
+
}
|
|
2490
2532
|
} else if (vSourceProperty && typeof vSourceProperty === "object"
|
|
2491
2533
|
&& !sProperty.includes("@")) {
|
|
2492
2534
|
oTarget[sProperty] = update(sPropertyPath, vSelected, vTargetProperty || {},
|
|
@@ -229,7 +229,7 @@ sap.ui.define([
|
|
|
229
229
|
*
|
|
230
230
|
* @extends sap.ui.model.Model
|
|
231
231
|
* @public
|
|
232
|
-
* @version 1.
|
|
232
|
+
* @version 1.112.0
|
|
233
233
|
*/
|
|
234
234
|
var ResourceModel = Model.extend("sap.ui.model.resource.ResourceModel", /** @lends sap.ui.model.resource.ResourceModel.prototype */ {
|
|
235
235
|
|
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
"sap/base/util/each",
|
|
10
10
|
"sap/base/util/isEmptyObject",
|
|
11
|
+
"sap/ui/core/date/UI5Date",
|
|
11
12
|
"sap/ui/core/format/DateFormat",
|
|
12
13
|
"sap/ui/model/FormatException",
|
|
13
14
|
"sap/ui/model/ParseException",
|
|
14
15
|
"sap/ui/model/SimpleType",
|
|
15
16
|
"sap/ui/model/ValidateException"
|
|
16
|
-
], function(each, isEmptyObject, DateFormat, FormatException, ParseException, SimpleType,
|
|
17
|
+
], function(each, isEmptyObject, UI5Date, DateFormat, FormatException, ParseException, SimpleType,
|
|
17
18
|
ValidateException) {
|
|
18
19
|
"use strict";
|
|
19
20
|
|
|
@@ -26,7 +27,7 @@ sap.ui.define([
|
|
|
26
27
|
* @extends sap.ui.model.SimpleType
|
|
27
28
|
*
|
|
28
29
|
* @author SAP SE
|
|
29
|
-
* @version 1.
|
|
30
|
+
* @version 1.112.0
|
|
30
31
|
*
|
|
31
32
|
* @public
|
|
32
33
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateInstance DateFormat}.
|
|
@@ -155,7 +156,7 @@ sap.ui.define([
|
|
|
155
156
|
oValue = parseInt(oValue);
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
|
-
oValue =
|
|
159
|
+
oValue = UI5Date.getInstance(oValue);
|
|
159
160
|
return oValue;
|
|
160
161
|
}
|
|
161
162
|
};
|
|
@@ -5,12 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
sap.ui.define([
|
|
7
7
|
"sap/base/util/isEmptyObject",
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
"sap/ui/core/date/UI5Date",
|
|
9
|
+
"sap/ui/core/format/DateFormat",
|
|
10
|
+
"sap/ui/model/CompositeType",
|
|
11
|
+
"sap/ui/model/FormatException",
|
|
12
|
+
"sap/ui/model/ParseException",
|
|
13
|
+
"sap/ui/model/ValidateException"
|
|
14
|
+
], function (isEmptyObject, UI5Date, DateFormat, CompositeType, FormatException, ParseException,
|
|
14
15
|
ValidateException) {
|
|
15
16
|
"use strict";
|
|
16
17
|
|
|
@@ -23,7 +24,7 @@ sap.ui.define([
|
|
|
23
24
|
* @extends sap.ui.model.CompositeType
|
|
24
25
|
*
|
|
25
26
|
* @author SAP SE
|
|
26
|
-
* @version 1.
|
|
27
|
+
* @version 1.112.0
|
|
27
28
|
*
|
|
28
29
|
* @alias sap.ui.model.type.DateInterval
|
|
29
30
|
* @param {object} [oFormatOptions]
|
|
@@ -125,7 +126,7 @@ sap.ui.define([
|
|
|
125
126
|
oValue = parseInt(oValue);
|
|
126
127
|
}
|
|
127
128
|
}
|
|
128
|
-
oValue =
|
|
129
|
+
oValue = UI5Date.getInstance(oValue);
|
|
129
130
|
} else {
|
|
130
131
|
oValue = that.oInputFormat.parse(oValue);
|
|
131
132
|
if (oValue == null) {
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.Date
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.112.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./DateInterval', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.DateInterval
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.112.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getDateTimeInstance DateFormat}.
|
|
@@ -19,7 +19,7 @@ sap.ui.define(['./Date', 'sap/ui/core/format/DateFormat'],
|
|
|
19
19
|
* @extends sap.ui.model.type.Date
|
|
20
20
|
*
|
|
21
21
|
* @author SAP SE
|
|
22
|
-
* @version 1.
|
|
22
|
+
* @version 1.112.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.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.
|
|
22
|
+
* @version 1.112.0
|
|
23
23
|
*
|
|
24
24
|
* @public
|
|
25
25
|
* @param {object} [oFormatOptions] Formatting options. For a list of all available options, see {@link sap.ui.core.format.DateFormat.getTimeInstance DateFormat}.
|
|
@@ -700,8 +700,9 @@ sap.ui.define('sap/ui/qunit/QUnitUtils', [
|
|
|
700
700
|
|
|
701
701
|
}
|
|
702
702
|
|
|
703
|
-
|
|
704
|
-
|
|
703
|
+
oClass = new oClass().getMetadata().getClass(); // resolves proxy
|
|
704
|
+
oPredefinedValues = oPredefinedValues || {};
|
|
705
|
+
|
|
705
706
|
var result = {};
|
|
706
707
|
var oProps = oClass.getMetadata().getAllProperties();
|
|
707
708
|
for (var name in oProps) {
|
|
@@ -728,8 +729,9 @@ sap.ui.define('sap/ui/qunit/QUnitUtils', [
|
|
|
728
729
|
return;
|
|
729
730
|
}
|
|
730
731
|
|
|
731
|
-
|
|
732
|
-
|
|
732
|
+
oClass = new oClass().getMetadata().getClass(); // resolves proxy
|
|
733
|
+
oTestConfig = oTestConfig || {};
|
|
734
|
+
|
|
733
735
|
var oTestValues = QUtils.createSettingsDomain(oClass, oTestConfig.allPairTestValues || {});
|
|
734
736
|
|
|
735
737
|
info("domain");
|
package/src/sap/ui/test/Opa5.js
CHANGED
|
@@ -456,7 +456,7 @@ sap.ui.define([
|
|
|
456
456
|
*
|
|
457
457
|
* @param {string} [options.fragmentId] @since 1.63 The ID of a fragment. If set, controls will match only if their IDs contain the fragment ID prefix.
|
|
458
458
|
*
|
|
459
|
-
* @param {function|
|
|
459
|
+
* @param {function(sap.ui.core.Element)|Object<string,object>|sap.ui.test.matchers.Matcher|Array<function(sap.ui.core.Element)>|Array<Object<string,object>>|sap.ui.test.matchers.Matcher[]} [options.matchers] Matchers used to filter controls.
|
|
460
460
|
* Could be a function, a single matcher instance, an array of matcher instances, or, since version 1.72, a plain
|
|
461
461
|
* object to specify matchers declaratively. For a full list of built-in matchers, see {@link sap.ui.test.matchers}.
|
|
462
462
|
*
|
|
@@ -549,10 +549,10 @@ sap.ui.define([
|
|
|
549
549
|
* @param {int} [options.timeout=15] (seconds) Specifies how long the waitFor function polls before it fails.O means it will wait forever.
|
|
550
550
|
* @param {int} [options.debugTimeout=0] @since 1.47 (seconds) Specifies how long the waitFor function polls before it fails in debug mode.O means it will wait forever.
|
|
551
551
|
* @param {int} [options.pollingInterval=400] (milliseconds) Specifies how often the waitFor function polls.
|
|
552
|
-
* @param {function} [options.check] Will get invoked in every polling interval. If it returns true, the check is successful and the polling will stop.
|
|
552
|
+
* @param {function((sap.ui.core.Element|sap.ui.core.Element[])): boolean} [options.check] Will get invoked in every polling interval. If it returns true, the check is successful and the polling will stop.
|
|
553
553
|
* The first parameter passed into the function is the same value that gets passed to the success function.
|
|
554
554
|
* Returning something other than boolean in check will not change the first parameter of success.
|
|
555
|
-
* @param {function} [options.success] Will get invoked after the following conditions are met:
|
|
555
|
+
* @param {function((sap.ui.core.Element|sap.ui.core.Element[]))} [options.success] Will get invoked after the following conditions are met:
|
|
556
556
|
* <ol>
|
|
557
557
|
* <li>
|
|
558
558
|
* One or multiple controls were found using controlType, Id, viewName. If visible is true (it is by default), the controls also need to be rendered.
|
|
@@ -749,7 +749,7 @@ sap.ui.define([
|
|
|
749
749
|
if (iFrameLauncher.hasLaunched() && Array.isArray(vResult)) {
|
|
750
750
|
// People are using instanceof Array in their check so i need to make sure the Array
|
|
751
751
|
// comes from the current document. I cannot use slice(0) or map because the original array is kept
|
|
752
|
-
// so i need to use the slowest way to create a
|
|
752
|
+
// so i need to use the slowest way to create a shallow copy of the array
|
|
753
753
|
var aResult = [];
|
|
754
754
|
vResult.forEach(function (oControl) {
|
|
755
755
|
aResult.push(oControl);
|
|
@@ -14,6 +14,8 @@ sap.ui.define([
|
|
|
14
14
|
], function(BaseObject, Utils, includeStylesheet, Element, require) {
|
|
15
15
|
"use strict";
|
|
16
16
|
|
|
17
|
+
var globalSetOfUndestroyableIDs = new Set();
|
|
18
|
+
|
|
17
19
|
/**
|
|
18
20
|
* Handles test setup and execution.
|
|
19
21
|
* Single controls/elements are to be tested via the specific sub-classes by
|
|
@@ -24,7 +26,7 @@ sap.ui.define([
|
|
|
24
26
|
* @extends sap.ui.base.Object
|
|
25
27
|
* @abstract
|
|
26
28
|
* @author SAP SE
|
|
27
|
-
* @version 1.
|
|
29
|
+
* @version 1.112.0
|
|
28
30
|
* @since 1.100
|
|
29
31
|
*/
|
|
30
32
|
return BaseObject.extend("sap.ui.test.generic.TestBase", {
|
|
@@ -129,9 +131,17 @@ sap.ui.define([
|
|
|
129
131
|
includeElements: mParams && mParams.includeElements
|
|
130
132
|
}).then(function(aClassInfo) {
|
|
131
133
|
QUnit.module(this.getMetadata().getName() + " Tests - " + this._sLibName, {
|
|
132
|
-
afterEach: function() {
|
|
134
|
+
afterEach: function(assert) {
|
|
133
135
|
Element.registry.forEach(function(oElement, sId) {
|
|
134
|
-
|
|
136
|
+
try {
|
|
137
|
+
oElement.destroy();
|
|
138
|
+
} catch (error) {
|
|
139
|
+
// destroy failed for some reason
|
|
140
|
+
if (!globalSetOfUndestroyableIDs.has(sId)) {
|
|
141
|
+
globalSetOfUndestroyableIDs.add(sId);
|
|
142
|
+
assert.notOk(sId, "Destruction of element with id '" + sId + "' failed.");
|
|
143
|
+
}
|
|
144
|
+
}
|
|
135
145
|
});
|
|
136
146
|
}
|
|
137
147
|
});
|
|
@@ -148,4 +158,4 @@ sap.ui.define([
|
|
|
148
158
|
}.bind(this));
|
|
149
159
|
}
|
|
150
160
|
});
|
|
151
|
-
});
|
|
161
|
+
});
|
|
@@ -1853,12 +1853,18 @@ if ( eventCaptureSupported ) {
|
|
|
1853
1853
|
// and mouseup event which have delay reach on the underneath input.
|
|
1854
1854
|
// Thus the mousedown and mouseup events should also be suppressed.
|
|
1855
1855
|
//
|
|
1856
|
-
//
|
|
1857
|
-
//
|
|
1858
|
-
//
|
|
1859
|
-
// touch event.
|
|
1856
|
+
// Moreover, mobile browsers, such as mobile Safari fires mouseover
|
|
1857
|
+
// event with delay as well. This event may also be dispatched wrongly
|
|
1858
|
+
// to the underneath element when the top element is removed in one of
|
|
1859
|
+
// the touch* event handler.
|
|
1860
|
+
//
|
|
1861
|
+
// The mousedown, mouseup, mouseover and click events are suppressed
|
|
1862
|
+
// only when their coordinate is proximately the same as the coordinate
|
|
1863
|
+
// of recorded touch events and the mouse event's target is different
|
|
1864
|
+
// than the target of the touch event.
|
|
1860
1865
|
document.addEventListener( "mousedown", suppressEvent, true );
|
|
1861
1866
|
document.addEventListener( "mouseup", suppressEvent, true );
|
|
1867
|
+
document.addEventListener( "mouseover", suppressEvent, true );
|
|
1862
1868
|
document.addEventListener( "click", suppressEvent, true );
|
|
1863
1869
|
}
|
|
1864
1870
|
})( jQuery, window, document );
|
|
@@ -3810,7 +3810,10 @@
|
|
|
3810
3810
|
// Show the source of the test when showing assertions
|
|
3811
3811
|
if (details.source) {
|
|
3812
3812
|
sourceName = document$$1.createElement("p");
|
|
3813
|
-
|
|
3813
|
+
//### BEGIN MODIFIED BY SAP
|
|
3814
|
+
// sourceName.innerHTML = "<strong>Source: </strong>" + details.source;
|
|
3815
|
+
sourceName.innerHTML = "<strong>Source: </strong>" + escapeText( details.source );
|
|
3816
|
+
//### END MODIFIED BY SAP
|
|
3814
3817
|
addClass(sourceName, "qunit-source");
|
|
3815
3818
|
if (testPassed) {
|
|
3816
3819
|
addClass(sourceName, "qunit-collapsed");
|
|
@@ -182,26 +182,50 @@ config.modules.push( config.currentModule );
|
|
|
182
182
|
|
|
183
183
|
// Initialize more QUnit.config and QUnit.urlParams
|
|
184
184
|
(function() {
|
|
185
|
-
|
|
185
|
+
//### BEGIN MODIFIED BY SAP
|
|
186
|
+
// var i, current,
|
|
187
|
+
// location = window.location || { search: "", protocol: "file:" },
|
|
188
|
+
// params = location.search.slice( 1 ).split( "&" ),
|
|
189
|
+
// length = params.length,
|
|
190
|
+
// urlParams = {};
|
|
191
|
+
//
|
|
192
|
+
// if ( params[ 0 ] ) {
|
|
193
|
+
// for ( i = 0; i < length; i++ ) {
|
|
194
|
+
// current = params[ i ].split( "=" );
|
|
195
|
+
// current[ 0 ] = decodeURIComponent( current[ 0 ] );
|
|
196
|
+
//
|
|
197
|
+
// // allow just a key to turn on a flag, e.g., test.html?noglobals
|
|
198
|
+
// current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
|
|
199
|
+
// if ( urlParams[ current[ 0 ] ] ) {
|
|
200
|
+
// urlParams[ current[ 0 ] ] = [].concat( urlParams[ current[ 0 ] ], current[ 1 ] );
|
|
201
|
+
// } else {
|
|
202
|
+
// urlParams[ current[ 0 ] ] = current[ 1 ];
|
|
203
|
+
// }
|
|
204
|
+
// }
|
|
205
|
+
// }
|
|
206
|
+
|
|
207
|
+
var i, param, name, value,
|
|
186
208
|
location = window.location || { search: "", protocol: "file:" },
|
|
187
209
|
params = location.search.slice( 1 ).split( "&" ),
|
|
188
210
|
length = params.length,
|
|
189
211
|
urlParams = {};
|
|
190
212
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
213
|
+
for ( i = 0; i < length; i++ ) {
|
|
214
|
+
if ( params[ i ] ) {
|
|
215
|
+
param = params[ i ].split( "=" );
|
|
216
|
+
name = decodeURIComponent( param[ 0 ] );
|
|
195
217
|
|
|
196
218
|
// allow just a key to turn on a flag, e.g., test.html?noglobals
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
219
|
+
value = param.length === 1 ||
|
|
220
|
+
decodeURIComponent( param.slice( 1 ).join( "=" ) );
|
|
221
|
+
if ( urlParams[ name ] ) {
|
|
222
|
+
urlParams[ name ] = [].concat( urlParams[ name ], value );
|
|
200
223
|
} else {
|
|
201
|
-
urlParams[
|
|
224
|
+
urlParams[ name ] = value;
|
|
202
225
|
}
|
|
203
226
|
}
|
|
204
227
|
}
|
|
228
|
+
//END MODIFIED BY SAP
|
|
205
229
|
|
|
206
230
|
if ( urlParams.filter === true ) {
|
|
207
231
|
delete urlParams.filter;
|
|
@@ -3510,7 +3534,10 @@ function appendHeader() {
|
|
|
3510
3534
|
|
|
3511
3535
|
if ( header ) {
|
|
3512
3536
|
header.innerHTML = "<a href='" +
|
|
3513
|
-
|
|
3537
|
+
//### BEGIN MODIFIED BY SAP
|
|
3538
|
+
// setUrl({ filter: undefined, module: undefined, testId: undefined }) +
|
|
3539
|
+
escapeText( setUrl( { filter: undefined, module: undefined, testId: undefined } ) ) +
|
|
3540
|
+
//### END MODIFIED BY SAP
|
|
3514
3541
|
"'>" + header.innerHTML + "</a> ";
|
|
3515
3542
|
}
|
|
3516
3543
|
}
|
|
@@ -3758,7 +3785,10 @@ QUnit.log(function( details ) {
|
|
|
3758
3785
|
message += "<tr class='test-message'><th>Message: </th><td>" +
|
|
3759
3786
|
"Diff suppressed as the depth of object is more than current max depth (" +
|
|
3760
3787
|
QUnit.config.maxDepth + ").<p>Hint: Use <code>QUnit.dump.maxDepth</code> to " +
|
|
3761
|
-
|
|
3788
|
+
//### BEGIN MODIFIED BY SAP
|
|
3789
|
+
// " run with a higher max depth or <a href='" + setUrl({ maxDepth: -1 }) + "'>" +
|
|
3790
|
+
" run with a higher max depth or <a href='" + escapeText( setUrl( { maxDepth: -1 } ) ) + "'>" +
|
|
3791
|
+
//### END MODIFIED BY SAP
|
|
3762
3792
|
"Rerun</a> without max depth.</p></td></tr>";
|
|
3763
3793
|
}
|
|
3764
3794
|
}
|