@sapui5/sap.suite.ui.commons 1.139.0 → 1.140.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 (51) hide show
  1. package/package.json +1 -1
  2. package/src/sap/suite/ui/commons/.library +1 -1
  3. package/src/sap/suite/ui/commons/AriaProperties.js +1 -1
  4. package/src/sap/suite/ui/commons/CalculationBuilder.js +1 -1
  5. package/src/sap/suite/ui/commons/CalculationBuilderExpression.js +1 -1
  6. package/src/sap/suite/ui/commons/CalculationBuilderFunction.js +1 -1
  7. package/src/sap/suite/ui/commons/CalculationBuilderGroup.js +1 -1
  8. package/src/sap/suite/ui/commons/CalculationBuilderItem.js +1 -1
  9. package/src/sap/suite/ui/commons/CalculationBuilderValidationResult.js +1 -1
  10. package/src/sap/suite/ui/commons/CalculationBuilderVariable.js +1 -1
  11. package/src/sap/suite/ui/commons/ChartContainer.js +0 -1
  12. package/src/sap/suite/ui/commons/CloudFilePicker.js +26 -26
  13. package/src/sap/suite/ui/commons/MicroProcessFlow.js +1 -1
  14. package/src/sap/suite/ui/commons/MicroProcessFlowItem.js +1 -1
  15. package/src/sap/suite/ui/commons/collaboration/CollaborationHelper.js +37 -28
  16. package/src/sap/suite/ui/commons/collaboration/TeamsHelperService.js +53 -57
  17. package/src/sap/suite/ui/commons/collaboration/flpplugins/msplugin/Component-preload.js +1 -1
  18. package/src/sap/suite/ui/commons/flexibility/changeHandler/PropertyChangeMapper.js +1 -1
  19. package/src/sap/suite/ui/commons/imageeditor/CropCustomShapeHistoryItem.js +1 -1
  20. package/src/sap/suite/ui/commons/imageeditor/CropEllipseHistoryItem.js +1 -1
  21. package/src/sap/suite/ui/commons/imageeditor/CropRectangleHistoryItem.js +1 -1
  22. package/src/sap/suite/ui/commons/imageeditor/CustomSizeItem.js +1 -1
  23. package/src/sap/suite/ui/commons/imageeditor/FilterHistoryItem.js +1 -1
  24. package/src/sap/suite/ui/commons/imageeditor/FlipHistoryItem.js +1 -1
  25. package/src/sap/suite/ui/commons/imageeditor/HistoryItem.js +1 -1
  26. package/src/sap/suite/ui/commons/imageeditor/ImageEditor.js +1 -1
  27. package/src/sap/suite/ui/commons/imageeditor/ImageEditorContainer.js +1 -1
  28. package/src/sap/suite/ui/commons/imageeditor/ImageEditorResponsiveContainer.js +1 -1
  29. package/src/sap/suite/ui/commons/imageeditor/ResizeHistoryItem.js +1 -1
  30. package/src/sap/suite/ui/commons/imageeditor/RotateHistoryItem.js +1 -1
  31. package/src/sap/suite/ui/commons/library.js +1 -1
  32. package/src/sap/suite/ui/commons/messagebundle.properties +11 -1
  33. package/src/sap/suite/ui/commons/statusindicator/Circle.js +1 -1
  34. package/src/sap/suite/ui/commons/statusindicator/CustomShape.js +1 -1
  35. package/src/sap/suite/ui/commons/statusindicator/DiscreteThreshold.js +1 -1
  36. package/src/sap/suite/ui/commons/statusindicator/FillingOption.js +1 -1
  37. package/src/sap/suite/ui/commons/statusindicator/LibraryShape.js +1 -1
  38. package/src/sap/suite/ui/commons/statusindicator/Path.js +1 -1
  39. package/src/sap/suite/ui/commons/statusindicator/PropertyThreshold.js +1 -1
  40. package/src/sap/suite/ui/commons/statusindicator/Rectangle.js +1 -1
  41. package/src/sap/suite/ui/commons/statusindicator/Shape.js +1 -1
  42. package/src/sap/suite/ui/commons/statusindicator/ShapeGroup.js +1 -1
  43. package/src/sap/suite/ui/commons/statusindicator/SimpleShape.js +1 -1
  44. package/src/sap/suite/ui/commons/statusindicator/StatusIndicator.js +1 -1
  45. package/src/sap/suite/ui/commons/taccount/TAccount.js +57 -6
  46. package/src/sap/suite/ui/commons/taccount/TAccountGroup.js +1 -1
  47. package/src/sap/suite/ui/commons/taccount/TAccountItem.js +4 -3
  48. package/src/sap/suite/ui/commons/taccount/TAccountItemProperty.js +1 -1
  49. package/src/sap/suite/ui/commons/taccount/TAccountPanel.js +1 -1
  50. package/src/sap/suite/ui/commons/themes/base/TAccount.less +28 -5
  51. package/src/sap/suite/ui/commons/windowmessages/CollaborationMessageBroker.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.suite.ui.commons",
3
- "version": "1.139.0",
3
+ "version": "1.140.0",
4
4
  "description": "SAPUI5 Library sap.suite.ui.commons",
5
5
  "homepage": "https://sap.github.io/ui5-tooling/pages/SAPUI5/",
6
6
  "author": "SAP SE (https://www.sap.com)",
@@ -7,7 +7,7 @@
7
7
  SAP UI development toolkit for HTML5 (SAPUI5)
8
8
  (c) Copyright 2009-2015 SAP SE. All rights reserved
9
9
  </copyright>
10
- <version>1.139.0</version>
10
+ <version>1.140.0</version>
11
11
 
12
12
  <documentation>SAP UI library: sap.suite.ui.commons</documentation>
13
13
 
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @extends sap.ui.core.Element
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.139.0
22
+ * @version 1.140.0
23
23
  * @since 1.65.0
24
24
  *
25
25
  * @constructor
@@ -134,7 +134,7 @@ sap.ui.define([
134
134
  * @extends sap.ui.core.Control
135
135
  *
136
136
  * @author SAP SE
137
- * @version 1.139.0
137
+ * @version 1.140.0
138
138
  * @since 1.56.0
139
139
  *
140
140
  * @constructor
@@ -148,7 +148,7 @@ sap.ui.define([
148
148
  * @extends sap.ui.core.Control
149
149
  *
150
150
  * @author SAP SE
151
- * @version 1.139.0
151
+ * @version 1.140.0
152
152
  * @since 1.56.0
153
153
  *
154
154
  * @constructor
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.core.Control
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.139.0
29
+ * @version 1.140.0
30
30
  * @since 1.56.0
31
31
  *
32
32
  * @constructor
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  * @extends sap.ui.core.Control
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.139.0
25
+ * @version 1.140.0
26
26
  * @since 1.60.0
27
27
  *
28
28
  * @constructor
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  * @extends sap.ui.core.Control
40
40
  *
41
41
  * @author SAP SE
42
- * @version 1.139.0
42
+ * @version 1.140.0
43
43
  * @since 1.56.0
44
44
  *
45
45
  * @constructor
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @extends sap.ui.base.ManagedObject
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.139.0
24
+ * @version 1.140.0
25
25
  * @since 1.56.0
26
26
  *
27
27
  * @constructor
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.core.Control
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.139.0
26
+ * @version 1.140.0
27
27
  * @since 1.56.0
28
28
  *
29
29
  * @constructor
@@ -901,7 +901,6 @@ sap.ui.define([
901
901
  }
902
902
  oButtonIcon = new SegmentedButtonItem({
903
903
  icon: aCharts[i].getIcon(),
904
- type: ButtonType.Transparent,
905
904
  tooltip: aCharts[i].getTitle(),
906
905
  customData: [new CustomData({
907
906
  key: 'chartId',
@@ -33,8 +33,8 @@ sap.ui.define([
33
33
  "sap/m/OverflowToolbar",
34
34
  "sap/m/ToolbarSpacer",
35
35
  "sap/m/Title",
36
- "sap/m/ColumnPopoverSelectListItem",
37
- "sap/m/ColumnHeaderPopover",
36
+ "sap/m/table/columnmenu/ActionItem",
37
+ "sap/m/table/columnmenu/Menu",
38
38
  "sap/ui/core/CustomData",
39
39
  "sap/ui/model/Sorter",
40
40
  "sap/m/SearchField",
@@ -77,8 +77,8 @@ sap.ui.define([
77
77
  OverflowToolbar,
78
78
  ToolbarSpacer,
79
79
  Title,
80
- ColumnPopoverSelectListItem,
81
- ColumnHeaderPopover,
80
+ ActionItem,
81
+ Columnmenu,
82
82
  CustomData,
83
83
  Sorter,
84
84
  SearchField,
@@ -118,7 +118,7 @@ sap.ui.define([
118
118
  * @class
119
119
  * @public
120
120
  * @internal
121
- * @version 1.139.0
121
+ * @version 1.140.0
122
122
  */
123
123
  var CloudFilePicker = Dialog.extend("sap.suite.ui.commons.CloudFilePicker", {
124
124
  metadata: {
@@ -707,31 +707,31 @@ sap.ui.define([
707
707
  if (sColumnType === "CreatedByUser" || sColumnType === "FileShareItemContentSize" || sColumnType === "FileShareItemContentType") {
708
708
  return;
709
709
  }
710
- var _aSortButton = [
711
- new ColumnPopoverSelectListItem({
712
- icon: "sap-icon://sort-ascending",
713
- action: function() {
714
- this._fHandleSorting(oColumn, true);
715
- }.bind(this)
716
- }),
717
- new ColumnPopoverSelectListItem({
718
- icon: "sap-icon://sort-descending",
719
- action: function() {
720
- this._fHandleSorting(oColumn, false);
721
- }.bind(this)
722
- })
723
- ];
724
- var oHeaderPopOver = new ColumnHeaderPopover({
725
- items: [_aSortButton]
710
+ var oColumnMenu = new Columnmenu({
711
+ items: [
712
+ new ActionItem({
713
+ icon: "sap-icon://sort-ascending",
714
+ press: function() {
715
+ this._fHandleSorting(oColumn, true);
716
+ }.bind(this)
717
+ }),
718
+ new ActionItem({
719
+ icon: "sap-icon://sort-descending",
720
+ press: function() {
721
+ this._fHandleSorting(oColumn, false);
722
+ }.bind(this)
723
+ })
724
+ ]
726
725
  });
727
- oHeaderPopOver.openBy(oColumn);
726
+
727
+ oColumnMenu.openBy(oColumn);
728
728
  }.bind(this));
729
729
 
730
730
  if (this.getFilePickerType() === FilePickerType.Upload && this.getSelectionMode() === SelectionMode.MultiSelect) {
731
731
  var oColumn = new Column({
732
732
  width: "10%",
733
733
  importance: "High"
734
- })
734
+ });
735
735
  this.oTableControl.insertColumn(oColumn, 0);
736
736
  var oTemplate = this.oTableControl.getBindingInfo("items").template;
737
737
  oTemplate.insertCell(
@@ -787,14 +787,14 @@ sap.ui.define([
787
787
  if (oItem.FileShareItemName.includes('(')) {
788
788
  var match = oItem.FileShareItemName.match(regex);
789
789
  var counter = Number(match[0]);
790
- if(counter > fcount) {
790
+ if (counter > fcount) {
791
791
  fcount = counter;
792
792
  }
793
793
  }
794
794
  });
795
795
  if (fcount) {
796
796
  fcount = fcount + 1;
797
- } else{
797
+ } else {
798
798
  fcount = fcount + 2;
799
799
  }
800
800
  oNewFolderInput.setValue(oResourceBundle.getText("CFP_TITLE_NEWFOLDER") + '(' + fcount + ')');
@@ -870,7 +870,7 @@ sap.ui.define([
870
870
  };
871
871
 
872
872
  CloudFilePicker.prototype._checkForDuplicateFileAndFolder = function (sSearchText, sFileShareKey, sDocumentType, sContentType,bNewFolderName) {
873
- if(bNewFolderName) {
873
+ if (bNewFolderName) {
874
874
  var filter = "startswith(FileShareItemName,\'" + sSearchText + "\') and FileShareItemKind eq \'" + sDocumentType + "\'and FileShareItemContentType eq \'" + sContentType + "\'";
875
875
  } else {
876
876
  filter = "FileShareItemName eq \'" + sSearchText + "\'and FileShareItemKind eq \'" + sDocumentType + "\'and FileShareItemContentType eq \'" + sContentType + "\'";
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @extends sap.ui.core.Control
48
48
  *
49
49
  * @author SAP SE
50
- * @version 1.139.0
50
+ * @version 1.140.0
51
51
  *
52
52
  * @constructor
53
53
  * @public
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @extends sap.ui.core.Control
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.139.0
41
+ * @version 1.140.0
42
42
  *
43
43
  * @constructor
44
44
  * @public
@@ -14,6 +14,9 @@ sap.ui.define(
14
14
  var PARAM_SAP_CARD_ID = "&sap-ui-cardId";
15
15
  var PARAM_SAP_XX_CARD_ID = "&sap-ui-xx-cardId";
16
16
  var PARAM_SAP_CARD_INFO = "&info=";
17
+ var PARAM_SAP_USHELL_CONFIG = "sap-ushell-config";
18
+ var PARAM_SAP_COLLABORATION_TEAMS = "sap-collaboration-teams";
19
+ var PARAM_SAP_UI_FESR_ENV = "sap-ui-fesr-env";
17
20
  var TRANSIENT_KEY = "transient";
18
21
  var oLogger = Log.getLogger("sap.suite.ui.commons.collaboration.CollaborationHelper");
19
22
 
@@ -108,9 +111,8 @@ sap.ui.define(
108
111
  * @return {Promise} Return the resolved promise when the redirection of the URL is done.
109
112
  * @public
110
113
  */
111
- CollaborationHelper.processAndExpandHash = async function () {
112
- const bTeamsModeActive = await this.isTeamsModeActive();
113
- this._hideAvatarFromShellbar(bTeamsModeActive);
114
+ CollaborationHelper.processAndExpandHash = function () {
115
+ this._hideAvatarFromShellbar();
114
116
  return this._getCurrentUrl().then(async function (sCurrentUrl) {
115
117
  //if the current url has url param, sap-url-hash, then we have to redirect to an actual url.
116
118
  if (sCurrentUrl.indexOf(URL_KEY) > -1) {
@@ -118,7 +120,7 @@ sap.ui.define(
118
120
  if (sCurrentUrl.indexOf(PARAM_SAP_STAGEVIEW_HASH) > 0) {
119
121
  sHash = sHash.split(PARAM_SAP_STAGEVIEW_HASH)[0];
120
122
  } else if (sCurrentUrl.includes("info=")) {
121
- sHash = sHash.includes(",") ? sHash.split(",")[0] : sHash.split("&")[0];
123
+ sHash = sHash.includes(",") ? sHash.split(",")[0] : sHash.split("&")[0];
122
124
  } else if (sCurrentUrl.indexOf(PARAM_SAP_CARD_ID) > 0 || sCurrentUrl.indexOf(PARAM_SAP_XX_CARD_ID) > 0) {
123
125
  if (sCurrentUrl.indexOf(PARAM_SAP_CARD_ID) > 0){
124
126
  sHash = sHash.split(PARAM_SAP_CARD_ID)[0];
@@ -130,21 +132,21 @@ sap.ui.define(
130
132
  }
131
133
  return this._retrieveURL(sHash).then(function (oAppState) {
132
134
  if (oAppState.getData()) {
133
- this._redirectToUrl(oAppState.getData());
135
+ window.location.replace(oAppState.getData());
134
136
  } else {
135
137
  // In case AppState couldn't found value for the hash, so removing it and redirecting to LR
136
138
  const sUrl = sCurrentUrl.split(URL_KEY)[0];
137
- this._redirectToUrl(sUrl);
139
+ window.location.replace(sUrl);
138
140
  }
139
141
  return Promise.resolve();
140
- }.bind(this));
142
+ });
141
143
  } else if (sCurrentUrl.indexOf(PARAM_SAP_CARD_ID) > -1) {
142
144
  const sUrl = sCurrentUrl.split(PARAM_SAP_CARD_ID)[0];
143
- this._redirectToUrl(sUrl);
145
+ window.location.replace(sUrl);
144
146
  } else if (sCurrentUrl.indexOf(PARAM_SAP_CARD_TITLE) > -1) {
145
147
  const sUrl = sCurrentUrl.split(PARAM_SAP_CARD_TITLE)[0];
146
148
  await this._redirectBasedOnRuntime(sUrl);
147
- } else if (bTeamsModeActive && sCurrentUrl.includes(PARAM_SAP_CARD_INFO)) {
149
+ } else if (sCurrentUrl.includes(PARAM_SAP_CARD_INFO) && this._isFromTeams(sCurrentUrl)) {
148
150
  const sUrl = sCurrentUrl.split(PARAM_SAP_CARD_INFO)[0];
149
151
  await this._redirectBasedOnRuntime(sUrl);
150
152
  }
@@ -152,6 +154,20 @@ sap.ui.define(
152
154
  }.bind(this));
153
155
  };
154
156
 
157
+ /**
158
+ * Checks whether the given URL indicates that it originated from a Microsoft Teams environment.
159
+ *
160
+ * This is determined by the presence of the query parameter `sap-collaboration-teams=true`.
161
+ *
162
+ * @param {string} sCurrentUrl - The full URL to inspect.
163
+ * @returns {boolean} True if the URL contains `sap-collaboration-teams=true`; otherwise, false.
164
+ */
165
+ CollaborationHelper._isFromTeams = function (sCurrentUrl) {
166
+ const urlObj = new URL(sCurrentUrl);
167
+ const bIsFromTeams = urlObj.searchParams.get("sap-collaboration-teams");
168
+ return bIsFromTeams === "true";
169
+ };
170
+
155
171
  /**
156
172
  * Handles URL redirection according to the runtime environment.
157
173
  *
@@ -169,7 +185,7 @@ sap.ui.define(
169
185
  await CollaborationMessageConsumer.updateTopLevelURLforAppRuntime(sUrl);
170
186
  } else {
171
187
  const targetUrl = this._stripTeamsParams(sUrl);
172
- this._redirectToUrl(targetUrl);
188
+ window.location.replace(targetUrl);
173
189
  }
174
190
  };
175
191
 
@@ -193,8 +209,9 @@ sap.ui.define(
193
209
  }
194
210
 
195
211
  const params = new URLSearchParams(queryString);
196
- params.delete("sap-ushell-config");
197
- params.delete("sap-collaboration-teams");
212
+ params.delete(PARAM_SAP_USHELL_CONFIG);
213
+ params.delete(PARAM_SAP_COLLABORATION_TEAMS);
214
+ params.delete(PARAM_SAP_UI_FESR_ENV);
198
215
 
199
216
  const newBaseUrl = params.toString()
200
217
  ? `${path}?${params.toString()}`
@@ -232,30 +249,22 @@ sap.ui.define(
232
249
  return window.self === window.top;
233
250
  };
234
251
 
235
- /**
236
- * Redirects the browser to a specified URL.
237
- *
238
- * @private
239
- * @param {string} sUrl - The target URL to redirect to
240
- */
241
- CollaborationHelper._redirectToUrl = function(sUrl) {
242
- window.location.replace(sUrl);
243
- };
244
252
 
245
253
  /**
246
254
  * Hides the avatar of the user if the app is running in the Microsoft Teams application.
247
- * @param {boolean} bTeamsModeActive Indicates if Teams mode is active
248
255
  * @private
249
256
  * @ui5-restricted sap.suite.suite-ui-commons
250
257
  * @experimental since 1.108
251
258
  */
252
- CollaborationHelper._hideAvatarFromShellbar = function (bTeamsModeActive) {
253
- if (bTeamsModeActive) {
254
- var oAvatar = Element.getElementById('userActionsMenuHeaderButton');
255
- if (oAvatar) {
256
- oAvatar.setVisible(false);
259
+ CollaborationHelper._hideAvatarFromShellbar = function () {
260
+ this.isTeamsModeActive().then(function (bIsActive) {
261
+ if (bIsActive) {
262
+ var oAvatar = Element.getElementById('userActionsMenuHeaderButton');
263
+ if (oAvatar) {
264
+ oAvatar.setVisible(false);
265
+ }
257
266
  }
258
- }
267
+ });
259
268
  };
260
269
 
261
270
  /**
@@ -128,7 +128,6 @@ sap.ui.define([
128
128
  if (Device.system.desktop) {
129
129
  if (oTeamsParams.isShareAsCardEnabled) {
130
130
  const bIsShareAsCardEnabled = this._providerConfig.isShareAsCardEnabled;
131
- const bIsShareAsTabEnabled = this._providerConfig.isShareAsTabEnabled === "X";
132
131
 
133
132
  const CARD_OBJECT = {
134
133
  "text": oResourceBundle.getText("COLLABORATION_MSTEAMS_CARD"),
@@ -145,14 +144,6 @@ sap.ui.define([
145
144
  case "AUTHENABLE":
146
145
  aOptions.push(CARD_OBJECT);
147
146
  break;
148
- case "":
149
- case undefined:
150
- if (bIsShareAsTabEnabled) {
151
- aOptions.push(CARD_OBJECT);
152
- } else {
153
- oLogger.info("Share as Card option is not enabled in the tenant");
154
- }
155
- break;
156
147
  default:
157
148
  oLogger.info("Share as Card option is not enabled in the tenant");
158
149
  break;
@@ -267,6 +258,15 @@ sap.ui.define([
267
258
  }
268
259
  };
269
260
 
261
+ /**
262
+ * Modifies the given application URL to prepare it for sharing as a tab in Microsoft Teams.
263
+ * Adds parameters to enable headerless mode and Teams collaboration context,
264
+ * as well as FESR (Frontend Subrecording) step tracking, and sets the navigation mode to "explace".
265
+ *
266
+ * @param {string} sUrl - The original application URL.
267
+ * @param {string} fesrStepName - The name of the FESR step (used for UI performance tracking).
268
+ * @returns {Promise<string>} - The modified URL suitable for Teams tab usage.
269
+ */
270
270
  TeamsHelperService.prototype._modifyUrlForShareAsTab = async function(sUrl, fesrStepName) {
271
271
  var sAppUri = sUrl;
272
272
  var iIndexOfHash = sAppUri.indexOf('#');
@@ -424,21 +424,17 @@ sap.ui.define([
424
424
  if (oParams.minifyUrlForChat) {
425
425
  CollaborationHelper.compactHash(oParams.url, []).then(async function (sShortURL) {
426
426
  var sModifiedUrl = await this._modifyUrlForNavigationContext(oParams.url, sShortURL.url);
427
- if (oTeamsParams.isShareAsTabEnabled && this._providerConfig.isShareAsTabEnabled) {
428
- var sUrlForTab = await this._modifyUrlForShareAsTab(oParams.url, "MST:C");
429
- var sShortURLTab = await CollaborationHelper.compactHash(sUrlForTab, []);
430
- var sStageViewHash = sShortURLTab.url.split("sap-url-hash=")[1];
431
- // Scenario in which URL shortening is enabled, but the iAppState is set to Transient.
432
- if (sStageViewHash) {
433
- sModifiedUrl += `,${sStageViewHash}`;
434
- } else {
435
- sUrlForTab = await this._modifyUrlForShareAsTab(sModifiedUrl, "MST:C");
436
- sModifiedUrl = await this._addNavmodeInUrl(sUrlForTab, 'inplace');
437
- }
438
- this._closeBusyDialogAndOpenTeamsDialog(sModifiedUrl, oParams, oResponseData);
427
+ var sUrlForTab = await this._modifyUrlForShareAsTab(oParams.url, "MST:C");
428
+ var sShortURLTab = await CollaborationHelper.compactHash(sUrlForTab, []);
429
+ var sStageViewHash = sShortURLTab.url.split("sap-url-hash=")[1];
430
+ // Scenario in which URL shortening is enabled, but the iAppState is set to Transient.
431
+ if (sStageViewHash) {
432
+ sModifiedUrl += `,${sStageViewHash}`;
439
433
  } else {
440
- this._closeBusyDialogAndOpenTeamsDialog(sModifiedUrl, oParams, oResponseData);
434
+ sUrlForTab = await this._modifyUrlForShareAsTab(sModifiedUrl, "MST:C");
435
+ sModifiedUrl = await this._addNavmodeInUrl(sUrlForTab, 'inplace');
441
436
  }
437
+ this._closeBusyDialogAndOpenTeamsDialog(sModifiedUrl, oParams, oResponseData);
442
438
  }.bind(this));
443
439
  } else {
444
440
  var sModifiedUrl = oParams.url;
@@ -607,7 +603,7 @@ sap.ui.define([
607
603
  *
608
604
  */
609
605
  TeamsHelperService.prototype.getCollaborationPopover = function(oParams, oData, oSource, isLink, oCollaborationOptionsConfig) {
610
- if(oData.data === undefined || oData.data.trim() === "") {
606
+ if (oData.data === undefined || oData.data.trim() === "") {
611
607
  oLogger.error("Popover cannnot be opened without data");
612
608
  return;
613
609
  }
@@ -618,7 +614,7 @@ sap.ui.define([
618
614
  shareToTeams: oCollaborationOptionsConfig && typeof oCollaborationOptionsConfig.shareToTeams !== "undefined" ? oCollaborationOptionsConfig.shareToTeams : true,
619
615
  shareToEmail: oCollaborationOptionsConfig && typeof oCollaborationOptionsConfig.shareToEmail !== "undefined" ? oCollaborationOptionsConfig.shareToEmail : true,
620
616
  shareToCM: oCollaborationOptionsConfig && typeof oCollaborationOptionsConfig.shareToCM !== "undefined" ? oCollaborationOptionsConfig.shareToCM : false
621
- }
617
+ };
622
618
  var aOptions = [];
623
619
  if (Device.system.desktop) {
624
620
  if (oTeamsParams.isShareAsLinkEnabled) {
@@ -638,7 +634,7 @@ sap.ui.define([
638
634
  } else {
639
635
  oLogger.info("Share as Chat option is not supported in Phone and Tablet");
640
636
  }
641
- if(oCollaborationOptionsConfig.shareToEmail) {
637
+ if (oCollaborationOptionsConfig.shareToEmail) {
642
638
  aOptions.push({
643
639
  "text": oResourceBundle.getText("COLLABORATION_POPOVER_MAIL"),
644
640
  "icon": "sap-icon://email",
@@ -647,20 +643,20 @@ sap.ui.define([
647
643
  }
648
644
  this.oCollaborationManager = new CollaborationManagerService();
649
645
  var oCMOption = this.oCollaborationManager.getOptions();
650
- if(oCMOption && oCollaborationOptionsConfig.shareToCM) {
646
+ if (oCMOption && oCollaborationOptionsConfig.shareToCM) {
651
647
  aOptions.push({
652
648
  "text": oCMOption.text,
653
649
  "icon": oCMOption.icon,
654
650
  "key": "COLLABORATION_POPOVER_CM"
655
651
  });
656
652
  }
657
- if(aOptions.length === 1 && !isLink && aOptions[0].key === "COLLABORATION_POPOVER_MAIL") {
658
- this._shareData(oData,aOptions[0], isLink);
659
- return
653
+ if (aOptions.length === 1 && !isLink && aOptions[0].key === "COLLABORATION_POPOVER_MAIL") {
654
+ this._shareData(oData, aOptions[0], isLink);
655
+ return;
660
656
  }
661
- var oCollaborationPopover = this._getPopover(oData,aOptions, isLink);
657
+ var oCollaborationPopover = this._getPopover(oData, aOptions, isLink);
662
658
  oCollaborationPopover.openBy(oSource);
663
- }
659
+ };
664
660
 
665
661
  /**
666
662
  *
@@ -672,13 +668,13 @@ sap.ui.define([
672
668
  TeamsHelperService.prototype._getPopover = function(oData,aOptions,isLink) {
673
669
  var oCollaborationPopover = new Popover({
674
670
  showHeader: false,
675
- placement: oData.placement? oData.placement : "Auto" ,
671
+ placement: oData.placement ? oData.placement : "Auto",
676
672
  verticalScrolling: false,
677
673
  horizontalScrolling: false,
678
- content: this._getPopoverContent(oData,aOptions,isLink)
674
+ content: this._getPopoverContent(oData, aOptions, isLink)
679
675
  });
680
676
  return oCollaborationPopover;
681
- }
677
+ };
682
678
 
683
679
  /**
684
680
  * Returns the content of popover in a FlexBox
@@ -707,9 +703,9 @@ sap.ui.define([
707
703
  }
708
704
  }).addStyleClass("sapUiTinyMarginTop").addStyleClass("sapUiTinyMarginBegin");
709
705
 
710
- if(oOption.key === "COLLABORATION_POPOVER_TEAMS") {
706
+ if (oOption.key === "COLLABORATION_POPOVER_TEAMS") {
711
707
  button.addStyleClass("sapSuiteUiCollaborationBarMSTeamsButton" + (oData.sFormat ? oData.sFormat : "Horizontal"));
712
- } else if(oOption.key === "COLLABORATION_POPOVER_CM"){
708
+ } else if (oOption.key === "COLLABORATION_POPOVER_CM") {
713
709
  button.addStyleClass("sapSuiteUiCollaborationBarCMButton" + (oData.sFormat ? oData.sFormat : "Horizontal"));
714
710
  } else {
715
711
  button.addStyleClass("sapSuiteUiCollaborationBarEmailButton" + (oData.sFormat ? oData.sFormat : "Horizontal"));
@@ -732,15 +728,15 @@ sap.ui.define([
732
728
  }).addStyleClass("sapUiTinyMarginBeginEnd")
733
729
  ]
734
730
  });
735
- if(oData.sFormat === "Horizontal" || oData.sFormat === undefined) {
731
+ if (oData.sFormat === "Horizontal" || oData.sFormat === undefined) {
736
732
  oCopyLinkFlexbox.insertItem(
737
733
  new MessageStrip({
738
734
  text: oResourceBundle.getText("COLLABORATION_POPOVER_MSGSTRIP"),
739
735
  showIcon: true
740
- }).addStyleClass("sapUiTinyMarginBeginEnd").addStyleClass("sapSuiteCollaborationBarMsgStrip"),0);
741
- oCopyLinkFlexbox.addStyleClass("sapSuiteUiCollaborationBarMsgStripHBox")
736
+ }).addStyleClass("sapUiTinyMarginBeginEnd").addStyleClass("sapSuiteCollaborationBarMsgStrip"), 0);
737
+ oCopyLinkFlexbox.addStyleClass("sapSuiteUiCollaborationBarMsgStripHBox");
742
738
  }
743
- oCopyLinkFlexbox.addStyleClass("sapUiTinyMarginBeginEnd").addStyleClass("sapUiTinyMarginTopBottom")
739
+ oCopyLinkFlexbox.addStyleClass("sapUiTinyMarginBeginEnd").addStyleClass("sapUiTinyMarginTopBottom");
744
740
  oMainFBox.addItem(oCopyLinkFlexbox);
745
741
  }
746
742
 
@@ -753,7 +749,7 @@ sap.ui.define([
753
749
 
754
750
  }
755
751
  return oMainFBox;
756
- }
752
+ };
757
753
 
758
754
  /**
759
755
  *
@@ -776,20 +772,20 @@ sap.ui.define([
776
772
  */
777
773
  TeamsHelperService.prototype._shareData = function(oData, oOption, isLink) {
778
774
  if (oOption.key === "COLLABORATION_POPOVER_TEAMS") {
779
- if(isLink) {
775
+ if (isLink) {
780
776
  var oShareData = {
781
777
  url: oData.data,
782
778
  appTitle: oData.title ? oData.title : "",
783
779
  subTitle: "",
784
780
  minifyUrlForChat: true
785
- }
781
+ };
786
782
  this._shareAsChat(oShareData);
787
783
  } else {
788
784
  var oShareData = {
789
785
  appTitle: oData.title ? oData.title : "",
790
786
  message: oData.data,
791
- showPreview: typeof oData.showPreview !== undefined ? oData.showPreview : true
792
- }
787
+ showPreview: typeof oData.showPreview !== "undefined" ? oData.showPreview : true
788
+ };
793
789
  this._shareSummary(oShareData);
794
790
  }
795
791
  } else if (oOption.key === "COLLABORATION_POPOVER_MAIL") {
@@ -797,25 +793,25 @@ sap.ui.define([
797
793
  } else if (oOption.key === "COLLABORATION_POPOVER_CM") {
798
794
  this.oCollaborationManager.triggerH2HChat(oData.title, oData.data);
799
795
  }
800
- }
796
+ };
801
797
 
802
798
  /**
803
799
  * Shares the summary data (large content) to Microsoft Teams
804
800
  * @param { object } oParams Title and summary data to share
805
801
  */
806
802
  TeamsHelperService.prototype._shareSummary = function(oParams) {
807
- var oData = {
808
- "subEntityId": {
809
- "appTitle": oParams.appTitle,
810
- "mode": "summary",
811
- "message": oParams.message,
812
- "showPreview": oParams.showPreview
813
- }
814
- };
803
+ var oData = {
804
+ "subEntityId": {
805
+ "appTitle": oParams.appTitle,
806
+ "mode": "summary",
807
+ "message": oParams.message,
808
+ "showPreview": oParams.showPreview
809
+ }
810
+ };
815
811
 
816
- var sURL = this._providerConfig.shareAsTabUrl + "?&context=" + encodeURIComponent(JSON.stringify(oData));
817
- sap.m.URLHelper.redirect(sURL, true);
812
+ var sURL = this._providerConfig.shareAsTabUrl + "?&context=" + encodeURIComponent(JSON.stringify(oData));
813
+ sap.m.URLHelper.redirect(sURL, true);
818
814
 
819
- }
815
+ };
820
816
  return TeamsHelperService;
821
817
  });
@@ -12,7 +12,7 @@ sap.ui.require.preload({
12
12
  sap.ui.define(["sap/ui/base/Object"],function(t){var n="/sap/opu/odata4/sap/aps_ui_contact_srv/srvd_a2x/sap/";var e=n+"aps_ui_contact/0001/";var a="APS_UI_C_CONTACT";var o=n+"aps_ui_contact/0001/"+a;var r=n+"aps_ui_contact/0001/"+a;var c="APS_UI_C_PRESENCE";var i=n+"aps_ui_contact/0001/"+c;var u="APS_UI_C_CALENDAR";var h=n+"aps_ui_contact/0001/"+u;var f=n+"aps_ui_contact/0001/"+"APS_UI_C_CHECK_SERVICE";var s="GET";var C="HEAD";var d=t.extend("sap.suite.ui.commons.collaboration.CollaborationContactInfoHelper");d.fetchCSRFToken=function(){return fetch(e,{method:C,headers:{"X-CSRF-Token":"Fetch"}}).then(function(t){var n=t.headers.get("X-CSRF-Token");if(t.ok&&n){return n}return undefined})};d.fetchContact=function(t){return this.fetchCSRFToken().then(function(n){return fetch(o+"/"+t,{method:s,headers:{"X-CSRF-Token":n,"content-type":"application/json;odata.metadata=minimal;charset=utf-8"}}).then(function(t){return t.json()})})};d.fetchContactCalendar=function(t){var n=new Date;var e=h+"?$filter=mail eq '"+t+"'";if(n){e=h+"?$filter=(mail eq '"+t+"'&start_datetime eq '"+n.toISOString()+"')"}return this.fetchCSRFToken().then(function(t){return fetch(e,{method:s,headers:{"X-CSRF-Token":t,"content-type":"application/json;odata.metadata=minimal;charset=utf-8"}}).then(function(t){return t.json()})})};d.fetchContactPicture=function(t){return this.fetchCSRFToken().then(function(n){return fetch(r+"/"+t+"/photo",{method:s,headers:{"X-CSRF-Token":n}}).then(function(t){return t.blob()})})};d.fetchContactStatus=function(t){return this.fetchCSRFToken().then(function(n){return fetch(i+"?$filter=id eq '"+t+"'",{method:s,headers:{"X-CSRF-Token":n,"content-type":"application/json;odata.metadata=minimal;charset=utf-8"}}).then(function(t){return t.json()})})};d.fetchServiceStatus=function(){return this.fetchCSRFToken().then(function(t){return fetch(f,{method:s,headers:{"X-CSRF-Token":t,"content-type":"application/json;odata.metadata=minimal;charset=utf-8"}}).then(function(t){return t.json()})})};return d});
13
13
  },
14
14
  "sap/suite/ui/commons/collaboration/CollaborationHelper.js":function(){
15
- sap.ui.define(["sap/base/Log","sap/ui/base/Object","sap/ui/core/Element","../windowmessages/CollaborationMessageConsumer"],function(e,t,i,n){var r="sap-url-hash";var s="&sap-ui-cardTitle";var a="&sap-stageview-hash";var o="&sap-ui-cardId";var c="&sap-ui-xx-cardId";var u="&info=";var l="transient";var f=e.getLogger("sap.suite.ui.commons.collaboration.CollaborationHelper");var p=t.extend("sap.suite.ui.commons.collaboration.CollaborationHelper");p.compactHash=function(e){const t=sap.ui.require("sap/ushell/Container");if(!t){return{url:e}}return t&&t.getServiceAsync("AppState").then(async function(t){var i=t.createEmptyAppState(undefined,false);var n=this._getNextKey(i);if(!this._isEligibleForBackendPersistency(t)){f.warning("Transient flag is true. URL will not be shortened");return{url:e}}var s=this._extractURLBeforeHash(e);var a=await this._extractSemanticObjectAndAction(e);var o=false;try{o=await this._isMinificationFeasible(e)}catch(e){}if(!a||!o){return{url:e}}return this._storeUrl(e,i).then(function(){return{url:s+"#"+a+"&/"+r+"="+n}}).catch(function(t){f.warning("URL is not shortened due to an error."+t.toString());return{url:e}})}.bind(this))};p._getCurrentUrl=function(){const e=sap.ui.require("sap/ushell/Container");return e&&e?new Promise(function(t){e.getFLPUrlAsync(true).then(function(e){t(e)})}):Promise.resolve(document.URL)};p.processAndExpandHash=async function(){const e=await this.isTeamsModeActive();this._hideAvatarFromShellbar(e);return this._getCurrentUrl().then(async function(t){if(t.indexOf(r)>-1){var i=t.split(r)[1].split("=")[1];if(t.indexOf(a)>0){i=i.split(a)[0]}else if(t.includes("info=")){i=i.includes(",")?i.split(",")[0]:i.split("&")[0]}else if(t.indexOf(o)>0||t.indexOf(c)>0){if(t.indexOf(o)>0){i=i.split(o)[0]}else{i=i.split(c)[0]}}else if(t.indexOf(s)>0){i=i.split(s)[0]}return this._retrieveURL(i).then(function(e){if(e.getData()){this._redirectToUrl(e.getData())}else{const e=t.split(r)[0];this._redirectToUrl(e)}return Promise.resolve()}.bind(this))}else if(t.indexOf(o)>-1){const e=t.split(o)[0];this._redirectToUrl(e)}else if(t.indexOf(s)>-1){const e=t.split(s)[0];await this._redirectBasedOnRuntime(e)}else if(e&&t.includes(u)){const e=t.split(u)[0];await this._redirectBasedOnRuntime(e)}return Promise.resolve()}.bind(this))};p._redirectBasedOnRuntime=async function(e){const t=sap.ui.require("sap/ushell/Container");if(t&&t.inAppRuntime()){await n.updateTopLevelURLforAppRuntime(e)}else{const t=this._stripTeamsParams(e);this._redirectToUrl(t)}};p._removeTeamsParams=function(e){try{const t=e.split("#");const i=t[0];const n=t[1]?"#"+t[1]:"";const[r,s]=i.split("?");if(!s){return e}const a=new URLSearchParams(s);a.delete("sap-ushell-config");a.delete("sap-collaboration-teams");const o=a.toString()?`${r}?${a.toString()}`:r;return o+n}catch(t){return e}};p._stripTeamsParams=function(e){if(this._isTopWindow()){return this._removeTeamsParams(e)}return e};p._isTopWindow=function(){return window.self===window.top};p._redirectToUrl=function(e){window.location.replace(e)};p._hideAvatarFromShellbar=function(e){if(e){var t=i.getElementById("userActionsMenuHeaderButton");if(t){t.setVisible(false)}}};p.isTeamsModeActive=function(){var e=false;const t=sap.ui.require("sap/ushell/Container");if(t){return t.getServiceAsync("URLParsing").then(function(t){return this._getCurrentUrl().then(function(i){var n=i.split("#")[0];if(n.indexOf("?")!==-1){var r=t&&t.parseParameters(n.substring(n.indexOf("?")));if(r&&r["sap-collaboration-teams"]&&r["sap-collaboration-teams"][0]&&r["sap-collaboration-teams"][0]==="true"){e=true}var s=false;if(r&&r["sap-ushell-config"]&&r["sap-ushell-config"][0]&&r["sap-ushell-config"][0]==="lean"){s=true}return Promise.resolve(e&&s)}else{return Promise.resolve(false)}})}.bind(this))}else{return Promise.resolve(false)}};p._retrieveURL=function(e){const t=sap.ui.require("sap/ushell/Container");return t&&t.getServiceAsync("AppState").then(function(t){return t.getAppState(e)})};p._isEligibleForBackendPersistency=function(e){return e&&e._oConfig&&l in e._oConfig&&!e._oConfig[l]};p._getNextKey=function(e){return e.getKey()};p._extractSemanticObjectAndAction=function(e){const t=sap.ui.require("sap/ushell/Container");return t&&t.getServiceAsync("URLParsing").then(function(t){var i=t.parseShellHash(this._extractURLHash(e));if(i){return Promise.resolve(i.contextRaw?i.semanticObject+"-"+i.action+"~"+i.contextRaw:i.semanticObject+"-"+i.action)}}.bind(this))};p._isMinificationFeasible=async function(e){const t=sap.ui.require("sap/ushell/Container");if(t){const r=await t.getServiceAsync("NavTargetResolution");const s=await t.getServiceAsync("URLParsing");var i=s.parseShellHash(this._extractURLHash(e));var n=Object.keys(i.params).length;if(n>0){return r.resolveHashFragment(`#${i.semanticObject}-${i.action}`).then(function(e){return true}).catch(function(e){return false})}else{return Promise.resolve(true)}}return Promise.resolve(false)};p._extractURLBeforeHash=function(e){var t=e.split("#")[0];return t};p._extractURLHash=function(e){var t=e.substring(e.indexOf("#"));return t};p._storeUrl=function(e,t){t.setData(e);return t.save()};return p});
15
+ sap.ui.define(["sap/base/Log","sap/ui/base/Object","sap/ui/core/Element","../windowmessages/CollaborationMessageConsumer"],function(e,t,n,i){var r="sap-url-hash";var s="&sap-ui-cardTitle";var a="&sap-stageview-hash";var o="&sap-ui-cardId";var c="&sap-ui-xx-cardId";var u="&info=";var l="sap-ushell-config";var f="sap-collaboration-teams";var p="sap-ui-fesr-env";var h="transient";var d=e.getLogger("sap.suite.ui.commons.collaboration.CollaborationHelper");var m=t.extend("sap.suite.ui.commons.collaboration.CollaborationHelper");m.compactHash=function(e){const t=sap.ui.require("sap/ushell/Container");if(!t){return{url:e}}return t&&t.getServiceAsync("AppState").then(async function(t){var n=t.createEmptyAppState(undefined,false);var i=this._getNextKey(n);if(!this._isEligibleForBackendPersistency(t)){d.warning("Transient flag is true. URL will not be shortened");return{url:e}}var s=this._extractURLBeforeHash(e);var a=await this._extractSemanticObjectAndAction(e);var o=false;try{o=await this._isMinificationFeasible(e)}catch(e){}if(!a||!o){return{url:e}}return this._storeUrl(e,n).then(function(){return{url:s+"#"+a+"&/"+r+"="+i}}).catch(function(t){d.warning("URL is not shortened due to an error."+t.toString());return{url:e}})}.bind(this))};m._getCurrentUrl=function(){const e=sap.ui.require("sap/ushell/Container");return e&&e?new Promise(function(t){e.getFLPUrlAsync(true).then(function(e){t(e)})}):Promise.resolve(document.URL)};m.processAndExpandHash=function(){this._hideAvatarFromShellbar();return this._getCurrentUrl().then(async function(e){if(e.indexOf(r)>-1){var t=e.split(r)[1].split("=")[1];if(e.indexOf(a)>0){t=t.split(a)[0]}else if(e.includes("info=")){t=t.includes(",")?t.split(",")[0]:t.split("&")[0]}else if(e.indexOf(o)>0||e.indexOf(c)>0){if(e.indexOf(o)>0){t=t.split(o)[0]}else{t=t.split(c)[0]}}else if(e.indexOf(s)>0){t=t.split(s)[0]}return this._retrieveURL(t).then(function(t){if(t.getData()){window.location.replace(t.getData())}else{const t=e.split(r)[0];window.location.replace(t)}return Promise.resolve()})}else if(e.indexOf(o)>-1){const t=e.split(o)[0];window.location.replace(t)}else if(e.indexOf(s)>-1){const t=e.split(s)[0];await this._redirectBasedOnRuntime(t)}else if(e.includes(u)&&this._isFromTeams(e)){const t=e.split(u)[0];await this._redirectBasedOnRuntime(t)}return Promise.resolve()}.bind(this))};m._isFromTeams=function(e){const t=new URL(e);const n=t.searchParams.get("sap-collaboration-teams");return n==="true"};m._redirectBasedOnRuntime=async function(e){const t=sap.ui.require("sap/ushell/Container");if(t&&t.inAppRuntime()){await i.updateTopLevelURLforAppRuntime(e)}else{const t=this._stripTeamsParams(e);window.location.replace(t)}};m._removeTeamsParams=function(e){try{const t=e.split("#");const n=t[0];const i=t[1]?"#"+t[1]:"";const[r,s]=n.split("?");if(!s){return e}const a=new URLSearchParams(s);a.delete(l);a.delete(f);a.delete(p);const o=a.toString()?`${r}?${a.toString()}`:r;return o+i}catch(t){return e}};m._stripTeamsParams=function(e){if(this._isTopWindow()){return this._removeTeamsParams(e)}return e};m._isTopWindow=function(){return window.self===window.top};m._hideAvatarFromShellbar=function(){this.isTeamsModeActive().then(function(e){if(e){var t=n.getElementById("userActionsMenuHeaderButton");if(t){t.setVisible(false)}}})};m.isTeamsModeActive=function(){var e=false;const t=sap.ui.require("sap/ushell/Container");if(t){return t.getServiceAsync("URLParsing").then(function(t){return this._getCurrentUrl().then(function(n){var i=n.split("#")[0];if(i.indexOf("?")!==-1){var r=t&&t.parseParameters(i.substring(i.indexOf("?")));if(r&&r["sap-collaboration-teams"]&&r["sap-collaboration-teams"][0]&&r["sap-collaboration-teams"][0]==="true"){e=true}var s=false;if(r&&r["sap-ushell-config"]&&r["sap-ushell-config"][0]&&r["sap-ushell-config"][0]==="lean"){s=true}return Promise.resolve(e&&s)}else{return Promise.resolve(false)}})}.bind(this))}else{return Promise.resolve(false)}};m._retrieveURL=function(e){const t=sap.ui.require("sap/ushell/Container");return t&&t.getServiceAsync("AppState").then(function(t){return t.getAppState(e)})};m._isEligibleForBackendPersistency=function(e){return e&&e._oConfig&&h in e._oConfig&&!e._oConfig[h]};m._getNextKey=function(e){return e.getKey()};m._extractSemanticObjectAndAction=function(e){const t=sap.ui.require("sap/ushell/Container");return t&&t.getServiceAsync("URLParsing").then(function(t){var n=t.parseShellHash(this._extractURLHash(e));if(n){return Promise.resolve(n.contextRaw?n.semanticObject+"-"+n.action+"~"+n.contextRaw:n.semanticObject+"-"+n.action)}}.bind(this))};m._isMinificationFeasible=async function(e){const t=sap.ui.require("sap/ushell/Container");if(t){const r=await t.getServiceAsync("NavTargetResolution");const s=await t.getServiceAsync("URLParsing");var n=s.parseShellHash(this._extractURLHash(e));var i=Object.keys(n.params).length;if(i>0){return r.resolveHashFragment(`#${n.semanticObject}-${n.action}`).then(function(e){return true}).catch(function(e){return false})}else{return Promise.resolve(true)}}return Promise.resolve(false)};m._extractURLBeforeHash=function(e){var t=e.split("#")[0];return t};m._extractURLHash=function(e){var t=e.substring(e.indexOf("#"));return t};m._storeUrl=function(e,t){t.setData(e);return t.save()};return m});
16
16
  },
17
17
  "sap/suite/ui/commons/collaboration/CollaborationManagerService.js":function(){
18
18
  sap.ui.define(["sap/base/Log","sap/ui/core/Core","./BaseHelperService","sap/ui/Device","sap/ui/core/Lib","sap/suite/ui/commons/collaboration/channels/MessageChannel"],function(e,o,a,s,t,i){var n=a.extend("sap.suite.ui.commons.collaboration.CollaborationManagerService");var r=t.getResourceBundleFor("sap.suite.ui.commons");var l=e.getLogger("sap.suite.ui.commons.collaboration.CollaborationManagerService");n.prototype.triggerH2HChat=function(e,o,a){this.publishData({sAppTitle:e,sCurrentURL:o,sEmailId:a})};n.prototype.getOptions=function(){var e=window["sap-ushell-config"]&&window["sap-ushell-config"].bootstrapPlugins&&window["sap-ushell-config"].bootstrapPlugins.H2H_CHAT_PLUGIN;if(s.system.desktop){if(e){return{text:r.getText("COLLABORATION_MANGER"),icon:"sap-icon://BusinessSuiteInAppSymbols/icon-collaboration-manager",press:this.triggerH2HChat.bind(this),fesrStepName:"CM:ShareLink"}}else{l.info("Consumer disable Collaboration Manager option")}}else{l.info("Collaboration Manager is not supported in Phone and Tablet")}return null};n.prototype.publishData=async function(e){try{const o=await i.getInstance();o.postMessage(e)}catch(e){l.error("Failed to publish data:",e)}};return n});
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  *
23
23
  * @constructor
24
24
  * @alias sap.suite.ui.commons.flexibility.changeHandler.PropertyChangeMapper
25
- * @version 1.139.0
25
+ * @version 1.140.0
26
26
  * @since 1.50
27
27
  * @private
28
28
  */
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.suite.ui.commons.imageeditor.HistoryItem
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.139.0
31
+ * @version 1.140.0
32
32
  * @since 1.67.0
33
33
  *
34
34
  * @constructor
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.suite.ui.commons.imageeditor.HistoryItem
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.139.0
33
+ * @version 1.140.0
34
34
  * @since 1.66.0
35
35
  *
36
36
  * @constructor
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.suite.ui.commons.imageeditor.HistoryItem
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.139.0
31
+ * @version 1.140.0
32
32
  * @since 1.66.0
33
33
  *
34
34
  * @constructor
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  * @extends sap.ui.core.Element
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.139.0
25
+ * @version 1.140.0
26
26
  * @since 1.66.0
27
27
  *
28
28
  * @constructor
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.suite.ui.commons.imageeditor.HistoryItem
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.139.0
31
+ * @version 1.140.0
32
32
  * @since 1.66.0
33
33
  *
34
34
  * @constructor
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.suite.ui.commons.imageeditor.HistoryItem
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.139.0
28
+ * @version 1.140.0
29
29
  * @since 1.66.0
30
30
  *
31
31
  * @constructor
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * @extends sap.ui.base.Object
18
18
  *
19
19
  * @author SAP SE
20
- * @version 1.139.0
20
+ * @version 1.140.0
21
21
  * @since 1.66.0
22
22
  *
23
23
  * @abstract
@@ -50,7 +50,7 @@ sap.ui.define([
50
50
  * @extends sap.ui.core.Control
51
51
  *
52
52
  * @author SAP SE
53
- * @version 1.139.0
53
+ * @version 1.140.0
54
54
  * @since 1.66.0
55
55
  *
56
56
  * @constructor
@@ -162,7 +162,7 @@ sap.ui.define([
162
162
  * @extends sap.ui.core.Control
163
163
  *
164
164
  * @author SAP SE
165
- * @version 1.139.0
165
+ * @version 1.140.0
166
166
  * @since 1.66.0
167
167
  *
168
168
  * @constructor
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.suite.ui.commons.imageeditor.ImageEditorContainer
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.139.0
37
+ * @version 1.140.0
38
38
  * @since 1.68.0
39
39
  *
40
40
  * @constructor
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.suite.ui.commons.imageeditor.HistoryItem
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.139.0
32
+ * @version 1.140.0
33
33
  * @since 1.66.0
34
34
  *
35
35
  * @constructor
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.suite.ui.commons.imageeditor.HistoryItem
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.139.0
26
+ * @version 1.140.0
27
27
  * @since 1.66.0
28
28
  *
29
29
  * @constructor
@@ -195,7 +195,7 @@ sap.ui.define([
195
195
  "sap.suite.ui.commons.TargetFilterMeasureColumn",
196
196
  "sap.suite.ui.commons.AriaProperties"
197
197
  ],
198
- version: "1.139.0",
198
+ version: "1.140.0",
199
199
  extensions: {
200
200
  flChangeHandlers: {
201
201
  "sap.suite.ui.commons.Timeline": "sap/suite/ui/commons/flexibility/Timeline"
@@ -350,7 +350,7 @@ PF_VALUE_UNDEFINED=Undefined
350
350
  #XACT: Text for node description in processflow
351
351
  PF_ARIA_PROCESS_FLOW_NODE_DESC=Use arrow keys to navigate between the Process Flow Nodes
352
352
  #XACT: Text for empty cells description in processflow
353
- PF_ARIA_PROCESS_FLOW_EMPTY_NODE_DESC = Empty cell used for visual spacing in process flow, no content
353
+ PF_ARIA_PROCESS_FLOW_EMPTY_NODE_DESC = Empty space
354
354
  #XACT: Text for status for header lane
355
355
  PF_ARIA_STATUS=the status is
356
356
  #XACT: Text for positive status value for header lane
@@ -750,6 +750,16 @@ COLORED_ITEM_FROM=Colored Item from Journal Entry
750
750
  TACCOUNT_DROP_HERE=Drop Here
751
751
  #XCAP: T Account no data text
752
752
  TACCOUNT_NO_DATA=No data.
753
+ #XCAP: T Account debit
754
+ TACCOUNT_DEBIT_NUMBER=Debit {0}
755
+ #XCAP: T Account credit
756
+ TACCOUNT_CREDIT_NUMBER=Credit {0}
757
+ #XCAP: T Account debit
758
+ TACCOUNT_TOTAL_DEBIT_NUMBER=Total Debit {0}
759
+ #XCAP: T Account credit
760
+ TACCOUNT_TOTAL_CREDIT_NUMBER=Total Credit {0}
761
+ #XCAP: T AccountItems wrapper
762
+ TACCOUNT_ITEM_WRAPPER=List with interactive items. To move to the content press F2
753
763
 
754
764
  #XMSG: Message Toast shown when the image is automatically scaled down because of the restrictions of the platform that the ImageEditor is currently running on
755
765
  IMGEDITOR_SCALE_WARNING=The image was scaled down to {0} x {1} px from {2} x {3} px to ensure better compatibility with your device.
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.suite.ui.commons.statusindicator.SimpleShape
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.139.0
33
+ * @version 1.140.0
34
34
  * @since 1.50
35
35
  *
36
36
  * @constructor
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  * @extends sap.suite.ui.commons.statusindicator.Shape
37
37
  *
38
38
  * @author SAP SE
39
- * @version 1.139.0
39
+ * @version 1.140.0
40
40
  * @since 1.50
41
41
  *
42
42
  * @constructor
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @extends sap.ui.core.Control
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.139.0
24
+ * @version 1.140.0
25
25
  * @since 1.50
26
26
  *
27
27
  * @constructor
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.core.Control
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.139.0
26
+ * @version 1.140.0
27
27
  * @since 1.50
28
28
  *
29
29
  * @constructor
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.suite.ui.commons.statusindicator.CustomShape
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.139.0
26
+ * @version 1.140.0
27
27
  * @since 1.60.0
28
28
  *
29
29
  * @constructor
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.suite.ui.commons.statusindicator.SimpleShape
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.139.0
32
+ * @version 1.140.0
33
33
  * @since 1.50
34
34
  *
35
35
  * @constructor
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.core.Control
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.139.0
31
+ * @version 1.140.0
32
32
  * @since 1.50
33
33
  *
34
34
  * @constructor
@@ -29,7 +29,7 @@ sap.ui.define(
29
29
  * @extends sap.suite.ui.commons.statusindicator.SimpleShape
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.139.0
32
+ * @version 1.140.0
33
33
  * @since 1.50
34
34
  *
35
35
  * @constructor
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @extends sap.ui.core.Control
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.139.0
45
+ * @version 1.140.0
46
46
  * @since 1.50
47
47
  *
48
48
  * @constructor
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.ui.core.Control
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.139.0
33
+ * @version 1.140.0
34
34
  * @since 1.50
35
35
  *
36
36
  * @constructor
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.suite.ui.commons.statusindicator.Shape
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.139.0
33
+ * @version 1.140.0
34
34
  * @since 1.50
35
35
  *
36
36
  * @constructor
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  * @extends sap.ui.core.Control
50
50
  *
51
51
  * @author SAP SE
52
- * @version 1.139.0
52
+ * @version 1.140.0
53
53
  * @since 1.50
54
54
  *
55
55
  * @constructor
@@ -56,7 +56,7 @@ sap.ui.define([
56
56
  * @extends sap.ui.core.Control
57
57
  *
58
58
  * @author SAP SE
59
- * @version 1.139.0
59
+ * @version 1.140.0
60
60
  * @since 1.58.0
61
61
  *
62
62
  * @constructor
@@ -278,6 +278,8 @@ sap.ui.define([
278
278
 
279
279
  oRm.openEnd();
280
280
 
281
+ oRm.renderControl(oAccount._getAriaRowForTAccount());
282
+
281
283
  if (bHasData || oAccount.getOpening()) {
282
284
  oRm.openStart("div");
283
285
  oRm.class("sapSuiteUiCommonsAccountTHeader");
@@ -305,6 +307,8 @@ sap.ui.define([
305
307
  if (oAccount.getOpening()) {
306
308
  oRm.openStart("div")
307
309
  .class("sapSuiteUiCommonsAccountOpeningHeader")
310
+ .attr("tabindex","0")
311
+ .attr("aria-labelledby",oAccount._getAriaRowForTAccount().getId())
308
312
  .openEnd();
309
313
  oRm.openStart("span")
310
314
  .attr("id", oAccount.getId() + "-opening-debit-text")
@@ -318,12 +322,16 @@ sap.ui.define([
318
322
  .openEnd()
319
323
  .text(sOpeningCredit + " " + sUnit)
320
324
  .close("span");
325
+ oRm.openStart("div")
326
+ .class("sapSuiteUiCommonsAccountFocus")
327
+ .openEnd();
328
+ oRm.close("div");
321
329
  oRm.close("div");
322
330
  }
323
331
 
324
- oRm.openStart("div")
332
+ oRm.openStart("div",oAccount.getId() + "-itemWrapper")
325
333
  .class("sapSuiteUiCommonsAccountTBody")
326
- .attr("role", "listbox")
334
+ .attr("tabindex","0")
327
335
  .openEnd();
328
336
 
329
337
  if (oAccount._isOrdered()) {
@@ -343,7 +351,7 @@ sap.ui.define([
343
351
  .attr("role", "listbox")
344
352
  .attr("aria-labelledby", oAccount.getId() + "-debit-text")
345
353
  .openEnd();
346
- fnWriteColumn(oAccount.getDebit(), true);
354
+ fnWriteColumn(oAccount.getDebit(),true);
347
355
  }
348
356
  oRm.close("div");
349
357
 
@@ -353,7 +361,7 @@ sap.ui.define([
353
361
  .attr("role", "listbox")
354
362
  .attr("aria-labelledby", oAccount.getId() + "-credit-text")
355
363
  .openEnd();
356
- fnWriteColumn(oAccount.getCredit(), false);
364
+ fnWriteColumn(oAccount.getCredit(),false);
357
365
  oRm.close("div");
358
366
  }
359
367
 
@@ -374,6 +382,8 @@ sap.ui.define([
374
382
  .close("div");
375
383
  oRm.openStart("div")
376
384
  .class("sapSuiteUiCommonsAccountClosingHeader")
385
+ .attr("aria-labelledby",oAccount._getAriaRowForTAccount().getId())
386
+ .attr("tabindex","0")
377
387
  .openEnd();
378
388
  oRm.openStart("span")
379
389
  .attr("id", oAccount.getId() + "-closing-debit-text")
@@ -387,6 +397,10 @@ sap.ui.define([
387
397
  .openEnd()
388
398
  .text(fnCountBalance(false) + " " + sUnit)
389
399
  .close("span");
400
+ oRm.openStart("div")
401
+ .class("sapSuiteUiCommonsAccountFocus")
402
+ .openEnd();
403
+ oRm.close("div");
390
404
  oRm.close("div");
391
405
  }
392
406
 
@@ -455,6 +469,32 @@ sap.ui.define([
455
469
  }
456
470
  };
457
471
 
472
+ TAccount.prototype.onfocusin = function (oEvent) {
473
+ const oCurrentTarget = oEvent.target;
474
+
475
+ const bIsOpeningHeader = oCurrentTarget.classList.contains("sapSuiteUiCommonsAccountOpeningHeader");
476
+ const bIsClosingHeader = oCurrentTarget.classList.contains("sapSuiteUiCommonsAccountClosingHeader");
477
+ if (!(bIsOpeningHeader || bIsClosingHeader)) {
478
+ return;
479
+ }
480
+
481
+ const sDebitText = oCurrentTarget.childNodes[0]?.innerText;
482
+ const sCreditText = oCurrentTarget.childNodes[1]?.innerText;
483
+
484
+ let sAriaText = "";
485
+
486
+ if (sDebitText) {
487
+ sAriaText += (bIsOpeningHeader) ? oResourceBundle.getText("TACCOUNT_DEBIT_NUMBER",[sDebitText]) : oResourceBundle.getText("TACCOUNT_TOTAL_DEBIT_NUMBER",[sDebitText]);
488
+ sAriaText += " ";
489
+ }
490
+
491
+ if (sCreditText) {
492
+ sAriaText += (bIsOpeningHeader) ? oResourceBundle.getText("TACCOUNT_CREDIT_NUMBER",[sCreditText]) : oResourceBundle.getText("TACCOUNT_TOTAL_CREDIT_NUMBER",[sCreditText]);
493
+ }
494
+
495
+ this._getAriaRowForTAccount().setText(sAriaText);
496
+ };
497
+
458
498
  /* =========================================================== */
459
499
  /* Public methods */
460
500
  /* =========================================================== */
@@ -482,7 +522,7 @@ sap.ui.define([
482
522
 
483
523
  this._oItemNavigation.setRootDomRef(this.$().find(".sapSuiteUiCommonsAccountTBody")[0]);
484
524
  this._oItemNavigation.setItemDomRefs(this.$().find(".sapSuiteUiCommonsAccountItem"));
485
- this._oItemNavigation.setCycling(true);
525
+ this._oItemNavigation.setCycling(false);
486
526
  };
487
527
 
488
528
  TAccount.prototype._isInGroup = function () {
@@ -573,6 +613,17 @@ sap.ui.define([
573
613
  return this._oMarkText;
574
614
  };
575
615
 
616
+ TAccount.prototype._getAriaRowForTAccount = function () {
617
+ if (!this._oTableRowText) {
618
+ this._oTableRowText = new InvisibleText({
619
+ id: this.getId() + "-row-text"
620
+ }
621
+ );
622
+ this.addDependent(this._oTableRowText);
623
+ }
624
+ return this._oTableRowText;
625
+ };
626
+
576
627
  TAccount.prototype._getSum = function () {
577
628
  if (this._iSum == null) {
578
629
  var iSum = new BigNumber("0");
@@ -41,7 +41,7 @@ sap.ui.define([
41
41
  * @extends sap.ui.core.Control
42
42
  *
43
43
  * @author SAP SE
44
- * @version 1.139.0
44
+ * @version 1.140.0
45
45
  * @since 1.58.0
46
46
  *
47
47
  * @constructor
@@ -41,7 +41,7 @@ sap.ui.define([
41
41
  * @extends sap.ui.core.Control
42
42
  *
43
43
  * @author SAP SE
44
- * @version 1.139.0
44
+ * @version 1.140.0
45
45
  * @since 1.58.0
46
46
  *
47
47
  * @constructor
@@ -101,8 +101,9 @@ sap.ui.define([
101
101
  sValue = TAccountUtils.formatCurrency(new BigNumber(oItem.getValue()), sUnit, oPanelParent ? oPanelParent.getMaxFractionDigits() : 0),
102
102
  sTextValue = sValue + " " + sUnit;
103
103
 
104
- oRm.openStart("div", oItem).attr("tabindex", "0");
104
+ oRm.openStart("div", oItem);
105
105
  oRm.class("sapSuiteUiCommonsAccountItem");
106
+ oRm.attr("tabindex","-1");
106
107
 
107
108
  if (oItem.getGroup()) {
108
109
  oRm.attr("group", oItem.getGroup());
@@ -122,7 +123,7 @@ sap.ui.define([
122
123
  if (sColor) {
123
124
  if (oSemanticColorType.hasOwnProperty(sColor)) {
124
125
  oRm.class("backgroundSemanticColor" + sColor);
125
- }
126
+ }
126
127
  /**
127
128
  * @deprecated As of version 1.120
128
129
  */
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.core.Control
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.139.0
27
+ * @version 1.140.0
28
28
  * @since 1.58.0
29
29
  *
30
30
  * @constructor
@@ -65,7 +65,7 @@ sap.ui.define([
65
65
  * @extends sap.m.Panel
66
66
  *
67
67
  * @author SAP SE
68
- * @version 1.139.0
68
+ * @version 1.140.0
69
69
  * @since 1.58.0
70
70
  *
71
71
  * @constructor
@@ -83,10 +83,6 @@ html[dir=rtl] .sapSuiteUiCommonsAccountCredit .sapSuiteUiCommonsAccountContent{
83
83
  display: flex;
84
84
  }
85
85
 
86
- .sapSuiteUiCommonsAccountGroupCollapseIcon {
87
- height: 0.9375rem;
88
- }
89
-
90
86
  .sapSuiteUiCommonsAccount:focus {
91
87
  outline: @sapUiContentFocusWidth @sapUiContentFocusStyle @sapUiContentFocusColor;
92
88
  }
@@ -121,6 +117,27 @@ html[dir=rtl] .sapSuiteUiCommonsAccountCredit .sapSuiteUiCommonsAccountContent{
121
117
  height: auto;
122
118
  font-size: @sapMFontSmallSize;
123
119
  margin: 0 1rem;
120
+ outline: none;
121
+ position: relative;
122
+ &:focus {
123
+ .sapSuiteUiCommonsAccountFocus {
124
+ position: absolute;
125
+ outline: @sapContent_FocusWidth @sapContent_FocusStyle @sapContent_FocusColor;
126
+ right: -15px;
127
+ left: -15px;
128
+ top: 1px;
129
+ bottom: 2px;
130
+ }
131
+ }
132
+ }
133
+
134
+ .sapSuiteUiCommonsAccountClosingHeader {
135
+ &:focus {
136
+ .sapSuiteUiCommonsAccountFocus {
137
+ top: 2px;
138
+ bottom: 1px;
139
+ }
140
+ }
124
141
  }
125
142
 
126
143
  .sapSuiteUiCommonsAccountClosingHeader {
@@ -171,7 +188,7 @@ html[dir=rtl] .sapSuiteUiCommonsAccountCredit .sapSuiteUiCommonsAccountContent{
171
188
  .sapSuiteUiCommonsAccountHeaderTitle {
172
189
  overflow: hidden;
173
190
  text-overflow: ellipsis;
174
- margin: 0.5rem 0.2608rem;
191
+ margin: 0.875rem 0.2608rem 0.5rem 0.2608rem;
175
192
  max-height: 4.2rem;
176
193
  min-height: 1rem;
177
194
  display: -webkit-box;
@@ -179,6 +196,12 @@ html[dir=rtl] .sapSuiteUiCommonsAccountCredit .sapSuiteUiCommonsAccountContent{
179
196
  -webkit-line-clamp: 4;
180
197
  }
181
198
 
199
+ .sapUiSizeCompact {
200
+ .sapSuiteUiCommonsAccountHeaderTitle {
201
+ margin: 0.5rem 0.2608rem;
202
+ }
203
+ }
204
+
182
205
  .sapSuiteUiCommonsAccountTHeaderOpeningDebitTitle,
183
206
  .sapSuiteUiCommonsAccountTHeaderOpeningCreditTitle {
184
207
  font-size: @sapMFontMediumSize;
@@ -59,7 +59,6 @@ sap.ui.define([
59
59
  const sanitizedUrl = CollaborationHelper._stripTeamsParams(parsedUrl);
60
60
  notifySubscribers(sClientId, sMessageName, { success: true });
61
61
  window.location.replace(sanitizedUrl);
62
- window.location.reload();
63
62
  } else {
64
63
  oLogger.info("Invalid URL in the message data.");
65
64
  }