@sapui5/sap.ushell_abap 1.149.1 → 1.150.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.
Files changed (43) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell_abap/.library +1 -1
  3. package/src/main/js/sap/ushell_abap/adapters/abap/AppStateAdapter.js +1 -1
  4. package/src/main/js/sap/ushell_abap/adapters/abap/ClientSideTargetResolutionAdapter.js +1 -1
  5. package/src/main/js/sap/ushell_abap/adapters/abap/CommonDataModelAdapter.js +1 -1
  6. package/src/main/js/sap/ushell_abap/adapters/abap/ConfigurationDefaultsAdapter.js +1 -1
  7. package/src/main/js/sap/ushell_abap/adapters/abap/ContainerAdapter.js +1 -1
  8. package/src/main/js/sap/ushell_abap/adapters/abap/FlpLaunchPageAdapter.js +1 -1
  9. package/src/main/js/sap/ushell_abap/adapters/abap/LaunchPageAdapter.js +1 -1
  10. package/src/main/js/sap/ushell_abap/adapters/abap/MenuAdapter.js +1 -1
  11. package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionAdapter.js +1 -1
  12. package/src/main/js/sap/ushell_abap/adapters/abap/NavTargetResolutionInternalAdapter.js +1 -1
  13. package/src/main/js/sap/ushell_abap/adapters/abap/PageBuildingAdapter.js +1 -1
  14. package/src/main/js/sap/ushell_abap/adapters/abap/PagePersistenceAdapter.js +1 -1
  15. package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationAdapter.js +1 -1
  16. package/src/main/js/sap/ushell_abap/adapters/abap/PersonalizationV2Adapter.js +1 -1
  17. package/src/main/js/sap/ushell_abap/adapters/abap/SearchAdapter.js +1 -1
  18. package/src/main/js/sap/ushell_abap/adapters/abap/SupportTicketAdapter.js +1 -1
  19. package/src/main/js/sap/ushell_abap/adapters/abap/Ui5ComponentLoaderAdapter.js +1 -1
  20. package/src/main/js/sap/ushell_abap/adapters/hana/ContainerAdapter.js +1 -1
  21. package/src/main/js/sap/ushell_abap/appRuntime/ui5/libsPreload.js +4 -0
  22. package/src/main/js/sap/ushell_abap/bootstrap/LoadLaunchpad/InitXhrLogon.js +17 -25
  23. package/src/main/js/sap/ushell_abap/bootstrap/ThemeHandler.js +34 -2
  24. package/src/main/js/sap/ushell_abap/bootstrap/abapConstants.js +1 -1
  25. package/src/main/js/sap/ushell_abap/library.js +2 -3
  26. package/src/main/js/sap/ushell_abap/messagebundle.properties +7 -0
  27. package/src/main/js/sap/ushell_abap/themes/base/.theming +4 -0
  28. package/src/main/js/sap/ushell_abap/themes/base/LogonFrameProvider.less +27 -0
  29. package/src/main/js/sap/ushell_abap/themes/base/library.source.less +5 -0
  30. package/src/main/js/sap/ushell_abap/themes/sap_fiori_3/.theming +6 -0
  31. package/src/main/js/sap/ushell_abap/themes/sap_fiori_3/library.source.less +2 -0
  32. package/src/main/js/sap/ushell_abap/themes/sap_fiori_3_dark/.theming +6 -0
  33. package/src/main/js/sap/ushell_abap/themes/sap_fiori_3_dark/library.source.less +2 -0
  34. package/src/main/js/sap/ushell_abap/themes/sap_fiori_3_hcb/.theming +6 -0
  35. package/src/main/js/sap/ushell_abap/themes/sap_fiori_3_hcb/library.source.less +2 -0
  36. package/src/main/js/sap/ushell_abap/themes/sap_horizon/.theming +6 -0
  37. package/src/main/js/sap/ushell_abap/themes/sap_horizon/library.source.less +2 -0
  38. package/src/main/js/sap/ushell_abap/themes/sap_horizon_dark/.theming +6 -0
  39. package/src/main/js/sap/ushell_abap/themes/sap_horizon_dark/library.source.less +2 -0
  40. package/src/main/js/sap/ushell_abap/themes/sap_horizon_hcb/.theming +6 -0
  41. package/src/main/js/sap/ushell_abap/themes/sap_horizon_hcb/library.source.less +2 -0
  42. package/src/main/js/sap/ushell_abap/ui/logon/LogonFrameProvider.js +92 -0
  43. package/ui5.yaml +27 -181
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.ushell_abap",
3
- "version": "1.149.1",
3
+ "version": "1.150.1",
4
4
  "description": "SAPUI5 Library sap.ushell_abap",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -2,7 +2,7 @@
2
2
  <library xmlns="http://www.sap.com/sap.ui.library.xsd">
3
3
  <name>sap.ushell_abap</name>
4
4
  <vendor>SAP SE</vendor>
5
- <version>1.149.1</version>
5
+ <version>1.150.1</version>
6
6
  <copyright>Copyright (c) 2009-2026 SAP SE, All Rights Reserved</copyright>
7
7
  <documentation>SAP library: sap.ushell_abap</documentation>
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The Unified Shell's AppStateAdapter for the ABAP platform.
5
- * @version 1.149.1
5
+ * @version 1.150.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/util/ObjectPath",
@@ -9,7 +9,7 @@
9
9
  * <li>provide the resolveHashFragmentFallback function, a fallback method called by ClientSideTargetResolution service.</li>
10
10
  * </ul>
11
11
  *
12
- * @version 1.149.1
12
+ * @version 1.150.1
13
13
  */
14
14
  sap.ui.define([
15
15
  "sap/base/util/ObjectPath",
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview The Unified Shell's CommonDataModelAdapter for the ABAP platform, it is used to avoid 404 when no adapter is found
4
4
  *
5
- * @version 1.149.1
5
+ * @version 1.150.1
6
6
  */
7
7
  sap.ui.define([
8
8
  ], () => {
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The ConfigurationDefaults adapter for the ABAP platform.
5
- * @version 1.149.1
5
+ * @version 1.150.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ushell_abap/bootstrap/abapConstants",
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview The Unified Shell's container adapter for the ABAP platform.
4
4
  *
5
- * @version 1.149.1
5
+ * @version 1.150.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/ui/thirdparty/jquery",
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  * @fileoverview The Unified Shell's page building adapter for the ABAP platform. Private copy. Classical home page functions are deprecated.
5
5
  * @since 1.121
6
- * @version 1.149.1
6
+ * @version 1.150.1
7
7
  */
8
8
  sap.ui.define([
9
9
  "sap/ui/thirdparty/URI",
@@ -4,7 +4,7 @@
4
4
  * @fileOverview The Unified Shell's page building adapter for the ABAP platform.
5
5
  *
6
6
  * @deprecated since 1.100
7
- * @version 1.149.1
7
+ * @version 1.150.1
8
8
  */
9
9
  sap.ui.define([
10
10
  "sap/ushell_abap/adapters/abap/FlpLaunchPageAdapter"
@@ -199,7 +199,7 @@ sap.ui.define([
199
199
  if (aSubMenuEntries.length > 1) {
200
200
  oTopMenuEntry.menuEntries = aSubMenuEntries;
201
201
 
202
- if (Config.last("/abap/spaces/spaceOverview/enabled")) {
202
+ if (Config.last("/abap/spaces/spaceOverview/enabled") && oSpace.hasWorkarea) {
203
203
  oTopMenuEntry.target.semanticObject = "Launchpad";
204
204
  oTopMenuEntry.target.action = "openSpaceOverview";
205
205
  oTopMenuEntry.target.parameters = [
@@ -8,7 +8,7 @@
8
8
  * service now calls the ClientSideTargetResolution service in the ABAP
9
9
  * platform.
10
10
  *
11
- * @version 1.149.1
11
+ * @version 1.150.1
12
12
  */
13
13
  sap.ui.define([], () => {
14
14
  "use strict";
@@ -8,7 +8,7 @@
8
8
  * service now calls the ClientSideTargetResolution service in the ABAP
9
9
  * platform.
10
10
  *
11
- * @version 1.149.1
11
+ * @version 1.150.1
12
12
  * @since 1.121
13
13
  */
14
14
  sap.ui.define([], () => {
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The Unified Shell's page building adapter for the ABAP platform.
5
- * @version 1.149.1
5
+ * @version 1.150.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/util/ObjectPath",
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview PagePersistenceAdapter for the ABAP platform.
5
- * @version 1.149.1
5
+ * @version 1.150.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/i18n/Localization",
@@ -7,7 +7,7 @@
7
7
  * Container header properties transported via pseudo-items are mapped to the
8
8
  * respective header properties in setItem/getItem/delItem
9
9
  *
10
- * @version 1.149.1
10
+ * @version 1.150.1
11
11
  */
12
12
  sap.ui.define([
13
13
  "sap/ushell_abap/adapters/abap/AdapterContainer",
@@ -7,7 +7,7 @@
7
7
  * Container header properties transported via pseudo-items are mapped to the
8
8
  * respective header properties in setItem/getItem/delItem
9
9
  *
10
- * @version 1.149.1
10
+ * @version 1.150.1
11
11
  */
12
12
  sap.ui.define([
13
13
  "./PersonalizationAdapter"
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The Search adapter for the ABAP platform.
5
- * @version 1.149.1
5
+ * @version 1.150.1
6
6
  */
7
7
  sap.ui.define([], () => {
8
8
  "use strict";
@@ -2,7 +2,7 @@
2
2
 
3
3
  /**
4
4
  * @fileOverview The SupportTicket adapter for the ABAP platform.
5
- * @version 1.149.1
5
+ * @version 1.150.1
6
6
  */
7
7
  sap.ui.define([
8
8
  "sap/base/util/isEmptyObject",
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * @fileOverview The Unified Shell's Ui5ComponentLoaderAdapter for the ABAP platform
4
4
  *
5
- * @version 1.149.1
5
+ * @version 1.150.1
6
6
  */
7
7
  sap.ui.define([
8
8
  ], () => {
@@ -3,7 +3,7 @@
3
3
  /**
4
4
  * @fileOverview The Unified Shell's container adapter for the HANA platform.
5
5
  *
6
- * @version 1.149.1
6
+ * @version 1.150.1
7
7
  */
8
8
  sap.ui.define([
9
9
  "sap/ui/thirdparty/jquery",
@@ -0,0 +1,4 @@
1
+ // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+ /* eslint-disable */
3
+ try {document.getElementById('sap-ui-bootstrap').setAttribute("data-sap-ui-libs","sap.ui.core,sap.m,sap.ui.fl,sap.ushell,sap.ushell_abap");} catch {}
4
+ try {document.getElementById('sap-ui-bootstrap').setAttribute("data-sap-ui-compatVersion","edge");} catch {}
@@ -5,13 +5,15 @@
5
5
  sap.ui.define([
6
6
  "sap/base/Log",
7
7
  "sap/ushell_abap/bootstrap/XhrLogonEventHandler",
8
- "sap/ushell_abap/bootstrap/XhrLogonLibLoader",
8
+ "sap/ushell_abap/bootstrap/XhrLogonLibLoader", // triggers loading of the XHR logon lib, once required
9
+ "sap/ushell_abap/ui/logon/LogonFrameProvider",
9
10
  "sap/ushell/Container",
10
11
  "sap/ushell/Config"
11
12
  ], (
12
13
  Log,
13
14
  XhrLogonEventHandler,
14
15
  XhrLogonLibLoader,
16
+ LogonFrameProvider,
15
17
  Container,
16
18
  Config
17
19
  ) => {
@@ -34,10 +36,7 @@ sap.ui.define([
34
36
  * @private
35
37
  */
36
38
  async run () {
37
- await Promise.all([
38
- this.#initXhrLogon(),
39
- this.#initFrameLogonManager()
40
- ]);
39
+ await this.#initXhrLogon();
41
40
  }
42
41
 
43
42
  /**
@@ -78,32 +77,25 @@ sap.ui.define([
78
77
 
79
78
  oXhrLogonLib.start(oXhrLibConfig);
80
79
 
81
- if (sLogonMode === "reload" || sLogonMode === "logoffAndRedirect") {
82
- oLogonManager.unregisterAllHandlers();
83
- oLogonManager.registerAuthHandler("*", (oEvent) => {
84
- oXhrLogonEventHandler.handleEvent(oEvent);
85
- });
86
- } else if (sLogonMode !== "frame") {
87
- Log.warning(`Unknown setting for xhrLogonMode: '${sLogonMode}'. Using default mode 'frame'.`, null, "sap.ushell_abap.bootstrap.XhrLogon");
80
+ switch (sLogonMode) {
81
+ case "frame":
82
+ oXhrLogonLib.FrameLogonManager.getInstance().logonFrameProvider = LogonFrameProvider;
83
+ break;
84
+ case "reload": // same as "logoffAndRedirect"
85
+ case "logoffAndRedirect":
86
+ oLogonManager.unregisterAllHandlers();
87
+ oLogonManager.registerAuthHandler("*", (oEvent) => {
88
+ oXhrLogonEventHandler.handleEvent(oEvent);
89
+ });
90
+ break;
91
+ default:
92
+ Log.warning(`Unknown setting for xhrLogonMode: '${sLogonMode}'. Using default mode 'frame'.`, null, "sap.ushell_abap.bootstrap.XhrLogon");
88
93
  }
89
94
 
90
95
  oXhrLogonLib.Log.set(this.#createUi5ConnectedXhrLogger());
91
96
  this.#initXhrLogonIgnoreList(oXHRLogonManager);
92
97
  }
93
98
 
94
- /**
95
- * Initializes the XHR logon lib by storing the instance of the logon manager in the Container.
96
- * This is later used to have indirect access to the logon manager.
97
- *
98
- * @since 1.147.0
99
- * @private
100
- */
101
- async #initFrameLogonManager () {
102
- const oXhrLogonLib = await XhrLogonLibLoader.getLib();
103
- const oFrameLogonManager = oXhrLogonLib.FrameLogonManager.getInstance();
104
- Container.oFrameLogonManager = oFrameLogonManager;
105
- }
106
-
107
99
  /**
108
100
  * Creates a logger for XMLHttpRequest(s) that logs errors, warnings, info and debug messages via Log.
109
101
  * @returns {object} A logger that can be assigned to XMLHttpRequest.
@@ -55,9 +55,11 @@ sap.ui.define([
55
55
  if (!sThemeRoot && oStartupConfig.client) {
56
56
  sThemeRoot = `/sap/public/bc/themes/~client-${oStartupConfig.client}`;
57
57
  }
58
+
59
+ // when providing theme root to UI5 we need to add the technology specific ending
58
60
  if (sThemeRoot && !sTheme.startsWith("sap_")) { // set the theme root for the custom theme only
59
61
  oThemeRoots = {};
60
- oThemeRoots[sTheme] = sThemeRoot.replace(/\/?$/, "/UI5/"); // Add /UI5/, theme roots from ABAP theming service do not contain UI5 at the end.
62
+ oThemeRoots[sTheme] = sThemeRoot.replace(/\/?$/, "/UI5/");
61
63
  }
62
64
  return {
63
65
  theme: sTheme,
@@ -189,6 +191,36 @@ sap.ui.define([
189
191
  }
190
192
  }
191
193
 
194
+ /**
195
+ * Sanitizes a configured theme root.
196
+ *
197
+ * The theme root is technology agnostic: the UI5 specific ending is stripped if present, and any single trailing slash
198
+ * is removed so the value can be safely concatenated with a technology specific
199
+ * ending.
200
+ *
201
+ * @param {string} [sThemeRoot] the configured theme root
202
+ * @returns {string} the sanitized theme root, never <code>undefined</code>
203
+ * @private
204
+ */
205
+ #sanitizeThemeRoot (sThemeRoot) {
206
+ if (!sThemeRoot) {
207
+ return "";
208
+ }
209
+
210
+ // first ensure no trailing slash
211
+ if (sThemeRoot.endsWith("/")) {
212
+ sThemeRoot = sThemeRoot.substring(0, sThemeRoot.length - 1);
213
+ }
214
+
215
+ // second ensure no trailing technology
216
+ if (sThemeRoot.endsWith("/UI5")) {
217
+ Log.error("Configured ThemeRoot contained technology specific ending. Removing it for further processing.", null, "sap.ushell_abap.bootstrap");
218
+ sThemeRoot = sThemeRoot.substring(0, sThemeRoot.length - "/UI5".length);
219
+ }
220
+
221
+ return sThemeRoot;
222
+ }
223
+
192
224
  /**
193
225
  * Determines the theme root for a given theme, based on the container adapter config or fallback logic.
194
226
  * @param {string} sTheme The name of the theme for which to determine the theme root
@@ -225,7 +257,7 @@ sap.ui.define([
225
257
  Log.error("extractSystemThemeRoot: Could not determine system theme root");
226
258
  }
227
259
 
228
- return sSystemThemeRoot;
260
+ return this.#sanitizeThemeRoot(sSystemThemeRoot);
229
261
  }
230
262
 
231
263
  /**
@@ -13,7 +13,7 @@ sap.ui.define([
13
13
  */ // eslint-disable-next-line no-constant-condition
14
14
  if (true) {
15
15
  return {
16
- enabled: true,
16
+ enabled: false,
17
17
  coreResources: [
18
18
  "sap/ushell_abap/bootstrap/evo/core-min-0.js",
19
19
  "sap/ushell_abap/bootstrap/evo/core-min-1.js",
@@ -32,13 +32,12 @@ sap.ui.define([
32
32
  const ushellAbapLib = Library.init({
33
33
  name: "sap.ushell_abap",
34
34
  apiVersion: 2,
35
- version: "1.149.1",
35
+ version: "1.150.1",
36
36
  dependencies: [
37
37
  "sap.ui.core",
38
38
  "sap.m",
39
39
  "sap.ushell"
40
- ],
41
- noLibraryCSS: true
40
+ ]
42
41
  });
43
42
 
44
43
  return ushellAbapLib;
@@ -0,0 +1,7 @@
1
+ #This is the resource bundle for the sap.ushell_abap library
2
+ #__ldi.translation.uuid=865e4af1-8cca-465c-8b85-97f19b98ef6a
3
+
4
+ #XBUT: Close button for the SAML authentication dialog
5
+ samlCloseBtn=Close
6
+ #XTIT: Title of the SAML authentication dialog
7
+ samlDialogTitle=Authentication Information
@@ -0,0 +1,4 @@
1
+ {
2
+ "sEntity":"Theme",
3
+ "sId":"base"
4
+ }
@@ -0,0 +1,27 @@
1
+ /* Copyright (c) 2009-2026 SAP SE, All Rights Reserved */
2
+ /* CSS for the LogonFrameProvider*/
3
+
4
+ .sapUshellIframeDialog .sapMDialogScrollCont {
5
+ height: 100%;
6
+ overflow: hidden;
7
+ }
8
+
9
+ .sapUshellSamlDialogHidden {
10
+ visibility: hidden !important;
11
+ }
12
+
13
+ #SAMLDialog #SAMLDialog-scrollCont {
14
+ position: absolute;
15
+ top: 0;
16
+ left: 0;
17
+ right: 0;
18
+ bottom: 0;
19
+ }
20
+
21
+ #SAMLDialogFrame {
22
+ box-sizing: border-box;
23
+ height: 100%;
24
+ width: 100%;
25
+ position: absolute;
26
+ border: none;
27
+ }
@@ -0,0 +1,5 @@
1
+ /* Copyright (c) 2009-2026 SAP SE, All Rights Reserved */
2
+ @import "../../../../sap/ui/core/themes/base/base.less";
3
+ @import "../../../../sap/ui/core/themes/base/global.less";
4
+
5
+ @import "LogonFrameProvider.less";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sEntity" : "Theme",
3
+ "sId" : "sap_fiori_3",
4
+ "sLabel" : "SAP Quartz Light",
5
+ "sVendor" : "SAP"
6
+ }
@@ -0,0 +1,2 @@
1
+ /* Copyright (c) 2009-2026 SAP SE, All Rights Reserved */
2
+ @import "../base/library.source.less";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sEntity" : "Theme",
3
+ "sId" : "sap_fiori_3_dark",
4
+ "sLabel" : "SAP Quartz Dark",
5
+ "sVendor" : "SAP"
6
+ }
@@ -0,0 +1,2 @@
1
+ /* Copyright (c) 2009-2026 SAP SE, All Rights Reserved */
2
+ @import "../base/library.source.less";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sEntity" : "Theme",
3
+ "sId" : "sap_fiori_3_hcb",
4
+ "sLabel" : "SAP Quartz High Contrast Black",
5
+ "sVendor" : "SAP"
6
+ }
@@ -0,0 +1,2 @@
1
+ /* Copyright (c) 2009-2026 SAP SE, All Rights Reserved */
2
+ @import "../base/library.source.less";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sEntity" : "Theme",
3
+ "sId" : "sap_horizon",
4
+ "sLabel" : "SAP Morning Horizon",
5
+ "sVendor" : "SAP"
6
+ }
@@ -0,0 +1,2 @@
1
+ /* Copyright (c) 2009-2026 SAP SE, All Rights Reserved */
2
+ @import "../base/library.source.less";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sEntity" : "Theme",
3
+ "sId" : "sap_horizon_dark",
4
+ "sLabel" : "SAP Evening Horizon",
5
+ "sVendor" : "SAP"
6
+ }
@@ -0,0 +1,2 @@
1
+ /* Copyright (c) 2009-2026 SAP SE, All Rights Reserved */
2
+ @import "../base/library.source.less";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sEntity" : "Theme",
3
+ "sId" : "sap_horizon_hcb",
4
+ "sLabel" : "SAP High Contrast Black (SAP Horizon)",
5
+ "sVendor" : "SAP"
6
+ }
@@ -0,0 +1,2 @@
1
+ /* Copyright (c) 2009-2026 SAP SE, All Rights Reserved */
2
+ @import "../base/library.source.less";
@@ -0,0 +1,92 @@
1
+ // Copyright (c) 2009-2026 SAP SE, All Rights Reserved
2
+
3
+ // Create logon dialog with iFrame window as contents for SAML2 scenarios
4
+ sap.ui.define([
5
+ "sap/m/Button",
6
+ "sap/m/Dialog",
7
+ "sap/ui/core/Element",
8
+ "sap/ui/core/HTML",
9
+ "sap/ui/core/Lib",
10
+ "sap/ushell/Config",
11
+ "sap/ushell/ui/footerbar/ContactSupportButton",
12
+ "sap/ushell_abap/bootstrap/XhrLogonLibLoader"
13
+ ], (
14
+ Button,
15
+ Dialog,
16
+ Element,
17
+ HTML,
18
+ Lib,
19
+ Config,
20
+ ContactSupportButton,
21
+ XhrLogonLibLoader
22
+ ) => {
23
+ "use strict";
24
+
25
+ function toggleBlockLayerCSS (bHidden) {
26
+ const oBlockLayer = document.getElementById("sap-ui-blocklayer-popup");
27
+ if (oBlockLayer) {
28
+ if (bHidden) {
29
+ oBlockLayer.classList.add("sapUshellSamlDialogHidden");
30
+ } else {
31
+ oBlockLayer.classList.remove("sapUshellSamlDialogHidden");
32
+ }
33
+ }
34
+ }
35
+
36
+ function destroyIFrameDialog () {
37
+ const oDialog = Element.getElementById("SAMLDialog");
38
+ if (oDialog) {
39
+ oDialog.destroy();
40
+ }
41
+ }
42
+
43
+ function createIFrameDialog () {
44
+ // A new dialog wrapper with a new inner iframe will be created each time.
45
+ destroyIFrameDialog();
46
+
47
+ // create new iframe and add it to the Dialog HTML control
48
+ const oBundle = Lib.getResourceBundleFor("sap.ushell_abap");
49
+ const oDialog = new Dialog({
50
+ id: "SAMLDialog",
51
+ title: oBundle.getText("samlDialogTitle"),
52
+ contentWidth: "50%",
53
+ contentHeight: "50%",
54
+ content: new HTML("SAMLDialogFrame", {content: "<iframe id=SAMLDialogFrame src=\"\" allow=\"local-network-access *\"></iframe>"}),
55
+ endButton: new Button({
56
+ id: "SAMLDialogCloseBtn",
57
+ text: oBundle.getText("samlCloseBtn"),
58
+ press: () => { XhrLogonLibLoader.getLib().then((oXhrLogonLib) => { oXhrLogonLib.FrameLogonManager.getInstance().abortLogon(); }); }
59
+ })
60
+ }).addStyleClass("sapUshellIframeDialog sapContrastPlus sapUshellSamlDialogHidden");
61
+
62
+ if (Config.last("/core/extension/SupportTicket")) { // Contact Support button
63
+ const oContactSupportBtn = new ContactSupportButton();
64
+ oContactSupportBtn.setWidth("150px");
65
+ oContactSupportBtn.setIcon("");
66
+ oDialog.setBeginButton(oContactSupportBtn);
67
+ }
68
+ oDialog.open();
69
+
70
+ // Make sure to manipulate css properties after the dialog is rendered.
71
+ toggleBlockLayerCSS(true);
72
+
73
+ return document.getElementById("SAMLDialogFrame"); // returns the iframe element so that the logonManager can set src
74
+ }
75
+
76
+ function showIFrameDialog () {
77
+ // remove css class of dialog
78
+ const oDialog = Element.getElementById("SAMLDialog");
79
+ if (oDialog) {
80
+ oDialog.removeStyleClass("sapUshellSamlDialogHidden");
81
+ toggleBlockLayerCSS(true);
82
+ }
83
+ }
84
+
85
+ const LogonFrameProvider = {
86
+ create: createIFrameDialog,
87
+ show: showIFrameDialog,
88
+ destroy: destroyIFrameDialog
89
+ };
90
+
91
+ return LogonFrameProvider;
92
+ });
package/ui5.yaml CHANGED
@@ -61,196 +61,22 @@ builder:
61
61
  optimize: true
62
62
  # Bootstrap Bundles ============================================
63
63
  - bundleDefinition:
64
- name: sap/ushell_abap/bootstrap/appruntime-min.js
64
+ name: sap/ushell_abap/bootstrap/appruntime-min-0.js
65
65
  sections:
66
66
  - mode: raw
67
67
  filters:
68
68
  - sap/ushell/appRuntime/ui5/BusyIndicator.js
69
- - sap/ushell/appRuntime/ui5/libsPreload.js
69
+ - sap/ushell_abap/appRuntime/ui5/libsPreload.js
70
70
  - ui5loader-autoconfig.js
71
71
  declareRawModules: false
72
72
  resolve: true
73
- - mode: bundleInfo
74
- name: sap/ushell_abap/preload-bundles/flex-plugins.js
75
- filters:
76
- - sap/ushell_abap/preload-bundles/flex-plugins.js
77
73
  - mode: preload
74
+ # This is a copy of the sap-ui-core preload bundle
75
+ # Any changes and new usages have to be aligned with the UI5 Core Team
78
76
  filters:
79
77
  - sap/ui/core/Core.js
80
- renderer: true
78
+ - sap/ui/performance/trace/_InteractionImpl.js
81
79
  resolve: true
82
- resolveConditional: false
83
- - mode: preload
84
- filters:
85
- - sap/ushell/appRuntime/ui5/
86
- - sap/ushell/components/applicationIntegration/application/PostMessageAPIInterface.js
87
- - sap/ushell/services/PluginManager/PostMessagePluginInterface.js
88
- - sap/ushell/components/pages/controller/PagesAndSpaceId.js
89
- - sap/ushell/ui5service/UserStatus.js
90
- - sap/ushell/Ui5ServiceFactory.js
91
- - sap/ushell/UI5ComponentType.js
92
- - sap/ushell/utils.js
93
- - sap/ushell/utils/type.js
94
- - sap/ushell/utils/objectOperations.js
95
- - sap/ushell/utils/UrlParsing.js
96
- - sap/ushell/utils/WindowUtils.js
97
- - sap/ushell/utils/UrlShortening.js
98
- - sap/ushell/Container.js
99
- - sap/ushell/EventHub.js
100
- - sap/ushell/navigation/ColdStart.js
101
- - sap/ushell/resources.js
102
- - sap/ushell/renderer/utils
103
- - sap/ushell/renderer/ShellLayout
104
- - sap/ushell/renderer/search/HashChangeHandler.js
105
- - sap/ushell/System.js
106
- - sap/ushell/Ui5NativeServiceFactory.js
107
- - sap/ushell/User.js
108
- - sap/ushell/services/AppConfiguration.js
109
- - sap/ushell/services/AppState.js
110
- - sap/ushell/services/appstate/AppState.js
111
- - sap/ushell/services/appstate/AppStatePersistencyMethod.js
112
- - sap/ushell/services/AppLifeCycle.js
113
- - sap/ushell/Container.js
114
- - sap/ushell/services/CrossApplicationNavigation.js
115
- - sap/ushell/services/_CrossApplicationNavigation/utils.js
116
- - sap/ushell/services/Navigation.js
117
- - sap/ushell/services/Navigation/utils.js
118
- - sap/ushell/services/Personalization.js
119
- - sap/ushell/services/_Personalization/
120
- - sap/ushell/services/PersonalizationV2.js
121
- - sap/ushell/services/PersonalizationV2/
122
- - sap/ushell/services/PluginManager.js
123
- - sap/ushell/services/ShellNavigation.js
124
- - sap/ushell/services/ShellNavigationInternal.js
125
- - sap/ushell/services/ShellNavigationHashChanger.js
126
- - sap/ushell/services/URLShortening.js
127
- - sap/ushell/services/URLParsing.js
128
- - sap/ushell/services/UserInfo.js
129
- - sap/ushell/services/Ui5ComponentLoader.js
130
- - sap/ushell/services/Ui5ComponentHandle.js
131
- - sap/ushell/Config.js
132
- - sap/ushell/bootstrap/common/common.create.configcontract.core.js
133
- - sap/ushell/bootstrap/common/common.debug.mode.js
134
- - sap/ushell/bootstrap/common/common.constants.js
135
- - sap/ushell/Config/utils.js
136
- - sap/ushell/Fiori20AdapterTest.js
137
- - sap/ushell/Fiori20Adapter.js
138
- - sap/ushell/library.js
139
- - sap/ushell/ui/footerbar/AddBookmarkButton*
140
- - sap/ushell/ui/footerbar/SendAsEmailButton*
141
- - sap/ushell/TechnicalParameters.js
142
- - sap/ushell/AppInfoParameters.js
143
- - sap/collaboration/components/fiori/sharing/dialog/Component.js
144
- - sap/collaboration/components/utils/CommonUtil.js
145
- - sap/collaboration/components/utils/MessageQueueUtil.js
146
- - sap/ushell/ui/launchpad/ActionItem*
147
- - sap/ushell/ui/utils.js
148
- - sap/ushell/iconfonts.js
149
- - sap/ushell_abap/ui5appruntime/AppInfoAdapter.js
150
- - sap/ushell_abap/adapters/abap/AdapterContainer.js
151
- - sap/ushell_abap/adapters/abap/PersonalizationAdapter.js
152
- - sap/ushell_abap/adapters/abap/PersonalizationV2Adapter.js
153
- - sap/ui/thirdparty/datajs.js
154
- - sap/ui/thirdparty/bignumber.js
155
- - sap/ui/thirdparty/URITemplate.js
156
- - sap/ui/integration/services/Navigation.js
157
- - sap/ui/integration/services/Service.js
158
- - sap/ui/integration/services/Data.js
159
- - sap/ui/layout/AlignedFlowLayout.js
160
- - sap/ui/layout/AlignedFlowLayoutRenderer.js
161
- - sap/ui/layout/AssociativeSplitter.js
162
- - sap/ui/layout/BlockLayout.js
163
- - sap/ui/layout/BlockLayoutCell.js
164
- - sap/ui/layout/BlockLayoutCellData.js
165
- - sap/ui/layout/BlockLayoutCellRenderer.js
166
- - sap/ui/layout/BlockLayoutRenderer.js
167
- - sap/ui/layout/BlockLayoutRow.js
168
- - sap/ui/layout/BlockLayoutRowRenderer.js
169
- - sap/ui/layout/DynamicSideContent.js
170
- - sap/ui/layout/DynamicSideContentRenderer.js
171
- - sap/ui/layout/FixFlex.js
172
- - sap/ui/layout/FixFlexRenderer.js
173
- - sap/ui/layout/Grid.js
174
- - sap/ui/layout/GridData.js
175
- - sap/ui/layout/GridRenderer.js
176
- - sap/ui/layout/HorizontalLayout.js
177
- - sap/ui/layout/HorizontalLayoutRenderer.js
178
- - sap/ui/layout/PaneContainer.js
179
- - sap/ui/layout/ResponsiveFlowLayout.js
180
- - sap/ui/layout/ResponsiveFlowLayoutData.js
181
- - sap/ui/layout/ResponsiveFlowLayoutRenderer.js
182
- - sap/ui/layout/ResponsiveSplitter.js
183
- - sap/ui/layout/ResponsiveSplitterPage.js
184
- - sap/ui/layout/ResponsiveSplitterRenderer.js
185
- - sap/ui/layout/ResponsiveSplitterUtilities.js
186
- - sap/ui/layout/SplitPane.js
187
- - sap/ui/layout/Splitter.js
188
- - sap/ui/layout/SplitterLayoutData.js
189
- - sap/ui/layout/SplitterRenderer.js
190
- - sap/ui/layout/VerticalLayout.js
191
- - sap/ui/layout/VerticalLayoutRenderer.js
192
- - sap/ui/layout/changeHandler/AddFormContainer.js
193
- - sap/ui/layout/changeHandler/AddFormField.js
194
- - sap/ui/layout/changeHandler/AddSimpleFormField.js
195
- - sap/ui/layout/changeHandler/AddSimpleFormGroup.js
196
- - sap/ui/layout/changeHandler/HideSimpleForm.js
197
- - sap/ui/layout/changeHandler/MoveSimpleForm.js
198
- - sap/ui/layout/changeHandler/RenameFormContainer.js
199
- - sap/ui/layout/changeHandler/RenameSimpleForm.js
200
- - sap/ui/layout/changeHandler/UnhideSimpleForm.js
201
- - sap/ui/layout/cssgrid/CSSGrid.js
202
- - sap/ui/layout/cssgrid/CSSGridRenderer.js
203
- - sap/ui/layout/cssgrid/GridBasicLayout.js
204
- - sap/ui/layout/cssgrid/GridBoxLayout.js
205
- - sap/ui/layout/cssgrid/GridBoxLayoutStyleHelper.js
206
- - sap/ui/layout/cssgrid/GridItemLayoutData.js
207
- - sap/ui/layout/cssgrid/GridLayoutBase.js
208
- - sap/ui/layout/cssgrid/GridLayoutDelegate.js
209
- - sap/ui/layout/cssgrid/GridResponsiveLayout.js
210
- - sap/ui/layout/cssgrid/GridSettings.js
211
- - sap/ui/layout/cssgrid/ResponsiveColumnItemLayoutData.js
212
- - sap/ui/layout/cssgrid/ResponsiveColumnLayout.js
213
- - sap/ui/layout/cssgrid/VirtualGrid.js
214
- - sap/ui/layout/flexibility/BlockLayoutCell.flexibility.js
215
- - sap/ui/layout/flexibility/Form.flexibility.js
216
- - sap/ui/layout/flexibility/FormContainer.flexibility.js
217
- - sap/ui/layout/flexibility/FormElement.flexibility.js
218
- - sap/ui/layout/flexibility/SimpleForm.flexibility.js
219
- - sap/ui/layout/form/ColumnContainerData.js
220
- - sap/ui/layout/form/ColumnElementData.js
221
- - sap/ui/layout/form/ColumnLayout.js
222
- - sap/ui/layout/form/ColumnLayoutRenderer.js
223
- - sap/ui/layout/form/Form.js
224
- - sap/ui/layout/form/FormContainer.js
225
- - sap/ui/layout/form/FormElement.js
226
- - sap/ui/layout/form/FormLayout.js
227
- - sap/ui/layout/form/FormLayoutRenderer.js
228
- - sap/ui/layout/form/FormRenderer.js
229
- - sap/ui/layout/form/GridContainerData.js
230
- - sap/ui/layout/form/GridElementData.js
231
- - sap/ui/layout/form/GridLayout.js
232
- - sap/ui/layout/form/GridLayoutRenderer.js
233
- - sap/ui/layout/form/ResponsiveGridLayout.js
234
- - sap/ui/layout/form/ResponsiveGridLayoutRenderer.js
235
- - sap/ui/layout/form/ResponsiveLayout.js
236
- - sap/ui/layout/form/ResponsiveLayoutRenderer.js
237
- - sap/ui/layout/form/SimpleForm.js
238
- - sap/ui/layout/form/SimpleFormRenderer.js
239
- - sap/ui/layout/library.js
240
- - sap/fe/navigation/NavigationHandler.js
241
- - sap/fe/navigation/library.js
242
- - sap/fe/navigation/PresentationVariant.js
243
- - sap/fe/navigation/SelectionVariant.js
244
- - sap/fe/navigation/NavError.js
245
- - '!**/*-preload.js'
246
- - '!sap/ushell/appRuntime/ui5/BusyIndicator.js'
247
- - '!sap/ushell/appRuntime/ui5/libsPreload.js'
248
- - '!sap/ushell/appRuntime/ui5/plugins/baseRta/'
249
- - '!sap/ushell/appRuntime/ui5/plugins/rtaAgent/'
250
- - '!sap/ushell/appRuntime/ui5/plugins/rtaShell/'
251
- - '!sap/ushell/appRuntime/neo/*.js'
252
- resolve: false
253
- renderer: false
254
80
  - mode: require
255
81
  filters:
256
82
  - sap/ui/core/Core.js
@@ -258,7 +84,27 @@ builder:
258
84
  optimize: true
259
85
  usePredefineCalls: true
260
86
  decorateBootstrapModule: true
261
- numberOfParts: 4
87
+ - bundleDefinition:
88
+ name: sap/ushell_abap/bootstrap/appruntime-min-1.js
89
+ sections:
90
+ - mode: preload
91
+ filters:
92
+ - sap/ushell/bootstrap/dummy.js
93
+ resolve: false
94
+ - bundleDefinition:
95
+ name: sap/ushell_abap/bootstrap/appruntime-min-2.js
96
+ sections:
97
+ - mode: preload
98
+ filters:
99
+ - sap/ushell/bootstrap/dummy.js
100
+ resolve: false
101
+ - bundleDefinition:
102
+ name: sap/ushell_abap/bootstrap/appruntime-min-3.js
103
+ sections:
104
+ - mode: preload
105
+ filters:
106
+ - sap/ushell/bootstrap/dummy.js
107
+ resolve: false
262
108
  - bundleDefinition:
263
109
  name: sap/ushell_abap/bootstrap/evo/abap.js
264
110
  # [SAPUI5 1.x only]
@@ -454,7 +300,7 @@ builder:
454
300
  - sap/ushell/renderer/Shell.controller.js
455
301
  - sap/ushell/renderer/Shell.view.js
456
302
  - sap/ushell/renderer/shellHeader/ShellHeader.fragment.xml
457
- - sap/ushell/renderers/fiori2/LogonFrameProvider.js
303
+ - sap/ushell_abap/ui/logon/LogonFrameProvider.js
458
304
  - sap/ushell/renderers/fiori2/Renderer.js
459
305
  - sap/ushell/renderers/fiori2/RendererExtensions.js
460
306
  - sap/ushell/renderers/fiori2/Shell.controller.js