@sapui5/sap.suite.ui.commons 1.142.0 → 1.143.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 (71) 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 +16 -3
  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/CloudFilePicker.js +1 -1
  12. package/src/sap/suite/ui/commons/MicroProcessFlow.js +4 -1
  13. package/src/sap/suite/ui/commons/MicroProcessFlowItem.js +5 -5
  14. package/src/sap/suite/ui/commons/ProcessFlowRenderer.js +0 -1
  15. package/src/sap/suite/ui/commons/TimelineNavigator.js +1 -0
  16. package/src/sap/suite/ui/commons/collaboration/ServiceContainer.js +18 -2
  17. package/src/sap/suite/ui/commons/collaboration/UniversalCollaborationBar.js +2 -2
  18. package/src/sap/suite/ui/commons/collaboration/flpplugins/msplugin/Component-preload.js +1 -1
  19. package/src/sap/suite/ui/commons/flexibility/changeHandler/PropertyChangeMapper.js +1 -1
  20. package/src/sap/suite/ui/commons/imageeditor/CropCustomShapeHistoryItem.js +1 -1
  21. package/src/sap/suite/ui/commons/imageeditor/CropEllipseHistoryItem.js +1 -1
  22. package/src/sap/suite/ui/commons/imageeditor/CropRectangleHistoryItem.js +1 -1
  23. package/src/sap/suite/ui/commons/imageeditor/CustomSizeItem.js +1 -1
  24. package/src/sap/suite/ui/commons/imageeditor/FilterHistoryItem.js +1 -1
  25. package/src/sap/suite/ui/commons/imageeditor/FlipHistoryItem.js +1 -1
  26. package/src/sap/suite/ui/commons/imageeditor/HistoryItem.js +2 -1
  27. package/src/sap/suite/ui/commons/imageeditor/ImageEditor.js +1 -1
  28. package/src/sap/suite/ui/commons/imageeditor/ImageEditorContainer.js +1 -1
  29. package/src/sap/suite/ui/commons/imageeditor/ImageEditorResponsiveContainer.js +1 -1
  30. package/src/sap/suite/ui/commons/imageeditor/ResizeHistoryItem.js +1 -2
  31. package/src/sap/suite/ui/commons/imageeditor/RotateHistoryItem.js +1 -1
  32. package/src/sap/suite/ui/commons/library.js +1 -1
  33. package/src/sap/suite/ui/commons/networkgraph/ElementAttribute.js +3 -0
  34. package/src/sap/suite/ui/commons/networkgraph/ElementBase.js +3 -0
  35. package/src/sap/suite/ui/commons/networkgraph/Graph.js +3 -0
  36. package/src/sap/suite/ui/commons/networkgraph/GraphMap.js +3 -0
  37. package/src/sap/suite/ui/commons/networkgraph/Group.js +12 -2
  38. package/src/sap/suite/ui/commons/networkgraph/Line.js +3 -0
  39. package/src/sap/suite/ui/commons/networkgraph/Node.js +19 -7
  40. package/src/sap/suite/ui/commons/networkgraph/SvgBase.js +3 -0
  41. package/src/sap/suite/ui/commons/networkgraph/Tooltip.js +3 -0
  42. package/src/sap/suite/ui/commons/networkgraph/layout/LayoutAlgorithm.js +19 -7
  43. package/src/sap/suite/ui/commons/networkgraph/layout/SwimLaneChainLayout.js +1 -1
  44. package/src/sap/suite/ui/commons/networkgraph/util/Dijkstra.js +1 -0
  45. package/src/sap/suite/ui/commons/statusindicator/Circle.js +1 -1
  46. package/src/sap/suite/ui/commons/statusindicator/CustomShape.js +1 -1
  47. package/src/sap/suite/ui/commons/statusindicator/DiscreteThreshold.js +1 -1
  48. package/src/sap/suite/ui/commons/statusindicator/FillingOption.js +1 -1
  49. package/src/sap/suite/ui/commons/statusindicator/LibraryShape.js +1 -1
  50. package/src/sap/suite/ui/commons/statusindicator/Path.js +1 -1
  51. package/src/sap/suite/ui/commons/statusindicator/PropertyThreshold.js +1 -1
  52. package/src/sap/suite/ui/commons/statusindicator/Rectangle.js +1 -1
  53. package/src/sap/suite/ui/commons/statusindicator/Shape.js +1 -1
  54. package/src/sap/suite/ui/commons/statusindicator/ShapeGroup.js +1 -1
  55. package/src/sap/suite/ui/commons/statusindicator/SimpleShape.js +1 -1
  56. package/src/sap/suite/ui/commons/statusindicator/StatusIndicator.js +1 -1
  57. package/src/sap/suite/ui/commons/taccount/TAccount.js +1 -1
  58. package/src/sap/suite/ui/commons/taccount/TAccountGroup.js +1 -1
  59. package/src/sap/suite/ui/commons/taccount/TAccountItem.js +1 -1
  60. package/src/sap/suite/ui/commons/taccount/TAccountItemProperty.js +1 -1
  61. package/src/sap/suite/ui/commons/taccount/TAccountPanel.js +1 -1
  62. package/src/sap/suite/ui/commons/themes/base/CalculationBuilderItem.less +11 -3
  63. package/src/sap/suite/ui/commons/themes/base/MicroProcessFlow.less +10 -7
  64. package/src/sap/suite/ui/commons/themes/base/NetworkGroup.less +15 -1
  65. package/src/sap/suite/ui/commons/themes/base/NetworkNode.less +42 -46
  66. package/src/sap/suite/ui/commons/themes/sap_fiori_3/MicroProcessFlow.less +7 -0
  67. package/src/sap/suite/ui/commons/themes/sap_fiori_3/library.source.less +1 -0
  68. package/src/sap/suite/ui/commons/themes/sap_fiori_3_dark/MicroProcessFlow.less +7 -0
  69. package/src/sap/suite/ui/commons/themes/sap_fiori_3_dark/library.source.less +1 -0
  70. package/src/sap/suite/ui/commons/windowmessages/CollaborationMessageBroker.js +3 -3
  71. package/src/sap/suite/ui/commons/windowmessages/CollaborationMessageConsumer.js +5 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.suite.ui.commons",
3
- "version": "1.142.0",
3
+ "version": "1.143.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.142.0</version>
10
+ <version>1.143.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.142.0
22
+ * @version 1.143.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.142.0
137
+ * @version 1.143.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.142.0
151
+ * @version 1.143.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.142.0
29
+ * @version 1.143.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.142.0
25
+ * @version 1.143.0
26
26
  * @since 1.60.0
27
27
  *
28
28
  * @constructor
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @extends sap.ui.core.Control
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.142.0
43
+ * @version 1.143.0
44
44
  * @since 1.56.0
45
45
  *
46
46
  * @constructor
@@ -106,12 +106,19 @@ sap.ui.define([
106
106
  var fnRenderExpandButton = function (oRm) {
107
107
  oRm.openStart("div");
108
108
  oRm.class("sapCalculationBuilderItemExpandButtonWrapper");
109
- oRm.attr("title",oResourceBundle.getText("CALCULATION_BUILDER_EXPAND_BUTTON_TITLE"));
110
109
  oRm.openEnd();
111
110
  oRm.openStart("div");
112
111
  oRm.attr("id",this.getId() + "-expandbutton");
113
112
  oRm.class("sapCalculationBuilderItemExpandButton").class(sDisable);
114
113
  oRm.attr("tabindex", "-1");
114
+ if (!this._oExpandButtonText) {
115
+ this._oExpandButtonText = new InvisibleText();
116
+ this._oExpandButtonText.toStatic();
117
+ this._oExpandButtonText.setText(oResourceBundle.getText("CALCULATION_BUILDER_EXPAND_BUTTON_TITLE"));
118
+ }
119
+ oRm.attr("aria-labelledby", this._oExpandButtonText.getId());
120
+ oRm.attr("aria-describedby", this._oArrowNavigtionInvisibleText.getId());
121
+ oRm.attr("role", "button");
115
122
  oRm.openEnd();
116
123
 
117
124
  if (!this._bReadOnly) {
@@ -254,7 +261,13 @@ sap.ui.define([
254
261
  oRm.attr("tabindex", sTabIndexAttr);
255
262
  oRm.attr("title", sTooltipAttr);
256
263
  oRm.attr("role", "button");
257
- oRm.attr("aria-describedby", this._oArrowNavigtionInvisibleText.getId())
264
+ if (!this._oCalculationBuilderItemText) {
265
+ this._oCalculationBuilderItemText = new InvisibleText();
266
+ this._oCalculationBuilderItemText.toStatic();
267
+ this._oCalculationBuilderItemText.setText(this._getLabel());
268
+ }
269
+ oRm.attr("aria-labelledby", this._oCalculationBuilderItemText.getId());
270
+ oRm.attr("aria-describedby", this._oArrowNavigtionInvisibleText.getId());
258
271
  oRm.openEnd();
259
272
  this._innerRender(oRm);
260
273
  oRm.close("div");
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @extends sap.ui.base.ManagedObject
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.142.0
24
+ * @version 1.143.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.142.0
26
+ * @version 1.143.0
27
27
  * @since 1.56.0
28
28
  *
29
29
  * @constructor
@@ -120,7 +120,7 @@ sap.ui.define([
120
120
  * @class
121
121
  * @public
122
122
  * @internal
123
- * @version 1.142.0
123
+ * @version 1.143.0
124
124
  */
125
125
  var CloudFilePicker = Dialog.extend("sap.suite.ui.commons.CloudFilePicker", {
126
126
  metadata: {
@@ -38,6 +38,9 @@ sap.ui.define([
38
38
  /**
39
39
  * Constructor for a new MicroProcessFlow.
40
40
  *
41
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
42
+ * @param {object} [mSettings] Initial settings for the new control
43
+ *
41
44
  * @class
42
45
  * The MicroProcessFlow control can be used to track the progress of a process.<br>
43
46
  * It is best used for linear processes, such as document, order, and approval flows,
@@ -47,7 +50,7 @@ sap.ui.define([
47
50
  * @extends sap.ui.core.Control
48
51
  *
49
52
  * @author SAP SE
50
- * @version 1.142.0
53
+ * @version 1.143.0
51
54
  *
52
55
  * @constructor
53
56
  * @public
@@ -18,11 +18,11 @@ sap.ui.define([
18
18
 
19
19
  var oResourceBundle = CoreLib.getResourceBundleFor("sap.suite.ui.commons"),
20
20
  DefaultIcons = {
21
- "Error": "sap-icon://message-error",
21
+ "Error": "sap-icon://status-error",
22
22
  "None": null,
23
- "Success": "sap-icon://message-success",
24
- "Warning": "sap-icon://message-warning",
25
- "Information": "sap-icon://message-information"
23
+ "Success": "sap-icon://sys-enter-2",
24
+ "Warning": "sap-icon://alert",
25
+ "Information": "sap-icon://information"
26
26
  },
27
27
  ValueState = CoreLibrary.ValueState;
28
28
 
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @extends sap.ui.core.Control
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.142.0
41
+ * @version 1.143.0
42
42
  *
43
43
  * @constructor
44
44
  * @public
@@ -455,7 +455,6 @@ sap.ui.define([
455
455
 
456
456
  oRm.openStart("div"); //Scroll content.
457
457
  oRm.attr("id", oControl.getId() + "-scroll-content");
458
- oRm.attr("tabindex", 0);
459
458
  oRm.openEnd();
460
459
 
461
460
  //Nothing to render if there are no lanes.
@@ -21,6 +21,7 @@ sap.ui.define([
21
21
 
22
22
  /**
23
23
  * Creates an instance of TimelineNavigator.
24
+ *
24
25
  * @class TimelineNavigator An extension of ItemNavigator for Timeline.
25
26
  *
26
27
  * @extends sap.ui.core.delegate.ItemNavigation
@@ -61,8 +61,24 @@ sap.ui.define([
61
61
  return oServicePromise;
62
62
  }
63
63
  if (UshellContainer && UshellContainer.inAppRuntime()) {
64
- oProviderConfiguration = await CollaborationMessageConsumer.getProviderConfiguration();
65
- }
64
+ try {
65
+ let isProviderConfigurationSet = false;
66
+ try {
67
+ if (window.location.host === top.window.location.host) {
68
+ oProviderConfiguration = {};
69
+ isProviderConfigurationSet = true;
70
+ }
71
+ } catch (error) {
72
+ oLogger.info("Cannot access parent window");
73
+ }
74
+ if (!isProviderConfigurationSet) {
75
+ oProviderConfiguration = await CollaborationMessageConsumer.getProviderConfiguration();
76
+ }
77
+ } catch (error) {
78
+ oLogger.error("Error while getting the provider configuration from the parent window", error);
79
+ oProviderConfiguration = {};
80
+ }
81
+ }
66
82
  return fnGetCollaborationType();
67
83
  };
68
84
 
@@ -229,7 +229,7 @@ sap.ui.define([
229
229
  styleClass: "sapSuiteUiCommonsCollaborationMail",
230
230
  consumerEnabled: oAppCollaborationParams.isShareToEmailEnabled,
231
231
  providerEnabled: true,
232
- fesrStep: "",
232
+ fesrStep: "UCB:SendEmail",
233
233
  featureName: "Email",
234
234
  group: "menu"
235
235
  },
@@ -239,7 +239,7 @@ sap.ui.define([
239
239
  styleClass: "sapSuiteUiCommonsCollaborationChat",
240
240
  consumerEnabled: oAppCollaborationParams.isShareAsChatEnabled,
241
241
  providerEnabled: oProviderConfig.isShareAsLinkEnabled === "X",
242
- fesrStep: "MST:ShareAsLink",
242
+ fesrStep: "UCB:CopyLink",
243
243
  featureName: "Share as Chat",
244
244
  desktopOnly: true,
245
245
  group: "subMenu"
@@ -21,7 +21,7 @@ sap.ui.require.preload({
21
21
  sap.ui.define(["sap/ui/core/mvc/Controller","sap/ui/core/Fragment","sap/ui/model/json/JSONModel","sap/m/library","sap/ui/core/Lib","sap/ui/core/Core","sap/ui/model/resource/ResourceModel","./CollaborationContactInfoHelper","sap/ui/performance/trace/FESRHelper","sap/ui/core/Element"],function(e,t,a,o,s,i,n,r,c,l){var u=s.getResourceBundleFor("sap.suite.ui.commons");return e.extend("sap.suite.ui.commons.collaboration.ContactHelper",{constructor:function(){},getFullProfileByEmail:async function(e){var t=await r.fetchContact(e);if(t&&t.mail===""){return t}if(t&&t.data!=""){t.photo="data:image/png;base64,"+t.data}t=this.determineContactStatus(t);return t},getTeamsContactOptions:function(){var e=this;return Promise.resolve([{key:"chat",icon:"sap-icon://discussion",tooltip:u.getText("CHAT_BUTTON_TOOLTIP"),fesrStepName:"MST:ContactAction",callBackHandler:function(t){e.handleMSTeamsPress(t)}},{key:"call",icon:"sap-icon://call",tooltip:u.getText("CALL_BUTTON_TOOLTIP"),fesrStepName:"MST:ContactAction",callBackHandler:function(t){e.handleMSTeamsPress(t)}},{key:"videoCall",icon:"sap-icon://video",tooltip:u.getText("VIDEOCALL_BUTTON_TOOLTIP"),fesrStepName:"MST:ContactAction",callBackHandler:function(t){e.handleMSTeamsPress(t)}}])},getTeamsContactStatus:async function(e){let t={calendar:[]};if(e){const a=await Promise.all([r.fetchContact(e),r.fetchContactCalendar(e)]);t=a[0];t.calendar=a[1]}const a=this.determineContactStatus(t);return[{key:"profileStatus",badgeIcon:a.badgeIcon,badgeValueState:a.badgeValueState,badgeTooltip:a.badgeTooltip,fesrStepName:"MST:ContactAction",calendar:a.calendar}]},handleMSTeamsPress:function(e){var t=e.getSource().data("email");var a=e.getSource().data("type");var s="";switch(a){case"chat":s="https://teams.microsoft.com/l/chat/0/0?users="+t;break;case"call":s="https://teams.microsoft.com/l/call/0/0?users="+t;break;case"videoCall":s="https://teams.microsoft.com/l/call/0/0?users="+t+"&withVideo=true";break;default:break}o.URLHelper.redirect(s,true)},formatUri:function(e,t){var a=/^\w+[\w-+\.]*\@\w+([-\.]\w+)*\.[a-zA-Z]{2,}$/;if(a.test(e)){return"mailto:"+e+(t&&t.subject?"?subject="+t.subject:"")+(t&&t.body?"&body="+t.body:"")}else{return"tel:"+e}},loadContactPopover:function(e,o,s){this.afterClose();return t.load({name:"sap.suite.ui.commons.collaboration.ContactPopover",controller:this,type:"XML"}).then(function(t){c.setSemanticStepname(t,"afterClose","MST:ContactDetails");this._oContactPopover=t;this.sEmail=e;this.oParams=o;t.setBusy(true);var i={setFamily:"tnt",setURI:sap.ui.require.toUrl("sap/tnt/themes/base/illustrations")};sap.m.IllustrationPool.registerIllustrationSet(i,false);var n=new a({isUserExistsInTeams:true});this._oContactPopover.setModel(n,"userData");this.isDirectCommunicationEnabled=s;this._oContactPopover.setModel(new sap.ui.model.resource.ResourceModel({bundle:u}),"i18n");return t}.bind(this))},loadMinimalContactPopover:function(e,o){this.afterClose();var s=new a({mail:e,params:o});return t.load({name:"sap.suite.ui.commons.collaboration.MinimalContactPopover",controller:this,type:"XML"}).then(function(e){this._oMinContactPopover=e;c.setSemanticStepname(e,"afterClose","MST:ContactDetails");e.setModel(s,"userData");e.setModel(new sap.ui.model.resource.ResourceModel({bundle:u}),"i18n");return e}.bind(this))},afterClose:function(){if(this._oContactPopover){this._oContactPopover.destroy()}if(this._oMinContactPopover){this._oMinContactPopover.destroy()}},afterOpen:function(){var e=this;this.getFullProfileByEmail(this.sEmail).then(function(t){e._oContactPopover.setBusy(false);if(t&&t.mail===""){t.isUserExistsInTeams=false;t.mail=e.sEmail;t.params=e.oParams;e._oContactPopover.setInitialFocus(l.getElementById("mail"))}else{t.isUserExistsInTeams=true;t.isDirectCommunicationEnabled=!!e.isDirectCommunicationEnabled;e._oContactPopover.setInitialFocus(l.getElementById("avatar"))}var o=new a(t);o.setData(t);e._oContactPopover.setModel(o,"userData");c.setSemanticStepname(e._oContactPopover,"afterClose","MST:ContactDetails")})},afterContinue:function(){var e=this.formatUri(this.sEmail,this.oParams);o.URLHelper.redirect(e,true)},determineContactStatus:function(e){const t=new Map([["OOO",{badgeValueState:"Information",badgeIcon:"sap-icon://offsite-work"}],["BUSYOOO",{badgeValueState:"Error",badgeIcon:"sap-icon://circle-task"}],["ONLINEOOO",{badgeValueState:"Success",badgeIcon:"sap-icon://sys-enter"}],["AVAILABLE",{badgeValueState:"Success",badgeIcon:"sap-icon://sys-enter-2"}],["AWAY",{badgeValueState:"Warning",badgeIcon:"sap-icon://pending"}],["BUSY",{badgeValueState:"Error",badgeIcon:"sap-icon://circle-task-2"}],["PRESENTING",{badgeValueState:"Error",badgeIcon:"sap-icon://sys-minus"}],["OFFLINE",{badgeValueState:"Error",badgeIcon:"sap-icon://message-error"}]]);const a=new Map([["Available","AVAILABLE"],["Away","AWAY"],["Inactive","AWAY"],["Busy","BUSY"],["DoNotDisturb","PRESENTING"],["InACall","BUSY"],["InAMeeting","BUSY"],["Presenting","PRESENTING"],["BeRightBack","AWAY"],["OffWork","OFFLINE"],["Offline","OFFLINE"]]);let o={};if(!!e.isoutofoffice){if(e.activity==="Available"){o=t.get("ONLINEOOO");o.badgeTooltip=`${u.getText("AVAILABLE")}, ${u.getText("OOO")}`}else if(e.activity==="Busy"){o=t.get("BUSYOOO");o.badgeTooltip=`${u.getText("BUSY")}, ${u.getText("OOO")}`}else if(e.activity==="DoNotDisturb"){o=t.get("PRESENTING");o.badgeTooltip=`${u.getText("DONOTDISTURB")}, ${u.getText("OOO")}`}else{o=t.get("OOO");o.badgeTooltip=u.getText("OOO")}}else{const s=e.activity?a.get(e.activity):"OFFLINE";o=t.get(s);o.badgeTooltip=u.getText(e.activity.toUpperCase())}Object.assign(e,o);return e}})});
22
22
  },
23
23
  "sap/suite/ui/commons/collaboration/ServiceContainer.js":function(){
24
- sap.ui.define(["sap/base/Log","./BaseHelperService","./TeamsHelperService","./CollaborationManagerService","../windowmessages/CollaborationMessageBroker","../windowmessages/CollaborationMessageConsumer","./CollaborationHelper","sap/ui/core/Element"],function(e,r,n,i,o,t,a,s){var l=e.getLogger("sap.suite.ui.commons.collaboration.ServiceContainer");var c;var u;function v(){var e;if(c&&Object.keys(c).length){var i=c.sProvider;var o=c.oProviderConfig;if(i==="COLLABORATION_MSTEAMS"){e=new n(o)}u=Promise.resolve(e);return u}e=new r({});l.info("Collaboration provider is not activated on the tenant");return Promise.resolve(e)}function f(){}var g=new f;g.getServiceAsync=async function(){const e=sap.ui.require("sap/ushell/Container");if(u){return u}if(e&&e.inAppRuntime()){c=await t.getProviderConfiguration()}return v()};g.getCollaborationServices=async function(){var e=await g.getServiceAsync();var r={oTeamsHelperService:e,oCMHelperService:new i};return Promise.resolve(r)};g.hidePluginsInMSTeams=async function(){try{const e=await a.isTeamsModeActive();if(e){let e=0;const r=1*1e3;const n={chatButton:true,"sap.das.webclientplugin.s4.shellitem":true};const i=setInterval(()=>{e++;if(e>10){clearInterval(i);return}Object.keys(n).forEach(e=>{const r=s.getElementById(e);if(r?.getVisible()===true){r.setVisible(false);n[e]=false}});const r=Object.values(n).every(e=>!e);if(r){clearInterval(i)}},r)}}catch(e){l.error("Error hiding the plugins in MS Teams",e)}};g.setCollaborationType=function(e,r){l.info("Collaboration properties are now configured");g.hidePluginsInMSTeams();c={sProvider:e,oProviderConfig:r};v();o.startInstance(c)};return g},true);
24
+ sap.ui.define(["sap/base/Log","./BaseHelperService","./TeamsHelperService","./CollaborationManagerService","../windowmessages/CollaborationMessageBroker","../windowmessages/CollaborationMessageConsumer","./CollaborationHelper","sap/ui/core/Element"],function(e,r,o,n,t,i,a,s){var c=e.getLogger("sap.suite.ui.commons.collaboration.ServiceContainer");var l;var u;function v(){var e;if(l&&Object.keys(l).length){var n=l.sProvider;var t=l.oProviderConfig;if(n==="COLLABORATION_MSTEAMS"){e=new o(t)}u=Promise.resolve(e);return u}e=new r({});c.info("Collaboration provider is not activated on the tenant");return Promise.resolve(e)}function f(){}var g=new f;g.getServiceAsync=async function(){const e=sap.ui.require("sap/ushell/Container");if(u){return u}if(e&&e.inAppRuntime()){try{let e=false;try{if(window.location.host===top.window.location.host){l={};e=true}}catch(e){c.info("Cannot access parent window")}if(!e){l=await i.getProviderConfiguration()}}catch(e){c.error("Error while getting the provider configuration from the parent window",e);l={}}}return v()};g.getCollaborationServices=async function(){var e=await g.getServiceAsync();var r={oTeamsHelperService:e,oCMHelperService:new n};return Promise.resolve(r)};g.hidePluginsInMSTeams=async function(){try{const e=await a.isTeamsModeActive();if(e){let e=0;const r=1*1e3;const o={chatButton:true,"sap.das.webclientplugin.s4.shellitem":true};const n=setInterval(()=>{e++;if(e>10){clearInterval(n);return}Object.keys(o).forEach(e=>{const r=s.getElementById(e);if(r?.getVisible()===true){r.setVisible(false);o[e]=false}});const r=Object.values(o).every(e=>!e);if(r){clearInterval(n)}},r)}}catch(e){c.error("Error hiding the plugins in MS Teams",e)}};g.setCollaborationType=function(e,r){c.info("Collaboration properties are now configured");g.hidePluginsInMSTeams();l={sProvider:e,oProviderConfig:r};v();t.startInstance(l)};return g},true);
25
25
  },
26
26
  "sap/suite/ui/commons/collaboration/TeamsHelperService.js":function(){
27
27
  sap.ui.define(["sap/base/Log","sap/ui/core/Core","sap/base/security/URLListValidator","./CollaborationHelper","./BaseHelperService","sap/ui/core/Element","./ContactHelper","sap/ui/Device","./CollaborationCardHelper","sap/ui/core/Fragment","sap/m/MessageBox","sap/ui/core/Lib","sap/m/Popover","sap/m/HBox","sap/m/VBox","sap/m/MessageStrip","sap/m/Button","./CollaborationContactInfoHelper","sap/m/library","sap/m/FlexBox","sap/base/i18n/Localization","./CollaborationManagerService","sap/m/FlexItemData"],function(e,t,a,r,o,i,n,s,l,p,c,d,h,u,f,C,m,g,T,y,A,S,_){var b=o.extend("sap.suite.ui.commons.collaboration.TeamsHelperService",{constructor:function(e){this._providerConfig=e;this._providerConfig.shareAsLinkUrl="https://teams.microsoft.com/share";this._getShareAsTabUrl().then(function(e){this._providerConfig.shareAsTabUrl=e}.bind(this))}});const O="db5b69c6-0430-4ae1-8d6e-a65c2220b50c";const v=e.getLogger("sap.suite.ui.commons.collaboration.TeamsHelperService");const L="https://saps4hana.azure-api.net/bot/redirect?target-url=";const U=d.getResourceBundleFor("sap.suite.ui.commons");const E="info";let w;let I;const M=60*1e3;let R={};const x="width=720,height=720";const B=["*.s4hana.ondemand.com","*.*.s4hana.ondemand.com","*.*.*.s4hana.ondemand.com","*.cloud.sap","*.*.cloud.sap","*.*.*.cloud.sap","*.sapcloud.cn","*.*.sapcloud.cn","*.*.*.sapcloud.cn","*.saps4hanacloud.cn","*.*.saps4hanacloud.cn","*.*.*.saps4hanacloud.cn","*.sap.com"];b.prototype.getOptions=function(e){R={isShareAsLinkEnabled:e&&typeof e.isShareAsLinkEnabled!=="undefined"?e.isShareAsLinkEnabled:true,isShareAsTabEnabled:e&&typeof e.isShareAsTabEnabled!=="undefined"?e.isShareAsTabEnabled:true,isShareAsCardEnabled:e&&typeof e.isShareAsCardEnabled!=="undefined"?e.isShareAsCardEnabled:false};var t=[];var a=[];if(s.system.desktop){if(R.isShareAsLinkEnabled){if(this._providerConfig.isShareAsLinkEnabled==="X"){t.push({text:U.getText("COLLABORATION_MSTEAMS_CHAT"),key:"COLLABORATION_MSTEAMS_CHAT",icon:"sap-icon://post",fesrStepName:"MST:ShareAsLink"})}else{v.info("Share as Chat option is not enabled in the tenant")}}else{v.info("Consumer disable Share as Chat option")}}else{v.info("Share as Chat option is not supported in Phone and Tablet")}if(s.system.desktop){if(R.isShareAsTabEnabled){if(this._providerConfig.isShareAsTabEnabled==="X"){t.push({text:U.getText("COLLABORATION_MSTEAMS_TAB"),key:"COLLABORATION_MSTEAMS_TAB",icon:"sap-icon://image-viewer",fesrStepName:"MST:ShareAsTab"})}else{v.info("Share as Tab option is not enabled in the tenant")}}else{v.info("Consumer disable Share as Tab option")}}else{v.info("Share as Tab option is not supported in Phone and Tablet")}if(s.system.desktop){if(R.isShareAsCardEnabled){const e=this._providerConfig.isShareAsCardEnabled;const a={text:U.getText("COLLABORATION_MSTEAMS_CARD"),key:"COLLABORATION_MSTEAMS_CARD",icon:"sap-icon://ui-notifications",fesrStepName:"MST:ShareAsCard"};switch(e){case"DISABLED":v.info("Share as Card option is not enabled in the tenant");break;case"ENABLED":case"AUTHENABLE":t.push(a);break;default:v.info("Share as Card option is not enabled in the tenant");break}}else{v.info("Consumer disable Share as Card option")}}else{v.info("Share as Card option is not supported in Phone and Tablet")}if(t.length===1){a=t;if(a[0].key==="COLLABORATION_MSTEAMS_CHAT"){a[0].text=U.getText("COLLABORATION_MSTEAMS_CHAT_SINGLE")}else if(a[0].key==="COLLABORATION_MSTEAMS_TAB"){a[0].text=U.getText("COLLABORATION_MSTEAMS_TAB_SINGLE")}else if(a[0].key==="COLLABORATION_MSTEAMS_CARD"){a[0].text=U.getText("COLLABORATION_MSTEAMS_CARD_SINGLE")}return a}if(t.length>1){a.push({type:"microsoft",text:U.getText("COLLABORATION_MSTEAMS_SHARE"),icon:"sap-icon://collaborate",subOptions:t})}return a};b.prototype.share=function(e,t){if(!t.url){v.error("url is not supplied in object so terminating Click");return}if(!a.validate(t.url)){v.error("Invalid URL supplied");return}if(e.key==="COLLABORATION_MSTEAMS_CHAT"){this._shareAsChat(t);return}if(e.key==="COLLABORATION_MSTEAMS_TAB"){this._shareAsTab(t);return}if(e.key==="COLLABORATION_MSTEAMS_CARD"){this._shareAsCard(t);return}};b.prototype._shareAsChat=function(e){var t=window.open("","_blank",x);var a=e.appTitle;if(e.subTitle.length>0){a+=": "+e.subTitle}t.opener=null;if(e.minifyUrlForChat){r.compactHash(e.url,[]).then(async function(r){var o=await this._modifyUrlForNavigationContext(e.url,r.url);t.location=this._providerConfig.shareAsLinkUrl+"?msgText="+encodeURIComponent(a)+"&preview=false"+"&href="+encodeURIComponent(o)}.bind(this))}else{t.location=this._providerConfig.shareAsLinkUrl+"?msgText="+encodeURIComponent(a)+"&preview=false"+"&href="+encodeURIComponent(e.url)}};b.prototype._modifyUrlForShareAsTab=async function(e,t){var a=e;var r=a.indexOf("#");if(r!==-1){var o=a.substring(0,r);var i=o.indexOf("?",0);var n="sap-ushell-config=lean&sap-collaboration-teams=true&sap-ui-fesr-env="+t;if(i!==-1){o=o.substring(0,i+1)+n+"&"+o.substring(i+1)}else{o+="?"+n}a=o+a.substring(r);a=await this._addNavmodeInUrl(a,"explace")}return a};b.prototype._shareAsTab=async function(e){var t=await this._modifyUrlForShareAsTab(e.url,"MST:T");var a={subEntityId:{url:t,appTitle:e.appTitle,subTitle:e.subTitle,mode:"tab"}};if(e.minifyUrlForChat){r.compactHash(t,[]).then(async function(e){var r=await this._modifyUrlForNavigationContext(t,e.url);a.subEntityId.url=await this._addNavmodeInUrl(r,"explace");var o=this._providerConfig.shareAsTabUrl+"?&context="+encodeURIComponent(JSON.stringify(a));sap.m.URLHelper.redirect(o,true)}.bind(this))}else{var o=this._providerConfig.shareAsTabUrl+"?&context="+encodeURIComponent(JSON.stringify(a));sap.m.URLHelper.redirect(o,true)}};b.prototype._addNavmodeInUrl=function(e,t){const a=sap.ui.require("sap/ushell/Container");return a&&a.getServiceAsync("URLParsing").then(function(a){var r=e;var o=r.indexOf("#");var i=a.parseShellHash(r.substring(o));i.params["sap-ushell-navmode"]=t;i.params["sap-ushell-next-navmode"]=t;var n=a.constructShellHash(i);r=r.substring(0,o)+"#"+n;return Promise.resolve(r)})};b.prototype._modifyUrlForNavigationContext=function(e,t){if(e===t){return Promise.resolve(t)}const a=sap.ui.require("sap/ushell/Container");return a&&a.getServiceAsync("URLParsing").then(function(a){var r=e;var o=r.indexOf("#");var i=a.parseShellHash(r.substring(o));var n=Object.keys(i.params).length;var s=new URL(t);if(n>0){if(!s.searchParams.has("sap-collaboration-teams")){s.searchParams.set("sap-collaboration-teams","true")}else{s.searchParams.delete("sap-collaboration-teams")}}return Promise.resolve(s.toString())})};b.prototype._shareAsCard=async function(e){if(!e?.cardId||!e.cardId.length||!e.cardManifest||!this.isFeatureFlagEnabled()){this._updateUrl(e,{});return}let t={};try{try{const e=await p.load({name:"sap.suite.ui.commons.collaboration.CollaborationBusyDialog",controller:this,type:"XML"});w=e;w.open();I=setTimeout(()=>{w.close();w.destroy()},M)}catch(e){v.error("Fragment load failed: "+e.message)}t=await this._buildCardInfo(e)}catch(e){v.error("buildCardInfo failed: "+e.message)}finally{if(t&&Object.keys(t).length===0){v.warn("Card info could not be saved.")}this._updateUrl(e,t)}};b.prototype._buildCardInfo=async function(e){e.cardManifest.rtl=A.getRTL();const t=await l.postCard(e.cardId,e.cardManifest);let a={cardId:t.card_id,version:t.version};if(t.error){if(t.error.code==="APS_UI_MSG/001"){a.cardId=e.cardId;if(t.error.message.length>0){try{const e=JSON.parse(atob(t.error.message)).version;a.version=e}catch(e){a={}}}}else{a={}}}return a};b.prototype._updateUrl=async function(e,t){let a=e?.url||window.location.href;try{if(e.minifyUrlForChat){a=await this._getModifiedUrlForSharing(e)}else if(R.isShareAsTabEnabled&&this._providerConfig.isShareAsTabEnabled){const e=await this._modifyUrlForShareAsTab(a,"MST:C");a=await this._addNavmodeInUrl(e,"inplace")}}catch(e){v.error("Error while modifying URL for sharing: "+e.message)}finally{this._closeBusyDialogAndOpenTeamsDialog(a,e,t)}};b.prototype._getModifiedUrlForSharing=async function(e){const t=await r.compactHash(e.url,[]);let a=await this._modifyUrlForNavigationContext(e.url,t.url);let o=await this._modifyUrlForShareAsTab(e.url,"MST:C");const i=await r.compactHash(o,[]);const n=i.url.split("sap-url-hash=")[1];if(n){a+=`,${n}`}else{o=await this._modifyUrlForShareAsTab(a,"MST:C");a=await this._addNavmodeInUrl(o,"inplace")}return a};b.prototype._closeBusyDialog=function(){if(w){w.close();w.destroy();clearTimeout(I)}};b.prototype._closeBusyDialogAndOpenTeamsDialog=function(e,t,a){this._closeBusyDialog();const r=window.open("","_blank",x);r.opener=null;r.location=this._generateShareAsCardUrl(e,t.appTitle,a)};b.prototype._wildcardToRegExp=function(e){return new RegExp("^"+e.split("*").map(function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("[^.]+")+"$","i")};b.prototype._isValidDomain=function(e){try{const t=new URL(e).hostname;return B.some(e=>this._wildcardToRegExp(e).test(t))}catch(e){return false}};b.prototype._getCardInfoUrl=function(e,t,a){const r=this._isValidDomain(e);const o=t?.appTitle;if(r){return this._generateCardUnfurlingUrl(e,a,{appTitle:o})}else{return this._generateShareAsCardUrl(e,o,a)}};b.prototype._generateShareAsCardUrl=function(e,t,a){const r=this._generateCardUnfurlingUrl(e,a,{appTitle:t});return`${this._providerConfig.shareAsLinkUrl}?href=${encodeURIComponent(L+encodeURIComponent(r))}`};b.prototype._generateCardUnfurlingUrl=function(e,t,a){const r=[t.cardId||"",t.version||"",encodeURIComponent(a.appTitle||"")].filter(Boolean);return`${e}&${E}=${r.join(",")}`};b.prototype._getShareAsTabUrl=function(){return this._getApplicationID().then(function(e){return"https://teams.microsoft.com/l/entity/"+e+"/tab"})};b.prototype._getApplicationID=function(){const e=sap.ui.require("sap/ushell/Container");return e&&e.getServiceAsync("URLParsing").then(function(e){return r._getCurrentUrl().then(function(t){var a=t.split("#")[0];if(a.indexOf("?")!==-1){var r=e&&e.parseParameters(a.substring(a.indexOf("?")));if(r&&r["sap-collaboration-xx-TeamsAppId"]&&r["sap-collaboration-xx-TeamsAppId"][0]&&r["sap-collaboration-xx-TeamsAppId"][0].length>0){return Promise.resolve(r["sap-collaboration-xx-TeamsAppId"][0])}return Promise.resolve(O)}else{return Promise.resolve(O)}})})};b.prototype.isFeatureFlagEnabled=function(){const e=this._providerConfig.isShareAsCardEnabled;return e==="AUTHENABLE"};b.prototype.isContactsCollaborationSupported=function(){return true};b.prototype.enableContactsCollaboration=async function(e,t){const a=await r.isTeamsModeActive();const o=await g.fetchServiceStatus();if(e&&o.value&&o.value&&o.value[0].FetchContacts==="Active"){if(!this.oContactHelper){this.oContactHelper=new n}if(this._providerConfig.isDirectCommunicationEnabled==="ENABLED"){return this.oContactHelper.loadContactPopover(e,t,true)}else{return this.oContactHelper.loadContactPopover(e,t)}}else if(a||!e||this._providerConfig.isDirectCommunicationEnabled!=="ENABLED"){return Promise.reject()}else{if(!this.oContactHelper){this.oContactHelper=new n}return this.oContactHelper.loadMinimalContactPopover(e,t)}};b.prototype.getTeamsContactCollabOptions=async function(){const e=await r.isTeamsModeActive();if(e||this._providerConfig.isDirectCommunicationEnabled!=="ENABLED"){return Promise.reject()}if(!this.oContactHelper){this.oContactHelper=new n}return this.oContactHelper.getTeamsContactOptions()};b.prototype.getTeamsContactStatus=async function(e){const t=await r.isTeamsModeActive();if(t){return Promise.reject()}if(!this.oContactHelper){this.oContactHelper=new n}return this.oContactHelper.getTeamsContactStatus(e)};b.prototype.getCollaborationPopover=function(e,t,a,r,o){if(t.data===undefined||t.data.trim()===""){v.error("Popover cannnot be opened without data");return}var i={isShareAsLinkEnabled:e&&typeof e.isShareAsLinkEnabled!=="undefined"?e.isShareAsLinkEnabled:true};var n={shareToTeams:o&&typeof o.shareToTeams!=="undefined"?o.shareToTeams:true,shareToEmail:o&&typeof o.shareToEmail!=="undefined"?o.shareToEmail:true,shareToCM:o&&typeof o.shareToCM!=="undefined"?o.shareToCM:false};var l=[];if(s.system.desktop){if(i.isShareAsLinkEnabled){if(this._providerConfig.isShareAsLinkEnabled==="X"&&n.shareToTeams){l.push({text:U.getText("COLLABORATION_POPOVER_TEAMS"),icon:"sap-icon://discussion",key:"COLLABORATION_POPOVER_TEAMS"})}else{v.info("Share as Chat option is not enabled in the tenant")}}else{v.info("Consumer disable Share as Chat option")}}else{v.info("Share as Chat option is not supported in Phone and Tablet")}if(n.shareToEmail){l.push({text:U.getText("COLLABORATION_POPOVER_MAIL"),icon:"sap-icon://email",key:"COLLABORATION_POPOVER_MAIL"})}this.oCollaborationManager=new S;var p=this.oCollaborationManager.getOptions();if(p&&n.shareToCM){l.push({text:p.text,icon:p.icon,key:"COLLABORATION_POPOVER_CM"})}if(l.length===1&&!r&&l[0].key==="COLLABORATION_POPOVER_MAIL"){this._shareData(t,l[0],r);return}var c=this._getPopover(t,l,r);c.openBy(a)};b.prototype._getPopover=function(e,t,a){var r=new h({showHeader:false,placement:e.placement?e.placement:"Auto",verticalScrolling:false,horizontalScrolling:false,content:this._getPopoverContent(e,t,a)});return r};b.prototype._getPopoverContent=function(e,t,a){var r=new y({items:[],direction:T.FlexDirection.Column});var o=new y({direction:e.sFormat==="Vertical"?T.FlexDirection.Column:T.FlexDirection.Row,justifyContent:T.FlexJustifyContent.SpaceAround,items:[]});t.forEach(i=>{var n=new m({text:i.text,icon:i.icon,width:e.sFormat==="Horizontal"&&t.length===3?"120px":"180px",press:t=>{t.getSource().getParent().getParent().getParent().close();this._shareData(e,i,a)}}).addStyleClass("sapUiTinyMarginTop").addStyleClass("sapUiTinyMarginBegin");if(i.key==="COLLABORATION_POPOVER_TEAMS"){n.addStyleClass("sapSuiteUiCollaborationBarMSTeamsButton"+(e.sFormat?e.sFormat:"Horizontal"))}else if(i.key==="COLLABORATION_POPOVER_CM"){n.addStyleClass("sapSuiteUiCollaborationBarCMButton"+(e.sFormat?e.sFormat:"Horizontal"))}else{n.addStyleClass("sapSuiteUiCollaborationBarEmailButton"+(e.sFormat?e.sFormat:"Horizontal"))}o.addItem(n);r.addItem(o)});if(a){var i=new y({justifyContent:e.sFormat==="Vertical"?T.FlexJustifyContent.Center:T.FlexJustifyContent.SpaceBetween,alignItems:T.FlexAlignItems.Center,items:[new m({text:U.getText("COLLABORATION_POPOVER_COPYURL_BUTTON"),width:e.sFormat==="Vertical"?"150px":"",press:async()=>{await this._writeToClipBoard(e.data)}}).addStyleClass("sapUiTinyMarginBeginEnd")]});if(e.sFormat==="Horizontal"||e.sFormat===undefined){i.insertItem(new C({text:U.getText("COLLABORATION_POPOVER_MSGSTRIP"),showIcon:true}).addStyleClass("sapUiTinyMarginBeginEnd").addStyleClass("sapSuiteCollaborationBarMsgStrip"),0);i.addStyleClass("sapSuiteUiCollaborationBarMsgStripHBox")}i.addStyleClass("sapUiTinyMarginBeginEnd").addStyleClass("sapUiTinyMarginTopBottom");r.addItem(i)}if(e.sFormat==="Vertical"){o.setHeight(t.length>1?t.length*50+50+"px":"80px");o.addStyleClass("sapUiSmallMarginBottom").addStyleClass("sapUiTinyMarginEnd")}else{o.setHeight("110px");o.addStyleClass("sapUiTinyMarginEnd")}return r};b.prototype._writeToClipBoard=async function(e){try{await window.navigator.clipboard.writeText(e)}catch(e){v.info(e)}};b.prototype._shareData=function(e,t,a){if(t.key==="COLLABORATION_POPOVER_TEAMS"){if(a){var r={url:e.data,appTitle:e.title?e.title:"",subTitle:"",minifyUrlForChat:true};this._shareAsChat(r)}else{var o={appTitle:e.title?e.title:"",message:e.data,showPreview:typeof e.showPreview!=="undefined"?e.showPreview:true};this._shareSummary(o)}}else if(t.key==="COLLABORATION_POPOVER_MAIL"){sap.m.URLHelper.triggerEmail(null,e.title&&e.title.trim()!==""?e.title:null,e.data)}else if(t.key==="COLLABORATION_POPOVER_CM"){this.oCollaborationManager.triggerH2HChat(e.title,e.data)}};b.prototype._shareSummary=function(e){var t={subEntityId:{appTitle:e.appTitle,mode:"summary",message:e.message,showPreview:e.showPreview}};var a=this._providerConfig.shareAsTabUrl+"?&context="+encodeURIComponent(JSON.stringify(t));sap.m.URLHelper.redirect(a,true)};b.prototype._shareToEmail=async function(e){let t=e?.url||window.location.href;try{t=await this._getUnfurlingUrl(e)}catch(e){v.error("getUnfurlingUrl failed: "+e.message)}const a=e?.appTitle?.trim()?e.appTitle:null;sap.m.URLHelper.triggerEmail(null,a,t)};b.prototype._shareAsChatFromCollabBar=async function(e){try{await this._shareAsCard(e)}catch(e){v.error("Failed to share card from collaboration bar: "+e.message)}};b.prototype._copyLink=async function(e){let t=e?.url||window.location.href;try{t=await this._getUnfurlingUrl(e)}catch(e){v.error("getUnfurlingUrl failed: "+e.message)}this._copyCardUrlToClipboard(t)};b.prototype._copyCardUrlToClipboard=async function(e){try{if(typeof window.navigator!=="undefined"&&window.navigator.clipboard&&typeof window.navigator.clipboard.writeText==="function"){try{await window.navigator.clipboard.writeText(e);v.info("Card URL copied to clipboard successfully.");sap.m.MessageToast.show(U.getText("COLLABORATION_POPOVER_MSGSTRIP_SUCCESS"))}catch(e){v.error("Clipboard write failed: "+e.message)}}else{v.error("Clipboard API is not available.")}}catch(e){v.error("Failed to generate or copy Card URL",e)}};b.prototype._getUnfurlingUrl=async function(e){if(!e?.cardId||!e.cardId.length||!e.cardManifest||!this.isFeatureFlagEnabled()){return this._generateUnfurlingUrl(e,{})}let t="";let a={};try{try{const e=await p.load({name:"sap.suite.ui.commons.collaboration.CollaborationBusyDialog",controller:this,type:"XML"});w=e;w.open();I=setTimeout(()=>{w.close();w.destroy()},M)}catch(e){v.error("Fragment load failed: "+e.message)}a=await this._buildCardInfo(e)}catch(e){v.error("buildCardInfo failed: "+e.message)}finally{if(a&&Object.keys(a).length===0){v.warn("Card info could not be saved.")}t=this._generateUnfurlingUrl(e,a);this._closeBusyDialog()}return t};b.prototype._generateUnfurlingUrl=async function(e,t){let a=e?.url||window.location.href;try{if(e?.minifyUrlForChat){a=await this._getModifiedUrlForSharing(e)}else if(R.isShareAsTabEnabled&&this._providerConfig.isShareAsTabEnabled){const e=await this._modifyUrlForShareAsTab(a,"MST:C");a=await this._addNavmodeInUrl(e,"inplace")}}catch(e){v.error("Error while modifying URL for sharing: "+e.message)}return this._getCardInfoUrl(a,e,t)};return b});
@@ -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.142.0
25
+ * @version 1.143.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.142.0
31
+ * @version 1.143.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.142.0
33
+ * @version 1.143.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.142.0
31
+ * @version 1.143.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.142.0
25
+ * @version 1.143.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.142.0
31
+ * @version 1.143.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.142.0
28
+ * @version 1.143.0
29
29
  * @since 1.66.0
30
30
  *
31
31
  * @constructor
@@ -11,13 +11,14 @@ sap.ui.define([
11
11
  "use strict";
12
12
 
13
13
  /**
14
+ * Constructor for a new HistoryItem.
14
15
  *
15
16
  * @class Abstract base class for all {@link sap.suite.ui.commons.imageeditor.ImageEditor} action history items.
16
17
  *
17
18
  * @extends sap.ui.base.Object
18
19
  *
19
20
  * @author SAP SE
20
- * @version 1.142.0
21
+ * @version 1.143.0
21
22
  * @since 1.66.0
22
23
  *
23
24
  * @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.142.0
53
+ * @version 1.143.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.142.0
165
+ * @version 1.143.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.142.0
37
+ * @version 1.143.0
38
38
  * @since 1.68.0
39
39
  *
40
40
  * @constructor
@@ -14,7 +14,6 @@ sap.ui.define([
14
14
  /**
15
15
  * Constructor for a new ResizeHistoryItem.
16
16
  *
17
- *
18
17
  * @param {object} mProperties Property bag
19
18
  * @param {int} mProperties.width Width of the image
20
19
  * @param {int} mProperties.height Height of the image
@@ -29,7 +28,7 @@ sap.ui.define([
29
28
  * @extends sap.suite.ui.commons.imageeditor.HistoryItem
30
29
  *
31
30
  * @author SAP SE
32
- * @version 1.142.0
31
+ * @version 1.143.0
33
32
  * @since 1.66.0
34
33
  *
35
34
  * @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.142.0
26
+ * @version 1.143.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.142.0",
198
+ version: "1.143.0",
199
199
  extensions: {
200
200
  flChangeHandlers: {
201
201
  "sap.suite.ui.commons.Timeline": "sap/suite/ui/commons/flexibility/Timeline"
@@ -17,6 +17,9 @@ sap.ui.define([
17
17
  /**
18
18
  * Constructor for a new ElementAttribute.
19
19
  *
20
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
21
+ * @param {object} [mSettings] Initial settings for the new control
22
+ *
20
23
  * @class
21
24
  * Holds details of an attribute used in the graph.
22
25
  *
@@ -36,6 +36,9 @@ sap.ui.define([
36
36
  /**
37
37
  * Constructor for a new ElementBase.
38
38
  *
39
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
40
+ * @param {object} [mSettings] Initial settings for the new control
41
+ *
39
42
  * @class
40
43
  * ElementBase class
41
44
  *
@@ -122,6 +122,9 @@ sap.ui.define([
122
122
  /**
123
123
  * Constructor for a new Graph.
124
124
  *
125
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
126
+ * @param {object} [mSettings] Initial settings for the new control
127
+ *
125
128
  * @class
126
129
  * The network graph control allows you to display data as a network of nodes connected by lines.
127
130
  * The nodes can be circular or rectangular and can be joined into groups. You can define custom attributes for
@@ -33,6 +33,9 @@ sap.ui.define([
33
33
  /**
34
34
  * Constructor for a new GraphMap.
35
35
  *
36
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
37
+ * @param {object} [mSettings] Initial settings for the new control
38
+ *
36
39
  * @class
37
40
  * A component which displays an overview of the entire graph and allows users to quickly navigate in the linked graph. Graph overview is most effective with nodes rendered in square aspect ratio but becomes less useful as the number of nodes increases in one dimension. Hence, it is not recommended for larger graphs.
38
41
  *
@@ -20,7 +20,8 @@ sap.ui.define([
20
20
 
21
21
  const ElementStatus = library.networkgraph.ElementStatus,
22
22
  HeaderCheckboxState = library.networkgraph.HeaderCheckboxState,
23
- SemanticColorType = library.SemanticColorType;
23
+ SemanticColorType = library.SemanticColorType,
24
+ Orientation = library.networkgraph.Orientation;
24
25
 
25
26
  var Size = {
26
27
  COLLAPSED_HEIGHT: 32,
@@ -40,6 +41,9 @@ sap.ui.define([
40
41
  /**
41
42
  * Constructor for a new Group. Grouping is not supported for custom layouting.
42
43
  *
44
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
45
+ * @param {object} [mSettings] Initial settings for the new control
46
+ *
43
47
  * @class
44
48
  * Holds details about a group.
45
49
  *
@@ -379,11 +383,17 @@ sap.ui.define([
379
383
  };
380
384
 
381
385
  Group.prototype._getGroupClass = function () {
382
- return "sapSuiteUiCommonsNetworkGroup " + this._getStatusClass() +
386
+ var sClass = "sapSuiteUiCommonsNetworkGroup " + this._getStatusClass() +
383
387
  (this.getCollapsed() ? "sapSuiteUiCommonsNetworkGroupCollapsed" : "sapSuiteUiCommonsNetworkGroupExpanded") +
384
388
  (this._bIsSwimLane ? " sapSuiteUiCommonsNetworkGroupSwimLane" : " sapSuiteUiCommonsNetworkGroupClassic") +
385
389
  (this._isVerticalSwimLane() ? " sapSuiteUiCommonsNetworkGroupVerticalSwimLane" : "") +
386
390
  (this._isTopBottom() ? " sapSuiteUiCommonsNetworkGroupTopBottom " : "");
391
+
392
+ // Add RightLeft orientation class if swimlane and parent is RightLeft
393
+ if (this._bIsSwimLane && this.getParent() && this.getParent().isA("sap.suite.ui.commons.networkgraph.Graph") && this.getParent().getOrientation() === Orientation.RightLeft) {
394
+ sClass += " sapSuiteUiCommonsNetworkGraphRightLeft";
395
+ }
396
+ return sClass;
387
397
  };
388
398
 
389
399
  /* =========================================================== */
@@ -50,6 +50,9 @@ sap.ui.define([
50
50
  /**
51
51
  * Constructor for a new Line.
52
52
  *
53
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
54
+ * @param {object} [mSettings] Initial settings for the new control
55
+ *
53
56
  * @class
54
57
  * Holds information about one connector line.
55
58
  *