@sapui5/sap.suite.ui.generic.template 1.130.9 → 1.130.11

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 (21) hide show
  1. package/package.json +2 -2
  2. package/src/sap/suite/ui/generic/template/.library +1 -1
  3. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  4. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  5. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  6. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +49 -7
  7. package/src/sap/suite/ui/generic/template/ObjectPage/controllerFrameworkExtensions.js +21 -4
  8. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  9. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  10. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  11. package/src/sap/suite/ui/generic/template/fragments/HeaderFormDataField.fragment.xml +10 -4
  12. package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +10 -9
  13. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartVariantManagementWrapper.js +27 -27
  14. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +1 -1
  15. package/src/sap/suite/ui/generic/template/lib/MessageButtonHelper.js +1 -0
  16. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +1 -1
  17. package/src/sap/suite/ui/generic/template/library.js +1 -1
  18. package/src/sap/suite/ui/generic/template/themes/base/ObjectPage.less +0 -4
  19. package/src/sap/suite/ui/generic/template/themes/sap_belize_base/ObjectPage.less +0 -4
  20. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ObjectPage.less +0 -4
  21. package/src/sap/suite/ui/generic/template/themes/sap_hcb/base_ObjectPage.less +0 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.suite.ui.generic.template",
3
- "version": "1.130.9",
3
+ "version": "1.130.11",
4
4
  "description": "SAPUI5 Library sap.suite.ui.generic.template",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -16,7 +16,7 @@
16
16
  "testsuite-qunit" : "ui5 serve --config ./ui5-local.yaml --open \"/test-resources/sap/suite/ui/generic/template/qunit/testsuite.qunit.html\""
17
17
  },
18
18
  "devDependencies": {
19
- "sonarqube-scanner": "^2.8.1",
19
+ "sonarqube-scanner": "3.5.0",
20
20
  "@sap/ux-ui5-tooling": "latest"
21
21
  }
22
22
  }
@@ -7,7 +7,7 @@
7
7
 
8
8
  (c) Copyright 2009-2015 SAP SE. All rights reserved
9
9
  </copyright>
10
- <version>1.130.9</version>
10
+ <version>1.130.11</version>
11
11
 
12
12
  <documentation>Library with generic Suite UI templates.</documentation>
13
13
 
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.130.9"
11
+ "version": "1.130.11"
12
12
  },
13
13
  "title": "{{TITLE}}",
14
14
  "description": "{{DESCRIPTION}}",
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.130.9"
11
+ "version": "1.130.11"
12
12
  },
13
13
  "title": "Canvas",
14
14
  "description": "Canvas Page",
@@ -8,7 +8,7 @@
8
8
  "i18n": "i18n/i18n.properties",
9
9
  "applicationVersion": {
10
10
  "__comment": "applicationVersion oder componentversion??",
11
- "version": "1.130.9"
11
+ "version": "1.130.11"
12
12
  },
13
13
  "title": "{{TITLE}}",
14
14
  "description": "{{DESCRIPTION}}",
@@ -45,7 +45,10 @@ sap.ui.define([
45
45
  ) {
46
46
  "use strict";
47
47
  var sClassName = "ObjectPage.controller.ControllerImplementation";
48
- var oLogger = new FeLogger(sClassName).getLogger();
48
+ var oFeLogger = new FeLogger(sClassName);
49
+ var oLogger = oFeLogger.getLogger();
50
+ var oLevel = oFeLogger.Level;
51
+ oLogger.setLevel(oLevel.ALL);
49
52
  var DEFAULT_GROWING_THRESHOLD = 20;
50
53
 
51
54
  // Scroll the specified object page to top
@@ -1450,15 +1453,54 @@ sap.ui.define([
1450
1453
  }); // Normalize the return value such that it always is a Promise
1451
1454
  }
1452
1455
 
1453
- function fnFocusForEdit(bFocusAtTop){
1454
- setTimeout(function(){
1455
- var oFocusControlPromise = getFocusForEditPromise(bFocusAtTop);
1456
- oFocusControlPromise.then(function(oFocusControl){
1457
- controlHelper.focusUI5Control(oFocusControl);
1458
- });
1456
+ function fnFocusForEdit(bFocusAtTop) {
1457
+ setTimeout(function () {
1458
+ // check if extension is found
1459
+ var bhasExtensionFound = oController.hasOwnProperty("focusOnEditExtension");
1460
+ var oFocusControl;
1461
+ if (bhasExtensionFound) {
1462
+ var sSelectedSection = oObjectPage.getSelectedSection();
1463
+ // call the extension method and get the control passed by application
1464
+ oFocusControl = oController.focusOnEditExtension(sSelectedSection);
1465
+ }
1466
+
1467
+ // Check if the passed control is defined, focusable, and visible within the viewport.
1468
+ if (oFocusControl && oFocusControl.focus && oFocusControl.getDomRef()) {
1469
+ //set the focus on the control passed by application
1470
+ if (controlHelper.isSmartField(oFocusControl)) {
1471
+ // check whether the SmartField is the correct target for focussing
1472
+ controlHelper.getSmartFieldIsFocussableForInputPromise(oFocusControl).then(function (bIsFocusable) {
1473
+ if (bIsFocusable) {
1474
+ controlHelper.focusUI5Control(oFocusControl);
1475
+ } else {
1476
+ oLogger.info("Provided control is not focusable or visible in the viewport, hence fall back to the standard focus handling");
1477
+ fnStandardFocusHandlingOnEdit(bFocusAtTop);
1478
+ }
1479
+ });
1480
+ } else {
1481
+ //if the passed control is not a smart field, check and set the focus on
1482
+ controlHelper.focusUI5Control(oFocusControl);
1483
+ }
1484
+ } else {
1485
+ // If no extension is defined, proceed with the standard execution flow.
1486
+ // If the control passed via the extension does not meet the required conditions,
1487
+ // fall back to the standard focus handling mechanism.
1488
+ if (bhasExtensionFound) {
1489
+ oLogger.info("Provided control is not focusable or visible in the viewport, hence fall back to the standard focus handling");
1490
+ }
1491
+ fnStandardFocusHandlingOnEdit(bFocusAtTop);
1492
+ }
1459
1493
  }, 0);
1460
1494
  }
1461
1495
 
1496
+ function fnStandardFocusHandlingOnEdit(bFocusAtTop) {
1497
+ var oFocusControlPromise = getFocusForEditPromise(bFocusAtTop);
1498
+ oFocusControlPromise.then(function (oFocusControl) {
1499
+ controlHelper.focusUI5Control(oFocusControl);
1500
+ });
1501
+ }
1502
+
1503
+
1462
1504
  /* Begin: Functions dealing with the search field on tables */
1463
1505
 
1464
1506
  // a search field in one of the tables is used to trigger a search.
@@ -28,7 +28,8 @@ sap.ui.define([
28
28
  onChildOpenedExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
29
29
  onSubSectionEnteredExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
30
30
  beforeSmartLinkPopoverOpensExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
31
- onBeforeExportTableExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After}
31
+ onBeforeExportTableExtension: { "public": true, "final": false, overrideExecution: OverrideExecution.After},
32
+ focusOnEditExtension:{ "public": true, "final": false, overrideExecution: OverrideExecution.After}
32
33
  }
33
34
  },
34
35
 
@@ -262,6 +263,22 @@ sap.ui.define([
262
263
  */
263
264
  getContext: function(oContext) {
264
265
  return oContext;
265
- }
266
- };
267
- });
266
+ },
267
+
268
+ /**
269
+ * Extension point for the application to specify the control to focus on in the object page upon edit.
270
+ *
271
+ * @param {String} sSelectedSection - The ID of the selected section.
272
+ * @returns {sap.ui.core.Control} - The control that needs to be focused.
273
+ *
274
+ * The returned control must meet the following criteria:
275
+ * - Be focusable and have a "focus" property.
276
+ * - Be visible within the viewport.
277
+ *
278
+ * If the returned control does not satisfy these conditions, the standard focus handling logic is executed.
279
+ */
280
+ focusOnEditExtension: function (sSelectedSection) {
281
+ return {};
282
+ }
283
+ };
284
+ });
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.130.9"
9
+ "version": "1.130.11"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.130.9"
9
+ "version": "1.130.11"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -6,7 +6,7 @@
6
6
  "type": "component",
7
7
  "i18n": "i18n/i18n.properties",
8
8
  "applicationVersion": {
9
- "version": "1.130.9"
9
+ "version": "1.130.11"
10
10
  },
11
11
  "title": "{{TITLE}}",
12
12
  "description": "{{DESCRIPTION}}",
@@ -17,7 +17,9 @@
17
17
  <Label id="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Label"
18
18
  labelFor="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Field"
19
19
  text="{path: 'dataField>Label', formatter: 'AHModel.format'}"
20
- class="sapSmartTemplatesObjectPageHeaderFormLabel sapUiTinyMarginEnd"/>
20
+ class="sapSmartTemplatesObjectPageHeaderFormLabel sapUiTinyMarginEnd"
21
+ showColon="true"
22
+ />
21
23
  <fe:Link id="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Field"
22
24
  press="._templateEventHandlers.onContactDetails"
23
25
  ariaLabelledBy="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageHeader', subType: 'HeaderTitle', sFacet: ${facetId>id}})} header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Label"
@@ -37,9 +39,11 @@
37
39
  <HBox binding="{parts: [{path: 'headerFacet>Target'}, {path: 'entitySet>'}], formatter: 'AH.getNavigationPathWithExpand'}"
38
40
  visible="{path: 'dataField>', formatter: 'AH.getBindingForHiddenPath'}">
39
41
  <Label
40
- id="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Label"
41
- text="{parts: [{path: 'dataField>'}, {path: 'entitySet>'}], formatter: 'AH.getLabelForDFwithIBN'}"
42
- class="sapSmartTemplatesObjectPageHeaderFormLabel sapUiTinyMarginEnd"/>
42
+ id="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Label"
43
+ text="{parts: [{path: 'dataField>'}, {path: 'entitySet>'}], formatter: 'AH.getLabelForDFwithIBN'}"
44
+ class="sapSmartTemplatesObjectPageHeaderFormLabel sapUiTinyMarginEnd"
45
+ showColon="true"
46
+ />
43
47
  <fe:Link
44
48
  id="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Field"
45
49
  text="{parts: [{path: 'dataField>'}, {path: 'entitySet>'}], formatter: 'AH.getLinkTextForDFwithIBN'}"
@@ -61,6 +65,7 @@
61
65
  binding="{parts: [{path: 'headerFacet>Target'}, {path: 'entitySet>'}], formatter: 'AH.getNavigationPathWithExpand'}"
62
66
  visible="{path: 'dataField>', formatter: 'AH.getBindingForHiddenPath'}" >
63
67
  <sfi:SmartLabel
68
+ showColon="true"
64
69
  labelFor="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Field"
65
70
  class="sapSmartTemplatesObjectPageHeaderFormLabel sapUiTinyMarginEnd" />
66
71
 
@@ -88,6 +93,7 @@
88
93
  <sfi:SmartLabel
89
94
  id="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Label"
90
95
  labelFor="header::{path: 'headerFacet>', formatter: 'AH.getStableIdPartFromFacet'}::{path: 'dataField>', formatter: 'AH.getStableIdPartFromDataField'}::Field"
96
+ showColon="true"
91
97
  class="{= ${dataField>Criticality} ? 'sapSmartTemplatesObjectPageHeaderFormLabel': 'sapSmartTemplatesObjectPageHeaderFormLabelNCriticcal' } sapUiTinyMarginEnd"/>
92
98
  <!-- TODO: Should also work with ...format -->
93
99
  <template:with path="headerFacet>Target" helper="AHModel.gotoEntitySet" var="annotation">
@@ -64,16 +64,17 @@ sap.ui.define([
64
64
  }
65
65
 
66
66
  // returns a Promise that resolves to the boolean information whether the SmartField is a possible focus target for input.
67
- function getSmartFieldIsFocussableForInputPromise(oSmartField){
68
- var oSmartFieldMetadataAvailablePromise = oSmartField._getComputedMetadata();
69
- return oSmartFieldMetadataAvailablePromise.then(function(){
70
- return (oSmartField.getMode() === "edit") && (oSmartField._getICRenderedPromise() || Promise.resolve()).then(function(){
71
- var oFirstFocusableInput = !oSmartField._bEdmBoolDetected && getFirstEditableInput(oSmartField.getDomRef());
72
- return !(!oFirstFocusableInput || oFirstFocusableInput.type === "checkbox");
73
- });
67
+ function getSmartFieldIsFocussableForInputPromise(oSmartField) {
68
+ return oSmartField._getComputedMetadata().then(function () {
69
+ return (oSmartField.getMode() === "edit") && (oSmartField._getICRenderedPromise() || Promise.resolve());
70
+ }).then(function () {
71
+ var oFirstFocusableInput = !oSmartField._bEdmBoolDetected && getFirstEditableInput(oSmartField.getDomRef());
72
+ return !(!oFirstFocusableInput || oFirstFocusableInput.type === "checkbox");
73
+ }).catch(function () {
74
+ return false;
74
75
  });
75
- }
76
-
76
+ }
77
+
77
78
  // returns the UI5 control which currently has the focus, if there is one. Otherwise returns a faulty value.
78
79
  // Implementation as recommended by UI5 until the provide an own abstraction.
79
80
  function getControlWithFocus(){
@@ -4,22 +4,22 @@ sap.ui.define([
4
4
 
5
5
  /**
6
6
  * Constructor for SmartVariantManagementWrapper
7
- * @param {sap.ui.comp.smartvariants.SmartVariantManagement} vTarget - The SmartVariantManagement control
7
+ * @param {sap.ui.comp.smartvariants.SmartVariantManagement} vTarget - The SmartVariantManagement control
8
8
  * or the Id of control for which this wrapper is created
9
- * @param {object} oController - the controller of the current component
9
+ * @param {object} oController - the controller of the current component
10
10
  * @param {object} oFactory - the controlStateWrapperFactory
11
- * @param {object} mParams
12
- * @param {array} mParams.managedControlWrappers - array of controlStateWrappers for controls handled by the SVM
13
- * (currently also including SFB wrapper - to be removed)
11
+ * @param {object} mParams
12
+ * @param {array} mParams.managedControlWrappers - array of controlStateWrappers for controls handled by the SVM
13
+ * (currently also including SFB wrapper - to be removed)
14
14
  * @param {Object} mParams.dynamicPageWrapper - dynamicPageWrapper instance handled by SVM
15
15
  * @returns {object}
16
16
  */
17
-
17
+
18
18
  function SmartVariantManagementWrapper(vTarget, oController, oFactory, mParams) {
19
19
  // Special handling of SmartFilterBarWrapper for several reasons:
20
20
  // - Suppress selection when restoring a variant. Selection is solely triggered according to information in appState. Otherwise, erroneous selection could be triggered in
21
21
  // a few situations:
22
- // - Variant marked as execute on select, but no data selected in appState (execute on select marked when saving variant without selecting, or changed after state was
22
+ // - Variant marked as execute on select, but no data selected in appState (execute on select marked when saving variant without selecting, or changed after state was
23
23
  // stored)
24
24
  // - Fallback to standard variant in case of dirty variant in state
25
25
  // - Fallback to standard variant if variant cannot be read (logic of SVM)
@@ -42,11 +42,11 @@ sap.ui.define([
42
42
  // - not available at this point in time, and no corresponding event to attach to available
43
43
  // - provides only those controls with directly connection to SVM implemented (i.e. with wrappers marked with bVMConnection)
44
44
 
45
- // ensure managed state wrappers do not trigger change event when applying state to them.
45
+ // ensure managed state wrappers do not trigger change event when applying state to them.
46
46
  // Todo: rethink, whether this is the right place to do this (or rather when the wrappers get created)
47
47
  mParams.managedControlWrappers = mParams.managedControlWrappers.map(oFactory.getSuppressChangeEventWhenApplyingWrapper);
48
48
 
49
- // Any change of managed control should also mark variant as modified. However, this is not true for controls with direct connection to SVM (SFB, SmartTable, SmartChart).
49
+ // Any change of managed control should also mark variant as modified. However, this is not true for controls with direct connection to SVM (SFB, SmartTable, SmartChart).
50
50
  // For these controls, a real user changes are already handled by the direct connection. On the other hand, these controls also fire their change events, if their state is
51
51
  // changed from SVM (by the same connection) - setting variant dirty here would be wrong.
52
52
  mParams.managedControlWrappers.forEach(function(oWrapper){
@@ -56,18 +56,18 @@ sap.ui.define([
56
56
  });
57
57
  }
58
58
  });
59
-
60
-
59
+
60
+
61
61
 
62
62
  function fnSetControl(oControl) {
63
63
  oSmartVariantManagement = oControl;
64
64
  fnResolveControlAssigned(oSmartVariantManagement);
65
65
  }
66
-
66
+
67
67
  var oSmartFilterBarWrapper = mParams.managedControlWrappers.find(function(oWrapper){
68
68
  return oWrapper.setSVMWrapperCallbacks;
69
69
  });
70
-
70
+
71
71
  // provide callbacks needed for SFB wrapper to store/restore extnesion state with variant
72
72
  if (oSmartFilterBarWrapper){
73
73
  oSmartFilterBarWrapper.setSVMWrapperCallbacks({
@@ -105,28 +105,28 @@ sap.ui.define([
105
105
  oControl.attachAfterVariantInitialise(function() {
106
106
  //set currentVariantId only when sVariantId is not standard (as it might be overriding existing
107
107
  //different currentVariantId) or smartTable's (oControl) currentVariantId is not equal to sVariantId.
108
- if (sVariantId !== '*standard*') {
108
+ if (sVariantId !== '*standard*' && sVariantId !== '') {
109
109
  if (oControl.getCurrentVariantId && oControl.getCurrentVariantId() !== sVariantId) {
110
110
  oControl.setCurrentVariantId(sVariantId);
111
111
  }
112
112
  oSmartVariantManagement.setModified(false);
113
113
  }
114
114
  });
115
- }
115
+ }
116
116
  oSmartVariantManagement.setCurrentVariantId(sVariantId);
117
117
  if (oSmartFilterBarWrapper){
118
118
  oSmartFilterBarWrapper.suppressSelection(false);
119
119
  }
120
120
  }
121
121
 
122
- // Restore state of all managed controls
122
+ // Restore state of all managed controls
123
123
  function fnSetManagedControlStates(oState){
124
- // Usually, looping through mParams.managedControlWrappers or through oState.managedControlStates should be equivalent, but in exceptional cases, their might be
125
- // differences, if application has changed (changing the controls managed by the SVM - in LR, this could be achieved by changing setting SmartVariantManagement).
124
+ // Usually, looping through mParams.managedControlWrappers or through oState.managedControlStates should be equivalent, but in exceptional cases, their might be
125
+ // differences, if application has changed (changing the controls managed by the SVM - in LR, this could be achieved by changing setting SmartVariantManagement).
126
126
  // mParams.managedControlWrappers reflects current state, while oState.managedControlStates reflects state at the time iAppState was written
127
127
  // - when adding a control (in LR changing setting SmartVariantManagement from false to true), state for that control would not be contained - calling the wrapper with
128
128
  // undefined to ensure initial state
129
- // - when removing a control, state would be contained that should not be applied here
129
+ // - when removing a control, state would be contained that should not be applied here
130
130
  mParams.managedControlWrappers.forEach(function(oWrapper){
131
131
  oWrapper.setState(oState.managedControlStates[oWrapper.getLocalId()]);
132
132
  });
@@ -164,8 +164,8 @@ sap.ui.define([
164
164
  // set (which is achieved by empty string)
165
165
  fnSetVariant("");
166
166
  // Usually restoring the state of any of the managed controls should mark the variant as dirty, but there might be edge cases (state from an old release not containing information for any
167
- // managed control now relevant), so to be on the safe side, we set modified=true explicitly.
168
- oSmartVariantManagement.currentVariantSetModified(true);
167
+ // managed control now relevant), so to be on the safe side, we set modified=true explicitly.
168
+ oSmartVariantManagement.currentVariantSetModified(true);
169
169
  fnSetManagedControlStates(oPreliminaryState);
170
170
  } else {
171
171
  fnSetVariant(oPreliminaryState.variantId);
@@ -177,7 +177,7 @@ sap.ui.define([
177
177
  oSmartFilterBarWrapper.setState(oPreliminaryState.managedControlStates[oSmartFilterBarWrapper.getLocalId()]);
178
178
  }
179
179
  if (oPreliminaryState.variantId !== oSmartVariantManagement.getCurrentVariantId()){
180
- // variant could not be set because it is not known, i.e. it could be private and URL was shared, or could be deleted after page was bookmarked. In this case,
180
+ // variant could not be set because it is not known, i.e. it could be private and URL was shared, or could be deleted after page was bookmarked. In this case,
181
181
  // standard variant is set (by VM). Additionally, it should be marked as modified.
182
182
  oSmartVariantManagement.currentVariantSetModified(true);
183
183
  }
@@ -193,19 +193,19 @@ sap.ui.define([
193
193
  oControlAssignedPromise.then(function() {
194
194
  // state change when user selects a different variant
195
195
  oSmartVariantManagement.attachSelect(fnHandler);
196
-
196
+
197
197
  // when user saves current state as a new variant, this is also a state change (as the variant id is part of the state)
198
198
  // note: Even if new (SFB) variant is marked as execute on select, and currently no data is selected, no need to select data here (and thus also not to collapse header).
199
- // This is one of the possible ways to get into a state with a clean variant with execute on select, but no data loaded - see also comment to identify SFB wrapper.
199
+ // This is one of the possible ways to get into a state with a clean variant with execute on select, but no data loaded - see also comment to identify SFB wrapper.
200
200
  oSmartVariantManagement.attachAfterSave(fnHandler);
201
-
201
+
202
202
  // any change of a managed control is state change
203
203
  mParams.managedControlWrappers.forEach(function(oWrapper){
204
204
  oWrapper.attachStateChanged(fnHandler);
205
205
  });
206
206
  });
207
207
  }
208
-
208
+
209
209
  return {
210
210
  getState : getState,
211
211
  setState : setState,
@@ -215,4 +215,4 @@ sap.ui.define([
215
215
  }
216
216
 
217
217
  return SmartVariantManagementWrapper;
218
- });
218
+ });
@@ -938,7 +938,7 @@ sap.ui.define([
938
938
  * @public
939
939
  * @extends sap.ui.core.UIComponent
940
940
  * @author SAP SE
941
- * @version 1.130.9
941
+ * @version 1.130.11
942
942
  * @name sap.suite.ui.generic.template.lib.AppComponent
943
943
  */
944
944
  var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
@@ -103,6 +103,7 @@ sap.ui.define([
103
103
  getSubtitle: getSubtitle,
104
104
  titlePressed: function (oEvent) { // the user wants to navigate from the message to the corresponding control
105
105
  MessageUtils.navigateFromMessageTitleEvent(oTemplateUtils, oEvent, oComponent, bIsDraftEnabled, sCurrentBindingPath);
106
+ oMessagePopover.close();
106
107
  }
107
108
  }).then(function (oMPopover) {
108
109
  oMessagePopover = oMPopover;
@@ -3181,7 +3181,7 @@ sap.ui.define(["sap/ui/base/Object",
3181
3181
  * @param {sap.suite.ui.generic.template.lib.AppComponent} oAppComponent The AppComponent instance
3182
3182
  * @public
3183
3183
  * @extends sap.ui.base.Object
3184
- * @version 1.130.9
3184
+ * @version 1.130.11
3185
3185
  * @since 1.30.0
3186
3186
  * @alias sap.suite.ui.generic.template.lib.NavigationController
3187
3187
  */
@@ -64,7 +64,7 @@ sap.ui.define([
64
64
  interfaces: [],
65
65
  controls: [],
66
66
  elements: [],
67
- version: "1.130.9",
67
+ version: "1.130.11",
68
68
  extensions: {
69
69
  //Configuration used for rule loading of Support Assistant
70
70
  "sap.ui.support": {
@@ -217,10 +217,6 @@ html[dir="rtl"] .sapSmartTemplatesObjectPage .sapUxAPObjectPageHeaderContent .sa
217
217
  float: right;
218
218
  }
219
219
 
220
- .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm.sapMLabel:after, .sapSmartTemplatesObjectPageHeaderFormLabelNCriticcal.sapMLabel:after, .sapSmartTemplatesObjectPageHeaderFormLabel.sapMLabel:after, .sapSmartTemplatesObjectPageDataPointLabel.sapMLabel:after {
221
- content: ":";
222
- }
223
-
224
220
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField .sapMText,
225
221
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField .sapMLnk,
226
222
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField.sapMLnk,
@@ -217,10 +217,6 @@ html[dir="rtl"] .sapSmartTemplatesObjectPage .sapUxAPObjectPageHeaderContent .sa
217
217
  float: right;
218
218
  }
219
219
 
220
- .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm.sapMLabel:after, .sapSmartTemplatesObjectPageHeaderFormLabelNCriticcal.sapMLabel:after, .sapSmartTemplatesObjectPageHeaderFormLabel.sapMLabel:after, .sapSmartTemplatesObjectPageDataPointLabel.sapMLabel:after {
221
- content: ":";
222
- }
223
-
224
220
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField .sapMText,
225
221
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField .sapMLnk,
226
222
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField.sapMLnk,
@@ -217,10 +217,6 @@ html[dir="rtl"] .sapSmartTemplatesObjectPage .sapUxAPObjectPageHeaderContent .sa
217
217
  float: right;
218
218
  }
219
219
 
220
- .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm.sapMLabel:after, .sapSmartTemplatesObjectPageHeaderFormLabelNCriticcal.sapMLabel:after, .sapSmartTemplatesObjectPageHeaderFormLabel.sapMLabel:after, .sapSmartTemplatesObjectPageDataPointLabel.sapMLabel:after {
221
- content: ":";
222
- }
223
-
224
220
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField .sapMText,
225
221
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField .sapMLnk,
226
222
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField.sapMLnk,
@@ -217,10 +217,6 @@ html[dir="rtl"] .sapSmartTemplatesObjectPage .sapUxAPObjectPageHeaderContent .sa
217
217
  float: right;
218
218
  }
219
219
 
220
- .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm.sapMLabel:after, .sapSmartTemplatesObjectPageHeaderFormLabelNCriticcal.sapMLabel:after, .sapSmartTemplatesObjectPageHeaderFormLabel.sapMLabel:after, .sapSmartTemplatesObjectPageDataPointLabel.sapMLabel:after {
221
- content: ":";
222
- }
223
-
224
220
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField .sapMText,
225
221
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField .sapMLnk,
226
222
  .sapSmartTemplatesObjectPage .sapSmartTemplatesObjectPageHeaderForm .sapSmartTemplatesObjectPageHeaderFormField.sapMLnk,