@sapui5/sap.suite.ui.commons 1.141.0 → 1.142.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/suite/ui/commons/.library +1 -1
- package/src/sap/suite/ui/commons/AriaProperties.js +1 -1
- package/src/sap/suite/ui/commons/CalculationBuilder.js +18 -12
- package/src/sap/suite/ui/commons/CalculationBuilderExpression.js +11 -7
- package/src/sap/suite/ui/commons/CalculationBuilderFunction.js +1 -1
- package/src/sap/suite/ui/commons/CalculationBuilderGroup.js +1 -1
- package/src/sap/suite/ui/commons/CalculationBuilderInput.js +5 -5
- package/src/sap/suite/ui/commons/CalculationBuilderItem.js +26 -7
- package/src/sap/suite/ui/commons/CalculationBuilderValidationResult.js +1 -1
- package/src/sap/suite/ui/commons/CalculationBuilderVariable.js +1 -1
- package/src/sap/suite/ui/commons/CloudFilePicker.js +21 -21
- package/src/sap/suite/ui/commons/MicroProcessFlow.js +2 -2
- package/src/sap/suite/ui/commons/MicroProcessFlowItem.js +7 -9
- package/src/sap/suite/ui/commons/Timeline.js +22 -24
- package/src/sap/suite/ui/commons/TimelineItemRenderer.js +12 -2
- package/src/sap/suite/ui/commons/collaboration/ServiceContainer.js +18 -2
- package/src/sap/suite/ui/commons/collaboration/TeamsHelperService.js +152 -3
- package/src/sap/suite/ui/commons/collaboration/UniversalCollaborationBar.js +366 -0
- package/src/sap/suite/ui/commons/collaboration/flpplugins/msplugin/Component-preload.js +5 -2
- package/src/sap/suite/ui/commons/flexibility/changeHandler/PropertyChangeMapper.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/CropCustomShapeHistoryItem.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/CropEllipseHistoryItem.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/CropRectangleHistoryItem.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/CustomSizeItem.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/FilterHistoryItem.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/FlipHistoryItem.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/HistoryItem.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/ImageEditor.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/ImageEditorContainer.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/ImageEditorResponsiveContainer.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/ResizeHistoryItem.js +1 -1
- package/src/sap/suite/ui/commons/imageeditor/RotateHistoryItem.js +1 -1
- package/src/sap/suite/ui/commons/library.js +1 -1
- package/src/sap/suite/ui/commons/messagebundle.properties +16 -1
- package/src/sap/suite/ui/commons/messagebundle_en.properties +3 -0
- package/src/sap/suite/ui/commons/networkgraph/Graph.js +105 -5
- package/src/sap/suite/ui/commons/networkgraph/Node.js +33 -11
- package/src/sap/suite/ui/commons/networkgraph/util/DragDropManager.js +197 -0
- package/src/sap/suite/ui/commons/statusindicator/Circle.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/CustomShape.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/DiscreteThreshold.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/FillingOption.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/LibraryShape.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/Path.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/PropertyThreshold.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/Rectangle.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/Shape.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/ShapeGroup.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/SimpleShape.js +1 -1
- package/src/sap/suite/ui/commons/statusindicator/StatusIndicator.js +1 -1
- package/src/sap/suite/ui/commons/taccount/TAccount.js +1 -1
- package/src/sap/suite/ui/commons/taccount/TAccountGroup.js +1 -1
- package/src/sap/suite/ui/commons/taccount/TAccountItem.js +1 -1
- package/src/sap/suite/ui/commons/taccount/TAccountItemProperty.js +1 -1
- package/src/sap/suite/ui/commons/taccount/TAccountPanel.js +1 -1
- package/src/sap/suite/ui/commons/themes/base/CalculationBuilderItem.less +11 -3
- package/src/sap/suite/ui/commons/themes/base/CollaborationPopover.less +29 -1
- package/src/sap/suite/ui/commons/themes/base/NetworkGraph.less +5 -0
- package/src/sap/suite/ui/commons/windowmessages/CollaborationMessageBroker.js +3 -3
- package/src/sap/suite/ui/commons/windowmessages/CollaborationMessageConsumer.js +5 -4
|
@@ -21,10 +21,13 @@ 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,
|
|
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
|
-
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,i,r,o,n,s,l,p,d,c,h,u,f,C,m,A,T,S,g,b,v){var _=r.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))}});var y="db5b69c6-0430-4ae1-8d6e-a65c2220b50c";var O=e.getLogger("sap.suite.ui.commons.collaboration.TeamsHelperService");var L="https://saps4hana.azure-api.net/bot/redirect?target-url=";var E=c.getResourceBundleFor("sap.suite.ui.commons");var M="info";var I;let B;const R=60*1e3;var x={};var U="width=720,height=720";_.prototype.getOptions=function(e){x={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(x.isShareAsLinkEnabled){if(this._providerConfig.isShareAsLinkEnabled==="X"){t.push({text:E.getText("COLLABORATION_MSTEAMS_CHAT"),key:"COLLABORATION_MSTEAMS_CHAT",icon:"sap-icon://post",fesrStepName:"MST:ShareAsLink"})}else{O.info("Share as Chat option is not enabled in the tenant")}}else{O.info("Consumer disable Share as Chat option")}}else{O.info("Share as Chat option is not supported in Phone and Tablet")}if(s.system.desktop){if(x.isShareAsTabEnabled){if(this._providerConfig.isShareAsTabEnabled==="X"){t.push({text:E.getText("COLLABORATION_MSTEAMS_TAB"),key:"COLLABORATION_MSTEAMS_TAB",icon:"sap-icon://image-viewer",fesrStepName:"MST:ShareAsTab"})}else{O.info("Share as Tab option is not enabled in the tenant")}}else{O.info("Consumer disable Share as Tab option")}}else{O.info("Share as Tab option is not supported in Phone and Tablet")}if(s.system.desktop){if(x.isShareAsCardEnabled){const e=this._providerConfig.isShareAsCardEnabled;const a=this._providerConfig.isShareAsTabEnabled==="X";const i={text:E.getText("COLLABORATION_MSTEAMS_CARD"),key:"COLLABORATION_MSTEAMS_CARD",icon:"sap-icon://ui-notifications",fesrStepName:"MST:ShareAsCard"};switch(e){case"DISABLED":O.info("Share as Card option is not enabled in the tenant");break;case"ENABLED":case"AUTHENABLE":t.push(i);break;case"":case undefined:if(a){t.push(i)}else{O.info("Share as Card option is not enabled in the tenant")}break;default:O.info("Share as Card option is not enabled in the tenant");break}}else{O.info("Consumer disable Share as Card option")}}else{O.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=E.getText("COLLABORATION_MSTEAMS_CHAT_SINGLE")}else if(a[0].key==="COLLABORATION_MSTEAMS_TAB"){a[0].text=E.getText("COLLABORATION_MSTEAMS_TAB_SINGLE")}else if(a[0].key==="COLLABORATION_MSTEAMS_CARD"){a[0].text=E.getText("COLLABORATION_MSTEAMS_CARD_SINGLE")}return a}if(t.length>1){a.push({type:"microsoft",text:E.getText("COLLABORATION_MSTEAMS_SHARE"),icon:"sap-icon://collaborate",subOptions:t})}return a};_.prototype.share=function(e,t){if(!t.url){O.error("url is not supplied in object so terminating Click");return}if(!a.validate(t.url)){O.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}};_.prototype._shareAsChat=function(e){var t=window.open("","_blank",U);var a=e.appTitle;if(e.subTitle.length>0){a+=": "+e.subTitle}t.opener=null;if(e.minifyUrlForChat){i.compactHash(e.url,[]).then(async function(i){var r=await this._modifyUrlForNavigationContext(e.url,i.url);t.location=this._providerConfig.shareAsLinkUrl+"?msgText="+encodeURIComponent(a)+"&preview=false"+"&href="+encodeURIComponent(r)}.bind(this))}else{t.location=this._providerConfig.shareAsLinkUrl+"?msgText="+encodeURIComponent(a)+"&preview=false"+"&href="+encodeURIComponent(e.url)}};_.prototype._modifyUrlForShareAsTab=async function(e,t){var a=e;var i=a.indexOf("#");if(i!==-1){var r=a.substring(0,i);var o=r.indexOf("?",0);var n="sap-ushell-config=lean&sap-collaboration-teams=true&sap-ui-fesr-env="+t;if(o!==-1){r=r.substring(0,o+1)+n+"&"+r.substring(o+1)}else{r+="?"+n}a=r+a.substring(i);a=await this._addNavmodeInUrl(a,"explace")}return a};_.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){i.compactHash(t,[]).then(async function(e){var i=await this._modifyUrlForNavigationContext(t,e.url);a.subEntityId.url=await this._addNavmodeInUrl(i,"explace");var r=this._providerConfig.shareAsTabUrl+"?&context="+encodeURIComponent(JSON.stringify(a));sap.m.URLHelper.redirect(r,true)}.bind(this))}else{var r=this._providerConfig.shareAsTabUrl+"?&context="+encodeURIComponent(JSON.stringify(a));sap.m.URLHelper.redirect(r,true)}};_.prototype._addNavmodeInUrl=function(e,t){const a=sap.ui.require("sap/ushell/Container");return a&&a.getServiceAsync("URLParsing").then(function(a){var i=e;var r=i.indexOf("#");var o=a.parseShellHash(i.substring(r));o.params["sap-ushell-navmode"]=t;o.params["sap-ushell-next-navmode"]=t;var n=a.constructShellHash(o);i=i.substring(0,r)+"#"+n;return Promise.resolve(i)})};_.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 i=e;var r=i.indexOf("#");var o=a.parseShellHash(i.substring(r));var n=Object.keys(o.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())})};_.prototype._shareAsCard=function(e){if(e.cardId&&e.cardId.length>0&&e.cardManifest&&this.isFeatureFlagEnabled()){e.cardManifest["rtl"]=g.getRTL();p.load({name:"sap.suite.ui.commons.collaboration.CollaborationBusyDialog",controller:this,type:"XML"}).then(function(t){I=t;I.open();B=setTimeout(function(){I.close();I.destroy()},R);l.postCard(e.cardId,e.cardManifest).then(function(t){var a=true;var i={cardId:t.card_id,version:t.version};if(t.error){if(t.error.code==="APS_UI_MSG/001"){a=true;i.cardId=e.cardId;if(t.error.message.length>0){try{var r=JSON.parse(atob(t.error.message)).version;i.version=r}catch(e){a=false}}}else{a=false}}if(a){this._updateUrl(e,i)}else{d.error(E.getText("SAVE_CARD_ERROR"));this._closeBusyDailog()}}.bind(this))}.bind(this))}else{this._updateUrl(e,{})}};_.prototype._updateUrl=async function(e,t){if(e.minifyUrlForChat){i.compactHash(e.url,[]).then(async function(a){var r=await this._modifyUrlForNavigationContext(e.url,a.url);if(x.isShareAsTabEnabled&&this._providerConfig.isShareAsTabEnabled){var o=await this._modifyUrlForShareAsTab(e.url,"MST:C");var n=await i.compactHash(o,[]);var s=n.url.split("sap-url-hash=")[1];if(s){r+=`,${s}`}else{o=await this._modifyUrlForShareAsTab(r,"MST:C");r=await this._addNavmodeInUrl(o,"inplace")}this._closeBusyDialogAndOpenTeamsDialog(r,e,t)}else{this._closeBusyDialogAndOpenTeamsDialog(r,e,t)}}.bind(this))}else{var a=e.url;if(x.isShareAsTabEnabled&&this._providerConfig.isShareAsTabEnabled){var r=await this._modifyUrlForShareAsTab(a,"MST:C");a=await this._addNavmodeInUrl(r,"inplace")}this._closeBusyDialogAndOpenTeamsDialog(a,e,t)}};_.prototype._closeBusyDailog=function(){if(I){I.close();I.destroy();clearTimeout(B)}};_.prototype._closeBusyDialogAndOpenTeamsDialog=function(e,t,a){this._closeBusyDailog();var i=window.open("","_blank",U);i.opener=null;i.location=this._addCardParamsInUrl(e,t.appTitle,a)};_.prototype._addCardParamsInUrl=function(e,t,a){var i=[a.cardId||"",a.version||"",encodeURIComponent(t)].filter(Boolean);e+=`&${M}=${i.join(",")}`;return`${this._providerConfig.shareAsLinkUrl}?href=${encodeURIComponent(L+e)}`};_.prototype._getShareAsTabUrl=function(){return this._getApplicationID().then(function(e){return"https://teams.microsoft.com/l/entity/"+e+"/tab"})};_.prototype._getApplicationID=function(){const e=sap.ui.require("sap/ushell/Container");return e&&e.getServiceAsync("URLParsing").then(function(e){return i._getCurrentUrl().then(function(t){var a=t.split("#")[0];if(a.indexOf("?")!==-1){var i=e&&e.parseParameters(a.substring(a.indexOf("?")));if(i&&i["sap-collaboration-xx-TeamsAppId"]&&i["sap-collaboration-xx-TeamsAppId"][0]&&i["sap-collaboration-xx-TeamsAppId"][0].length>0){return Promise.resolve(i["sap-collaboration-xx-TeamsAppId"][0])}return Promise.resolve(y)}else{return Promise.resolve(y)}})})};_.prototype.isFeatureFlagEnabled=function(){const e=this._providerConfig.isShareAsCardEnabled;return e==="AUTHENABLE"};_.prototype.isContactsCollaborationSupported=function(){return true};_.prototype.enableContactsCollaboration=async function(e,t){const a=await i.isTeamsModeActive();const r=await A.fetchServiceStatus();if(e&&r.value&&r.value&&r.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)}};_.prototype.getTeamsContactCollabOptions=async function(){const e=await i.isTeamsModeActive();if(e||this._providerConfig.isDirectCommunicationEnabled!=="ENABLED"){return Promise.reject()}if(!this.oContactHelper){this.oContactHelper=new n}return this.oContactHelper.getTeamsContactOptions()};_.prototype.getTeamsContactStatus=async function(e){const t=await i.isTeamsModeActive();if(t){return Promise.reject()}if(!this.oContactHelper){this.oContactHelper=new n}return this.oContactHelper.getTeamsContactStatus(e)};_.prototype.getCollaborationPopover=function(e,t,a,i,r){if(t.data===undefined||t.data.trim()===""){O.error("Popover cannnot be opened without data");return}var o={isShareAsLinkEnabled:e&&typeof e.isShareAsLinkEnabled!=="undefined"?e.isShareAsLinkEnabled:true};var r={shareToTeams:r&&typeof r.shareToTeams!=="undefined"?r.shareToTeams:true,shareToEmail:r&&typeof r.shareToEmail!=="undefined"?r.shareToEmail:true,shareToCM:r&&typeof r.shareToCM!=="undefined"?r.shareToCM:false};var n=[];if(s.system.desktop){if(o.isShareAsLinkEnabled){if(this._providerConfig.isShareAsLinkEnabled==="X"&&r.shareToTeams){n.push({text:E.getText("COLLABORATION_POPOVER_TEAMS"),icon:"sap-icon://discussion",key:"COLLABORATION_POPOVER_TEAMS"})}else{O.info("Share as Chat option is not enabled in the tenant")}}else{O.info("Consumer disable Share as Chat option")}}else{O.info("Share as Chat option is not supported in Phone and Tablet")}if(r.shareToEmail){n.push({text:E.getText("COLLABORATION_POPOVER_MAIL"),icon:"sap-icon://email",key:"COLLABORATION_POPOVER_MAIL"})}this.oCollaborationManager=new b;var l=this.oCollaborationManager.getOptions();if(l&&r.shareToCM){n.push({text:l.text,icon:l.icon,key:"COLLABORATION_POPOVER_CM"})}if(n.length===1&&!i&&n[0].key==="COLLABORATION_POPOVER_MAIL"){this._shareData(t,n[0],i);return}var p=this._getPopover(t,n,i);p.openBy(a)};_.prototype._getPopover=function(e,t,a){var i=new h({showHeader:false,placement:e.placement?e.placement:"Auto",verticalScrolling:false,horizontalScrolling:false,content:this._getPopoverContent(e,t,a)});return i};_.prototype._getPopoverContent=function(e,t,a){var i=new S({items:[],direction:T.FlexDirection.Column});var r=new S({direction:e.sFormat==="Vertical"?T.FlexDirection.Column:T.FlexDirection.Row,justifyContent:T.FlexJustifyContent.SpaceAround,items:[]});t.forEach(o=>{var n=new m({text:o.text,icon:o.icon,width:e.sFormat==="Horizontal"&&t.length===3?"120px":"180px",press:t=>{t.getSource().getParent().getParent().getParent().close();this._shareData(e,o,a)}}).addStyleClass("sapUiTinyMarginTop").addStyleClass("sapUiTinyMarginBegin");if(o.key==="COLLABORATION_POPOVER_TEAMS"){n.addStyleClass("sapSuiteUiCollaborationBarMSTeamsButton"+(e.sFormat?e.sFormat:"Horizontal"))}else if(o.key==="COLLABORATION_POPOVER_CM"){n.addStyleClass("sapSuiteUiCollaborationBarCMButton"+(e.sFormat?e.sFormat:"Horizontal"))}else{n.addStyleClass("sapSuiteUiCollaborationBarEmailButton"+(e.sFormat?e.sFormat:"Horizontal"))}r.addItem(n);i.addItem(r)});if(a){var o=new S({justifyContent:e.sFormat==="Vertical"?T.FlexJustifyContent.Center:T.FlexJustifyContent.SpaceBetween,alignItems:T.FlexAlignItems.Center,items:[new m({text:E.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){o.insertItem(new C({text:E.getText("COLLABORATION_POPOVER_MSGSTRIP"),showIcon:true}).addStyleClass("sapUiTinyMarginBeginEnd").addStyleClass("sapSuiteCollaborationBarMsgStrip"),0);o.addStyleClass("sapSuiteUiCollaborationBarMsgStripHBox")}o.addStyleClass("sapUiTinyMarginBeginEnd").addStyleClass("sapUiTinyMarginTopBottom");i.addItem(o)}if(e.sFormat==="Vertical"){r.setHeight(t.length>1?t.length*50+50+"px":"80px");r.addStyleClass("sapUiSmallMarginBottom").addStyleClass("sapUiTinyMarginEnd")}else{r.setHeight("110px");r.addStyleClass("sapUiTinyMarginEnd")}return i};_.prototype._writeToClipBoard=async function(e){try{await navigator.clipboard.writeText(e)}catch(e){O.info(e)}};_.prototype._shareData=function(e,t,a){if(t.key==="COLLABORATION_POPOVER_TEAMS"){if(a){var i={url:e.data,appTitle:e.title?e.title:"",subTitle:"",minifyUrlForChat:true};this._shareAsChat(i)}else{var i={appTitle:e.title?e.title:"",message:e.data,showPreview:typeof e.showPreview!==undefined?e.showPreview:true};this._shareSummary(i)}}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)}};_.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)};return _});
|
|
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});
|
|
28
|
+
},
|
|
29
|
+
"sap/suite/ui/commons/collaboration/UniversalCollaborationBar.js":function(){
|
|
30
|
+
sap.ui.define(["sap/base/Log","sap/ui/Device","sap/ui/core/Lib","sap/m/Menu","sap/m/MenuItem","sap/ui/performance/trace/FESRHelper"],function(e,t,a,s,n,o){const i="COLLABORATION_POPOVER_MAIL";const r="COLLABORATION_MSTEAMS_SHARE";const l="COLLABORATION_POPOVER_CHAT";const u="COLLABORATION_POPOVER_TAB";const c="COLLABORATION_POPOVER_MANAGER";const p="COLLABORATION_POPOVER_COPYURL_BUTTON";var h=s.extend("sap.suite.ui.commons.collaboration.UniversalCollaborationBar",{metadata:{properties:{shareToEmailEnabled:{type:"boolean",defaultValue:true},shareAsChatEnabled:{type:"boolean",defaultValue:false},shareAsTabEnabled:{type:"boolean",defaultValue:false},shareToCollaborationManagerEnabled:{type:"boolean",defaultValue:false},copyLinkEnabled:{type:"boolean",defaultValue:true}},events:{shareToChatSelected:{},shareToTabSelected:{},copyLinkSelected:{},shareToEmailSelected:{},shareToCollaborationManagerSelected:{}}},init:function(){sap.m.Menu.prototype.init.apply(this,arguments);this._mActionHandlers={[i]:(...e)=>{if(this.hasListeners("shareToEmailSelected")){this.fireShareToEmailSelected({args:e})}else{this._shareToEmail(...e)}},[l]:()=>this.fireShareToChatSelected(),[u]:()=>this.fireShareToTabSelected(),[c]:()=>this.fireShareToCollaborationManagerSelected(),[p]:(...e)=>{if(this.hasListeners("copyLinkSelected")){this.fireCopyLinkSelected({args:e})}else{this._toCopyUrl(...e)}}};this._oLogger=e.getLogger("sap.suite.ui.commons.collaboration.UniversalCollaborationBar");this._oResourceBundle=a.getResourceBundleFor("sap.suite.ui.commons");this.addStyleClass("sapSuiteCollaborationBarMenu")},openBy:function(){if(!this.getItems().length){this._renderMenuItems()}return sap.m.Menu.prototype.openBy.apply(this,arguments)},_renderMenuItems:async function(){const e=await this._getCollaborationPopoverOptions();const t=this._getMenuItems(e);t.forEach(e=>this.addItem(e))},_getTeamsHelperService:async function(){if(!this._oTeamsHelperService){const e=sap.ui.require("sap/suite/ui/commons/collaboration/ServiceContainer");this._oTeamsHelperService=await e.getServiceAsync()}return this._oTeamsHelperService},_getMenuItems:function(e){const t=[];e.forEach(e=>{const a=this._createMenuItem(e.icon,e.text,e.key,e.fesrStepName,e.styleClass);(e.subOptions||[]).forEach(e=>{const t=this._createMenuItem(e.icon,e.text,e.key,e.fesrStepName,e.styleClass);a.addItem(t)});t.push(a)});return t},_createMenuItem:function(e,t,a,s,i){const r={icon:e,text:t,key:a};const l=new n(r);l.attachPress(()=>{const e=this._mActionHandlers[a];if(e){e()}});if(s){o.setSemanticStepname(l,"press",s)}l.addEventDelegate({onAfterRendering:()=>{const e=l.getDomRef();if(e&&i){e.classList.add(i)}}});return l},_createOption:function(e,t,a,{fesrStepName:s="",subOptions:n=[]}={}){const o={text:this._oResourceBundle.getText(e),icon:t,key:e,styleClass:a};if(s){o.fesrStepName=s}if(n.length>0){o.subOptions=n}return o},_getCollaborationPopoverOptions:async function(){const e={isShareAsChatEnabled:this.getShareAsChatEnabled(),isShareAsTabEnabled:this.getShareAsTabEnabled(),isCopyLinkEnabled:this.getCopyLinkEnabled(),isShareToEmailEnabled:this.getShareToEmailEnabled(),isShareToCMEnabled:this.getShareToCollaborationManagerEnabled()};let t={};try{const e=await this._getTeamsHelperService();t=e._providerConfig}catch(e){this._oLogger.error("Error fetching TeamsHelperService:",e)}const a=[];let s=[];const n=[{key:i,icon:"sap-icon://email",styleClass:"sapSuiteUiCommonsCollaborationMail",consumerEnabled:e.isShareToEmailEnabled,providerEnabled:true,fesrStep:"",featureName:"Email",group:"menu"},{key:l,icon:"sap-icon://discussion",styleClass:"sapSuiteUiCommonsCollaborationChat",consumerEnabled:e.isShareAsChatEnabled,providerEnabled:t.isShareAsLinkEnabled==="X",fesrStep:"MST:ShareAsLink",featureName:"Share as Chat",desktopOnly:true,group:"subMenu"},{key:u,icon:"sap-icon://image-viewer",styleClass:"sapSuiteUiCommonsCollaborationTab",consumerEnabled:e.isShareAsTabEnabled,providerEnabled:t.isShareAsTabEnabled==="X",fesrStep:"MST:ShareAsTab",featureName:"Share as Tab",desktopOnly:true,group:"subMenu"},{key:r,icon:"sap-icon://citizen-connect",styleClass:"sapSuiteUiCommonsCollaborationMSTeamsShare",consumerEnabled:true,providerEnabled:true,isParentOfGroup:"subMenu",group:"menu"},{key:c,icon:"sap-icon://collaborate",styleClass:"sapSuiteUiCommonsCollaborationManager",consumerEnabled:e.isShareToCMEnabled,providerEnabled:true,fesrStep:"",featureName:"Collaboration Manager",group:"menu"},{key:p,icon:"sap-icon://chain-link",styleClass:"sapSuiteUiCommonsCollaborationLink",consumerEnabled:e.isCopyLinkEnabled,providerEnabled:true,fesrStep:"",featureName:"Copy link",desktopOnly:true,group:"menu"}];n.forEach(e=>{if(e.group==="subMenu"){const t=this._createOptionIfEnabled(e);if(t){s.push(t)}return}if(e.isParentOfGroup==="subMenu"){if(s.length>0){e.subOptions=s;s=[]}}const t=this._createOptionIfEnabled(e);if(t){a.push(t)}});return a},_createOptionIfEnabled:function(e){if(e.desktopOnly&&!t.system.desktop){this._oLogger.info(`${e.featureName} option is not supported in Phone and Tablet`);return null}if(!e.consumerEnabled){this._oLogger.info(`Consumer disabled ${e.featureName} option`);return null}if(!e.providerEnabled){this._oLogger.info(`${e.featureName} option is not enabled in the tenant`);return null}return this._createOption(e.key,e.icon,e.styleClass,{fesrStepName:e.fesrStep,subOptions:e.subOptions})},_shareToEmail:async function(){const e=await this._getTeamsHelperService();e._shareToEmail()},_toCopyUrl:async function(){const e=await this._getTeamsHelperService();e._copyLink()}});return h});
|
|
28
31
|
},
|
|
29
32
|
"sap/suite/ui/commons/collaboration/channels/MessageChannel.js":function(){
|
|
30
33
|
sap.ui.define(["sap/ui/base/Object"],function(e){var n;var s=e.extend("sap.suite.ui.commons.collaboration.channels.MessageChannel",{postMessage:function(e,n){window.parent.postMessage({...e,_fromMessageChannel:true},n||"*")},subscribe:function(e){window.addEventListener("message",function(n){if(n?.data?._fromMessageChannel&&typeof e==="function"){e(n)}})}});return{getInstance:function(){if(!n){n=new s}return Promise.resolve(n)}}});
|
|
@@ -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.
|
|
198
|
+
version: "1.142.1",
|
|
199
199
|
extensions: {
|
|
200
200
|
flChangeHandlers: {
|
|
201
201
|
"sap.suite.ui.commons.Timeline": "sap/suite/ui/commons/flexibility/Timeline"
|
|
@@ -493,6 +493,8 @@ NETWORK_GRAPH_WRONGDATA=Network graph data is not consistent. Check the console
|
|
|
493
493
|
NETWORK_GRAPH_COLLAPSED=Collapsed
|
|
494
494
|
#XACT: Title for expanded icon.
|
|
495
495
|
NETWORK_GRAPH_EXPANDED=Expanded
|
|
496
|
+
#XACT: Title for collapsed icon.
|
|
497
|
+
NETWORK_GRAPH_PARTIAL=Partially Expanded
|
|
496
498
|
#XACT: No Data title
|
|
497
499
|
NETWORK_GRAPH_NO_DATA=No data found.
|
|
498
500
|
#XACT: Title for group details
|
|
@@ -543,7 +545,8 @@ MICRO_PROCESS_FLOW_ERROR=Error
|
|
|
543
545
|
MICRO_PROCESS_FLOW_INFORMATION=Information
|
|
544
546
|
#XACT: Text for ARIA text
|
|
545
547
|
MICRO_PROCESS_FLOW_ITEM=Item
|
|
546
|
-
|
|
548
|
+
#XBUT: Text for confirm button
|
|
549
|
+
MICRO_PROCESS_FLOW_ITEM_ACC_BUTTON=Button {0} of {1}. To move to an item press the Arrow keys.
|
|
547
550
|
|
|
548
551
|
#YINS: Placeholder text for search variable field
|
|
549
552
|
CALCULATION_BUILDER_SEARCH_VARIABLE=Search...
|
|
@@ -701,6 +704,10 @@ CALCULATION_BUILDER_LOGICAL_DISJUNCTION_TOOLTIP=Logical disjunction
|
|
|
701
704
|
CALCULATION_BUILDER_EXCLUSIVE_DISJUNCTION_TOOLTIP=Exclusive disjunction
|
|
702
705
|
#XCAP: Tooltip for negation operator
|
|
703
706
|
CALCULATION_BUILDER_NEGATION_TOOLTIP=Negation
|
|
707
|
+
#XCAP: CalculationBuilder Negative Action Tutor message
|
|
708
|
+
CALCULATION_BUILDER_NEGATIVE_ACTION=Negative Action.
|
|
709
|
+
#XCAP: CalculationBuilder Navigation Tutor message
|
|
710
|
+
CALCULATION_BUILDER_NAVIGATION=Use arrow keys to navigate
|
|
704
711
|
|
|
705
712
|
#XCAP: T Account title
|
|
706
713
|
TACCOUNT_TITLE=T Account
|
|
@@ -1005,10 +1012,18 @@ COLLABORATION_MSTEAMS_CHAT_SINGLE=Chat in Microsoft Teams
|
|
|
1005
1012
|
COLLABORATION_MSTEAMS_CARD_SINGLE=Card in Microsoft Teams
|
|
1006
1013
|
#XTXT: Text for Collaboration popover teams option
|
|
1007
1014
|
COLLABORATION_POPOVER_TEAMS = Microsoft Teams Chat
|
|
1015
|
+
#XTXT: Text for Universal collaboration bar Chat option
|
|
1016
|
+
COLLABORATION_POPOVER_CHAT=Chat
|
|
1017
|
+
#XTXT: Text for Universal collaboration bar Tab option
|
|
1018
|
+
COLLABORATION_POPOVER_TAB=Tab
|
|
1019
|
+
#XTXT: Text for Universal collaboration bar Collaboration Manager option
|
|
1020
|
+
COLLABORATION_POPOVER_MANAGER=Collaboration Manager
|
|
1008
1021
|
#XTXT: Text for Collaboration popover Mail option
|
|
1009
1022
|
COLLABORATION_POPOVER_MAIL = Email
|
|
1010
1023
|
#XTXT: Message strip text for copy link
|
|
1011
1024
|
COLLABORATION_POPOVER_MSGSTRIP = Click to copy the link for later use
|
|
1025
|
+
#XTXT: Message text for copy link successfully
|
|
1026
|
+
COLLABORATION_POPOVER_MSGSTRIP_SUCCESS = Link copied successfully
|
|
1012
1027
|
#XTXT: Text for Collaboration popover Copy URL Button
|
|
1013
1028
|
COLLABORATION_POPOVER_COPYURL_BUTTON = Copy Link
|
|
1014
1029
|
#XTXT: Text for Share to Collaboration Manager
|
|
@@ -520,9 +520,12 @@ COLLABORATION_MSTEAMS_TAB_SINGLE=Tab to Microsoft Teams
|
|
|
520
520
|
COLLABORATION_MSTEAMS_CHAT_SINGLE=Chat in Microsoft Teams
|
|
521
521
|
COLLABORATION_MSTEAMS_CARD_SINGLE=Card in Microsoft Teams
|
|
522
522
|
COLLABORATION_POPOVER_TEAMS=Microsoft Teams Chat
|
|
523
|
+
COLLABORATION_POPOVER_CHAT=Chat
|
|
524
|
+
COLLABORATION_POPOVER_TAB=Tab
|
|
523
525
|
COLLABORATION_POPOVER_MAIL=Email
|
|
524
526
|
COLLABORATION_POPOVER_MSGSTRIP=Click to copy the link for later use
|
|
525
527
|
COLLABORATION_POPOVER_COPYURL_BUTTON=Copy Link
|
|
528
|
+
COLLABORATION_POPOVER_MANAGER=Collaboration Manager
|
|
526
529
|
COLLABORATION_MANGER=Collaboration Manager
|
|
527
530
|
SAVE_CARD_ERROR=The card couldn't be shared. Please try again later.
|
|
528
531
|
|
|
@@ -42,7 +42,8 @@ sap.ui.define([
|
|
|
42
42
|
"sap/ui/core/RenderManager",
|
|
43
43
|
"sap/ui/core/Theming",
|
|
44
44
|
'sap/ui/core/InvisibleText',
|
|
45
|
-
"./GraphRenderer"
|
|
45
|
+
"./GraphRenderer",
|
|
46
|
+
"./util/DragDropManager"
|
|
46
47
|
], function (
|
|
47
48
|
library,
|
|
48
49
|
jQuery,
|
|
@@ -80,7 +81,8 @@ sap.ui.define([
|
|
|
80
81
|
RenderManager,
|
|
81
82
|
Theming,
|
|
82
83
|
InvisibleText,
|
|
83
|
-
GraphRenderer
|
|
84
|
+
GraphRenderer,
|
|
85
|
+
DragDropManager
|
|
84
86
|
) {
|
|
85
87
|
"use strict";
|
|
86
88
|
|
|
@@ -98,7 +100,8 @@ sap.ui.define([
|
|
|
98
100
|
var ZOOM_MILESTONES = [0.05, 0.1, 0.25, 0.33, 0.50, 0.67, 0.75, 0.80, 0.90, 1, 1.1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 5],
|
|
99
101
|
DEFAULT_ZOOM_MILESTONE = 1,
|
|
100
102
|
ZOOM_OUT_RATING = 0.4,
|
|
101
|
-
SUGGESTION_ITEMS_LIMIT = 100
|
|
103
|
+
SUGGESTION_ITEMS_LIMIT = 100,
|
|
104
|
+
MOVING_THRESHOLD = 20;
|
|
102
105
|
|
|
103
106
|
var SUGGESTIONS = {
|
|
104
107
|
Group: "group",
|
|
@@ -136,6 +139,7 @@ sap.ui.define([
|
|
|
136
139
|
var Graph = SvgBase.extend("sap.suite.ui.commons.networkgraph.Graph", {
|
|
137
140
|
metadata: {
|
|
138
141
|
library: "sap.suite.ui.commons",
|
|
142
|
+
dnd: { draggable: false, droppable: true },
|
|
139
143
|
properties: {
|
|
140
144
|
/**
|
|
141
145
|
* The height of the graph. If this property is set to 'auto', the network graph will be resized to fit the height of its content, regardless of the height of the parent control.
|
|
@@ -210,10 +214,19 @@ sap.ui.define([
|
|
|
210
214
|
* Only works when enableWheelZoom is set to true or 'ctrl' key is pressed while wheel scrolling.
|
|
211
215
|
* Add delay in milliseconds.
|
|
212
216
|
*
|
|
213
|
-
* @private
|
|
217
|
+
* @private
|
|
214
218
|
*/
|
|
215
219
|
_smoothWheelZoom: {
|
|
216
220
|
type: "int", group: "Behavior", defaultValue: 125, visibility: "hidden"
|
|
221
|
+
},
|
|
222
|
+
/**
|
|
223
|
+
* Enables the drag and drop of nodes. This property is ignored if the layout property is not set to noop.
|
|
224
|
+
* If set to <code>true</code>, nodes can be dragged and dropped within the graph.
|
|
225
|
+
*
|
|
226
|
+
* @private
|
|
227
|
+
*/
|
|
228
|
+
enableDragAndDrop: {
|
|
229
|
+
type: "boolean", group: "Behavior", defaultValue: false, visibility: "hidden"
|
|
217
230
|
}
|
|
218
231
|
},
|
|
219
232
|
aggregations: {
|
|
@@ -327,7 +340,28 @@ sap.ui.define([
|
|
|
327
340
|
term: { type: "string" },
|
|
328
341
|
key: { type: "string" }
|
|
329
342
|
}
|
|
330
|
-
}
|
|
343
|
+
},
|
|
344
|
+
/**
|
|
345
|
+
* This event is fired when a user drops a node in the graph. This event is available only for the noop layout.
|
|
346
|
+
* @private
|
|
347
|
+
*/
|
|
348
|
+
nodeDropped: {
|
|
349
|
+
parameters: {
|
|
350
|
+
/**
|
|
351
|
+
* The node that was moved.
|
|
352
|
+
*/
|
|
353
|
+
node: { type: "sap.suite.ui.commons.networkgraph.Node" },
|
|
354
|
+
/**
|
|
355
|
+
* The new x coordinate of the node.
|
|
356
|
+
*/
|
|
357
|
+
newX: { type: "float" },
|
|
358
|
+
/**
|
|
359
|
+
* The new y coordinate of the node.
|
|
360
|
+
*/
|
|
361
|
+
newY: { type: "float" }
|
|
362
|
+
},
|
|
363
|
+
visibility: "hidden"
|
|
364
|
+
},
|
|
331
365
|
}
|
|
332
366
|
}
|
|
333
367
|
});
|
|
@@ -408,6 +442,17 @@ sap.ui.define([
|
|
|
408
442
|
|
|
409
443
|
this._createToolbar();
|
|
410
444
|
|
|
445
|
+
/**
|
|
446
|
+
* Attach drag and drop events
|
|
447
|
+
*/
|
|
448
|
+
if (this.getDragDropConfig().length === 0) {
|
|
449
|
+
try {
|
|
450
|
+
DragDropManager.injectDnD(this);
|
|
451
|
+
} catch (error) {
|
|
452
|
+
Log.error("Graph DnD: ", error);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
|
|
411
456
|
};
|
|
412
457
|
|
|
413
458
|
Graph.prototype.onBeforeRendering = function () {
|
|
@@ -553,6 +598,7 @@ sap.ui.define([
|
|
|
553
598
|
if (this._oFullScreenUtil) {
|
|
554
599
|
this._oFullScreenUtil.cleanUpFullScreen(this);
|
|
555
600
|
}
|
|
601
|
+
DragDropManager.removeDnD(this);
|
|
556
602
|
};
|
|
557
603
|
/* =========================================================== */
|
|
558
604
|
/* Pseudo events and event triggers */
|
|
@@ -864,6 +910,20 @@ sap.ui.define([
|
|
|
864
910
|
this.$().find("." + this.FOCUS_CLASS).removeClass(this.FOCUS_CLASS);
|
|
865
911
|
};
|
|
866
912
|
|
|
913
|
+
/**
|
|
914
|
+
* @private
|
|
915
|
+
*/
|
|
916
|
+
Graph.prototype.setEnableDragAndDrop = function (bEnabled) {
|
|
917
|
+
this.setProperty("enableDragAndDrop", bEnabled, true);
|
|
918
|
+
};
|
|
919
|
+
|
|
920
|
+
/**
|
|
921
|
+
* @private
|
|
922
|
+
*/
|
|
923
|
+
Graph.prototype.getEnableDragAndDrop = function () {
|
|
924
|
+
return this.getProperty("enableDragAndDrop");
|
|
925
|
+
};
|
|
926
|
+
|
|
867
927
|
/**
|
|
868
928
|
* Sets focus of the graph. Since one element at max can be focused at one time, handling of this belongs to the graph itself.
|
|
869
929
|
* @param {object} oFocus Element (and optionally button) to focus
|
|
@@ -1029,6 +1089,14 @@ sap.ui.define([
|
|
|
1029
1089
|
return this.getNodes().concat(this.getGroups());
|
|
1030
1090
|
};
|
|
1031
1091
|
|
|
1092
|
+
Graph.prototype._isNoopLayout = function () {
|
|
1093
|
+
return this._getLayoutAlgorithm().isA("sap.suite.ui.commons.networkgraph.layout.NoopLayout");
|
|
1094
|
+
};
|
|
1095
|
+
|
|
1096
|
+
Graph.prototype._isDnDEnabled = function() {
|
|
1097
|
+
return this._isNoopLayout() && this.getEnableDragAndDrop();
|
|
1098
|
+
};
|
|
1099
|
+
|
|
1032
1100
|
Graph.prototype._render = function () {
|
|
1033
1101
|
this._beforeRender();
|
|
1034
1102
|
|
|
@@ -1092,6 +1160,10 @@ sap.ui.define([
|
|
|
1092
1160
|
|
|
1093
1161
|
if (!this._isSwimLane() && !this._isTwoColumnsLayout()) {
|
|
1094
1162
|
this.$("innerscroller").addClass(" sapSuiteUiCommonsNetworkGraphInnerScrollerCenter ");
|
|
1163
|
+
if (this._isDnDEnabled()) {
|
|
1164
|
+
// If NoopLayout is used, users must set certain styles to ensure precise coordinates setting.
|
|
1165
|
+
this.$("innerscroller").addClass("sapSuiteUiCommonsNetworkGraphInnerScrollerNoMargin");
|
|
1166
|
+
}
|
|
1095
1167
|
}
|
|
1096
1168
|
};
|
|
1097
1169
|
|
|
@@ -2161,6 +2233,34 @@ sap.ui.define([
|
|
|
2161
2233
|
$wrapper.on("touchmove", function (oEvent) {
|
|
2162
2234
|
fnTouchMove(oEvent);
|
|
2163
2235
|
});
|
|
2236
|
+
|
|
2237
|
+
this.getDomRef("wrapper").addEventListener("keydown",(oEvent) => {
|
|
2238
|
+
var oScroller = this.$scroller[0];
|
|
2239
|
+
setTimeout(() => {
|
|
2240
|
+
// Check whether the focus is not on childElements
|
|
2241
|
+
if (!document.querySelector(".sapSuiteUiCommonsNetworkElementFocus")) {
|
|
2242
|
+
var iX = 0;
|
|
2243
|
+
var iY = 0;
|
|
2244
|
+
|
|
2245
|
+
// Handle horizontal movement
|
|
2246
|
+
if (oEvent.key === "ArrowLeft") {
|
|
2247
|
+
iX = -MOVING_THRESHOLD;
|
|
2248
|
+
} else if (oEvent.key === "ArrowRight") {
|
|
2249
|
+
iX = MOVING_THRESHOLD;
|
|
2250
|
+
}
|
|
2251
|
+
|
|
2252
|
+
// Handle vertical movement
|
|
2253
|
+
if (oEvent.key === "ArrowUp") {
|
|
2254
|
+
iY = -MOVING_THRESHOLD;
|
|
2255
|
+
} else if (oEvent.key === "ArrowDown") {
|
|
2256
|
+
iY = MOVING_THRESHOLD;
|
|
2257
|
+
}
|
|
2258
|
+
|
|
2259
|
+
oScroller.scrollTop = oScroller.scrollTop + iY;
|
|
2260
|
+
oScroller.scrollLeft = oScroller.scrollLeft + iX;
|
|
2261
|
+
}
|
|
2262
|
+
}, 0);
|
|
2263
|
+
});
|
|
2164
2264
|
this._bEventsAdded = true;
|
|
2165
2265
|
}
|
|
2166
2266
|
|
|
@@ -20,8 +20,10 @@ sap.ui.define([
|
|
|
20
20
|
"sap/ui/core/Core",
|
|
21
21
|
"sap/ui/core/Theming",
|
|
22
22
|
"sap/ui/core/Lib",
|
|
23
|
-
"./Utils"
|
|
24
|
-
|
|
23
|
+
"./Utils",
|
|
24
|
+
"sap/base/Log",
|
|
25
|
+
"./util/DragDropManager"
|
|
26
|
+
], function(jQuery, library, ElementBase, ElementAttribute, IconPool, Device, encodeXML, sanitizeHTML, CheckBox, Text, NodeRenderer, Core, Theming, CoreLib, Utils, Log, DragDropManager) {
|
|
25
27
|
"use strict";
|
|
26
28
|
|
|
27
29
|
var Shape = library.networkgraph.NodeShape,
|
|
@@ -116,6 +118,7 @@ sap.ui.define([
|
|
|
116
118
|
var Node = ElementBase.extend("sap.suite.ui.commons.networkgraph.Node", {
|
|
117
119
|
metadata: {
|
|
118
120
|
library: "sap.suite.ui.commons",
|
|
121
|
+
dnd : { draggable: true, droppable: false },
|
|
119
122
|
properties: {
|
|
120
123
|
/**
|
|
121
124
|
* Defines if the Header checkbox should be displayed and whether it should be selected or not. By default, the checkbox is hidden. Available only for box nodes.
|
|
@@ -338,6 +341,13 @@ sap.ui.define([
|
|
|
338
341
|
}
|
|
339
342
|
},
|
|
340
343
|
onAfterRendering: function() {
|
|
344
|
+
if (this.getDragDropConfig().length === 0) {
|
|
345
|
+
try {
|
|
346
|
+
DragDropManager.injectDnD(this);
|
|
347
|
+
} catch (error) {
|
|
348
|
+
Log.error("Node DnD: ", error);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
341
351
|
this._afterRenderingBase();
|
|
342
352
|
}
|
|
343
353
|
});
|
|
@@ -453,6 +463,10 @@ sap.ui.define([
|
|
|
453
463
|
}
|
|
454
464
|
};
|
|
455
465
|
|
|
466
|
+
Node.prototype.exit = function () {
|
|
467
|
+
DragDropManager.removeDnD(this);
|
|
468
|
+
};
|
|
469
|
+
|
|
456
470
|
Node.prototype._isInteractiveNode = function() {
|
|
457
471
|
var bIsShowExpandButton = this.getShowExpandButton() && this._hasVisibleChildren(),
|
|
458
472
|
bIsShowDetailButton = this.getShowDetailButton() && (this._hasDetailData() || this.getTitle()),
|
|
@@ -615,9 +629,7 @@ sap.ui.define([
|
|
|
615
629
|
"class": "sapSuiteUiCommonsNetworkNodeActionCollapseIcon",
|
|
616
630
|
icon: this._getExpandIcon(true),
|
|
617
631
|
enable: this._hasVisibleChildren(),
|
|
618
|
-
title: this.
|
|
619
|
-
oResourceBundle.getText("NETWORK_GRAPH_EXPANDED") :
|
|
620
|
-
oResourceBundle.getText("NETWORK_GRAPH_COLLAPSED"),
|
|
632
|
+
title: this._getExpandStateTitle(),
|
|
621
633
|
id: this._getDomId("actionCollapse"),
|
|
622
634
|
click: this._expandClick.bind(this)
|
|
623
635
|
}, $right);
|
|
@@ -723,6 +735,7 @@ sap.ui.define([
|
|
|
723
735
|
id: sId,
|
|
724
736
|
"data-sap-ui": sId,
|
|
725
737
|
"class": sNodeClass,
|
|
738
|
+
"draggable": !!(this.getParent()._isDnDEnabled())
|
|
726
739
|
};
|
|
727
740
|
|
|
728
741
|
if (sNodeClass.includes("sapSuiteUiCommonsNetworkBox") && this.getTooltip_AsString()) {
|
|
@@ -2041,6 +2054,19 @@ sap.ui.define([
|
|
|
2041
2054
|
}
|
|
2042
2055
|
};
|
|
2043
2056
|
|
|
2057
|
+
Node.prototype._getExpandStateTitle = function () {
|
|
2058
|
+
switch (this._oExpandState) {
|
|
2059
|
+
case ExpandState.PARTIAL:
|
|
2060
|
+
return oResourceBundle.getText("NETWORK_GRAPH_PARTIAL");
|
|
2061
|
+
case ExpandState.EXPANDED:
|
|
2062
|
+
return oResourceBundle.getText("NETWORK_GRAPH_EXPANDED");
|
|
2063
|
+
case ExpandState.COLLAPSED:
|
|
2064
|
+
return oResourceBundle.getText("NETWORK_GRAPH_COLLAPSED");
|
|
2065
|
+
default:
|
|
2066
|
+
return oResourceBundle.getText("NETWORK_GRAPH_EXPANDED");
|
|
2067
|
+
}
|
|
2068
|
+
};
|
|
2069
|
+
|
|
2044
2070
|
Node.prototype._createLineText = function(sText, iWidth, oText, iMaxLines) {
|
|
2045
2071
|
var aLines = [[]],
|
|
2046
2072
|
iLine = 0, sRest,
|
|
@@ -3158,9 +3184,7 @@ sap.ui.define([
|
|
|
3158
3184
|
icon: this._getExpandIcon(true),
|
|
3159
3185
|
"class": "sapSuiteUiCommonsNetworkNodeActionCollapseIcon",
|
|
3160
3186
|
enable: this._hasVisibleChildren(),
|
|
3161
|
-
title: this.
|
|
3162
|
-
oResourceBundle.getText("NETWORK_GRAPH_EXPANDED") :
|
|
3163
|
-
oResourceBundle.getText("NETWORK_GRAPH_COLLAPSED"),
|
|
3187
|
+
title: this._getExpandStateTitle(),
|
|
3164
3188
|
id: this._getDomId("actionCollapse"),
|
|
3165
3189
|
click: this._expandClick.bind(this)
|
|
3166
3190
|
});
|
|
@@ -3413,9 +3437,7 @@ sap.ui.define([
|
|
|
3413
3437
|
if ($icon[0]) {
|
|
3414
3438
|
$icon[0].textContent = this._getExpandIcon();
|
|
3415
3439
|
if ($iconParent && $iconParent.title) {
|
|
3416
|
-
$iconParent.title = this.
|
|
3417
|
-
oResourceBundle.getText("NETWORK_GRAPH_EXPANDED") :
|
|
3418
|
-
oResourceBundle.getText("NETWORK_GRAPH_COLLAPSED")
|
|
3440
|
+
$iconParent.title = this._getExpandStateTitle();
|
|
3419
3441
|
}
|
|
3420
3442
|
}
|
|
3421
3443
|
|