@sapui5/sap.suite.ui.commons 1.136.3 → 1.139.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/suite/ui/commons/.library +1 -9
- 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 +27 -27
- 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 +6 -6
- 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/ProcessFlow.js +4 -0
- package/src/sap/suite/ui/commons/ProcessFlowRenderer.js +11 -3
- package/src/sap/suite/ui/commons/TimelineItemRenderer.js +46 -3
- package/src/sap/suite/ui/commons/TimelineRenderManager.js +1 -1
- package/src/sap/suite/ui/commons/collaboration/CollaborationHelper.js +110 -22
- package/src/sap/suite/ui/commons/collaboration/ContactPopover.fragment.xml +17 -17
- package/src/sap/suite/ui/commons/collaboration/TeamsHelperService.js +2 -1
- 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 +4 -3
- package/src/sap/suite/ui/commons/messagebundle_ar.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_bg.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_ca.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_cnr.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_cs.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_cy.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_da.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_de.properties +1 -1
- package/src/sap/suite/ui/commons/messagebundle_el.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_en.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_en_GB.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_en_US_saprigi.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_es.properties +4 -4
- package/src/sap/suite/ui/commons/messagebundle_es_MX.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_et.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_fi.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_fr.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_fr_CA.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_hi.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_hr.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_hu.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_id.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_it.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_iw.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_ja.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_kk.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_ko.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_lt.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_lv.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_mk.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_ms.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_nl.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_no.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_pl.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_pt.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_pt_PT.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_ro.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_ru.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_sh.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_sk.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_sl.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_sr.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_sv.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_th.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_tr.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_uk.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_vi.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_zh_CN.properties +2 -2
- package/src/sap/suite/ui/commons/messagebundle_zh_TW.properties +2 -2
- package/src/sap/suite/ui/commons/networkgraph/GraphRenderer.js +0 -1
- package/src/sap/suite/ui/commons/networkgraph/Node.js +29 -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/statusindicator/StatusIndicatorRenderer.js +6 -2
- 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/MicroProcessFlow.less +12 -2
- package/src/sap/suite/ui/commons/windowmessages/CollaborationMessageBroker.js +5 -1
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
8
8
|
(c) Copyright 2009-2015 SAP SE. All rights reserved
|
|
9
9
|
</copyright>
|
|
10
|
-
<version>1.
|
|
10
|
+
<version>1.139.0</version>
|
|
11
11
|
|
|
12
12
|
<documentation>SAP UI library: sap.suite.ui.commons</documentation>
|
|
13
13
|
|
|
@@ -54,14 +54,6 @@
|
|
|
54
54
|
<jscoverage xmlns="http://www.sap.com/ui5/buildext/jscoverage">
|
|
55
55
|
<exclude name="sap.suite.ui.commons.thirdparty." />
|
|
56
56
|
</jscoverage>
|
|
57
|
-
<!-- Thirdparty references -->
|
|
58
|
-
<thirdparty xmlns="http://www.sap.com/ui5/buildext/thirdparty" >
|
|
59
|
-
<lib name="@azure/msal-browser" displayName="Microsoft Authentication Library for JavaScript" npmName="@azure/msal-browser" version="2.22.0" homepage="https://github.com/AzureAD/microsoft-authentication-library-for-js" id="73554900106100194698">
|
|
60
|
-
<license url="https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/LICENSE" type="MIT" />
|
|
61
|
-
<copyright>Microsoft Corporation</copyright>
|
|
62
|
-
<pattern>sap/suite/ui/commons/thirdparty/msal-browser.js</pattern>
|
|
63
|
-
</lib>
|
|
64
|
-
</thirdparty>
|
|
65
57
|
<!-- demokit module app -->
|
|
66
58
|
<documentation xmlns="http://www.sap.com/ui5/buildext/documentation"
|
|
67
59
|
indexUrl="../../../../../test-resources/sap/suite/ui/commons/demokit/docuindex.json"
|
|
@@ -132,27 +132,6 @@ sap.ui.define([
|
|
|
132
132
|
MOUSE: "mouse"
|
|
133
133
|
});
|
|
134
134
|
|
|
135
|
-
const OperatorTooltip = Object.freeze({
|
|
136
|
-
"+": "CALCULATION_BUILDER_ADDITION_TOOLTIP",
|
|
137
|
-
"-": "CALCULATION_BUILDER_SUBTRACTION_TOOLTIP",
|
|
138
|
-
"/": "CALCULATION_BUILDER_DIVISION_TOOLTIP",
|
|
139
|
-
"*": "CALCULATION_BUILDER_MULTIPLICATION_TOOLTIP",
|
|
140
|
-
"(": "CALCULATION_BUILDER_LEFT_BRACKET_TOOLTIP",
|
|
141
|
-
")": "CALCULATION_BUILDER_RIGHT_BRACKET_TOOLTIP",
|
|
142
|
-
",": "CALCULATION_BUILDER_COMMA_TOOLTIP",
|
|
143
|
-
"<": "CALCULATION_BUILDER_LESS_THAN_TOOLTIP",
|
|
144
|
-
">": "CALCULATION_BUILDER_GREATER_THAN_TOOLTIP",
|
|
145
|
-
"<=": "CALCULATION_BUILDER_LESS_THAN_OR_EQUALS_TO_TOOLTIP",
|
|
146
|
-
">=": "CALCULATION_BUILDER_GREATER_THAN_OR_EQUALS_TO_TOOLTIP",
|
|
147
|
-
"=": "CALCULATION_BUILDER_EQUALS_TO_TOOLTIP",
|
|
148
|
-
"!=": "CALCULATION_BUILDER_NOT_EQUALS_TO_TOOLTIP",
|
|
149
|
-
"AND": "CALCULATION_BUILDER_LOGICAL_CONJUNCTION_TOOLTIP",
|
|
150
|
-
"OR": "CALCULATION_BUILDER_LOGICAL_DISJUNCTION_TOOLTIP",
|
|
151
|
-
"XOR": "CALCULATION_BUILDER_EXCLUSIVE_DISJUNCTION_TOOLTIP",
|
|
152
|
-
"NOT": "CALCULATION_BUILDER_NEGATION_TOOLTIP"
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
|
|
156
135
|
var DEFAULT_GROUP_KEY = "##DEFAULT##";
|
|
157
136
|
|
|
158
137
|
var oResourceBundle = CoreLib.getResourceBundleFor("sap.suite.ui.commons");
|
|
@@ -169,7 +148,7 @@ sap.ui.define([
|
|
|
169
148
|
* @extends sap.ui.core.Control
|
|
170
149
|
*
|
|
171
150
|
* @author SAP SE
|
|
172
|
-
* @version 1.
|
|
151
|
+
* @version 1.139.0
|
|
173
152
|
* @since 1.56.0
|
|
174
153
|
*
|
|
175
154
|
* @constructor
|
|
@@ -286,6 +265,27 @@ sap.ui.define([
|
|
|
286
265
|
this._mVariableMap = {};
|
|
287
266
|
this._mFunctionMap = {};
|
|
288
267
|
this._mOperatorMap = {};
|
|
268
|
+
|
|
269
|
+
//Map of Operator Tooltips
|
|
270
|
+
this._operatorTooltip = Object.freeze({
|
|
271
|
+
"+": "CALCULATION_BUILDER_ADDITION_TOOLTIP",
|
|
272
|
+
"-": "CALCULATION_BUILDER_SUBTRACTION_TOOLTIP",
|
|
273
|
+
"/": "CALCULATION_BUILDER_DIVISION_TOOLTIP",
|
|
274
|
+
"*": "CALCULATION_BUILDER_MULTIPLICATION_TOOLTIP",
|
|
275
|
+
"(": "CALCULATION_BUILDER_LEFT_BRACKET_TOOLTIP",
|
|
276
|
+
")": "CALCULATION_BUILDER_RIGHT_BRACKET_TOOLTIP",
|
|
277
|
+
",": "CALCULATION_BUILDER_COMMA_TOOLTIP",
|
|
278
|
+
"<": "CALCULATION_BUILDER_LESS_THAN_TOOLTIP",
|
|
279
|
+
">": "CALCULATION_BUILDER_GREATER_THAN_TOOLTIP",
|
|
280
|
+
"<=": "CALCULATION_BUILDER_LESS_THAN_OR_EQUALS_TO_TOOLTIP",
|
|
281
|
+
">=": "CALCULATION_BUILDER_GREATER_THAN_OR_EQUALS_TO_TOOLTIP",
|
|
282
|
+
"=": "CALCULATION_BUILDER_EQUALS_TO_TOOLTIP",
|
|
283
|
+
"!=": "CALCULATION_BUILDER_NOT_EQUALS_TO_TOOLTIP",
|
|
284
|
+
"AND": "CALCULATION_BUILDER_LOGICAL_CONJUNCTION_TOOLTIP",
|
|
285
|
+
"OR": "CALCULATION_BUILDER_LOGICAL_DISJUNCTION_TOOLTIP",
|
|
286
|
+
"XOR": "CALCULATION_BUILDER_EXCLUSIVE_DISJUNCTION_TOOLTIP",
|
|
287
|
+
"NOT": "CALCULATION_BUILDER_NEGATION_TOOLTIP"
|
|
288
|
+
});
|
|
289
289
|
};
|
|
290
290
|
|
|
291
291
|
CalculationBuilderExpression.prototype._renderDelimiter = function (oRm, iIndex) {
|
|
@@ -454,7 +454,7 @@ sap.ui.define([
|
|
|
454
454
|
var fnCreateButton = function (sLabel) {
|
|
455
455
|
return new Button({
|
|
456
456
|
text: sLabel,
|
|
457
|
-
tooltip:
|
|
457
|
+
tooltip: this._operatorTooltip[sLabel] ? oResourceBundle.getText(this._operatorTooltip[sLabel]) : this._operatorTooltip[sLabel],
|
|
458
458
|
press: this._updateOrCreateItem.bind(this, {
|
|
459
459
|
type: ItemType.Operator,
|
|
460
460
|
key: sLabel
|
|
@@ -665,7 +665,7 @@ sap.ui.define([
|
|
|
665
665
|
|
|
666
666
|
var oButton = new Button({
|
|
667
667
|
text: sText,
|
|
668
|
-
tooltip:
|
|
668
|
+
tooltip: this._operatorTooltip[sText] ? oResourceBundle.getText(this._operatorTooltip[sText]) : sText,
|
|
669
669
|
press: this._updateOrCreateItem.bind(this, {
|
|
670
670
|
type: sType,
|
|
671
671
|
key: sItemKey
|
|
@@ -2150,21 +2150,21 @@ sap.ui.define([
|
|
|
2150
2150
|
|
|
2151
2151
|
CalculationBuilderExpression.prototype._setVariables = function () {
|
|
2152
2152
|
var aVariables = this["getVariables"]();
|
|
2153
|
-
aVariables.forEach((oVariable)=> {
|
|
2153
|
+
aVariables.forEach((oVariable) => {
|
|
2154
2154
|
this._mVariableMap[oVariable.getKey().toLowerCase()] = oVariable;
|
|
2155
2155
|
});
|
|
2156
2156
|
};
|
|
2157
2157
|
|
|
2158
2158
|
CalculationBuilderExpression.prototype._setFunctions = function () {
|
|
2159
2159
|
var aFunctions = this["getFunctions"]();
|
|
2160
|
-
aFunctions.forEach((oFunction)=> {
|
|
2160
|
+
aFunctions.forEach((oFunction) => {
|
|
2161
2161
|
this._mFunctionMap[oFunction.getKey().toLowerCase()] = oFunction;
|
|
2162
2162
|
});
|
|
2163
2163
|
};
|
|
2164
2164
|
|
|
2165
2165
|
CalculationBuilderExpression.prototype._setOperators = function () {
|
|
2166
2166
|
var aOperators = this["getOperators"]();
|
|
2167
|
-
aOperators.forEach((oOperator)=> {
|
|
2167
|
+
aOperators.forEach((oOperator) => {
|
|
2168
2168
|
this._mOperatorMap[oOperator.getKey().toLowerCase()] = oOperator;
|
|
2169
2169
|
});
|
|
2170
2170
|
};
|
|
@@ -39,7 +39,7 @@ sap.ui.define([
|
|
|
39
39
|
* @extends sap.ui.core.Control
|
|
40
40
|
*
|
|
41
41
|
* @author SAP SE
|
|
42
|
-
* @version 1.
|
|
42
|
+
* @version 1.139.0
|
|
43
43
|
* @since 1.56.0
|
|
44
44
|
*
|
|
45
45
|
* @constructor
|
|
@@ -144,6 +144,7 @@ sap.ui.define([
|
|
|
144
144
|
oRm.openStart("div");
|
|
145
145
|
oRm.attr("id",this.getId() + "-content");
|
|
146
146
|
oRm.class("sapCalculationBuilderItemContent");
|
|
147
|
+
oRm.attr("title", this.getParent()._operatorTooltip[sLabel] ? oResourceBundle.getText(this.getParent()._operatorTooltip[sLabel]) : "");
|
|
147
148
|
if (this._bIsNew || this._isEmpty()) {
|
|
148
149
|
oRm.attr("title",oResourceBundle.getText("CALCULATION_BUILDER_NEW_ITEM_TITLE"));
|
|
149
150
|
} else if (oItemsWithAriaLabel[sLabel]) {
|
|
@@ -186,9 +187,8 @@ sap.ui.define([
|
|
|
186
187
|
fnRenderExpandButton(oRm);
|
|
187
188
|
}
|
|
188
189
|
if (item) {
|
|
189
|
-
|
|
190
190
|
oRm.flush(item);
|
|
191
|
-
|
|
191
|
+
}
|
|
192
192
|
};
|
|
193
193
|
|
|
194
194
|
CalculationBuilderItem.prototype._getClass = function (bHasError, oRm, bCreateExpression) {
|
|
@@ -249,9 +249,9 @@ sap.ui.define([
|
|
|
249
249
|
oRm.openStart("div");
|
|
250
250
|
this._getClass(!!oError, oRm);
|
|
251
251
|
oRm.attr("id",this.getId());
|
|
252
|
-
oRm.attr("tabindex",sTabIndexAttr);
|
|
253
|
-
oRm.attr("title",sTooltipAttr);
|
|
254
|
-
oRm.attr("role",sRoleAttr);
|
|
252
|
+
oRm.attr("tabindex", sTabIndexAttr);
|
|
253
|
+
oRm.attr("title", sTooltipAttr);
|
|
254
|
+
oRm.attr("role", sRoleAttr);
|
|
255
255
|
oRm.openEnd();
|
|
256
256
|
// for now we can't add data-sap-ui as it collide with dragging selected items (for unknown reason)
|
|
257
257
|
//sHtml += "<div " + " class=\"" + this._getClass(!!oError) + "\" data-sap-ui=\"" + this.getId() + "\" id=\"" + this.getId() + "\" tabindex=\"" + (bIsItemInBuilder ? "-1" : "0") + "\"" + sTooltipAttr + ">";
|
|
@@ -404,6 +404,10 @@ sap.ui.define([
|
|
|
404
404
|
ResizeHandler.deregister(this._resizeRegId);
|
|
405
405
|
}
|
|
406
406
|
|
|
407
|
+
if(this._oInvisibleText) {
|
|
408
|
+
this._oInvisibleText.destroy();
|
|
409
|
+
}
|
|
410
|
+
|
|
407
411
|
if (this._internalCalcMatrix) {
|
|
408
412
|
delete this._internalCalcMatrix;
|
|
409
413
|
this._internalCalcMatrix = null;
|
|
@@ -13,8 +13,9 @@ sap.ui.define([
|
|
|
13
13
|
"sap/base/security/encodeXML",
|
|
14
14
|
"sap/ui/core/Element",
|
|
15
15
|
"sap/ui/core/Core",
|
|
16
|
-
"sap/ui/core/Lib"
|
|
17
|
-
|
|
16
|
+
"sap/ui/core/Lib",
|
|
17
|
+
"sap/ui/core/InvisibleText"
|
|
18
|
+
], function (jQuery, library, ProcessFlowLaneHeader, AriaProperties, Device, encodeXML, Element, Core, CoreLib, InvisibleText) {
|
|
18
19
|
"use strict";
|
|
19
20
|
|
|
20
21
|
// shortcut for sap.suite.ui.commons.ProcessFlowZoomLevel
|
|
@@ -54,6 +55,13 @@ sap.ui.define([
|
|
|
54
55
|
if (!this._oResBundle) {
|
|
55
56
|
this._oResBundle = CoreLib.getResourceBundleFor("sap.suite.ui.commons");
|
|
56
57
|
}
|
|
58
|
+
//Setting invisible text
|
|
59
|
+
if (!oControl._oInvisibleText) {
|
|
60
|
+
oControl._oInvisibleText = new InvisibleText();
|
|
61
|
+
oControl._oInvisibleText.toStatic();
|
|
62
|
+
oControl._oInvisibleText.setText(this._oResBundle.getText("PF_ARIA_PROCESS_FLOW_NODE_DESC"));
|
|
63
|
+
}
|
|
64
|
+
|
|
57
65
|
oClosedElement = oProcessFlowRenderer._renderBasicStructure(oRm, oControl);
|
|
58
66
|
if (oClosedElement) {
|
|
59
67
|
return;
|
|
@@ -157,7 +165,7 @@ sap.ui.define([
|
|
|
157
165
|
var oCustomContent = node._getCurrentZoomLevelContent();
|
|
158
166
|
oRm.attr("id", sNodeId);
|
|
159
167
|
oRm.attr("tabindex", 0);
|
|
160
|
-
oRm.attr("aria-
|
|
168
|
+
oRm.attr("aria-describedby", oControl._oInvisibleText.getId());
|
|
161
169
|
var oAriaDefaultProperties = {};
|
|
162
170
|
oAriaDefaultProperties.label = node._getAriaText();
|
|
163
171
|
if (oCustomContent) {
|
|
@@ -296,7 +296,14 @@ sap.ui.define([
|
|
|
296
296
|
|
|
297
297
|
eBarWrapper.addChild(eText);
|
|
298
298
|
eText.addClass("sapSuiteUiCommonsTimelineGroupHeaderSpan");
|
|
299
|
-
|
|
299
|
+
|
|
300
|
+
// Use the new _getGroupTypeLabel method
|
|
301
|
+
var sGroupTypeLabel = this._getGroupTypeLabel(oTimelineItem);
|
|
302
|
+
if (sGroupTypeLabel) {
|
|
303
|
+
eText.addChildEscaped(" " + sGroupTypeLabel + ": " + oTimelineItem.getTitle());
|
|
304
|
+
} else {
|
|
305
|
+
eText.addChildEscaped(" " + oTimelineItem.getTitle());
|
|
306
|
+
}
|
|
300
307
|
|
|
301
308
|
if (oTimelineItem._orientation === "V") {
|
|
302
309
|
eTimelineItem.addChild(eIconBarWrapper);
|
|
@@ -576,14 +583,50 @@ sap.ui.define([
|
|
|
576
583
|
eTimelineItem.setAttribute("aria-setsize", oTimelineItem._callParentFn("_getItemsCount"));
|
|
577
584
|
}
|
|
578
585
|
if (bIsGroupHeader) {
|
|
586
|
+
var sGroupTypeLabel = this._getGroupTypeLabel(oTimelineItem);
|
|
579
587
|
if (!oTimelineItem._isGroupCollapsed()) {
|
|
580
|
-
|
|
588
|
+
if (sGroupTypeLabel) {
|
|
589
|
+
sGroupHeader = oResBundle.getText("TIMELINE_ACCESSIBILITY_GROUP_HEADER") + ": " + sGroupTypeLabel + " " + oTimelineItem.getTitle() + " " + oResBundle.getText("TIMELINE_ACCESSIBILITY_GROUP_EXPAND");
|
|
590
|
+
} else {
|
|
591
|
+
sGroupHeader = oResBundle.getText("TIMELINE_ACCESSIBILITY_GROUP_HEADER") + ": " + oTimelineItem.getTitle() + " " + oResBundle.getText("TIMELINE_ACCESSIBILITY_GROUP_EXPAND");
|
|
592
|
+
}
|
|
581
593
|
} else {
|
|
582
|
-
|
|
594
|
+
if (sGroupTypeLabel) {
|
|
595
|
+
sGroupHeader = oResBundle.getText("TIMELINE_ACCESSIBILITY_GROUP_HEADER") + ": " + sGroupTypeLabel + " " + oTimelineItem.getTitle() + " " + oResBundle.getText("TIMELINE_ACCESSIBILITY_GROUP_COLLAPSE");
|
|
596
|
+
} else {
|
|
597
|
+
sGroupHeader = oResBundle.getText("TIMELINE_ACCESSIBILITY_GROUP_HEADER") + ": " + oTimelineItem.getTitle() + " " + oResBundle.getText("TIMELINE_ACCESSIBILITY_GROUP_COLLAPSE");
|
|
598
|
+
}
|
|
583
599
|
}
|
|
584
600
|
eTimelineItem.setAttribute("aria-label", sGroupHeader, false);
|
|
585
601
|
}
|
|
586
602
|
};
|
|
587
603
|
|
|
604
|
+
/**
|
|
605
|
+
* Returns the localized label for the current Timeline grouping type (Year, Month, Quarter, Week, Day).
|
|
606
|
+
* Looks up the value of the GroupByType property from the parent Timeline control and returns the corresponding
|
|
607
|
+
* localized string from the resource bundle. If the type is not recognized, returns undefined.
|
|
608
|
+
* @param {sap.suite.ui.commons.TimelineItem} oTimelineItem The item to be rendered
|
|
609
|
+
* @returns {string|undefined} The localized label for the group type, or undefined if not found.
|
|
610
|
+
* @private
|
|
611
|
+
*/
|
|
612
|
+
TimelineItemRenderer._getGroupTypeLabel = function (oTimelineItem) {
|
|
613
|
+
var oTimeline = oTimelineItem.getParent();
|
|
614
|
+
var sType = oTimeline.getGroupByType();
|
|
615
|
+
|
|
616
|
+
// Compare against enum values from library
|
|
617
|
+
var mTypeToKey = {};
|
|
618
|
+
mTypeToKey[library.TimelineGroupType.Year] = "TIMELINE_YEAR";
|
|
619
|
+
mTypeToKey[library.TimelineGroupType.Month] = "TIMELINE_MONTH";
|
|
620
|
+
mTypeToKey[library.TimelineGroupType.Quarter] = "TIMELINE_QUARTER";
|
|
621
|
+
mTypeToKey[library.TimelineGroupType.Week] = "TIMELINE_WEEK";
|
|
622
|
+
mTypeToKey[library.TimelineGroupType.Day] = "TIMELINE_DAY";
|
|
623
|
+
|
|
624
|
+
var sKey = mTypeToKey[sType];
|
|
625
|
+
if (sKey && oResBundle.hasText(sKey)) {
|
|
626
|
+
return oResBundle.getText(sKey);
|
|
627
|
+
}
|
|
628
|
+
return undefined;
|
|
629
|
+
};
|
|
630
|
+
|
|
588
631
|
return TimelineItemRenderer;
|
|
589
632
|
}, true);
|
|
@@ -1117,7 +1117,7 @@ sap.ui.define([
|
|
|
1117
1117
|
that._filterDialogRangePage.setFilterCount(0);
|
|
1118
1118
|
that._objects.getTimestampFilterPicker().clearDates();
|
|
1119
1119
|
if (that._rangeFilterType == "None") {
|
|
1120
|
-
that.toggleGroupTypeSelector();
|
|
1120
|
+
that.toggleGroupTypeSelector(that._rangeFilterType);
|
|
1121
1121
|
}
|
|
1122
1122
|
},
|
|
1123
1123
|
filterDetailPageOpened: function (oItem) {
|
|
@@ -13,6 +13,7 @@ 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=";
|
|
16
17
|
var TRANSIENT_KEY = "transient";
|
|
17
18
|
var oLogger = Log.getLogger("sap.suite.ui.commons.collaboration.CollaborationHelper");
|
|
18
19
|
|
|
@@ -107,8 +108,9 @@ sap.ui.define(
|
|
|
107
108
|
* @return {Promise} Return the resolved promise when the redirection of the URL is done.
|
|
108
109
|
* @public
|
|
109
110
|
*/
|
|
110
|
-
CollaborationHelper.processAndExpandHash = function () {
|
|
111
|
-
this.
|
|
111
|
+
CollaborationHelper.processAndExpandHash = async function () {
|
|
112
|
+
const bTeamsModeActive = await this.isTeamsModeActive();
|
|
113
|
+
this._hideAvatarFromShellbar(bTeamsModeActive);
|
|
112
114
|
return this._getCurrentUrl().then(async function (sCurrentUrl) {
|
|
113
115
|
//if the current url has url param, sap-url-hash, then we have to redirect to an actual url.
|
|
114
116
|
if (sCurrentUrl.indexOf(URL_KEY) > -1) {
|
|
@@ -116,7 +118,7 @@ sap.ui.define(
|
|
|
116
118
|
if (sCurrentUrl.indexOf(PARAM_SAP_STAGEVIEW_HASH) > 0) {
|
|
117
119
|
sHash = sHash.split(PARAM_SAP_STAGEVIEW_HASH)[0];
|
|
118
120
|
} else if (sCurrentUrl.includes("info=")) {
|
|
119
|
-
|
|
121
|
+
sHash = sHash.includes(",") ? sHash.split(",")[0] : sHash.split("&")[0];
|
|
120
122
|
} else if (sCurrentUrl.indexOf(PARAM_SAP_CARD_ID) > 0 || sCurrentUrl.indexOf(PARAM_SAP_XX_CARD_ID) > 0) {
|
|
121
123
|
if (sCurrentUrl.indexOf(PARAM_SAP_CARD_ID) > 0){
|
|
122
124
|
sHash = sHash.split(PARAM_SAP_CARD_ID)[0];
|
|
@@ -128,46 +130,132 @@ sap.ui.define(
|
|
|
128
130
|
}
|
|
129
131
|
return this._retrieveURL(sHash).then(function (oAppState) {
|
|
130
132
|
if (oAppState.getData()) {
|
|
131
|
-
|
|
133
|
+
this._redirectToUrl(oAppState.getData());
|
|
132
134
|
} else {
|
|
133
135
|
// In case AppState couldn't found value for the hash, so removing it and redirecting to LR
|
|
134
136
|
const sUrl = sCurrentUrl.split(URL_KEY)[0];
|
|
135
|
-
|
|
137
|
+
this._redirectToUrl(sUrl);
|
|
136
138
|
}
|
|
137
139
|
return Promise.resolve();
|
|
138
|
-
});
|
|
140
|
+
}.bind(this));
|
|
139
141
|
} else if (sCurrentUrl.indexOf(PARAM_SAP_CARD_ID) > -1) {
|
|
140
142
|
const sUrl = sCurrentUrl.split(PARAM_SAP_CARD_ID)[0];
|
|
141
|
-
|
|
143
|
+
this._redirectToUrl(sUrl);
|
|
142
144
|
} else if (sCurrentUrl.indexOf(PARAM_SAP_CARD_TITLE) > -1) {
|
|
143
|
-
const UshellContainer = sap.ui.require("sap/ushell/Container");
|
|
144
145
|
const sUrl = sCurrentUrl.split(PARAM_SAP_CARD_TITLE)[0];
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
window.location.replace(sUrl);
|
|
150
|
-
}
|
|
146
|
+
await this._redirectBasedOnRuntime(sUrl);
|
|
147
|
+
} else if (bTeamsModeActive && sCurrentUrl.includes(PARAM_SAP_CARD_INFO)) {
|
|
148
|
+
const sUrl = sCurrentUrl.split(PARAM_SAP_CARD_INFO)[0];
|
|
149
|
+
await this._redirectBasedOnRuntime(sUrl);
|
|
151
150
|
}
|
|
152
151
|
return Promise.resolve();
|
|
153
152
|
}.bind(this));
|
|
154
153
|
};
|
|
155
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Handles URL redirection according to the runtime environment.
|
|
157
|
+
*
|
|
158
|
+
* - In AppRuntime (e.g., BTP Fiori App in S/Cube), updates the top-level URL.
|
|
159
|
+
* - Otherwise, performs a standard window location redirect.
|
|
160
|
+
*
|
|
161
|
+
* @param {string} sUrl - The target URL for redirection.
|
|
162
|
+
* @private
|
|
163
|
+
*/
|
|
164
|
+
CollaborationHelper._redirectBasedOnRuntime = async function (sUrl) {
|
|
165
|
+
const UshellContainer = sap.ui.require("sap/ushell/Container");
|
|
166
|
+
|
|
167
|
+
// Get indication is if we are in AppRuntime (for special use cases handling, e.g. BTP Fiori App in S/Cube)
|
|
168
|
+
if (UshellContainer && UshellContainer.inAppRuntime()) {
|
|
169
|
+
await CollaborationMessageConsumer.updateTopLevelURLforAppRuntime(sUrl);
|
|
170
|
+
} else {
|
|
171
|
+
const targetUrl = this._stripTeamsParams(sUrl);
|
|
172
|
+
this._redirectToUrl(targetUrl);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Removes 'sap-ushell-config' and 'sap-collaboration-teams' query parameters
|
|
178
|
+
* from the given URL while preserving the hash fragment.
|
|
179
|
+
*
|
|
180
|
+
* @param {string} sUrl - The original full URL
|
|
181
|
+
* @returns {string} - The cleaned URL
|
|
182
|
+
* @private
|
|
183
|
+
*/
|
|
184
|
+
CollaborationHelper._removeTeamsParams = function (sUrl) {
|
|
185
|
+
try {
|
|
186
|
+
const urlParts = sUrl.split("#");
|
|
187
|
+
const baseUrl = urlParts[0];
|
|
188
|
+
const hashPart = urlParts[1] ? "#" + urlParts[1] : "";
|
|
189
|
+
|
|
190
|
+
const [path, queryString] = baseUrl.split("?");
|
|
191
|
+
if (!queryString) {
|
|
192
|
+
return sUrl;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const params = new URLSearchParams(queryString);
|
|
196
|
+
params.delete("sap-ushell-config");
|
|
197
|
+
params.delete("sap-collaboration-teams");
|
|
198
|
+
|
|
199
|
+
const newBaseUrl = params.toString()
|
|
200
|
+
? `${path}?${params.toString()}`
|
|
201
|
+
: path;
|
|
202
|
+
|
|
203
|
+
return newBaseUrl + hashPart;
|
|
204
|
+
} catch (e) {
|
|
205
|
+
return sUrl;
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* If the current window is the top window, we assume it's not running inside an iframe, e.g. Microsoft Teams.
|
|
211
|
+
* In this case, we remove the Teams parameters from the URL.
|
|
212
|
+
*
|
|
213
|
+
* @param {string} sUrl The URL to be cleaned of Teams parameters.
|
|
214
|
+
* @returns {string} - The cleaned URL
|
|
215
|
+
* @private
|
|
216
|
+
*/
|
|
217
|
+
CollaborationHelper._stripTeamsParams = function (sUrl) {
|
|
218
|
+
if (this._isTopWindow()) {
|
|
219
|
+
return this._removeTeamsParams(sUrl);
|
|
220
|
+
}
|
|
221
|
+
return sUrl;
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Determines whether the current window is the top-level window.
|
|
226
|
+
* This is typically used to detect if the application is running inside an iframe (e.g., in Microsoft Teams).
|
|
227
|
+
*
|
|
228
|
+
* @returns {boolean} - Returns true if the current window is not inside an iframe, false otherwise.
|
|
229
|
+
* @private
|
|
230
|
+
*/
|
|
231
|
+
CollaborationHelper._isTopWindow = function () {
|
|
232
|
+
return window.self === window.top;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Redirects the browser to a specified URL.
|
|
237
|
+
*
|
|
238
|
+
* @private
|
|
239
|
+
* @param {string} sUrl - The target URL to redirect to
|
|
240
|
+
*/
|
|
241
|
+
CollaborationHelper._redirectToUrl = function(sUrl) {
|
|
242
|
+
window.location.replace(sUrl);
|
|
243
|
+
};
|
|
244
|
+
|
|
156
245
|
/**
|
|
157
246
|
* Hides the avatar of the user if the app is running in the Microsoft Teams application.
|
|
247
|
+
* @param {boolean} bTeamsModeActive Indicates if Teams mode is active
|
|
158
248
|
* @private
|
|
159
249
|
* @ui5-restricted sap.suite.suite-ui-commons
|
|
160
250
|
* @experimental since 1.108
|
|
161
251
|
*/
|
|
162
|
-
CollaborationHelper._hideAvatarFromShellbar = function () {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
oAvatar.setVisible(false);
|
|
168
|
-
}
|
|
252
|
+
CollaborationHelper._hideAvatarFromShellbar = function (bTeamsModeActive) {
|
|
253
|
+
if (bTeamsModeActive) {
|
|
254
|
+
var oAvatar = Element.getElementById('userActionsMenuHeaderButton');
|
|
255
|
+
if (oAvatar) {
|
|
256
|
+
oAvatar.setVisible(false);
|
|
169
257
|
}
|
|
170
|
-
}
|
|
258
|
+
}
|
|
171
259
|
};
|
|
172
260
|
|
|
173
261
|
/**
|