@openui5/sap.ui.fl 1.123.1 → 1.124.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/sap/ui/fl/.library +1 -1
- package/src/sap/ui/fl/ChangePersistence.js +39 -48
- package/src/sap/ui/fl/ChangePersistenceFactory.js +1 -1
- package/src/sap/ui/fl/FakeLrepConnectorLocalStorage.js +1 -1
- package/src/sap/ui/fl/FakeLrepConnectorSessionStorage.js +1 -1
- package/src/sap/ui/fl/FakeLrepLocalStorage.js +1 -1
- package/src/sap/ui/fl/FlexController.js +3 -34
- package/src/sap/ui/fl/FlexControllerFactory.js +1 -1
- package/src/sap/ui/fl/LayerUtils.js +1 -1
- package/src/sap/ui/fl/Utils.js +1 -1
- package/src/sap/ui/fl/apply/_internal/DelegateMediator.js +113 -270
- package/src/sap/ui/fl/apply/_internal/appVariant/DescriptorChangeTypes.js +2 -1
- package/src/sap/ui/fl/apply/_internal/changes/Applier.js +36 -3
- package/src/sap/ui/fl/apply/_internal/changes/FlexCustomData.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/Utils.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/Preprocessor.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/Registration.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/RegistrationBuild.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddAnnotationsToOData.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/AddNewInbound.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeDataSource.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/ChangeInbound.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/RemoveAllInboundsExceptOne.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/app/SetTitle.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetAbstract.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/fiori/SetRegistrationIds.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/AddNewCard.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/ChangeCard.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ovp/DeleteCard.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddComponentUsages.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddLibrary.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModel.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/AddNewModelEnhanceWith.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetFlexExtensionPointEnabled.js +1 -1
- package/src/sap/ui/fl/apply/_internal/changes/descriptor/ui5/SetMinUI5Version.js +49 -5
- package/src/sap/ui/fl/apply/_internal/connectors/ObjectStorageUtils.js +1 -1
- package/src/sap/ui/fl/apply/_internal/controlVariants/URLHandler.js +28 -27
- package/src/sap/ui/fl/apply/_internal/extensionPoint/Processor.js +1 -1
- package/src/sap/ui/fl/apply/_internal/extensionPoint/Registry.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/AppDescriptorChange.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/CompVariant.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/ControllerExtensionChange.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/FlVariant.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObject.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/FlexObjectFactory.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/UIChange.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/Variant.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexObjects/getVariantAuthor.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/FlexState.js +75 -41
- package/src/sap/ui/fl/apply/_internal/flexState/Loader.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/ManifestUtils.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +1 -1
- package/src/sap/ui/fl/apply/_internal/flexState/changes/DependencyHandler.js +30 -11
- package/src/sap/ui/fl/apply/_internal/flexState/changes/ExtensionPointState.js +67 -70
- package/src/sap/ui/fl/apply/_internal/flexState/changes/UIChangesState.js +14 -6
- package/src/sap/ui/fl/apply/_internal/flexState/compVariants/CompVariantMerger.js +2 -2
- package/src/sap/ui/fl/apply/_internal/flexState/compVariants/Utils.js +4 -0
- package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/Switcher.js +8 -7
- package/src/sap/ui/fl/apply/_internal/flexState/controlVariants/VariantManagementState.js +108 -41
- package/src/sap/ui/fl/apply/_internal/preprocessors/ControllerExtension.js +8 -15
- package/src/sap/ui/fl/apply/_internal/preprocessors/RegistrationDelegator.js +7 -12
- package/src/sap/ui/fl/apply/_internal/preprocessors/XmlPreprocessor.js +15 -19
- package/src/sap/ui/fl/apply/api/ControlVariantApplyAPI.js +1 -1
- package/src/sap/ui/fl/apply/api/DelegateMediatorAPI.js +13 -86
- package/src/sap/ui/fl/apply/api/FlexRuntimeInfoAPI.js +14 -11
- package/src/sap/ui/fl/changeHandler/AddIFrame.js +1 -1
- package/src/sap/ui/fl/changeHandler/AddXML.js +1 -1
- package/src/sap/ui/fl/changeHandler/AddXMLAtExtensionPoint.js +1 -1
- package/src/sap/ui/fl/changeHandler/Base.js +1 -1
- package/src/sap/ui/fl/changeHandler/BaseAddViaDelegate.js +14 -29
- package/src/sap/ui/fl/changeHandler/BaseAddXml.js +1 -1
- package/src/sap/ui/fl/changeHandler/BaseRename.js +1 -1
- package/src/sap/ui/fl/changeHandler/HideControl.js +1 -1
- package/src/sap/ui/fl/changeHandler/MoveControls.js +1 -1
- package/src/sap/ui/fl/changeHandler/MoveElements.js +1 -1
- package/src/sap/ui/fl/changeHandler/PropertyBindingChange.js +1 -1
- package/src/sap/ui/fl/changeHandler/PropertyChange.js +1 -1
- package/src/sap/ui/fl/changeHandler/StashControl.js +1 -1
- package/src/sap/ui/fl/changeHandler/UnhideControl.js +1 -1
- package/src/sap/ui/fl/changeHandler/UnstashControl.js +1 -1
- package/src/sap/ui/fl/changeHandler/UpdateIFrame.js +2 -2
- package/src/sap/ui/fl/changeHandler/common/createIFrame.js +5 -2
- package/src/sap/ui/fl/descriptorRelated/Utils.js +16 -7
- package/src/sap/ui/fl/descriptorRelated/api/DescriptorChangeFactory.js +4 -4
- package/src/sap/ui/fl/descriptorRelated/api/DescriptorInlineChangeFactory.js +1 -1
- package/src/sap/ui/fl/descriptorRelated/api/DescriptorVariantFactory.js +1 -1
- package/src/sap/ui/fl/designtime/util/IFrame.designtime.js +26 -0
- package/src/sap/ui/fl/designtime/util/editIFrame.js +8 -5
- package/src/sap/ui/fl/initial/_internal/FlexConfiguration.js +1 -1
- package/src/sap/ui/fl/initial/_internal/Storage.js +5 -2
- package/src/sap/ui/fl/initial/_internal/StorageFeaturesMerger.js +1 -1
- package/src/sap/ui/fl/initial/_internal/StorageUtils.js +1 -1
- package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerRegistration.js +1 -1
- package/src/sap/ui/fl/initial/_internal/changeHandlers/ChangeHandlerStorage.js +1 -1
- package/src/sap/ui/fl/initial/_internal/connectors/KeyUserConnector.js +1 -1
- package/src/sap/ui/fl/initial/_internal/connectors/Utils.js +1 -1
- package/src/sap/ui/fl/initial/_internal/storageResultDisassemble.js +1 -1
- package/src/sap/ui/fl/interfaces/BaseLoadConnector.js +1 -1
- package/src/sap/ui/fl/interfaces/Delegate.js +1 -1
- package/src/sap/ui/fl/library.js +43 -43
- package/src/sap/ui/fl/messagebundle_sh.properties +9 -9
- package/src/sap/ui/fl/support/_internal/getAllUIChanges.js +1 -1
- package/src/sap/ui/fl/support/_internal/getChangeDependencies.js +1 -1
- package/src/sap/ui/fl/support/_internal/getFlexSettings.js +1 -1
- package/src/sap/ui/fl/support/api/SupportAPI.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetails.controller.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/controller/ContentDetailsEdit.controller.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/controller/LayerContentMaster.controller.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/controller/Layers.controller.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/lrepConnector/LRepConnector.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/utils/DataUtils.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/utils/ErrorUtils.js +1 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/view/ContentDetails.view.xml +0 -1
- package/src/sap/ui/fl/support/apps/contentbrowser/view/ContentDetailsEdit.view.xml +0 -1
- package/src/sap/ui/fl/transport/TransportSelection.js +1 -1
- package/src/sap/ui/fl/util/IFrame.js +51 -64
- package/src/sap/ui/fl/util/IFrameRenderer.js +15 -9
- package/src/sap/ui/fl/util/ManagedObjectModel.js +1 -1
- package/src/sap/ui/fl/util/resolveBinding.js +1 -1
- package/src/sap/ui/fl/variants/VariantModel.js +5 -5
- package/src/sap/ui/fl/write/_internal/Storage.js +1 -1
- package/src/sap/ui/fl/write/_internal/Versions.js +1 -1
- package/src/sap/ui/fl/write/_internal/appVariant/AppVariant.js +1 -1
- package/src/sap/ui/fl/write/_internal/appVariant/AppVariantFactory.js +1 -1
- package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChange.js +1 -1
- package/src/sap/ui/fl/write/_internal/appVariant/AppVariantInlineChangeFactory.js +2 -2
- package/src/sap/ui/fl/write/_internal/condenser/Condenser.js +1 -1
- package/src/sap/ui/fl/write/_internal/condenser/UIReconstruction.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/BackendConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/BtpServiceConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/KeyUserConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/LrepConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/NeoLrepConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/ObjectPathConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/PersonalizationConnector.js +1 -1
- package/src/sap/ui/fl/write/_internal/connectors/Utils.js +1 -1
- package/src/sap/ui/fl/write/_internal/delegates/ODataV2ReadDelegate.js +5 -5
- package/src/sap/ui/fl/write/_internal/extensionPoint/Processor.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPAccess.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariant.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/ABAPExtensibilityVariantFactory.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/MultiTenantABAPExtensibilityVariant.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/ServiceValidation.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/SingleTenantABAPExtensibilityVariant.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/UriParser.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/Utils.js +12 -23
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/CAPAccess.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/dialog/CustomFieldCAPDialog.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/rangeEditor/RangeEditor.js +1 -1
- package/src/sap/ui/fl/write/_internal/fieldExtensibility/cap/editor/propertyEditor/timeEditor/TimeEditor.js +1 -1
- package/src/sap/ui/fl/write/_internal/flexState/FlexObjectState.js +63 -95
- package/src/sap/ui/fl/write/_internal/flexState/UI2Personalization/UI2PersonalizationState.js +1 -1
- package/src/sap/ui/fl/write/_internal/flexState/compVariants/CompVariantState.js +2 -1
- package/src/sap/ui/fl/write/_internal/transport/TransportSelection.js +1 -1
- package/src/sap/ui/fl/write/_internal/transport/Transports.js +1 -1
- package/src/sap/ui/fl/write/api/FieldExtensibility.js +1 -1
- package/src/sap/ui/fl/write/api/LocalResetAPI.js +9 -8
- package/src/sap/ui/fl/write/api/PersistenceWriteAPI.js +3 -7
- package/src/sap/ui/fl/write/api/SACIntegrationUpdateVariant.js +78 -0
- package/src/sap/ui/fl/write/api/connectors/ObjectStorageConnector.js +9 -1
- package/src/sap/ui/fl/apply/_internal/DelegateMediatorNew.js +0 -193
- package/src/sap/ui/fl/apply/_internal/flexState/appDescriptorChanges/prepareAppDescriptorMap.js +0 -39
|
@@ -6,23 +6,18 @@
|
|
|
6
6
|
|
|
7
7
|
// Provides control sap.ui.fl.util.IFrame
|
|
8
8
|
sap.ui.define([
|
|
9
|
-
"../library",
|
|
10
9
|
"sap/ui/core/Control",
|
|
11
10
|
"sap/ui/model/json/JSONModel",
|
|
12
11
|
"./getContainerUserInfo",
|
|
13
|
-
"sap/base/util/extend",
|
|
14
|
-
"sap/base/util/restricted/_CancelablePromise",
|
|
15
12
|
"sap/base/security/URLListValidator",
|
|
16
13
|
"sap/base/Log",
|
|
17
14
|
"./IFrameRenderer",
|
|
15
|
+
"../library",
|
|
18
16
|
"sap/ui/core/library"
|
|
19
17
|
], function(
|
|
20
|
-
library,
|
|
21
18
|
Control,
|
|
22
19
|
JSONModel,
|
|
23
20
|
getContainerUserInfo,
|
|
24
|
-
extend,
|
|
25
|
-
CancelablePromise,
|
|
26
21
|
URLListValidator,
|
|
27
22
|
Log,
|
|
28
23
|
IFrameRenderer
|
|
@@ -53,7 +48,7 @@ sap.ui.define([
|
|
|
53
48
|
* @extends sap.ui.core.Control
|
|
54
49
|
*
|
|
55
50
|
* @author SAP SE
|
|
56
|
-
* @version 1.
|
|
51
|
+
* @version 1.124.1
|
|
57
52
|
*
|
|
58
53
|
* @constructor
|
|
59
54
|
* @private
|
|
@@ -95,11 +90,18 @@ sap.ui.define([
|
|
|
95
90
|
renameInfo: {type: "object", group: "Data", defaultValue: null},
|
|
96
91
|
|
|
97
92
|
/**
|
|
98
|
-
*
|
|
93
|
+
* Contains the Iframe sandbox attributes
|
|
99
94
|
*/
|
|
100
|
-
|
|
101
|
-
type: "
|
|
102
|
-
defaultValue:
|
|
95
|
+
advancedSettings: {
|
|
96
|
+
type: "object",
|
|
97
|
+
defaultValue: {
|
|
98
|
+
allowForms: true,
|
|
99
|
+
allowPopups: true,
|
|
100
|
+
allowScripts: true,
|
|
101
|
+
allowModals: true,
|
|
102
|
+
allowSameOrigin: true,
|
|
103
|
+
additionalSandboxParameters: []
|
|
104
|
+
}
|
|
103
105
|
},
|
|
104
106
|
|
|
105
107
|
/**
|
|
@@ -108,7 +110,11 @@ sap.ui.define([
|
|
|
108
110
|
* @private
|
|
109
111
|
* @ui5-restricted sap.ui.fl
|
|
110
112
|
*/
|
|
111
|
-
_settings: {
|
|
113
|
+
_settings: {
|
|
114
|
+
type: "object",
|
|
115
|
+
group: "Data",
|
|
116
|
+
defaultValue: null
|
|
117
|
+
}
|
|
112
118
|
},
|
|
113
119
|
|
|
114
120
|
designtime: "sap/ui/fl/designtime/util/IFrame.designtime"
|
|
@@ -129,59 +135,26 @@ sap.ui.define([
|
|
|
129
135
|
return this._oInitializePromise ? this._oInitializePromise : Promise.reject();
|
|
130
136
|
},
|
|
131
137
|
|
|
132
|
-
_setUrlLegacy(sEncodedUrl) {
|
|
133
|
-
// Setting the url of the IFrame directly can lead to issues
|
|
134
|
-
// if the change doesn't result in a reload of the embedded page
|
|
135
|
-
// e.g. when a navigation parameter is changed
|
|
136
|
-
// To avoid problems with the ushell and the embedded apps, it is safer
|
|
137
|
-
// to unload the iframe content first and thus force a full browser reload
|
|
138
|
-
|
|
139
|
-
if (this._oSetUrlPromise) {
|
|
140
|
-
this._oSetUrlPromise.cancel();
|
|
141
|
-
delete this._oSetUrlPromise;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
this.setProperty("url", "");
|
|
145
|
-
|
|
146
|
-
this._oSetUrlPromise = new CancelablePromise(function(fnResolve, fnReject, onCancel) {
|
|
147
|
-
onCancel.shouldReject = false;
|
|
148
|
-
// Use a timeout here to avoid issues with browser caching in Chrome
|
|
149
|
-
// that seem to lead to a mismatch between IFrame content and src,
|
|
150
|
-
// see Chromium issue 324102
|
|
151
|
-
setTimeout(fnResolve, 0);
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
this._oSetUrlPromise.then(function() {
|
|
155
|
-
delete this._oSetUrlPromise;
|
|
156
|
-
this.setProperty("url", sEncodedUrl);
|
|
157
|
-
}.bind(this));
|
|
158
|
-
},
|
|
159
|
-
|
|
160
138
|
setUrl(sUrl) {
|
|
161
139
|
// Could contain special characters from bindings that need to be encoded
|
|
162
140
|
// Make sure that it was not encoded before
|
|
163
141
|
var sEncodedUrl = decodeURI(sUrl) === sUrl ? encodeURI(sUrl) : sUrl;
|
|
164
142
|
|
|
165
143
|
if (IFrame.isValidUrl(sEncodedUrl).result) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
) {
|
|
179
|
-
// Only the hash changed, site is not going to reload automatically
|
|
180
|
-
// Set an artificial frame buster search parameter to force a refresh
|
|
181
|
-
oNewUrl.searchParams.append("sap-ui-xx-fl-forceEmbeddedContentRefresh", Date.now());
|
|
182
|
-
}
|
|
183
|
-
this.setProperty("url", oNewUrl.toString());
|
|
144
|
+
// Set by replacing the last entry
|
|
145
|
+
const oNewUrl = IFrame._toUrl(sEncodedUrl);
|
|
146
|
+
const oOldUrl = IFrame._toUrl(this.getUrl() || "about:blank");
|
|
147
|
+
if (
|
|
148
|
+
oOldUrl.origin === oNewUrl.origin
|
|
149
|
+
&& oOldUrl.pathname === oNewUrl.pathname
|
|
150
|
+
&& oOldUrl.search === oNewUrl.search
|
|
151
|
+
&& oOldUrl.hash !== oNewUrl.hash
|
|
152
|
+
) {
|
|
153
|
+
// Only the hash changed, site is not going to reload automatically
|
|
154
|
+
// Set an artificial frame buster search parameter to force a refresh
|
|
155
|
+
oNewUrl.searchParams.append("sap-ui-xx-fl-forceEmbeddedContentRefresh", Date.now());
|
|
184
156
|
}
|
|
157
|
+
this.setProperty("url", oNewUrl.toString());
|
|
185
158
|
} else {
|
|
186
159
|
Log.error("Provided URL is not valid as an IFrame src");
|
|
187
160
|
}
|
|
@@ -195,9 +168,23 @@ sap.ui.define([
|
|
|
195
168
|
},
|
|
196
169
|
|
|
197
170
|
onAfterRendering() {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
171
|
+
this._replaceIframeLocation(this.getUrl());
|
|
172
|
+
|
|
173
|
+
// The contentWindow might change without causing a rerender, e.g.
|
|
174
|
+
// when the parent element changes due to an appendChild call
|
|
175
|
+
// This will cause the iframe src to change and we need to replace the
|
|
176
|
+
// location again to ensure the correct content
|
|
177
|
+
this._oLastContentWindow = this.getDomRef().contentWindow;
|
|
178
|
+
this.getDomRef().addEventListener("load", () => {
|
|
179
|
+
if (!this.getDomRef()) {
|
|
180
|
+
// The iframe was removed before the load event was triggered
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
if (this._oLastContentWindow !== this.getDomRef().contentWindow) {
|
|
184
|
+
this._oLastContentWindow = this.getDomRef().contentWindow;
|
|
185
|
+
this._replaceIframeLocation(this.getUrl());
|
|
186
|
+
}
|
|
187
|
+
});
|
|
201
188
|
},
|
|
202
189
|
|
|
203
190
|
applySettings(mSettings, ...aOtherArgs) {
|
|
@@ -205,9 +192,9 @@ sap.ui.define([
|
|
|
205
192
|
Control.prototype.applySettings.apply(this, [mOtherSettings, ...aOtherArgs]);
|
|
206
193
|
Control.prototype.applySettings.apply(this, [{ url }, ...aOtherArgs]);
|
|
207
194
|
if (mSettings) {
|
|
208
|
-
|
|
195
|
+
let mMergedSettings = {...this.getProperty("_settings") || {}};
|
|
209
196
|
if (mSettings._settings) {
|
|
210
|
-
|
|
197
|
+
mMergedSettings = {...mMergedSettings, ...mSettings._settings};
|
|
211
198
|
} else {
|
|
212
199
|
Object.keys(mSettings)
|
|
213
200
|
.filter(function(sPropertyName) {
|
|
@@ -217,7 +204,7 @@ sap.ui.define([
|
|
|
217
204
|
mMergedSettings[sPropertyName] = unbind(mSettings[sPropertyName]);
|
|
218
205
|
});
|
|
219
206
|
}
|
|
220
|
-
this.setProperty("_settings", mMergedSettings);
|
|
207
|
+
this.setProperty("_settings", { ...mMergedSettings });
|
|
221
208
|
}
|
|
222
209
|
},
|
|
223
210
|
|
|
@@ -15,6 +15,13 @@ sap.ui.define([
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
function createsSandboxAttributesString(oAdvancedSettings) {
|
|
19
|
+
return Object.keys(oAdvancedSettings)
|
|
20
|
+
.filter((sKey) => oAdvancedSettings[sKey])
|
|
21
|
+
.map((sKey) => sKey.replace(/[A-Z]/g, "-$&").toLowerCase())
|
|
22
|
+
.join(" ");
|
|
23
|
+
}
|
|
24
|
+
|
|
18
25
|
/**
|
|
19
26
|
* IFrame renderer.
|
|
20
27
|
* @namespace
|
|
@@ -39,15 +46,14 @@ sap.ui.define([
|
|
|
39
46
|
oRm.style("display", "block");
|
|
40
47
|
oRm.style("border", "none");
|
|
41
48
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
49
|
+
const oAdvancedSettings = oIFrame.getAdvancedSettings();
|
|
50
|
+
const { additionalSandboxParameters: aAdditionalSandboxParameters, ...oFilteredAdvancedSettings } = oAdvancedSettings;
|
|
51
|
+
const sAdditionalSandboxParameters = aAdditionalSandboxParameters?.join(" ");
|
|
52
|
+
const sSandboxAttributes = createsSandboxAttributesString(oFilteredAdvancedSettings);
|
|
53
|
+
const sCombinedSandboxAttributes = sAdditionalSandboxParameters ? `${sSandboxAttributes} ${sAdditionalSandboxParameters}` : sSandboxAttributes;
|
|
54
|
+
oRm.attr("sandbox", sCombinedSandboxAttributes);
|
|
55
|
+
// Always set the src to about:blank to avoid adding history entries when parameters are resolved
|
|
56
|
+
oRm.attr("src", "about:blank");
|
|
51
57
|
|
|
52
58
|
var sTitle = oIFrame.getTitle();
|
|
53
59
|
if (sTitle) {
|
|
@@ -218,7 +218,7 @@ sap.ui.define([
|
|
|
218
218
|
var oSettings = Settings.getInstanceOrUndef();
|
|
219
219
|
var bUserIsAuthorized = oSettings &&
|
|
220
220
|
(oSettings.isKeyUser() || !oSettings.getUserId() ||
|
|
221
|
-
(oSettings.isPublicFlVariantEnabled() && oSettings.getUserId().toUpperCase() === oVariant.
|
|
221
|
+
(oSettings.isPublicFlVariantEnabled() && oSettings.getUserId().toUpperCase() === oVariant.instance.getSupportInformation().user.toUpperCase()));
|
|
222
222
|
oVariant.remove = bUserIsAuthorized;
|
|
223
223
|
oVariant.rename = bUserIsAuthorized;
|
|
224
224
|
oVariant.change = bUserIsAuthorized;
|
|
@@ -253,14 +253,14 @@ sap.ui.define([
|
|
|
253
253
|
Utils.getUShellService("UserInfo"),
|
|
254
254
|
Utils.getUShellService("URLParsing"),
|
|
255
255
|
Utils.getUShellService("Navigation"),
|
|
256
|
-
Utils.getUShellService("
|
|
256
|
+
Utils.getUShellService("ShellNavigationInternal")
|
|
257
257
|
];
|
|
258
258
|
return Promise.all(aServicePromises)
|
|
259
259
|
.then(function(aServices) {
|
|
260
260
|
setUShellService("UserInfo", aServices[0]);
|
|
261
261
|
setUShellService("URLParsing", aServices[1]);
|
|
262
262
|
setUShellService("Navigation", aServices[2]);
|
|
263
|
-
setUShellService("
|
|
263
|
+
setUShellService("ShellNavigationInternal", aServices[3]);
|
|
264
264
|
})
|
|
265
265
|
.catch(function(vError) {
|
|
266
266
|
throw new Error(`Error getting service from Unified Shell: ${vError}`);
|
|
@@ -290,7 +290,7 @@ sap.ui.define([
|
|
|
290
290
|
* @class Variant model implementation for JSON format.
|
|
291
291
|
* @extends sap.ui.model.json.JSONModel
|
|
292
292
|
* @author SAP SE
|
|
293
|
-
* @version 1.
|
|
293
|
+
* @version 1.124.1
|
|
294
294
|
* @param {object} oData - Either the URL where to load the JSON from or a JS object
|
|
295
295
|
* @param {object} mPropertyBag - Map of properties required for the constructor
|
|
296
296
|
* @param {sap.ui.fl.FlexController} mPropertyBag.flexController - <code>FlexController</code> instance for the component which uses the variant model
|
|
@@ -333,7 +333,7 @@ sap.ui.define([
|
|
|
333
333
|
this.updateData();
|
|
334
334
|
|
|
335
335
|
const oLiveDependencyMap = UIChangesState.getLiveDependencyMap(this.sFlexReference);
|
|
336
|
-
VariantManagementState.
|
|
336
|
+
VariantManagementState.getInitialUIChanges(
|
|
337
337
|
{reference: this.sFlexReference},
|
|
338
338
|
this.oAppComponent.getId(),
|
|
339
339
|
this.sFlexReference
|
|
@@ -33,7 +33,7 @@ sap.ui.define([
|
|
|
33
33
|
* @namespace
|
|
34
34
|
* @alias sap.ui.fl.write._internal.appVariant.AppVariantInlineChangeFactory
|
|
35
35
|
* @author SAP SE
|
|
36
|
-
* @version 1.
|
|
36
|
+
* @version 1.124.1
|
|
37
37
|
* @private
|
|
38
38
|
* @ui5-restricted sap.ui.rta, smart business
|
|
39
39
|
*/
|
|
@@ -774,7 +774,7 @@ sap.ui.define([
|
|
|
774
774
|
* @ui5-restricted sap.ui.rta, smart business
|
|
775
775
|
*/
|
|
776
776
|
AppVariantInlineChangeFactory.create_ui5_setMinUI5Version = function(mPropertyBag) {
|
|
777
|
-
Utils.checkParameterAndType(mPropertyBag.content, "minUI5Version", "string");
|
|
777
|
+
Utils.checkParameterAndType(mPropertyBag.content, "minUI5Version", ["string", "array"]);
|
|
778
778
|
return _createAppVariantInlineChange(mPropertyBag);
|
|
779
779
|
};
|
|
780
780
|
|
|
@@ -21,7 +21,7 @@ sap.ui.define([
|
|
|
21
21
|
* Connector for saving and deleting data from SAPUI5 Flexibility KeyUser service - including personalization.
|
|
22
22
|
*
|
|
23
23
|
* @namespace sap.ui.fl.write._internal.connectors.BtpServiceConnector
|
|
24
|
-
* @version 1.
|
|
24
|
+
* @version 1.124.1
|
|
25
25
|
* @private
|
|
26
26
|
* @ui5-restricted sap.ui.fl.write._internal.Storage
|
|
27
27
|
*/
|
|
@@ -166,12 +166,12 @@ sap.ui.define(["sap/ui/model/ListBinding"], function(ListBinding) {
|
|
|
166
166
|
* @return {string} the binding path
|
|
167
167
|
*/
|
|
168
168
|
function getBindingPath(oElement, sAggregationName, mPayload) {
|
|
169
|
-
if (mPayload
|
|
170
|
-
return mPayload
|
|
169
|
+
if (mPayload?.path) {
|
|
170
|
+
return mPayload?.path;
|
|
171
171
|
}
|
|
172
172
|
return checkForAbsoluteAggregationBinding(oElement, sAggregationName)
|
|
173
|
-
? getDefaultModelBindingData(oElement, true, sAggregationName)
|
|
174
|
-
: getDefaultModelBindingData(oElement, false, sAggregationName)
|
|
173
|
+
? getDefaultModelBindingData(oElement, true, sAggregationName)?.path
|
|
174
|
+
: getDefaultModelBindingData(oElement, false, sAggregationName)?.getPath();
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
/**
|
|
@@ -182,7 +182,7 @@ sap.ui.define(["sap/ui/model/ListBinding"], function(ListBinding) {
|
|
|
182
182
|
* @return {Promise} A Promise that resolves with the OData meta model or null if not found
|
|
183
183
|
*/
|
|
184
184
|
async function loadODataMetaModel(oElement, mPayload) {
|
|
185
|
-
const oModel = oElement.getModel(mPayload
|
|
185
|
+
const oModel = oElement.getModel(mPayload?.modelName);
|
|
186
186
|
if (oModel && ["sap.ui.model.odata.ODataModel", "sap.ui.model.odata.v2.ODataModel"].includes(oModel.getMetadata().getName())) {
|
|
187
187
|
const oMetaModel = oModel.getMetaModel();
|
|
188
188
|
await oMetaModel.loaded();
|
|
@@ -17,7 +17,7 @@ sap.ui.define([
|
|
|
17
17
|
* @class
|
|
18
18
|
* @namespace sap.ui.fl.write._internal.fieldExtensibility.ABAPExtensibilityVariant
|
|
19
19
|
* @since 1.87
|
|
20
|
-
* @version 1.
|
|
20
|
+
* @version 1.124.1
|
|
21
21
|
* @public
|
|
22
22
|
* @param {sap.ui.base.ManagedObject} oControl - Control to add extensions
|
|
23
23
|
*/
|
|
@@ -115,7 +115,7 @@ sap.ui.define([
|
|
|
115
115
|
* @namespace sap.ui.fl.write._internal.fieldExtensibility.ABAPExtensibilityVariantFactory
|
|
116
116
|
* @since 1.87.0
|
|
117
117
|
* @author SAP SE
|
|
118
|
-
* @version 1.
|
|
118
|
+
* @version 1.124.1
|
|
119
119
|
* @private
|
|
120
120
|
*/
|
|
121
121
|
var ABAPExtensibilityVariantFactory = {};
|
|
@@ -245,7 +245,7 @@ sap.ui.define([
|
|
|
245
245
|
* @namespace sap.ui.fl.write._internal.fieldExtensibility.Utils
|
|
246
246
|
* @since 1.87.0
|
|
247
247
|
* @author SAP SE
|
|
248
|
-
* @version 1.
|
|
248
|
+
* @version 1.124.1
|
|
249
249
|
* @private
|
|
250
250
|
*/
|
|
251
251
|
var Utils = {};
|
|
@@ -351,14 +351,9 @@ sap.ui.define([
|
|
|
351
351
|
* @param {Map} mIntent Given intent
|
|
352
352
|
* @returns {Promise<string|null>} Resolves with navigation URI or null
|
|
353
353
|
*/
|
|
354
|
-
Utils.getNavigationUriForIntent = function(mIntent) {
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
return oUshellNavigationService.getHref(mIntent);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
return Promise.resolve(null);
|
|
361
|
-
});
|
|
354
|
+
Utils.getNavigationUriForIntent = async function(mIntent) {
|
|
355
|
+
const oNavigationService = await FlexUtils.getUShellService("Navigation");
|
|
356
|
+
return oNavigationService?.getHref?.(mIntent) || null;
|
|
362
357
|
};
|
|
363
358
|
|
|
364
359
|
/**
|
|
@@ -415,21 +410,15 @@ sap.ui.define([
|
|
|
415
410
|
* @param {Array} aIntents Given intents
|
|
416
411
|
* @returns {Promise<Array<boolean>>} Resolves with an array of booleans
|
|
417
412
|
*/
|
|
418
|
-
Utils.isNavigationSupportedForIntents = function(aIntents) {
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
});
|
|
425
|
-
});
|
|
426
|
-
}
|
|
413
|
+
Utils.isNavigationSupportedForIntents = async function(aIntents) {
|
|
414
|
+
const oNavigationService = await FlexUtils.getUShellService("Navigation");
|
|
415
|
+
if (oNavigationService?.isNavigationSupported) {
|
|
416
|
+
const aResults = await oNavigationService.isNavigationSupported(aIntents);
|
|
417
|
+
return aResults.map((oResult) => oResult && oResult.supported === true);
|
|
418
|
+
}
|
|
427
419
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
return false;
|
|
431
|
-
}));
|
|
432
|
-
});
|
|
420
|
+
// we assume no navigation support
|
|
421
|
+
return aIntents.map(() => false);
|
|
433
422
|
};
|
|
434
423
|
|
|
435
424
|
return Utils;
|
|
@@ -82,7 +82,7 @@ sap.ui.define([
|
|
|
82
82
|
* @extends sap.ui.base.ManagedObject
|
|
83
83
|
* @alias sap.ui.fl.write._internal.fieldExtensibility.cap.dialog.CustomFieldCAPDialog
|
|
84
84
|
* @author SAP SE
|
|
85
|
-
* @version 1.
|
|
85
|
+
* @version 1.124.1
|
|
86
86
|
* @since 1.93
|
|
87
87
|
* @private
|
|
88
88
|
* @ui5-restricted
|