@sapui5/sap.ushell_abap 1.144.1 → 1.146.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.
Files changed (37) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell_abap/.library +8 -7
  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 +144 -72
  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 +12 -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 +0 -17
  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 +9 -10
  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/bootstrap/evo/XhrLogonEventHandler.js +3 -3
  22. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def-dev.js +20 -20
  23. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap-def.js +22 -22
  24. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.bootstrap.utils.js +3 -3
  25. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.configure.ushell.js +9 -4
  26. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.constants.js +8 -2
  27. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.load.launchpad.js +3 -3
  28. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.pageset.js +9 -9
  29. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.request.startup.js +8 -8
  30. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.theme.handler.js +6 -2
  31. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.xhrlogon.LibLoader.js +2 -2
  32. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.xhrlogon.configure.js +2 -2
  33. package/src/main/js/sap/ushell_abap/bootstrap/evo/abap.xhrlogon.handler.js +7 -7
  34. package/src/main/js/sap/ushell_abap/bootstrap/evo/boottask.js +24 -28
  35. package/src/main/js/sap/ushell_abap/components/TCodeNavigation/MessageCode.js +18 -1
  36. package/src/main/js/sap/ushell_abap/components/TCodeNavigation.js +24 -13
  37. package/src/main/js/sap/ushell_abap/library.js +1 -1
@@ -2,26 +2,26 @@
2
2
 
3
3
  sap.ui.define([
4
4
  "sap/ushell_abap/bootstrap/evo/abap.xhrlogon.LibLoader",
5
- "./abap.bootstrap.utils",
6
- "./abap.request.startup",
7
- "./abap.request.pageset",
8
- "./abap.xhrlogon.handler",
9
- "./abap.theme.handler",
5
+ "sap/ushell_abap/bootstrap/evo/abap.bootstrap.utils",
6
+ "sap/ushell_abap/bootstrap/evo/abap.request.startup",
7
+ "sap/ushell_abap/bootstrap/evo/abap.request.pageset",
8
+ "sap/ushell_abap/bootstrap/evo/abap.xhrlogon.handler",
9
+ "sap/ushell_abap/bootstrap/evo/abap.theme.handler",
10
10
  "sap/ushell/EventHub",
11
11
  "sap/ui/performance/trace/initTraces",
12
12
  "sap/base/util/ObjectPath",
13
13
  "sap/base/Log",
14
14
  "sap/ushell_abap/pbServices/ui2/Utils",
15
15
  "sap/ushell/bootstrap/common/common.util",
16
- "./SAPCompanionConditionSetter",
16
+ "sap/ushell_abap/bootstrap/evo/SAPCompanionConditionSetter",
17
17
  "sap/ushell/utils/UrlParsing"
18
18
  ], (
19
- oXhrLibLoader,
20
- oAbapUtils,
21
- oStartupHandler,
22
- oPageSetHandler,
23
- oXhrHandler,
24
- oThemeHandler,
19
+ abapXhrlogonLibLoader,
20
+ abapBootstrapUtils,
21
+ abapRequestStartup,
22
+ abapRequestPageset,
23
+ abapXhrlogonHandler,
24
+ abapThemeHandler,
25
25
  EventHub,
26
26
  initTraces,
27
27
  ObjectPath,
@@ -113,7 +113,7 @@ sap.ui.define([
113
113
  */
114
114
  // TODO Refactor: Align with URLParsing.getShellHash
115
115
  function getFullShellHash () {
116
- const sHref = oAbapUtils.getLocationHref();
116
+ const sHref = abapBootstrapUtils.getLocationHref();
117
117
  const iHashIndex = sHref.indexOf("#");
118
118
  if (iHashIndex < 0) {
119
119
  return "";
@@ -367,7 +367,7 @@ sap.ui.define([
367
367
  function determineUrlTheme (sSystemThemeRoot) {
368
368
  let aThemeParts;
369
369
 
370
- const sThemeUrlParameter = oAbapUtils.getUrlParameterValue("sap-theme") || oAbapUtils.getUrlParameterValue("sap-ui-theme");
370
+ const sThemeUrlParameter = abapBootstrapUtils.getUrlParameterValue("sap-theme") || abapBootstrapUtils.getUrlParameterValue("sap-ui-theme");
371
371
  if (sThemeUrlParameter) {
372
372
  if (sThemeUrlParameter.indexOf("@") > 0) {
373
373
  aThemeParts = sThemeUrlParameter.split("@", 2);
@@ -424,7 +424,7 @@ sap.ui.define([
424
424
  const iIndex = theme.indexOf("@");
425
425
  if (iIndex >= 0) {
426
426
  const sThemeRoot = sTheme.slice(iIndex + 1);
427
- return oThemeHandler.isThemeRootSafe(sThemeRoot);
427
+ return abapThemeHandler.isThemeRootSafe(sThemeRoot);
428
428
  }
429
429
  return true;
430
430
  }
@@ -498,7 +498,7 @@ sap.ui.define([
498
498
  */
499
499
  function processStartup (oStartupResult) {
500
500
  const mParameterMap = ui2Utils.getParameterMap();
501
- const sRequestLocale = oAbapUtils.getUrlParameterValue("sap-locale", mParameterMap);
501
+ const sRequestLocale = abapBootstrapUtils.getUrlParameterValue("sap-locale", mParameterMap);
502
502
  const oUshellConfig = {
503
503
  services: {}
504
504
  };
@@ -665,7 +665,7 @@ sap.ui.define([
665
665
  addInitialKey(/(\?|&)(sap-system=[A-Z0-9]+)/, sHash);
666
666
  addInitialKey(/(\?|&|[/])(sap-iapp-state=[A-Z0-9]+)/, sFullHash);
667
667
 
668
- oRequestPromise = oStartupHandler.requestDirectStart(oStartupResult, oRequestSegment, oInitialKeys);
668
+ oRequestPromise = abapRequestStartup.requestDirectStart(oStartupResult, oRequestSegment, oInitialKeys);
669
669
 
670
670
  oAppStateConfig.initialAppStatesPromise = oRequestPromise.then((oDirectStart) => {
671
671
  addInitialAppState(oInitialAppStates, oDirectStart, oInitialKeys, "sap-intent-param", "iparState");
@@ -704,7 +704,7 @@ sap.ui.define([
704
704
  function fnOnRendererCreated () {
705
705
  Log.info("Direct application start: resolving component waitFor promise after shell renderer created event fired.");
706
706
  resolve();
707
- getContainer().detachRendererCreatedEvent(fnOnRendererCreated);
707
+ getContainer().detachRendererCreatedInternal(fnOnRendererCreated);
708
708
  }
709
709
 
710
710
  EventHub.once("ShellNavigationInitialized").do(() => {
@@ -714,7 +714,7 @@ sap.ui.define([
714
714
  resolve();
715
715
  } else {
716
716
  // the renderer should be created when the shell navigation is initialized, just to but be robust
717
- getContainer().attachRendererCreatedEvent(fnOnRendererCreated);
717
+ getContainer().attachRendererCreatedInternal(fnOnRendererCreated);
718
718
  }
719
719
  });
720
720
  });
@@ -733,7 +733,7 @@ sap.ui.define([
733
733
  window["sap-ushell-config"].ushell.spaces && window["sap-ushell-config"].ushell.spaces.enabled) {
734
734
  oBoottask._loadPage(sShellHash); // earliest point available to load page object
735
735
  }
736
- oXhrLibLoader.getLib().then((oXhrLogonLib) => {
736
+ abapXhrlogonLibLoader.getLib().then((oXhrLogonLib) => {
737
737
  const oFrameLogonManager = oXhrLogonLib.FrameLogonManager.getInstance();
738
738
  getContainer().oFrameLogonManager = oFrameLogonManager;
739
739
  });
@@ -781,16 +781,12 @@ sap.ui.define([
781
781
  return getContainer().getServiceAsync("NavTargetResolutionInternal");
782
782
  })
783
783
  .then((oNavTargetResolutionInternal) => {
784
- const oParsedHash = UrlParsing.parseShellHash(sShellHash);
785
-
786
784
  oNavTargetResolutionInternal.resolveHashFragment(UrlParsing.ensureLeadingHash(sShellHash))
787
785
  .done((oResolutionResult) => {
788
786
  sap.ui.require(["sap/ushell/services/AppConfiguration"], (AppConfiguration) => {
789
787
  AppConfiguration.setCurrentApplication(oResolutionResult);
790
788
 
791
789
  if (oResolutionResult && oResolutionResult.ui5ComponentName) {
792
- const sBasicHash = UrlParsing.constructBasicHash(oParsedHash);
793
- oResolutionResult.ui5ComponentId = `application-${sBasicHash}-component`;
794
790
  // create UI5 component early
795
791
  getContainer().getServiceAsync("Ui5ComponentLoader").then((oUi5ComponentLoader) => {
796
792
  oUi5ComponentLoader.createComponent(
@@ -879,14 +875,14 @@ sap.ui.define([
879
875
  * @param {object} fnCallback To be called for UI5 Core during boot process
880
876
  */
881
877
  function start (fnCallback) {
882
- oXhrHandler.initXhrLogon(window["sap-ushell-config"]);
878
+ abapXhrlogonHandler.initXhrLogon(window["sap-ushell-config"]);
883
879
 
884
880
  // initialize UI5 performance tracing (FESR) before first request is sent, so that this is also instrumented
885
881
  initTraces();
886
882
 
887
883
  // fire start-up request if direct start also indicates suppression of pageset request
888
884
  // must be kept before success handler of requestStartUp
889
- oStartupHandler.requestStartupConfig()
885
+ abapRequestStartup.requestStartupConfig()
890
886
  .catch((oError) => {
891
887
  Log.error("start_up request failed:", oError, "sap.ushell_abap.bootstrap");
892
888
  return {};
@@ -918,9 +914,9 @@ sap.ui.define([
918
914
  if (isHomepageHash(sHash) && !ObjectPath.get("sap-ushell-config.ushell.spaces.enabled")) {
919
915
  // do not create cache entries for PageSet and compact TMs
920
916
  // otherwise the FLP will freeze when returning to HOME from the cold started app (???)
921
- oPageSetHandler.requestPageSet(oStartupResult);
917
+ abapRequestPageset.requestPageSet(oStartupResult);
922
918
  }
923
- const oTMPromise = oStartupHandler.requestFullTM(oStartupResult);
919
+ const oTMPromise = abapRequestStartup.requestFullTM(oStartupResult);
924
920
  oClientSideTargetResolutionAdapterConfig.navTargetDataPromise = oTMPromise;
925
921
  // Do not issue the separate compact request for the launchpage adapter, as it was done in the earlier FLP versions.
926
922
  // Reuse the existing full target mappings request that is sent in any case.
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @private
32
32
  * @ui5-restricted sap.esh.search.ui
33
33
  */
34
- NAVFLP_HOME_FAILED: "NAV_FLP_HOME_FAILED",
34
+ NAV_FLP_HOME_FAILED: "NAV_FLP_HOME_FAILED",
35
35
 
36
36
  /**
37
37
  * No matching inbound was found for the transaction code.
@@ -51,6 +51,23 @@ sap.ui.define([
51
51
  */
52
52
  MANDATORY_PARAMETER_MISSING: "MANDATORY_PARAMETER_MISSING",
53
53
 
54
+ /**
55
+ * The default LADI inbound is missing for the transaction code.
56
+ *
57
+ * @since 1.146.0
58
+ * @private
59
+ * @ui5-restricted sap.esh.search.ui
60
+ */
61
+ DEFAULT_LADI_MISSING: "DEFAULT_LADI_MISSING",
62
+
63
+ /**
64
+ * No tiles are assigned to the default LADI inbound for the transaction code.
65
+ * @since 1.146.0
66
+ * @private
67
+ * @ui5-restricted sap.esh.search.ui
68
+ */
69
+ DEFAULT_LADI_HAS_TILES_MISSING: "DEFAULT_LADI_HAS_TILES_MISSING",
70
+
54
71
  /**
55
72
  * An unknown error occurred during navigation.
56
73
  *
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @since 1.140.0
47
47
  * @private
48
48
  * @ui5-restricted sap.esh.search.ui
49
- */ // TODO add technical name of esearch component / team name
49
+ */
50
50
  class TCodeNavigation {
51
51
  // Performance extension for tracking navigation sources
52
52
  static #oExtension = new Extension("TCodeNavigation");
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  if (!bResult) {
93
93
  throw new TCodeNavigationError(
94
94
  `Navigation to FLP home failed: ${sFLPUrl}`,
95
- { code: MessageCode.NAVFLP_HOME_FAILED }
95
+ { code: MessageCode.NAV_FLP_HOME_FAILED }
96
96
  );
97
97
  }
98
98
  } else {
@@ -204,26 +204,37 @@ sap.ui.define([
204
204
  // Finds the first "app" that matches the given transaction code and doesn't have mandatory parameters.
205
205
  // "App" in this sense mean: combination of inbound and default tile (the default tile might bring values for defined mandatory parameters,
206
206
  // therefore, both artefacts are combined and checked together).
207
- const aTranscationCodeInbounds = oNavigationData.inbounds.filter((oInbound) =>
207
+ const aTransactionCodeInbounds = oNavigationData.inbounds.filter((oInbound) =>
208
208
  oInbound.resolutionResult?.appInfo?.["abap.transaction"] === sTCode
209
209
  );
210
-
211
- // filter inbounds which are default for ladi and have tiles
212
- const aLadiInbounds = aTranscationCodeInbounds.filter((oInbound) =>
213
- oInbound.isDefaultLadi && oInbound.ladiHasTiles);
214
- // currently, it is not possible to ensure that there is only one default ladi inbound for a transaction code,
215
- // therefore, we sort them by ladiid and uuid and take the first one
216
- const aSortedInbounds = aLadiInbounds.sort(this.compareInboundsAccordingToUuidAndLadiid);
217
-
218
- if (aSortedInbounds.length === 0) {
210
+ if (aTransactionCodeInbounds.length === 0) {
219
211
  throw new TCodeNavigationError(
220
212
  `No matching inbound found for transaction code: ${sTCode}`,
221
213
  { code: MessageCode.NO_INBOUND_FOUND }
222
214
  );
223
215
  }
216
+ // filter inbounds which are default for ladi and have tiles
217
+ const aDefaultLadiInbounds = aTransactionCodeInbounds.filter((oInbound) => oInbound.isDefaultLadi);
218
+ if (aDefaultLadiInbounds.length === 0) {
219
+ throw new TCodeNavigationError(
220
+ `Default LADI inbound is missing for transaction code: ${sTCode}`,
221
+ { code: MessageCode.DEFAULT_LADI_MISSING }
222
+ );
223
+ }
224
+ const aDefaultLadiHasTilesInbounds = aDefaultLadiInbounds.filter((oInbound) => oInbound.ladiHasTiles);
224
225
 
225
- // filter inbound where all mandatory parameters have values of the default tile
226
+ if (aDefaultLadiHasTilesInbounds.length === 0) {
227
+ throw new TCodeNavigationError(
228
+ `No tiles are assigned to the default LADI inbound for transaction code: ${sTCode}`,
229
+ { code: MessageCode.DEFAULT_LADI_HAS_TILES_MISSING }
230
+ );
231
+ }
226
232
 
233
+ // currently, it is not possible to ensure that there is only one default ladi inbound for a transaction code,
234
+ // therefore, we sort them by ladiid and uuid and take the first one
235
+ const aSortedInbounds = aDefaultLadiHasTilesInbounds.sort(this.compareInboundsAccordingToUuidAndLadiid);
236
+
237
+ // filter inbound where all mandatory parameters have values of the default tile
227
238
  const aValidInbounds = aSortedInbounds.filter((oInbound) => {
228
239
  const oDefaultTileParams = UrlParsing.parseParameters(`?${oInbound?.defaultTileParams}`);
229
240
  const oInboundParams = oInbound.signature?.parameters || {};
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  const ushellAbapLib = Library.init({
31
31
  name: "sap.ushell_abap",
32
32
  apiVersion: 2,
33
- version: "1.144.1",
33
+ version: "1.146.0",
34
34
  dependencies: ["sap.ui.core", "sap.m"],
35
35
  noLibraryCSS: true,
36
36
  extensions: {