@sapui5/sap.fe.templates 1.96.2 → 1.96.3

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 (42) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/Component.js +1 -1
  4. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +1 -1
  5. package/src/sap/fe/templates/ListComponent.js +1 -1
  6. package/src/sap/fe/templates/ListReport/Component.js +1 -1
  7. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
  8. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +8 -15
  9. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  10. package/src/sap/fe/templates/ListReport/overrides/Share.js +37 -22
  11. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  12. package/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +21 -1
  13. package/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  14. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
  15. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +72 -100
  16. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
  17. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +1 -1
  18. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +1 -1
  19. package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
  20. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
  21. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
  22. package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +1 -1
  23. package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +1 -1
  24. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
  25. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
  26. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
  27. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  28. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +45 -34
  29. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  30. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +1 -0
  31. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +1 -4
  32. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
  33. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
  34. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +60 -7
  35. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
  36. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +25 -22
  37. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
  38. package/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +2 -1
  39. package/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +1 -1
  40. package/src/sap/fe/templates/TableScroller.js +1 -1
  41. package/src/sap/fe/templates/library.js +2 -2
  42. package/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +0 -25
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.templates",
3
- "version": "1.96.2",
3
+ "version": "1.96.3",
4
4
  "description": "SAPUI5 Library sap.fe.templates",
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.96.2</version>
9
+ <version>1.96.3</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.templates</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
  sap.ui.define(
6
6
  ["sap/fe/templates/ListComponent"],
@@ -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
  // Helper class used to help create content in the chart/item and fill relevant metadata
@@ -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
  ["sap/fe/core/TemplateComponent", "sap/fe/core/library"],
@@ -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
  ["sap/fe/templates/ListComponent"],
@@ -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(["sap/fe/core/ExtensionAPI", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/chart/ChartUtils"], function(
6
6
  ExtensionAPI,
@@ -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(
@@ -245,21 +245,14 @@ sap.ui.define(
245
245
  });
246
246
  },
247
247
  onPageReady: function(mParameters) {
248
- var oLastFocusedControl = mParameters.lastFocusedControl;
249
- var oView = this.getView();
250
- // set the focus to the first action button, or to the first editable input if in editable mode
251
- if (oLastFocusedControl && oLastFocusedControl.controlId && oLastFocusedControl.focusInfo) {
252
- var oFocusControl = oView.byId(oLastFocusedControl.controlId);
253
- if (oFocusControl) {
254
- oFocusControl.applyFocusInfo(oLastFocusedControl.focusInfo);
255
- }
256
- }
257
-
258
248
  // Enabling mandatory filter fields message dialog and focusing on them
259
- var oFilterBar = this._getFilterBarControl();
260
- if (oFilterBar && !oFilterBar.getShowMessages()) {
261
- oFilterBar.setShowMessages(true);
262
- oFilterBar.setFocusOnFirstErroneousField();
249
+ if (mParameters.forceFocus) {
250
+ var oFilterBar = this._getFilterBarControl();
251
+
252
+ if (oFilterBar && !oFilterBar.getShowMessages()) {
253
+ oFilterBar.setShowMessages(true);
254
+ oFilterBar.setFocusOnFirstErroneousField();
255
+ }
263
256
  }
264
257
  },
265
258
 
@@ -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(["sap/fe/core/CommonUtils", "sap/fe/macros/filter/FilterUtils"], function(CommonUtils, FilterUtils) {
6
6
  "use strict";
@@ -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
  ["sap/fe/core/helpers/SemanticDateOperators", "sap/ui/core/routing/HashChanger", "sap/fe/core/CommonUtils", "sap/base/Log"],
@@ -52,11 +52,19 @@ sap.ui.define(
52
52
  }
53
53
 
54
54
  function getShareUrl() {
55
- var sShareUrl;
56
- var sHash = HashChanger.getInstance().getHash();
57
- var sBasePath = HashChanger.getInstance().hrefForAppSpecificHash ? HashChanger.getInstance().hrefForAppSpecificHash("") : "";
58
- sShareUrl = sHash ? sBasePath + sHash : window.location.hash;
59
- return sShareUrl;
55
+ var oUShellContainer = sap.ushell && sap.ushell.Container;
56
+ if (oUShellContainer) {
57
+ return oUShellContainer
58
+ .getFLPUrlAsync(true)
59
+ .then(function(sFLPUrl) {
60
+ return sFLPUrl;
61
+ })
62
+ .catch(function(sError) {
63
+ Log.error("Could not retrieve cFLP URL for the sharing dialog (dialog will not be opened)", sError);
64
+ });
65
+ } else {
66
+ return Promise.resolve(document.URL);
67
+ }
60
68
  }
61
69
 
62
70
  function getSaveAsTileServiceUrl(oController) {
@@ -99,22 +107,29 @@ sap.ui.define(
99
107
  return {
100
108
  adaptShareMetadata: function(oShareMetadata) {
101
109
  var that = this;
102
- return Promise.resolve(getJamUrl()).then(function(sJamUrl) {
103
- var oAppComponent = CommonUtils.getAppComponent(that.base.getView());
104
- var oMetadata = oAppComponent.getMetadata();
105
- var oUIManifest = oMetadata.getManifestEntry("sap.ui");
106
- var sIcon = (oUIManifest && oUIManifest.icons && oUIManifest.icons.icon) || "";
107
- var oAppManifest = oMetadata.getManifestEntry("sap.app");
108
- var sTitle = (oAppManifest && oAppManifest.title) || "";
109
- // TODO: check if there is any semantic date used before adding serviceURL as BLI:FIORITECHP1-18023
110
- oShareMetadata.tile = {
111
- icon: sIcon,
112
- title: sTitle,
113
- queryUrl: getSaveAsTileServiceUrl(that.base)
114
- };
115
- oShareMetadata.title = document.title;
116
- oShareMetadata.url = getShareUrl();
117
- oShareMetadata.jam.url = sJamUrl;
110
+ Promise.resolve(getJamUrl())
111
+ .then(function(sJamUrl) {
112
+ var oAppComponent = CommonUtils.getAppComponent(that.base.getView());
113
+ var oMetadata = oAppComponent.getMetadata();
114
+ var oUIManifest = oMetadata.getManifestEntry("sap.ui");
115
+ var sIcon = (oUIManifest && oUIManifest.icons && oUIManifest.icons.icon) || "";
116
+ var oAppManifest = oMetadata.getManifestEntry("sap.app");
117
+ var sTitle = (oAppManifest && oAppManifest.title) || "";
118
+ // TODO: check if there is any semantic date used before adding serviceURL as BLI:FIORITECHP1-18023
119
+ oShareMetadata.tile = {
120
+ icon: sIcon,
121
+ title: sTitle,
122
+ queryUrl: getSaveAsTileServiceUrl(that.base)
123
+ };
124
+ oShareMetadata.title = document.title;
125
+ oShareMetadata.jam.url = sJamUrl;
126
+ })
127
+ .catch(function(error) {
128
+ Log.error(error);
129
+ });
130
+
131
+ return Promise.resolve(getShareUrl()).then(function(sFLPUrl) {
132
+ oShareMetadata.url = sFLPUrl;
118
133
  return oShareMetadata;
119
134
  });
120
135
  }
@@ -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
  [
@@ -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(
@@ -447,6 +447,26 @@ sap.ui.define(
447
447
  return undefined;
448
448
  }
449
449
  }
450
+ },
451
+ isSubSectionTitleVisible: function(sSubSectionvisible, sSubSectiontitle, sSubSectionshowTitle) {
452
+ if (sSubSectionvisible.indexOf("{=") === 0) {
453
+ // Dynamic expression
454
+ var sExpressionResult = sSubSectionvisible.substring(
455
+ sSubSectionvisible.indexOf("{=") + 2,
456
+ sSubSectionvisible.lastIndexOf("}")
457
+ );
458
+ return (
459
+ "{= (" +
460
+ sExpressionResult +
461
+ ") && ('" +
462
+ sSubSectiontitle +
463
+ "' !=='undefined') && (" +
464
+ sSubSectionshowTitle +
465
+ " ? true : false) }"
466
+ );
467
+ } else {
468
+ return sSubSectionvisible && sSubSectiontitle !== "undefined" && (sSubSectionshowTitle ? true : false);
469
+ }
450
470
  }
451
471
  };
452
472
 
@@ -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
  [
@@ -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(["sap/fe/core/ExtensionAPI", "sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/ID"], function(
6
6
  ExtensionAPI,
@@ -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
  [
@@ -295,7 +295,9 @@ sap.ui.define(
295
295
  // In IconTabBar mode keep the second section bound if there is an editable header and we are switching to display mode
296
296
  if (iSkip < 1 || (bUseIconTabBar && (iSection > 1 || (iSection === 1 && !bEditableHeader && !bIsInEditMode)))) {
297
297
  var oSubSection = aSubSections[iSubSection];
298
- oSubSection.setBindingContext(null);
298
+ if (oSubSection.data().isVisibilityDynamic !== "true") {
299
+ oSubSection.setBindingContext(null);
300
+ }
299
301
  }
300
302
  }
301
303
  }
@@ -315,7 +317,7 @@ sap.ui.define(
315
317
  var aActions = oObjectPage.getHeaderTitle() && oObjectPage.getHeaderTitle().getActions();
316
318
  if (aActions && aActions.length) {
317
319
  oFirstClickableElement = aActions.find(function(oAction) {
318
- return oAction.getVisible();
320
+ return oAction.getVisible() && oAction.getEnabled();
319
321
  });
320
322
  }
321
323
  return oFirstClickableElement;
@@ -354,37 +356,28 @@ sap.ui.define(
354
356
  return undefined;
355
357
  },
356
358
 
357
- initialTab: {
358
- value: true
359
+ _updateFocusInEditMode: function(aSubSections) {
360
+ var oObjectPage = this.byId("fe::ObjectPage");
361
+
362
+ var oMandatoryField = this._getFirstEmptyMandatoryFieldFromSubSection(aSubSections);
363
+ var oFieldToFocus;
364
+ if (oMandatoryField) {
365
+ oFieldToFocus = oMandatoryField.content.getContentEdit()[0];
366
+ } else {
367
+ oFieldToFocus = oObjectPage._getFirstEditableInput() || this._getFirstClickableElement(oObjectPage);
368
+ }
369
+
370
+ if (oFieldToFocus) {
371
+ setTimeout(function() {
372
+ // We set the focus in a timeeout, otherwise the focus sometimes goes to the TabBar
373
+ oFieldToFocus.focus();
374
+ }, 0);
375
+ }
359
376
  },
360
377
 
361
378
  _handleSubSectionEnteredViewPort: function(oEvent) {
362
379
  var oSubSection = oEvent.getParameter("subSection");
363
- var oInternalModelContext = this.getView().getBindingContext("internal");
364
380
  oSubSection.setBindingContext(undefined);
365
- var oObjectPage = this.byId("fe::ObjectPage");
366
- if (oObjectPage.getModel("ui").getProperty("/editMode") !== "Display") {
367
- if (
368
- this.getView().getViewData().sectionLayout === "Tabs" &&
369
- this.initialTab.value === false &&
370
- oInternalModelContext.getProperty("errorNavigationSectionFlag") === false
371
- ) {
372
- var oFieldToFocus = this._getFirstEmptyMandatoryFieldFromSubSection([oSubSection]);
373
- if (oFieldToFocus) {
374
- oFieldToFocus.content.getContentEdit()[0].focus();
375
- } else {
376
- var oFirstEditableInput = oObjectPage._getFirstEditableInput();
377
- if (oFirstEditableInput) {
378
- oFirstEditableInput.focus();
379
- } else {
380
- var oFirstClickableElement = this._getFirstClickableElement(oObjectPage);
381
- if (oFirstClickableElement) {
382
- oFirstClickableElement.focus();
383
- }
384
- }
385
- }
386
- }
387
- }
388
381
  },
389
382
 
390
383
  _onBackNavigationInDraft: function(oContext) {
@@ -562,16 +555,6 @@ sap.ui.define(
562
555
  },
563
556
  onPageReady: function(mParameters) {
564
557
  // Apply app state only after the page is ready with the first section selected
565
- function getVisibleSections(oObjectPage) {
566
- var aVisibleSections;
567
- var aSections = oObjectPage.getSections();
568
- if (aSections && aSections.length) {
569
- aVisibleSections = aSections.filter(function(oSection) {
570
- return oSection.getVisible() === true;
571
- });
572
- }
573
- return aVisibleSections;
574
- }
575
558
  var that = this;
576
559
  var oView = this.getView();
577
560
  var oInternalModelContext = oView.getBindingContext("internal");
@@ -587,60 +570,39 @@ sap.ui.define(
587
570
  this.getAppComponent()
588
571
  .getAppStateHandler()
589
572
  .applyAppState();
590
- var oLastFocusedControl = mParameters.lastFocusedControl;
591
- if (oLastFocusedControl && oLastFocusedControl.controlId && oLastFocusedControl.focusInfo) {
592
- var oFocusControl = oView.byId(oLastFocusedControl.controlId);
593
- if (oFocusControl) {
594
- oFocusControl.applyFocusInfo(oLastFocusedControl.focusInfo);
595
- return;
596
- }
597
- }
598
- var oObjectPage = this.byId("fe::ObjectPage");
599
- // set the focus to the first action button, or to the first editable input if in editable mode
600
- var isInDisplayMode = oObjectPage.getModel("ui").getProperty("/editMode") === "Display";
601
- var oFirstClickableElement;
602
- var aVisibleSections = getVisibleSections(oObjectPage);
603
573
 
604
- if (isInDisplayMode) {
605
- //Focus on the first visible section if page OP is in Display Mode
606
- oObjectPage.setSelectedSection(aVisibleSections[0].getId());
607
- oFirstClickableElement = this._getFirstClickableElement(oObjectPage);
608
- if (oFirstClickableElement) {
609
- oFirstClickableElement.focus();
610
- }
611
- } else {
612
- //Focus on first mandatory empty field
574
+ if (mParameters.forceFocus) {
575
+ var oObjectPage = this.byId("fe::ObjectPage");
576
+ // set the focus to the first action button, or to the first editable input if in editable mode
577
+ var isInDisplayMode = oObjectPage.getModel("ui").getProperty("/editMode") === "Display";
578
+ var aVisibleSections = oObjectPage.getSections().filter(function(oSection) {
579
+ return oSection.getVisible() === true;
580
+ });
581
+ // Select the first visible section
613
582
  oObjectPage.setSelectedSection(aVisibleSections[0].getId());
614
- if (
615
- oView.getViewData().sectionLayout === "Page" ||
616
- (oView.getViewData().sectionLayout === "Tabs" && this.initialTab.value === true)
617
- ) {
618
- var oFieldToFocus;
619
- var aSubSections = [];
620
- for (var section = 0; section < aVisibleSections.length; section++) {
621
- aSubSections = aVisibleSections[section].getSubSections();
622
- oFieldToFocus = this._getFirstEmptyMandatoryFieldFromSubSection(aSubSections);
623
- if (oFieldToFocus) {
624
- oFieldToFocus.content.getContentEdit()[0].focus();
625
- break;
626
- }
627
- }
628
583
 
629
- //this.initialTab.value = false;
630
- }
631
- if (!oFieldToFocus) {
632
- var oFirstEditableInput = oObjectPage._getFirstEditableInput();
633
- if (oFirstEditableInput) {
634
- oFirstEditableInput.focus();
584
+ if (isInDisplayMode) {
585
+ var oFirstClickableElement = this._getFirstClickableElement(oObjectPage);
586
+ if (oFirstClickableElement) {
587
+ oFirstClickableElement.focus();
588
+ }
589
+ } else {
590
+ var aVisibleSubSections;
591
+ if (oView.getViewData().sectionLayout === "Tabs") {
592
+ // In a tabbed layout, only the subsections of the selected section are visible on the screen
593
+ aVisibleSubSections = aVisibleSections[0].getSubSections();
635
594
  } else {
636
- oFirstClickableElement = this._getFirstClickableElement(oObjectPage);
637
- if (oFirstClickableElement) {
638
- oFirstClickableElement.focus();
639
- }
595
+ // In a paged layout, all subsections of the visible sections are visible on the screen
596
+ aVisibleSubSections = aVisibleSections
597
+ .map(function(oSection) {
598
+ return oSection.getSubSections();
599
+ })
600
+ .flat();
640
601
  }
602
+ this._updateFocusInEditMode(aVisibleSubSections);
641
603
  }
642
- this.initialTab.value = false;
643
604
  }
605
+
644
606
  oInternalModelContext.setProperty("errorNavigationSectionFlag", false);
645
607
  this._checkDataPointTitleForExternalNavigation();
646
608
  },
@@ -805,20 +767,19 @@ sap.ui.define(
805
767
  );
806
768
  }
807
769
  });
808
- return Promise.all(aWaitCreateDocuments).then(function(aBindings) {
809
- var mParameters = {
810
- bExecuteSideEffectsOnError: bExecuteSideEffectsOnError,
811
- bindings: aBindings
812
- };
813
- return that.editFlow
814
- .saveDocument(oContext, mParameters)
815
- .catch(that._showMessagePopover.bind(that))
816
- .finally(function() {
817
- if (BusyLocker.isLocked(oModel)) {
818
- BusyLocker.unlock(oModel);
819
- }
820
- });
821
- });
770
+ return Promise.all(aWaitCreateDocuments)
771
+ .then(function(aBindings) {
772
+ var mParameters = {
773
+ bExecuteSideEffectsOnError: bExecuteSideEffectsOnError,
774
+ bindings: aBindings
775
+ };
776
+ return that.editFlow.saveDocument(oContext, mParameters).catch(that._showMessagePopover.bind(that));
777
+ })
778
+ .finally(function() {
779
+ if (BusyLocker.isLocked(oModel)) {
780
+ BusyLocker.unlock(oModel);
781
+ }
782
+ });
822
783
  },
823
784
 
824
785
  _cancelDocument: function(oContext, mParameters) {
@@ -1349,6 +1310,17 @@ sap.ui.define(
1349
1310
  //will be called always when we click on a section tab
1350
1311
  this.getExtensionAPI().updateAppState();
1351
1312
  this.bSectionNavigated = true;
1313
+
1314
+ var oInternalModelContext = this.getView().getBindingContext("internal");
1315
+ var oObjectPage = this.byId("fe::ObjectPage");
1316
+ if (
1317
+ oObjectPage.getModel("ui").getProperty("/editMode") !== "Display" &&
1318
+ this.getView().getViewData().sectionLayout === "Tabs" &&
1319
+ oInternalModelContext.getProperty("errorNavigationSectionFlag") === false
1320
+ ) {
1321
+ var oSubSection = oEvent.getParameter("subSection");
1322
+ this._updateFocusInEditMode([oSubSection]);
1323
+ }
1352
1324
  },
1353
1325
  onVariantSelected: function(oEvent) {
1354
1326
  this.getExtensionAPI().updateAppState();
@@ -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
  ["sap/m/HBox", "sap/m/HBoxRenderer", "sap/ui/core/StashedControlSupport"],
@@ -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
  ["sap/m/VBox", "sap/m/VBoxRenderer", "sap/ui/core/StashedControlSupport"],
@@ -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/uxap/BlockBase"], function(BlockBase) {
@@ -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
  // Provides the Design Time Metadata for the sap.m.FlexBox control
6
6
  sap.ui.define([], function() {
@@ -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
  // Provides the Design Time Metadata for the sap.fe.templates.ObjectPage.controls.StashableHBox control
@@ -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
  // Provides the Design Time Metadata for the sap.fe.templates.ObjectPage.controls.StashableVBox control
@@ -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/fl/changeHandler/BaseRename"], function(BaseRename) {
@@ -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([], function() {
@@ -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(["sap/fe/core/CommonUtils", "sap/fe/navigation/SelectionVariant"], function(CommonUtils, SelectionVariant) {
6
6
  "use strict";
@@ -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(["sap/fe/core/CommonUtils", "sap/fe/navigation/SelectionVariant"], function(CommonUtils, SelectionVariant) {
6
6
  "use strict";
@@ -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([], function() {
6
6
  "use strict";
@@ -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([], function() {
6
6
  "use strict";
@@ -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
  [
@@ -229,25 +229,29 @@ sap.ui.define(
229
229
  }
230
230
  }
231
231
 
232
- /**
233
- * Get share URL.
234
- * @param sEditMode
235
- * @param bIsStickySupported
236
- * @param aActiveContextPaths
237
- * @returns {string} The share URL
238
- * @protected
239
- * @static
240
- */
241
- function getShareUrl(sEditMode, bIsStickySupported, aActiveContextPaths) {
242
- var sShareUrl;
243
- var sHash = HashChanger.getInstance().getHash();
244
- var sBasePath = HashChanger.getInstance().hrefForAppSpecificHash ? HashChanger.getInstance().hrefForAppSpecificHash("") : "";
245
- if (sEditMode === "Editable" && !bIsStickySupported && aActiveContextPaths) {
246
- sShareUrl = sBasePath + aActiveContextPaths.join("/");
232
+ // /**
233
+ // * Get share URL.
234
+ // * @param sEditMode
235
+ // * @param bIsStickySupported
236
+ // * @param aActiveContextPaths
237
+ // * @returns {string} The share URL
238
+ // * @protected
239
+ // * @static
240
+ // */
241
+ function getShareUrl() {
242
+ var oUShellContainer = sap.ushell && sap.ushell.Container;
243
+ if (oUShellContainer) {
244
+ return oUShellContainer
245
+ .getFLPUrlAsync(true)
246
+ .then(function(sFLPUrl) {
247
+ return sFLPUrl;
248
+ })
249
+ .catch(function(sError) {
250
+ Log.error("Could not retrieve cFLP URL for the sharing dialog (dialog will not be opened)", sError);
251
+ });
247
252
  } else {
248
- sShareUrl = sHash ? sBasePath + sHash : window.location.hash;
253
+ return Promise.resolve(document.URL);
249
254
  }
250
- return sShareUrl;
251
255
  }
252
256
 
253
257
  function getJamUrl(sEditMode, bIsStickySupported, aActiveContextPaths) {
@@ -290,22 +294,29 @@ sap.ui.define(
290
294
  ._getPageTitleInformation()
291
295
  );
292
296
  aPromises.push(getJamUrl(sEditMode, bIsStickySupported, aActiveContextPaths));
293
- return Promise.all(aPromises).then(function(oData) {
294
- var oPageTitleInfo = oData[0];
295
- var sJamUrl = oData[1];
296
- var sTitle = oPageTitleInfo.title;
297
- var sObjectSubtitle = oPageTitleInfo.subtitle.toString();
298
- if (sObjectSubtitle) {
299
- sTitle = sTitle + " - " + sObjectSubtitle;
300
- }
301
- oShareMetadata.tile = {
302
- title: oPageTitleInfo.title,
303
- subtitle: oPageTitleInfo.subtitle.toString()
304
- };
305
- oShareMetadata.email.title = sTitle;
306
- oShareMetadata.title = sTitle;
307
- oShareMetadata.url = getShareUrl(sEditMode, bIsStickySupported, aActiveContextPaths);
308
- oShareMetadata.jam.url = sJamUrl;
297
+ Promise.all(aPromises)
298
+ .then(function(oData) {
299
+ var oPageTitleInfo = oData[0];
300
+ var sJamUrl = oData[1];
301
+ var sTitle = oPageTitleInfo.title;
302
+ var sObjectSubtitle = oPageTitleInfo.subtitle.toString();
303
+ if (sObjectSubtitle) {
304
+ sTitle = sTitle + " - " + sObjectSubtitle;
305
+ }
306
+ oShareMetadata.tile = {
307
+ title: oPageTitleInfo.title,
308
+ subtitle: oPageTitleInfo.subtitle.toString()
309
+ };
310
+ oShareMetadata.email.title = sTitle;
311
+ oShareMetadata.title = sTitle;
312
+ oShareMetadata.jam.url = sJamUrl;
313
+ })
314
+ .catch(function(error) {
315
+ Log.error(error);
316
+ });
317
+
318
+ return Promise.resolve(getShareUrl()).then(function(sFLPUrl) {
319
+ oShareMetadata.url = sFLPUrl;
309
320
  return oShareMetadata;
310
321
  });
311
322
  });
@@ -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(["sap/fe/core/library", "sap/fe/core/CommonUtils"], function(CoreLibrary, CommonUtils) {
6
6
  "use strict";
@@ -57,6 +57,7 @@
57
57
  >
58
58
  <uxap:customData>
59
59
  <core:CustomData key="strategyForVisibilityChange" value="lazyLoading" />
60
+ <core:CustomData key="isVisibilityDynamic" value="{subSection>isVisibilityDynamic}" />
60
61
  </uxap:customData>
61
62
  <template:if test="{= ${subSection>type} === 'Mixed'}">
62
63
  <template:then>
@@ -131,10 +131,7 @@
131
131
  <template:elseif test="{= ${subSection>type} === 'DataVisualization'}">
132
132
  <uxap:blocks>
133
133
  <template:if test="{= ${subSection>level} === 2}">
134
- <Title
135
- text="{subSection>title}"
136
- visible="{= ${subSection>visible} &amp;&amp; ${subSection>title} !=='undefined' &amp;&amp; ${subSection>showTitle} ? true : false}"
137
- />
134
+ <Title text="{subSection>title}" visible="{subSection>titleVisible}" />
138
135
  </template:if>
139
136
  <opcontrol:SubSectionBlock visible="{subSection>visible}">
140
137
  <opcontrol:content>
@@ -14,5 +14,6 @@
14
14
  useFormContainerLabels="{= ${subSection>formDefinition/useFormContainerLabels}}"
15
15
  partOfPreview="true"
16
16
  formContainers="{subSection>formDefinition/formContainers}"
17
+ isVisible="{subSection>formDefinition/isVisible}"
17
18
  />
18
19
  </core:FragmentDefinition>
@@ -14,5 +14,6 @@
14
14
  useFormContainerLabels="{= ${subSection>formDefinition/useFormContainerLabels}}"
15
15
  partOfPreview="false"
16
16
  formContainers="{subSection>formDefinition/formContainers}"
17
+ isVisible="{subSection>formDefinition/isVisible}"
17
18
  />
18
19
  </core:FragmentDefinition>
@@ -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
  [
@@ -536,9 +536,11 @@ sap.ui.define(
536
536
  if (FCLLevel >= this._oFCLConfig.maxColumnsCount) {
537
537
  // The view is on a level > max number of columns. It's always fullscreen without close/exit buttons
538
538
  viewColumn = oFclColName[this._oFCLConfig.maxColumnsCount - 1];
539
+ oUIState.actionButtonsInfo.midColumn.fullScreen = null;
539
540
  oUIState.actionButtonsInfo.midColumn.exitFullScreen = null;
540
541
  oUIState.actionButtonsInfo.midColumn.closeColumn = null;
541
542
  oUIState.actionButtonsInfo.endColumn.exitFullScreen = null;
543
+ oUIState.actionButtonsInfo.endColumn.fullScreen = null;
542
544
  oUIState.actionButtonsInfo.endColumn.closeColumn = null;
543
545
  } else {
544
546
  viewColumn = oFclColName[FCLLevel];
@@ -558,7 +560,13 @@ sap.ui.define(
558
560
  // so we have to add this info manually
559
561
  oUIState.actionButtonsInfo.beginColumn = { fullScreen: null, exitFullScreen: null, closeColumn: null };
560
562
 
561
- oView.getModel("fclhelper").setProperty("/actionButtonsInfo", Object.assign({}, oUIState.actionButtonsInfo[viewColumn]));
563
+ var oActionButtonInfos = Object.assign({}, oUIState.actionButtonsInfo[viewColumn]);
564
+ oActionButtonInfos.switchVisible = oActionButtonInfos.fullScreen !== null || oActionButtonInfos.exitFullScreen !== null;
565
+ oActionButtonInfos.switchIcon =
566
+ oActionButtonInfos.fullScreen !== null ? "sap-icon://full-screen" : "sap-icon://exit-full-screen";
567
+ oActionButtonInfos.isFullScreen = oActionButtonInfos.fullScreen === null;
568
+
569
+ oView.getModel("fclhelper").setProperty("/actionButtonsInfo", oActionButtonInfos);
562
570
 
563
571
  oView.getModel("fclhelper").setProperty("/showShareIcon", this._updateShareButtonVisibility(viewColumn, sLayout));
564
572
  },
@@ -589,11 +597,7 @@ sap.ui.define(
589
597
 
590
598
  // Update the layout of the FlexibleColumnLayout
591
599
  if (sLayout) {
592
- if (!this.getFclControl().getModel("fcl")) {
593
- this.getFclControl().setModel(new JSONModel(), "fcl");
594
- this.getFclControl().bindProperty("layout", "fcl>/layout");
595
- }
596
- this.getFclControl().setProperty("layout", sLayout);
600
+ this.getFclControl().setLayout(sLayout);
597
601
  }
598
602
  }
599
603
  },
@@ -756,6 +760,55 @@ sap.ui.define(
756
760
  return aPromises;
757
761
  }, aRestorePromises);
758
762
  return Promise.all(aRestorePromises);
763
+ },
764
+
765
+ getRightmostContext: function() {
766
+ var oContext;
767
+ switch (this.getFclControl().getLayout()) {
768
+ case sap.f.LayoutType.OneColumn:
769
+ if (this.getFclControl().getCurrentBeginColumnPage()) {
770
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentBeginColumnPage()).getBindingContext();
771
+ }
772
+ break;
773
+
774
+ case sap.f.LayoutType.TwoColumnsBeginExpanded:
775
+ case sap.f.LayoutType.TwoColumnsMidExpanded:
776
+ if (this.getFclControl().getCurrentMidColumnPage()) {
777
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentMidColumnPage()).getBindingContext();
778
+ }
779
+ break;
780
+
781
+ case sap.f.LayoutType.ThreeColumnsEndExpanded:
782
+ case sap.f.LayoutType.ThreeColumnsMidExpanded:
783
+ case sap.f.LayoutType.ThreeColumnsMidExpandedEndHidden:
784
+ case sap.f.LayoutType.ThreeColumnsBeginExpandedEndHidden:
785
+ case sap.f.LayoutType.EndColumnFullScreen:
786
+ if (this.getFclControl().getCurrentEndColumnPage()) {
787
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentEndColumnPage()).getBindingContext();
788
+ }
789
+ break;
790
+
791
+ case sap.f.LayoutType.MidColumnFullScreen:
792
+ // In this case we need to determine if this mid column fullscreen comes from a 2 or a 3 column layout
793
+ var sLayoutWhenExitFullScreen = this.getHelper().getCurrentUIState().actionButtonsInfo.midColumn.exitFullScreen;
794
+ if (sLayoutWhenExitFullScreen.indexOf("ThreeColumn") >= 0) {
795
+ // We come from a 3 column layout
796
+ if (this.getFclControl().getCurrentEndColumnPage()) {
797
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentEndColumnPage()).getBindingContext();
798
+ }
799
+ } else {
800
+ // We come from a 2 column layout
801
+ if (this.getFclControl().getCurrentMidColumnPage()) {
802
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentMidColumnPage()).getBindingContext();
803
+ }
804
+ }
805
+ break;
806
+
807
+ default:
808
+ Log.error("Unhandled switch case for " + this.getFclControl().getLayout());
809
+ }
810
+
811
+ return oContext;
759
812
  }
760
813
  });
761
814
  },
@@ -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
  [
@@ -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
  [
@@ -53,12 +53,12 @@ sap.ui.define(
53
53
  this.oPlaceholder.attachRouteMatchers();
54
54
  this.getAppComponent()
55
55
  .getRoutingService()
56
- .attachAfterRouteMatched(this.shellTitleHandler, this);
56
+ .attachAfterRouteMatched(this._onAfterRouteMatched, this);
57
57
  },
58
58
  onExit: function() {
59
59
  this.getAppComponent()
60
60
  .getRoutingService()
61
- .detachAfterRouteMatched(this.shellTitleHandler, this);
61
+ .detachAfterRouteMatched(this._onAfterRouteMatched, this);
62
62
  this.oRouter = null;
63
63
 
64
64
  SizeHelper.exit();
@@ -132,46 +132,49 @@ sap.ui.define(
132
132
  },
133
133
 
134
134
  /**
135
- * This function is updating the shell title after each navigation.
135
+ * Callback when the navigation is done.
136
+ * - update the shell title.
137
+ * - update table scroll.
138
+ * - call onPageReady on the rightMostView.
136
139
  *
137
140
  * @param oEvent
138
- * @name sap.fe.templates.RootContainer.controller.BaseController#shellTitleHandler
141
+ * @name sap.fe.templates.RootContainer.controller.BaseController#_onAfterRouteMatched
139
142
  * @memberof sap.fe.templates.RootContainer.controller.BaseController
140
143
  */
141
- shellTitleHandler: function(oEvent) {
144
+ _onAfterRouteMatched: function(oEvent) {
142
145
  var that = this;
143
- if (!that.oShellTitlePromise) {
144
- that.oShellTitlePromise = that
146
+ if (!that._oRouteMatchedPromise) {
147
+ that._oRouteMatchedPromise = that
145
148
  .waitForRightMostViewReady(oEvent)
146
149
  .then(function(oView) {
150
+ // The autoFocus is initially disabled on the navContainer or the FCL, so that the focus stays on the Shell menu
151
+ // even if the app takes a long time to launch
152
+ // The first time the view is displayed, we need to enable the autofocus so that it's managed properly during navigation
153
+ var oRootControl = that.getView().getContent()[0];
154
+ if (oRootControl && oRootControl.getAutoFocus && !oRootControl.getAutoFocus()) {
155
+ oRootControl.setProperty("autoFocus", true, true); // Do not mark the container as invalid, otherwise it's re-rendered
156
+ }
157
+
147
158
  var oAppComponent = that.getAppComponent();
148
159
  var oData = { oView: oView, oAppComponent: oAppComponent };
149
160
  that._scrollTablesToLastNavigatedItems();
150
161
  if (oAppComponent.getEnvironmentCapabilities().getCapabilities().UShell) {
151
162
  that.computeTitleHierarchy(oData);
152
163
  }
153
- var oLastFocusedControl = oAppComponent.getRouterProxy().getFocusControlForCurrentHash();
164
+ var bForceFocus = oAppComponent.getRouterProxy().isFocusForced();
165
+ oAppComponent.getRouterProxy().setFocusForced(false); // reset
154
166
  if (oView.getController() && oView.getController().onPageReady) {
155
- if (oLastFocusedControl) {
156
- oView.getParent().onPageReady({ lastFocusedControl: oLastFocusedControl });
157
- } else {
158
- var currentFocusedControlId = sap.ui.getCore().getCurrentFocusedControlId();
159
- var oCurrentFocusedControl = {
160
- controlId: currentFocusedControlId,
161
- focusInfo: { id: currentFocusedControlId }
162
- };
163
- oView.getParent().onPageReady({ lastFocusedControl: oCurrentFocusedControl });
164
- }
167
+ oView.getParent().onPageReady({ forceFocus: bForceFocus });
165
168
  }
166
169
  if (that.onContainerReady) {
167
170
  that.onContainerReady();
168
171
  }
169
-
170
- that.oShellTitlePromise = null;
171
172
  })
172
173
  .catch(function(oError) {
173
174
  Log.error("An error occurs while computing the title hierarchy and calling focus method", oError);
174
- that.oShellTitlePromise = null;
175
+ })
176
+ .finally(function() {
177
+ that._oRouteMatchedPromise = null;
175
178
  });
176
179
  }
177
180
  },
@@ -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([], function() {
6
6
  "use strict";
@@ -8,8 +8,9 @@
8
8
  <FlexibleColumnLayout
9
9
  id="appContent"
10
10
  backgroundDesign="Transparent"
11
- layout="{fcl>/layout}"
12
11
  stateChange="onStateChanged"
13
12
  afterEndColumnNavigate="onStateChanged"
13
+ restoreFocusOnBackNavigation="true"
14
+ autoFocus="false"
14
15
  />
15
16
  </mvc:View>
@@ -5,5 +5,5 @@
5
5
  height="100%"
6
6
  controllerName="sap.fe.templates.RootContainer.controller.NavContainer"
7
7
  >
8
- <NavContainer id="appContent" />
8
+ <NavContainer id="appContent" autoFocus="false" />
9
9
  </mvc:View>
@@ -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
  [],
@@ -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
  * Initialization Code and shared classes of library sap.fe.templates
@@ -46,7 +46,7 @@ sap.ui.define(
46
46
  interfaces: [],
47
47
  controls: [],
48
48
  elements: [],
49
- version: "1.96.2",
49
+ version: "1.96.3",
50
50
  noLibraryCSS: true
51
51
  });
52
52
  if (!sap.fe.templates.ObjectPage) {
@@ -1,25 +0,0 @@
1
- /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
4
- */
5
-
6
- sap.ui.define(["sap/m/OverflowToolbarButton"], function(OverflowToolbarButton) {
7
- "use strict";
8
-
9
- var OverflowToolbarButtonHover = OverflowToolbarButton.extend("sap.fe.templates.ObjectPage.controls.OverflowToolbarButtonHover", {
10
- metadata: {
11
- events: {
12
- hover: {} // this Button has also a "hover" event, in addition to "press" of the normal Button
13
- }
14
- },
15
-
16
- // the hover event handler:
17
- onmouseover: function(evt) {
18
- // is called when the Button is hovered - no event registration required
19
- this.fireHover();
20
- },
21
- renderer: {}
22
- });
23
-
24
- return OverflowToolbarButtonHover;
25
- });