@sapui5/sap.fe.navigation 1.97.0 → 1.98.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.navigation",
3
- "version": "1.97.0",
3
+ "version": "1.98.0",
4
4
  "description": "SAPUI5 Library sap.fe.navigation",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "SAP SE (https://www.sap.com)",
@@ -6,7 +6,7 @@
6
6
  <copyright>SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.97.0</version>
9
+ <version>1.98.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.navigation</documentation>
12
12
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["sap/ui/base/Object"], function(BaseObject) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -346,7 +346,11 @@ sap.ui.define(
346
346
  throw new NavError("NavigationHandler.INVALID_INPUT");
347
347
  }
348
348
 
349
- oTmpData.selectionVariant = new SelectionVariant(sSelectionVariant).toJSONObject();
349
+ oTmpData.selectionVariant = new SelectionVariant(sSelectionVariant);
350
+ if (typeof vNavigationParameters === "string") {
351
+ oTmpData.selectionVariant = this._removeTechnicalParameters(oTmpData.selectionVariant);
352
+ }
353
+ oTmpData.selectionVariant = oTmpData.selectionVariant && oTmpData.selectionVariant.toJSONObject();
350
354
  oTmpData = this._removeMeasureBasedInformation(oTmpData); // remove eventual measures
351
355
  oTmpData = this._checkIsPotentiallySensitive(oTmpData); // remove eventual sensitive data
352
356
 
@@ -518,7 +522,32 @@ sap.ui.define(
518
522
 
519
523
  var oMyDeferred = jQuery.Deferred();
520
524
  var oNavHandler = this;
521
-
525
+ var parseUrlParams = function(oStartupParameters, aDefaultedParameters, oMyDeferred, sNavType) {
526
+ // standard URL navigation
527
+ var oSelVars = oNavHandler._splitInboundNavigationParameters(
528
+ new SelectionVariant(),
529
+ oStartupParameters,
530
+ aDefaultedParameters
531
+ );
532
+ if (oSelVars.oNavigationSelVar.isEmpty() && oSelVars.oDefaultedSelVar.isEmpty()) {
533
+ // Startup parameters contain only technical parameters (SAP system) which were filtered out.
534
+ // oNavigationSelVar and oDefaultedSelVar are empty.
535
+ // Thus, consider this type of navigation as an initial navigation.
536
+ if (sNavType === NavType.xAppState) {
537
+ var oError = oNavHandler._createTechnicalError("NavigationHandler.getDataFromAppState.failed");
538
+ oMyDeferred.reject(oError, oStartupParameters || {}, NavType.xAppState);
539
+ } else {
540
+ oMyDeferred.resolve({}, oStartupParameters, NavType.initial);
541
+ }
542
+ } else {
543
+ var oAppStateData = {};
544
+ oAppStateData.selectionVariant = oSelVars.oNavigationSelVar.toJSONString();
545
+ oAppStateData.oSelectionVariant = oSelVars.oNavigationSelVar;
546
+ oAppStateData.oDefaultedSelectionVariant = oSelVars.oDefaultedSelVar;
547
+ oAppStateData.bNavSelVarHasDefaultsOnly = oSelVars.bNavSelVarHasDefaultsOnly;
548
+ oMyDeferred.resolve(oAppStateData, oStartupParameters, sNavType);
549
+ }
550
+ };
522
551
  if (sIAppState) {
523
552
  // inner app state is available in the AppHash (back navigation); extract the parameter value
524
553
  this._loadAppState(sIAppState, oMyDeferred);
@@ -557,9 +586,13 @@ sap.ui.define(
557
586
  oAppStateData.bNavSelVarHasDefaultsOnly = oSelVars.bNavSelVarHasDefaultsOnly;
558
587
  oMyDeferred.resolve(oAppStateData, oStartupParameters, NavType.xAppState);
559
588
  } else {
560
- // sap-xapp-state navigation, but ID has already expired, but URL parameters available
561
- oError = oNavHandler._createTechnicalError("NavigationHandler.getDataFromAppState.failed");
562
- oMyDeferred.reject(oError, oStartupParameters || {}, NavType.xAppState);
589
+ if (oStartupParameters) {
590
+ parseUrlParams(oStartupParameters, aDefaultedParameters, oMyDeferred, NavType.xAppState);
591
+ } else {
592
+ // sap-xapp-state navigation, but ID has already expired, but URL parameters available
593
+ oError = oNavHandler._createTechnicalError("NavigationHandler.getDataFromAppState.failed");
594
+ oMyDeferred.reject(oError, oStartupParameters || {}, NavType.xAppState);
595
+ }
563
596
  }
564
597
  });
565
598
  oStartupPromise.fail(function() {
@@ -569,25 +602,7 @@ sap.ui.define(
569
602
  } else {
570
603
  // no sap-xapp-state
571
604
  if (oStartupParameters) {
572
- // standard URL navigation
573
- var oSelVars = oNavHandler._splitInboundNavigationParameters(
574
- new SelectionVariant(),
575
- oStartupParameters,
576
- aDefaultedParameters
577
- );
578
- if (oSelVars.oNavigationSelVar.isEmpty() && oSelVars.oDefaultedSelVar.isEmpty()) {
579
- // Startup parameters contain only technical parameters (SAP system) which were filtered out.
580
- // oNavigationSelVar and oDefaultedSelVar are empty.
581
- // Thus, consider this type of navigation as an initial navigation.
582
- oMyDeferred.resolve({}, oStartupParameters, NavType.initial);
583
- } else {
584
- var oAppStateData = {};
585
- oAppStateData.selectionVariant = oSelVars.oNavigationSelVar.toJSONString();
586
- oAppStateData.oSelectionVariant = oSelVars.oNavigationSelVar;
587
- oAppStateData.oDefaultedSelectionVariant = oSelVars.oDefaultedSelVar;
588
- oAppStateData.bNavSelVarHasDefaultsOnly = oSelVars.bNavSelVarHasDefaultsOnly;
589
- oMyDeferred.resolve(oAppStateData, oStartupParameters, NavType.URLParams);
590
- }
605
+ parseUrlParams(oStartupParameters, aDefaultedParameters, oMyDeferred, NavType.URLParams);
591
606
  } else {
592
607
  // initial navigation
593
608
  oMyDeferred.resolve({}, {}, NavType.initial);
@@ -648,16 +663,42 @@ sap.ui.define(
648
663
  */
649
664
  _isTechnicalParameter: function(sParameterName) {
650
665
  if (sParameterName) {
651
- if (sParameterName.toLowerCase().indexOf("sap-") === 0) {
652
- return true;
653
- } else if (this._aTechnicalParamaters.indexOf(sParameterName) >= 0) {
654
- return true;
666
+ if (
667
+ !(
668
+ sParameterName === "sap-ui-fe-variant-id" ||
669
+ sParameterName === "sap-ui-fe-table-variant-id" ||
670
+ sParameterName === "sap-ui-fe-chart-variant-id" ||
671
+ sParameterName === "sap-ui-fe-filterbar-variant-id"
672
+ )
673
+ ) {
674
+ if (sParameterName.toLowerCase().indexOf("sap-") === 0) {
675
+ return true;
676
+ } else if (this._aTechnicalParamaters.indexOf(sParameterName) >= 0) {
677
+ return true;
678
+ }
655
679
  }
656
680
  }
657
-
658
681
  return false;
659
682
  },
660
683
 
684
+ /**
685
+ * Rmoves if the passed parameter is considered as technical parameter.
686
+ * @param {object} oSelectionVariant Selection Variant which consists of technical Parameters.
687
+ * @returns {object} Selection Variant without technical Parameters.
688
+ * @private
689
+ */
690
+ _removeTechnicalParameters: function(oSelectionVariant) {
691
+ var sPropName, i;
692
+ var aSelVarPropNames = oSelectionVariant.getSelectOptionsPropertyNames();
693
+ for (i = 0; i < aSelVarPropNames.length; i++) {
694
+ sPropName = aSelVarPropNames[i];
695
+ if (this._isTechnicalParameter(sPropName)) {
696
+ oSelectionVariant.removeSelectOption(sPropName);
697
+ }
698
+ }
699
+ return oSelectionVariant;
700
+ },
701
+
661
702
  /**
662
703
  * Splits the parameters provided during inbound navigation and separates the contextual information between defaulted parameter values and
663
704
  * navigation parameters.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["./NavError", "sap/ui/base/Object", "sap/base/util/extend", "sap/base/util/each", "sap/base/Log"], function(
6
6
  NavError,
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  ["./NavError", "sap/ui/base/Object", "sap/base/util/each", "sap/base/Log"],
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  /**
@@ -26,7 +26,7 @@ sap.ui.define(
26
26
  // library dependencies
27
27
  sap.ui.getCore().initLibrary({
28
28
  name: "sap.fe.navigation",
29
- version: "1.97.0",
29
+ version: "1.98.0",
30
30
  dependencies: ["sap.ui.core"],
31
31
  types: ["sap.fe.navigation.NavType", "sap.fe.navigation.ParamHandlingMode", "sap.fe.navigation.SuppressionBehavior"],
32
32
  interfaces: [],