@sapui5/sap.suite.ui.commons 1.136.3 → 1.136.5
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 +1 -1
- package/src/sap/suite/ui/commons/CalculationBuilderExpression.js +1 -1
- 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/CalculationBuilderItem.js +1 -1
- 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 +1 -1
- package/src/sap/suite/ui/commons/MicroProcessFlow.js +1 -1
- package/src/sap/suite/ui/commons/MicroProcessFlowItem.js +1 -1
- package/src/sap/suite/ui/commons/collaboration/CollaborationHelper.js +104 -7
- package/src/sap/suite/ui/commons/collaboration/flpplugins/msplugin/Component-preload.js +1 -1
- 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 +13 -1
- package/src/sap/suite/ui/commons/networkgraph/Node.js +36 -9
- 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 +57 -6
- package/src/sap/suite/ui/commons/taccount/TAccountGroup.js +1 -1
- package/src/sap/suite/ui/commons/taccount/TAccountItem.js +4 -3
- 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/TAccount.less +28 -5
- package/src/sap/suite/ui/commons/windowmessages/CollaborationMessageBroker.js +5 -2
package/package.json
CHANGED
|
@@ -13,6 +13,10 @@ sap.ui.define(
|
|
|
13
13
|
var PARAM_SAP_STAGEVIEW_HASH = "&sap-stageview-hash";
|
|
14
14
|
var PARAM_SAP_CARD_ID = "&sap-ui-cardId";
|
|
15
15
|
var PARAM_SAP_XX_CARD_ID = "&sap-ui-xx-cardId";
|
|
16
|
+
var PARAM_SAP_CARD_INFO = "&info=";
|
|
17
|
+
var PARAM_SAP_USHELL_CONFIG = "sap-ushell-config";
|
|
18
|
+
var PARAM_SAP_COLLABORATION_TEAMS = "sap-collaboration-teams";
|
|
19
|
+
var PARAM_SAP_UI_FESR_ENV = "sap-ui-fesr-env";
|
|
16
20
|
var TRANSIENT_KEY = "transient";
|
|
17
21
|
var oLogger = Log.getLogger("sap.suite.ui.commons.collaboration.CollaborationHelper");
|
|
18
22
|
|
|
@@ -140,19 +144,112 @@ sap.ui.define(
|
|
|
140
144
|
const sUrl = sCurrentUrl.split(PARAM_SAP_CARD_ID)[0];
|
|
141
145
|
window.location.replace(sUrl);
|
|
142
146
|
} else if (sCurrentUrl.indexOf(PARAM_SAP_CARD_TITLE) > -1) {
|
|
143
|
-
const UshellContainer = sap.ui.require("sap/ushell/Container");
|
|
144
147
|
const sUrl = sCurrentUrl.split(PARAM_SAP_CARD_TITLE)[0];
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
window.location.replace(sUrl);
|
|
150
|
-
}
|
|
148
|
+
await this._redirectBasedOnRuntime(sUrl);
|
|
149
|
+
} else if (sCurrentUrl.includes(PARAM_SAP_CARD_INFO) && this._isFromTeams(sCurrentUrl)) {
|
|
150
|
+
const sUrl = sCurrentUrl.split(PARAM_SAP_CARD_INFO)[0];
|
|
151
|
+
await this._redirectBasedOnRuntime(sUrl);
|
|
151
152
|
}
|
|
152
153
|
return Promise.resolve();
|
|
153
154
|
}.bind(this));
|
|
154
155
|
};
|
|
155
156
|
|
|
157
|
+
/**
|
|
158
|
+
* Checks whether the given URL indicates that it originated from a Microsoft Teams environment.
|
|
159
|
+
*
|
|
160
|
+
* This is determined by the presence of the query parameter `sap-collaboration-teams=true`.
|
|
161
|
+
*
|
|
162
|
+
* @param {string} sCurrentUrl - The full URL to inspect.
|
|
163
|
+
* @returns {boolean} True if the URL contains `sap-collaboration-teams=true`; otherwise, false.
|
|
164
|
+
*/
|
|
165
|
+
CollaborationHelper._isFromTeams = function (sCurrentUrl) {
|
|
166
|
+
const urlObj = new URL(sCurrentUrl);
|
|
167
|
+
const bIsFromTeams = urlObj.searchParams.get("sap-collaboration-teams");
|
|
168
|
+
return bIsFromTeams === "true";
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Handles URL redirection according to the runtime environment.
|
|
173
|
+
*
|
|
174
|
+
* - In AppRuntime (e.g., BTP Fiori App in S/Cube), updates the top-level URL.
|
|
175
|
+
* - Otherwise, performs a standard window location redirect.
|
|
176
|
+
*
|
|
177
|
+
* @param {string} sUrl - The target URL for redirection.
|
|
178
|
+
* @private
|
|
179
|
+
*/
|
|
180
|
+
CollaborationHelper._redirectBasedOnRuntime = async function (sUrl) {
|
|
181
|
+
const UshellContainer = sap.ui.require("sap/ushell/Container");
|
|
182
|
+
|
|
183
|
+
// Get indication is if we are in AppRuntime (for special use cases handling, e.g. BTP Fiori App in S/Cube)
|
|
184
|
+
if (UshellContainer && UshellContainer.inAppRuntime()) {
|
|
185
|
+
await CollaborationMessageConsumer.updateTopLevelURLforAppRuntime(sUrl);
|
|
186
|
+
} else {
|
|
187
|
+
const targetUrl = this._stripTeamsParams(sUrl);
|
|
188
|
+
window.location.replace(targetUrl);
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Removes 'sap-ushell-config' and 'sap-collaboration-teams' query parameters
|
|
194
|
+
* from the given URL while preserving the hash fragment.
|
|
195
|
+
*
|
|
196
|
+
* @param {string} sUrl - The original full URL
|
|
197
|
+
* @returns {string} - The cleaned URL
|
|
198
|
+
* @private
|
|
199
|
+
*/
|
|
200
|
+
CollaborationHelper._removeTeamsParams = function (sUrl) {
|
|
201
|
+
try {
|
|
202
|
+
const urlParts = sUrl.split("#");
|
|
203
|
+
const baseUrl = urlParts[0];
|
|
204
|
+
const hashPart = urlParts[1] ? "#" + urlParts[1] : "";
|
|
205
|
+
|
|
206
|
+
const [path, queryString] = baseUrl.split("?");
|
|
207
|
+
if (!queryString) {
|
|
208
|
+
return sUrl;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const params = new URLSearchParams(queryString);
|
|
212
|
+
params.delete(PARAM_SAP_USHELL_CONFIG);
|
|
213
|
+
params.delete(PARAM_SAP_COLLABORATION_TEAMS);
|
|
214
|
+
params.delete(PARAM_SAP_UI_FESR_ENV);
|
|
215
|
+
|
|
216
|
+
const newBaseUrl = params.toString()
|
|
217
|
+
? `${path}?${params.toString()}`
|
|
218
|
+
: path;
|
|
219
|
+
|
|
220
|
+
return newBaseUrl + hashPart;
|
|
221
|
+
} catch (e) {
|
|
222
|
+
return sUrl;
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* If the current window is the top window, we assume it's not running inside an iframe, e.g. Microsoft Teams.
|
|
228
|
+
* In this case, we remove the Teams parameters from the URL.
|
|
229
|
+
*
|
|
230
|
+
* @param {string} sUrl The URL to be cleaned of Teams parameters.
|
|
231
|
+
* @returns {string} - The cleaned URL
|
|
232
|
+
* @private
|
|
233
|
+
*/
|
|
234
|
+
CollaborationHelper._stripTeamsParams = function (sUrl) {
|
|
235
|
+
if (this._isTopWindow()) {
|
|
236
|
+
return this._removeTeamsParams(sUrl);
|
|
237
|
+
}
|
|
238
|
+
return sUrl;
|
|
239
|
+
};
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Determines whether the current window is the top-level window.
|
|
243
|
+
* This is typically used to detect if the application is running inside an iframe (e.g., in Microsoft Teams).
|
|
244
|
+
*
|
|
245
|
+
* @returns {boolean} - Returns true if the current window is not inside an iframe, false otherwise.
|
|
246
|
+
* @private
|
|
247
|
+
*/
|
|
248
|
+
CollaborationHelper._isTopWindow = function () {
|
|
249
|
+
return window.self === window.top;
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
|
|
156
253
|
/**
|
|
157
254
|
* Hides the avatar of the user if the app is running in the Microsoft Teams application.
|
|
158
255
|
* @private
|
|
@@ -12,7 +12,7 @@ sap.ui.require.preload({
|
|
|
12
12
|
sap.ui.define(["sap/ui/base/Object"],function(t){var n="/sap/opu/odata4/sap/aps_ui_contact_srv/srvd_a2x/sap/";var e=n+"aps_ui_contact/0001/";var a="APS_UI_C_CONTACT";var o=n+"aps_ui_contact/0001/"+a;var r=n+"aps_ui_contact/0001/"+a;var c="APS_UI_C_PRESENCE";var i=n+"aps_ui_contact/0001/"+c;var u="APS_UI_C_CALENDAR";var h=n+"aps_ui_contact/0001/"+u;var f=n+"aps_ui_contact/0001/"+"APS_UI_C_CHECK_SERVICE";var s="GET";var C="HEAD";var d=t.extend("sap.suite.ui.commons.collaboration.CollaborationContactInfoHelper");d.fetchCSRFToken=function(){return fetch(e,{method:C,headers:{"X-CSRF-Token":"Fetch"}}).then(function(t){var n=t.headers.get("X-CSRF-Token");if(t.ok&&n){return n}return undefined})};d.fetchContact=function(t){return this.fetchCSRFToken().then(function(n){return fetch(o+"/"+t,{method:s,headers:{"X-CSRF-Token":n,"content-type":"application/json;odata.metadata=minimal;charset=utf-8"}}).then(function(t){return t.json()})})};d.fetchContactCalendar=function(t){var n=new Date;var e=h+"?$filter=mail eq '"+t+"'";if(n){e=h+"?$filter=(mail eq '"+t+"'&start_datetime eq '"+n.toISOString()+"')"}return this.fetchCSRFToken().then(function(t){return fetch(e,{method:s,headers:{"X-CSRF-Token":t,"content-type":"application/json;odata.metadata=minimal;charset=utf-8"}}).then(function(t){return t.json()})})};d.fetchContactPicture=function(t){return this.fetchCSRFToken().then(function(n){return fetch(r+"/"+t+"/photo",{method:s,headers:{"X-CSRF-Token":n}}).then(function(t){return t.blob()})})};d.fetchContactStatus=function(t){return this.fetchCSRFToken().then(function(n){return fetch(i+"?$filter=id eq '"+t+"'",{method:s,headers:{"X-CSRF-Token":n,"content-type":"application/json;odata.metadata=minimal;charset=utf-8"}}).then(function(t){return t.json()})})};d.fetchServiceStatus=function(){return this.fetchCSRFToken().then(function(t){return fetch(f,{method:s,headers:{"X-CSRF-Token":t,"content-type":"application/json;odata.metadata=minimal;charset=utf-8"}}).then(function(t){return t.json()})})};return d});
|
|
13
13
|
},
|
|
14
14
|
"sap/suite/ui/commons/collaboration/CollaborationHelper.js":function(){
|
|
15
|
-
sap.ui.define(["sap/base/Log","sap/ui/base/Object","sap/ui/core/Element","../windowmessages/CollaborationMessageConsumer"],function(e,t,n,i){var r="sap-url-hash";var s="&sap-ui-cardTitle";var a="&sap-stageview-hash";var o="&sap-ui-cardId";var
|
|
15
|
+
sap.ui.define(["sap/base/Log","sap/ui/base/Object","sap/ui/core/Element","../windowmessages/CollaborationMessageConsumer"],function(e,t,n,i){var r="sap-url-hash";var s="&sap-ui-cardTitle";var a="&sap-stageview-hash";var o="&sap-ui-cardId";var c="&sap-ui-xx-cardId";var u="&info=";var l="sap-ushell-config";var f="sap-collaboration-teams";var p="sap-ui-fesr-env";var h="transient";var d=e.getLogger("sap.suite.ui.commons.collaboration.CollaborationHelper");var m=t.extend("sap.suite.ui.commons.collaboration.CollaborationHelper");m.compactHash=function(e){const t=sap.ui.require("sap/ushell/Container");if(!t){return{url:e}}return t&&t.getServiceAsync("AppState").then(async function(t){var n=t.createEmptyAppState(undefined,false);var i=this._getNextKey(n);if(!this._isEligibleForBackendPersistency(t)){d.warning("Transient flag is true. URL will not be shortened");return{url:e}}var s=this._extractURLBeforeHash(e);var a=await this._extractSemanticObjectAndAction(e);var o=false;try{o=await this._isMinificationFeasible(e)}catch(e){}if(!a||!o){return{url:e}}return this._storeUrl(e,n).then(function(){return{url:s+"#"+a+"&/"+r+"="+i}}).catch(function(t){d.warning("URL is not shortened due to an error."+t.toString());return{url:e}})}.bind(this))};m._getCurrentUrl=function(){const e=sap.ui.require("sap/ushell/Container");return e&&e?new Promise(function(t){e.getFLPUrlAsync(true).then(function(e){t(e)})}):Promise.resolve(document.URL)};m.processAndExpandHash=function(){this._hideAvatarFromShellbar();return this._getCurrentUrl().then(async function(e){if(e.indexOf(r)>-1){var t=e.split(r)[1].split("=")[1];if(e.indexOf(a)>0){t=t.split(a)[0]}else if(e.includes("info=")){t=t.includes(",")?t.split(",")[0]:t.split("&")[0]}else if(e.indexOf(o)>0||e.indexOf(c)>0){if(e.indexOf(o)>0){t=t.split(o)[0]}else{t=t.split(c)[0]}}else if(e.indexOf(s)>0){t=t.split(s)[0]}return this._retrieveURL(t).then(function(t){if(t.getData()){window.location.replace(t.getData())}else{const t=e.split(r)[0];window.location.replace(t)}return Promise.resolve()})}else if(e.indexOf(o)>-1){const t=e.split(o)[0];window.location.replace(t)}else if(e.indexOf(s)>-1){const t=e.split(s)[0];await this._redirectBasedOnRuntime(t)}else if(e.includes(u)&&this._isFromTeams(e)){const t=e.split(u)[0];await this._redirectBasedOnRuntime(t)}return Promise.resolve()}.bind(this))};m._isFromTeams=function(e){const t=new URL(e);const n=t.searchParams.get("sap-collaboration-teams");return n==="true"};m._redirectBasedOnRuntime=async function(e){const t=sap.ui.require("sap/ushell/Container");if(t&&t.inAppRuntime()){await i.updateTopLevelURLforAppRuntime(e)}else{const t=this._stripTeamsParams(e);window.location.replace(t)}};m._removeTeamsParams=function(e){try{const t=e.split("#");const n=t[0];const i=t[1]?"#"+t[1]:"";const[r,s]=n.split("?");if(!s){return e}const a=new URLSearchParams(s);a.delete(l);a.delete(f);a.delete(p);const o=a.toString()?`${r}?${a.toString()}`:r;return o+i}catch(t){return e}};m._stripTeamsParams=function(e){if(this._isTopWindow()){return this._removeTeamsParams(e)}return e};m._isTopWindow=function(){return window.self===window.top};m._hideAvatarFromShellbar=function(){this.isTeamsModeActive().then(function(e){if(e){var t=n.getElementById("userActionsMenuHeaderButton");if(t){t.setVisible(false)}}})};m.isTeamsModeActive=function(){var e=false;const t=sap.ui.require("sap/ushell/Container");if(t){return t.getServiceAsync("URLParsing").then(function(t){return this._getCurrentUrl().then(function(n){var i=n.split("#")[0];if(i.indexOf("?")!==-1){var r=t&&t.parseParameters(i.substring(i.indexOf("?")));if(r&&r["sap-collaboration-teams"]&&r["sap-collaboration-teams"][0]&&r["sap-collaboration-teams"][0]==="true"){e=true}var s=false;if(r&&r["sap-ushell-config"]&&r["sap-ushell-config"][0]&&r["sap-ushell-config"][0]==="lean"){s=true}return Promise.resolve(e&&s)}else{return Promise.resolve(false)}})}.bind(this))}else{return Promise.resolve(false)}};m._retrieveURL=function(e){const t=sap.ui.require("sap/ushell/Container");return t&&t.getServiceAsync("AppState").then(function(t){return t.getAppState(e)})};m._isEligibleForBackendPersistency=function(e){return e&&e._oConfig&&h in e._oConfig&&!e._oConfig[h]};m._getNextKey=function(e){return e.getKey()};m._extractSemanticObjectAndAction=function(e){const t=sap.ui.require("sap/ushell/Container");return t&&t.getServiceAsync("URLParsing").then(function(t){var n=t.parseShellHash(this._extractURLHash(e));if(n){return Promise.resolve(n.contextRaw?n.semanticObject+"-"+n.action+"~"+n.contextRaw:n.semanticObject+"-"+n.action)}}.bind(this))};m._isMinificationFeasible=async function(e){const t=sap.ui.require("sap/ushell/Container");if(t){const r=await t.getServiceAsync("NavTargetResolution");const s=await t.getServiceAsync("URLParsing");var n=s.parseShellHash(this._extractURLHash(e));var i=Object.keys(n.params).length;if(i>0){return r.resolveHashFragment(`#${n.semanticObject}-${n.action}`).then(function(e){return true}).catch(function(e){return false})}else{return Promise.resolve(true)}}return Promise.resolve(false)};m._extractURLBeforeHash=function(e){var t=e.split("#")[0];return t};m._extractURLHash=function(e){var t=e.substring(e.indexOf("#"));return t};m._storeUrl=function(e,t){t.setData(e);return t.save()};return m});
|
|
16
16
|
},
|
|
17
17
|
"sap/suite/ui/commons/collaboration/CollaborationManagerService.js":function(){
|
|
18
18
|
sap.ui.define(["sap/base/Log","sap/ui/core/Core","./BaseHelperService","sap/ui/Device","sap/ui/core/Lib","sap/suite/ui/commons/collaboration/channels/MessageChannel"],function(e,o,a,s,t,i){var n=a.extend("sap.suite.ui.commons.collaboration.CollaborationManagerService");var r=t.getResourceBundleFor("sap.suite.ui.commons");var l=e.getLogger("sap.suite.ui.commons.collaboration.CollaborationManagerService");n.prototype.triggerH2HChat=function(e,o,a){this.publishData({sAppTitle:e,sCurrentURL:o,sEmailId:a})};n.prototype.getOptions=function(){var e=window["sap-ushell-config"]&&window["sap-ushell-config"].bootstrapPlugins&&window["sap-ushell-config"].bootstrapPlugins.H2H_CHAT_PLUGIN;if(s.system.desktop){if(e){return{text:r.getText("COLLABORATION_MANGER"),icon:"sap-icon://BusinessSuiteInAppSymbols/icon-collaboration-manager",press:this.triggerH2HChat.bind(this),fesrStepName:"CM:ShareLink"}}else{l.info("Consumer disable Collaboration Manager option")}}else{l.info("Collaboration Manager is not supported in Phone and Tablet")}return null};n.prototype.publishData=async function(e){try{const o=await i.getInstance();o.postMessage(e)}catch(e){l.error("Failed to publish data:",e)}};return n});
|
|
@@ -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.136.
|
|
198
|
+
version: "1.136.5",
|
|
199
199
|
extensions: {
|
|
200
200
|
flChangeHandlers: {
|
|
201
201
|
"sap.suite.ui.commons.Timeline": "sap/suite/ui/commons/flexibility/Timeline"
|
|
@@ -350,7 +350,7 @@ PF_VALUE_UNDEFINED=Undefined
|
|
|
350
350
|
#XACT: Text for node description in processflow
|
|
351
351
|
PF_ARIA_PROCESS_FLOW_NODE_DESC=Use arrow keys to navigate between the Process Flow Nodes
|
|
352
352
|
#XACT: Text for empty cells description in processflow
|
|
353
|
-
PF_ARIA_PROCESS_FLOW_EMPTY_NODE_DESC = Empty
|
|
353
|
+
PF_ARIA_PROCESS_FLOW_EMPTY_NODE_DESC = Empty space
|
|
354
354
|
#XACT: Text for status for header lane
|
|
355
355
|
PF_ARIA_STATUS=the status is
|
|
356
356
|
#XACT: Text for positive status value for header lane
|
|
@@ -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
|
|
@@ -749,6 +751,16 @@ COLORED_ITEM_FROM=Colored Item from Journal Entry
|
|
|
749
751
|
TACCOUNT_DROP_HERE=Drop Here
|
|
750
752
|
#XCAP: T Account no data text
|
|
751
753
|
TACCOUNT_NO_DATA=No data.
|
|
754
|
+
#XCAP: T Account debit
|
|
755
|
+
TACCOUNT_DEBIT_NUMBER=Debit {0}
|
|
756
|
+
#XCAP: T Account credit
|
|
757
|
+
TACCOUNT_CREDIT_NUMBER=Credit {0}
|
|
758
|
+
#XCAP: T Account debit
|
|
759
|
+
TACCOUNT_TOTAL_DEBIT_NUMBER=Total Debit {0}
|
|
760
|
+
#XCAP: T Account credit
|
|
761
|
+
TACCOUNT_TOTAL_CREDIT_NUMBER=Total Credit {0}
|
|
762
|
+
#XCAP: T AccountItems wrapper
|
|
763
|
+
TACCOUNT_ITEM_WRAPPER=List with interactive items. To move to the content press F2
|
|
752
764
|
|
|
753
765
|
#XMSG: Message Toast shown when the image is automatically scaled down because of the restrictions of the platform that the ImageEditor is currently running on
|
|
754
766
|
IMGEDITOR_SCALE_WARNING=The image was scaled down to {0} x {1} px from {2} x {3} px to ensure better compatibility with your device.
|
|
@@ -615,9 +615,7 @@ sap.ui.define([
|
|
|
615
615
|
"class": "sapSuiteUiCommonsNetworkNodeActionCollapseIcon",
|
|
616
616
|
icon: this._getExpandIcon(true),
|
|
617
617
|
enable: this._hasVisibleChildren(),
|
|
618
|
-
title: this.
|
|
619
|
-
oResourceBundle.getText("NETWORK_GRAPH_EXPANDED") :
|
|
620
|
-
oResourceBundle.getText("NETWORK_GRAPH_COLLAPSED"),
|
|
618
|
+
title: this._getExpandStateTitle(),
|
|
621
619
|
id: this._getDomId("actionCollapse"),
|
|
622
620
|
click: this._expandClick.bind(this)
|
|
623
621
|
}, $right);
|
|
@@ -1769,6 +1767,8 @@ sap.ui.define([
|
|
|
1769
1767
|
if (bExecuteDefault) {
|
|
1770
1768
|
this.setCollapsed(this._oExpandState !== ExpandState.COLLAPSED);
|
|
1771
1769
|
}
|
|
1770
|
+
// Notify all parents of each affected child to refresh their buttons
|
|
1771
|
+
this._invalidateSharedParents(this);
|
|
1772
1772
|
};
|
|
1773
1773
|
|
|
1774
1774
|
/* =========================================================== */
|
|
@@ -1782,6 +1782,24 @@ sap.ui.define([
|
|
|
1782
1782
|
}
|
|
1783
1783
|
};
|
|
1784
1784
|
|
|
1785
|
+
//Recursive Traversal ensures all shared parents of collapsed descendants have their action buttons re-rendered correctly.
|
|
1786
|
+
Node.prototype._invalidateSharedParents = function(oNode, oOrigin = oNode, oVisited = new Set()) {
|
|
1787
|
+
if (oVisited.has(oNode)) {
|
|
1788
|
+
return;
|
|
1789
|
+
}
|
|
1790
|
+
oVisited.add(oNode);
|
|
1791
|
+
|
|
1792
|
+
oNode.getParentNodes().forEach(parent => {
|
|
1793
|
+
if (parent !== oOrigin) {
|
|
1794
|
+
parent._bActionButtonsRendered = false;
|
|
1795
|
+
}
|
|
1796
|
+
});
|
|
1797
|
+
|
|
1798
|
+
oNode.getChildNodes().forEach(oChild => {
|
|
1799
|
+
this._invalidateSharedParents(oChild, oOrigin, oVisited);
|
|
1800
|
+
});
|
|
1801
|
+
}
|
|
1802
|
+
|
|
1785
1803
|
Node.prototype._setTextHeight = function($el, iMaxLines) {
|
|
1786
1804
|
if ($el[0] && iMaxLines > 0) {
|
|
1787
1805
|
var $icon = this.$().find(".sapSuiteUiCommonsNetworkGraphDivNodeIcon.sapSuiteUiCommonsNetworkGraphDivNodeIconTitle");
|
|
@@ -2015,6 +2033,19 @@ sap.ui.define([
|
|
|
2015
2033
|
}
|
|
2016
2034
|
};
|
|
2017
2035
|
|
|
2036
|
+
Node.prototype._getExpandStateTitle = function () {
|
|
2037
|
+
switch (this._oExpandState) {
|
|
2038
|
+
case ExpandState.PARTIAL:
|
|
2039
|
+
return oResourceBundle.getText("NETWORK_GRAPH_PARTIAL");
|
|
2040
|
+
case ExpandState.EXPANDED:
|
|
2041
|
+
return oResourceBundle.getText("NETWORK_GRAPH_EXPANDED");
|
|
2042
|
+
case ExpandState.COLLAPSED:
|
|
2043
|
+
return oResourceBundle.getText("NETWORK_GRAPH_COLLAPSED");
|
|
2044
|
+
default:
|
|
2045
|
+
return oResourceBundle.getText("NETWORK_GRAPH_EXPANDED");
|
|
2046
|
+
}
|
|
2047
|
+
};
|
|
2048
|
+
|
|
2018
2049
|
Node.prototype._createLineText = function(sText, iWidth, oText, iMaxLines) {
|
|
2019
2050
|
var aLines = [[]],
|
|
2020
2051
|
iLine = 0, sRest,
|
|
@@ -3129,9 +3160,7 @@ sap.ui.define([
|
|
|
3129
3160
|
icon: this._getExpandIcon(true),
|
|
3130
3161
|
"class": "sapSuiteUiCommonsNetworkNodeActionCollapseIcon",
|
|
3131
3162
|
enable: this._hasVisibleChildren(),
|
|
3132
|
-
title: this.
|
|
3133
|
-
oResourceBundle.getText("NETWORK_GRAPH_EXPANDED") :
|
|
3134
|
-
oResourceBundle.getText("NETWORK_GRAPH_COLLAPSED"),
|
|
3163
|
+
title: this._getExpandStateTitle(),
|
|
3135
3164
|
id: this._getDomId("actionCollapse"),
|
|
3136
3165
|
click: this._expandClick.bind(this)
|
|
3137
3166
|
});
|
|
@@ -3384,9 +3413,7 @@ sap.ui.define([
|
|
|
3384
3413
|
if ($icon[0]) {
|
|
3385
3414
|
$icon[0].textContent = this._getExpandIcon();
|
|
3386
3415
|
if ($iconParent && $iconParent.title) {
|
|
3387
|
-
$iconParent.title = this.
|
|
3388
|
-
oResourceBundle.getText("NETWORK_GRAPH_EXPANDED") :
|
|
3389
|
-
oResourceBundle.getText("NETWORK_GRAPH_COLLAPSED")
|
|
3416
|
+
$iconParent.title = this._getExpandStateTitle();
|
|
3390
3417
|
}
|
|
3391
3418
|
}
|
|
3392
3419
|
|
|
@@ -56,7 +56,7 @@ sap.ui.define([
|
|
|
56
56
|
* @extends sap.ui.core.Control
|
|
57
57
|
*
|
|
58
58
|
* @author SAP SE
|
|
59
|
-
* @version 1.136.
|
|
59
|
+
* @version 1.136.5
|
|
60
60
|
* @since 1.58.0
|
|
61
61
|
*
|
|
62
62
|
* @constructor
|
|
@@ -278,6 +278,8 @@ sap.ui.define([
|
|
|
278
278
|
|
|
279
279
|
oRm.openEnd();
|
|
280
280
|
|
|
281
|
+
oRm.renderControl(oAccount._getAriaRowForTAccount());
|
|
282
|
+
|
|
281
283
|
if (bHasData || oAccount.getOpening()) {
|
|
282
284
|
oRm.openStart("div");
|
|
283
285
|
oRm.class("sapSuiteUiCommonsAccountTHeader");
|
|
@@ -305,6 +307,8 @@ sap.ui.define([
|
|
|
305
307
|
if (oAccount.getOpening()) {
|
|
306
308
|
oRm.openStart("div")
|
|
307
309
|
.class("sapSuiteUiCommonsAccountOpeningHeader")
|
|
310
|
+
.attr("tabindex","0")
|
|
311
|
+
.attr("aria-labelledby",oAccount._getAriaRowForTAccount().getId())
|
|
308
312
|
.openEnd();
|
|
309
313
|
oRm.openStart("span")
|
|
310
314
|
.attr("id", oAccount.getId() + "-opening-debit-text")
|
|
@@ -318,12 +322,16 @@ sap.ui.define([
|
|
|
318
322
|
.openEnd()
|
|
319
323
|
.text(sOpeningCredit + " " + sUnit)
|
|
320
324
|
.close("span");
|
|
325
|
+
oRm.openStart("div")
|
|
326
|
+
.class("sapSuiteUiCommonsAccountFocus")
|
|
327
|
+
.openEnd();
|
|
328
|
+
oRm.close("div");
|
|
321
329
|
oRm.close("div");
|
|
322
330
|
}
|
|
323
331
|
|
|
324
|
-
oRm.openStart("div")
|
|
332
|
+
oRm.openStart("div",oAccount.getId() + "-itemWrapper")
|
|
325
333
|
.class("sapSuiteUiCommonsAccountTBody")
|
|
326
|
-
.attr("
|
|
334
|
+
.attr("tabindex","0")
|
|
327
335
|
.openEnd();
|
|
328
336
|
|
|
329
337
|
if (oAccount._isOrdered()) {
|
|
@@ -343,7 +351,7 @@ sap.ui.define([
|
|
|
343
351
|
.attr("role", "listbox")
|
|
344
352
|
.attr("aria-labelledby", oAccount.getId() + "-debit-text")
|
|
345
353
|
.openEnd();
|
|
346
|
-
fnWriteColumn(oAccount.getDebit(),
|
|
354
|
+
fnWriteColumn(oAccount.getDebit(),true);
|
|
347
355
|
}
|
|
348
356
|
oRm.close("div");
|
|
349
357
|
|
|
@@ -353,7 +361,7 @@ sap.ui.define([
|
|
|
353
361
|
.attr("role", "listbox")
|
|
354
362
|
.attr("aria-labelledby", oAccount.getId() + "-credit-text")
|
|
355
363
|
.openEnd();
|
|
356
|
-
fnWriteColumn(oAccount.getCredit(),
|
|
364
|
+
fnWriteColumn(oAccount.getCredit(),false);
|
|
357
365
|
oRm.close("div");
|
|
358
366
|
}
|
|
359
367
|
|
|
@@ -374,6 +382,8 @@ sap.ui.define([
|
|
|
374
382
|
.close("div");
|
|
375
383
|
oRm.openStart("div")
|
|
376
384
|
.class("sapSuiteUiCommonsAccountClosingHeader")
|
|
385
|
+
.attr("aria-labelledby",oAccount._getAriaRowForTAccount().getId())
|
|
386
|
+
.attr("tabindex","0")
|
|
377
387
|
.openEnd();
|
|
378
388
|
oRm.openStart("span")
|
|
379
389
|
.attr("id", oAccount.getId() + "-closing-debit-text")
|
|
@@ -387,6 +397,10 @@ sap.ui.define([
|
|
|
387
397
|
.openEnd()
|
|
388
398
|
.text(fnCountBalance(false) + " " + sUnit)
|
|
389
399
|
.close("span");
|
|
400
|
+
oRm.openStart("div")
|
|
401
|
+
.class("sapSuiteUiCommonsAccountFocus")
|
|
402
|
+
.openEnd();
|
|
403
|
+
oRm.close("div");
|
|
390
404
|
oRm.close("div");
|
|
391
405
|
}
|
|
392
406
|
|
|
@@ -455,6 +469,32 @@ sap.ui.define([
|
|
|
455
469
|
}
|
|
456
470
|
};
|
|
457
471
|
|
|
472
|
+
TAccount.prototype.onfocusin = function (oEvent) {
|
|
473
|
+
const oCurrentTarget = oEvent.target;
|
|
474
|
+
|
|
475
|
+
const bIsOpeningHeader = oCurrentTarget.classList.contains("sapSuiteUiCommonsAccountOpeningHeader");
|
|
476
|
+
const bIsClosingHeader = oCurrentTarget.classList.contains("sapSuiteUiCommonsAccountClosingHeader");
|
|
477
|
+
if (!(bIsOpeningHeader || bIsClosingHeader)) {
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
const sDebitText = oCurrentTarget.childNodes[0]?.innerText;
|
|
482
|
+
const sCreditText = oCurrentTarget.childNodes[1]?.innerText;
|
|
483
|
+
|
|
484
|
+
let sAriaText = "";
|
|
485
|
+
|
|
486
|
+
if (sDebitText) {
|
|
487
|
+
sAriaText += (bIsOpeningHeader) ? oResourceBundle.getText("TACCOUNT_DEBIT_NUMBER",[sDebitText]) : oResourceBundle.getText("TACCOUNT_TOTAL_DEBIT_NUMBER",[sDebitText]);
|
|
488
|
+
sAriaText += " ";
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
if (sCreditText) {
|
|
492
|
+
sAriaText += (bIsOpeningHeader) ? oResourceBundle.getText("TACCOUNT_CREDIT_NUMBER",[sCreditText]) : oResourceBundle.getText("TACCOUNT_TOTAL_CREDIT_NUMBER",[sCreditText]);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
this._getAriaRowForTAccount().setText(sAriaText);
|
|
496
|
+
};
|
|
497
|
+
|
|
458
498
|
/* =========================================================== */
|
|
459
499
|
/* Public methods */
|
|
460
500
|
/* =========================================================== */
|
|
@@ -482,7 +522,7 @@ sap.ui.define([
|
|
|
482
522
|
|
|
483
523
|
this._oItemNavigation.setRootDomRef(this.$().find(".sapSuiteUiCommonsAccountTBody")[0]);
|
|
484
524
|
this._oItemNavigation.setItemDomRefs(this.$().find(".sapSuiteUiCommonsAccountItem"));
|
|
485
|
-
this._oItemNavigation.setCycling(
|
|
525
|
+
this._oItemNavigation.setCycling(false);
|
|
486
526
|
};
|
|
487
527
|
|
|
488
528
|
TAccount.prototype._isInGroup = function () {
|
|
@@ -573,6 +613,17 @@ sap.ui.define([
|
|
|
573
613
|
return this._oMarkText;
|
|
574
614
|
};
|
|
575
615
|
|
|
616
|
+
TAccount.prototype._getAriaRowForTAccount = function () {
|
|
617
|
+
if (!this._oTableRowText) {
|
|
618
|
+
this._oTableRowText = new InvisibleText({
|
|
619
|
+
id: this.getId() + "-row-text"
|
|
620
|
+
}
|
|
621
|
+
);
|
|
622
|
+
this.addDependent(this._oTableRowText);
|
|
623
|
+
}
|
|
624
|
+
return this._oTableRowText;
|
|
625
|
+
};
|
|
626
|
+
|
|
576
627
|
TAccount.prototype._getSum = function () {
|
|
577
628
|
if (this._iSum == null) {
|
|
578
629
|
var iSum = new BigNumber("0");
|
|
@@ -41,7 +41,7 @@ sap.ui.define([
|
|
|
41
41
|
* @extends sap.ui.core.Control
|
|
42
42
|
*
|
|
43
43
|
* @author SAP SE
|
|
44
|
-
* @version 1.136.
|
|
44
|
+
* @version 1.136.5
|
|
45
45
|
* @since 1.58.0
|
|
46
46
|
*
|
|
47
47
|
* @constructor
|
|
@@ -101,8 +101,9 @@ sap.ui.define([
|
|
|
101
101
|
sValue = TAccountUtils.formatCurrency(new BigNumber(oItem.getValue()), sUnit, oPanelParent ? oPanelParent.getMaxFractionDigits() : 0),
|
|
102
102
|
sTextValue = sValue + " " + sUnit;
|
|
103
103
|
|
|
104
|
-
oRm.openStart("div", oItem)
|
|
104
|
+
oRm.openStart("div", oItem);
|
|
105
105
|
oRm.class("sapSuiteUiCommonsAccountItem");
|
|
106
|
+
oRm.attr("tabindex","-1");
|
|
106
107
|
|
|
107
108
|
if (oItem.getGroup()) {
|
|
108
109
|
oRm.attr("group", oItem.getGroup());
|
|
@@ -122,7 +123,7 @@ sap.ui.define([
|
|
|
122
123
|
if (sColor) {
|
|
123
124
|
if (oSemanticColorType.hasOwnProperty(sColor)) {
|
|
124
125
|
oRm.class("backgroundSemanticColor" + sColor);
|
|
125
|
-
}
|
|
126
|
+
}
|
|
126
127
|
/**
|
|
127
128
|
* @deprecated As of version 1.120
|
|
128
129
|
*/
|
|
@@ -83,10 +83,6 @@ html[dir=rtl] .sapSuiteUiCommonsAccountCredit .sapSuiteUiCommonsAccountContent{
|
|
|
83
83
|
display: flex;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
.sapSuiteUiCommonsAccountGroupCollapseIcon {
|
|
87
|
-
height: 0.9375rem;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
86
|
.sapSuiteUiCommonsAccount:focus {
|
|
91
87
|
outline: @sapUiContentFocusWidth @sapUiContentFocusStyle @sapUiContentFocusColor;
|
|
92
88
|
}
|
|
@@ -121,6 +117,27 @@ html[dir=rtl] .sapSuiteUiCommonsAccountCredit .sapSuiteUiCommonsAccountContent{
|
|
|
121
117
|
height: auto;
|
|
122
118
|
font-size: @sapMFontSmallSize;
|
|
123
119
|
margin: 0 1rem;
|
|
120
|
+
outline: none;
|
|
121
|
+
position: relative;
|
|
122
|
+
&:focus {
|
|
123
|
+
.sapSuiteUiCommonsAccountFocus {
|
|
124
|
+
position: absolute;
|
|
125
|
+
outline: @sapContent_FocusWidth @sapContent_FocusStyle @sapContent_FocusColor;
|
|
126
|
+
right: -15px;
|
|
127
|
+
left: -15px;
|
|
128
|
+
top: 1px;
|
|
129
|
+
bottom: 2px;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.sapSuiteUiCommonsAccountClosingHeader {
|
|
135
|
+
&:focus {
|
|
136
|
+
.sapSuiteUiCommonsAccountFocus {
|
|
137
|
+
top: 2px;
|
|
138
|
+
bottom: 1px;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
124
141
|
}
|
|
125
142
|
|
|
126
143
|
.sapSuiteUiCommonsAccountClosingHeader {
|
|
@@ -171,7 +188,7 @@ html[dir=rtl] .sapSuiteUiCommonsAccountCredit .sapSuiteUiCommonsAccountContent{
|
|
|
171
188
|
.sapSuiteUiCommonsAccountHeaderTitle {
|
|
172
189
|
overflow: hidden;
|
|
173
190
|
text-overflow: ellipsis;
|
|
174
|
-
margin: 0.5rem 0.2608rem;
|
|
191
|
+
margin: 0.875rem 0.2608rem 0.5rem 0.2608rem;
|
|
175
192
|
max-height: 4.2rem;
|
|
176
193
|
min-height: 1rem;
|
|
177
194
|
display: -webkit-box;
|
|
@@ -179,6 +196,12 @@ html[dir=rtl] .sapSuiteUiCommonsAccountCredit .sapSuiteUiCommonsAccountContent{
|
|
|
179
196
|
-webkit-line-clamp: 4;
|
|
180
197
|
}
|
|
181
198
|
|
|
199
|
+
.sapUiSizeCompact {
|
|
200
|
+
.sapSuiteUiCommonsAccountHeaderTitle {
|
|
201
|
+
margin: 0.5rem 0.2608rem;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
182
205
|
.sapSuiteUiCommonsAccountTHeaderOpeningDebitTitle,
|
|
183
206
|
.sapSuiteUiCommonsAccountTHeaderOpeningCreditTitle {
|
|
184
207
|
font-size: @sapMFontMediumSize;
|
|
@@ -21,6 +21,7 @@ sap.ui.define([
|
|
|
21
21
|
const MSG_NAME = "get-provider-config";
|
|
22
22
|
const UPDATE_TOP_LEVEL_URL_MSG_NAME = "update-top-level-url";
|
|
23
23
|
const UshellContainer = sap.ui.require("sap/ushell/Container");
|
|
24
|
+
const CollaborationHelper = sap.ui.require("sap/suite/ui/commons/collaboration/CollaborationHelper");
|
|
24
25
|
if (!UshellContainer) {
|
|
25
26
|
oLogger.info("UShell Container instance doesn't exist");
|
|
26
27
|
return;
|
|
@@ -53,9 +54,11 @@ sap.ui.define([
|
|
|
53
54
|
try {
|
|
54
55
|
const parsedData = JSON.parse(oData);
|
|
55
56
|
if (parsedData?.url) {
|
|
57
|
+
const parsedUrl = parsedData.url;
|
|
58
|
+
// Remove Teams parameters from the URL when it is not in iframe
|
|
59
|
+
const sanitizedUrl = CollaborationHelper._stripTeamsParams(parsedUrl);
|
|
56
60
|
notifySubscribers(sClientId, sMessageName, { success: true });
|
|
57
|
-
window.location.replace(
|
|
58
|
-
window.location.reload();
|
|
61
|
+
window.location.replace(sanitizedUrl);
|
|
59
62
|
} else {
|
|
60
63
|
oLogger.info("Invalid URL in the message data.");
|
|
61
64
|
}
|