@sapui5/sap.suite.ui.commons 1.144.0 → 1.146.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 -1
- package/src/sap/suite/ui/commons/AriaProperties.js +1 -1
- package/src/sap/suite/ui/commons/CalculationBuilder.js +35 -6
- 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/CalculationBuilderInput.js +11 -0
- 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 -3
- package/src/sap/suite/ui/commons/ControlProxy.js +7 -4
- 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 +79 -75
- package/src/sap/suite/ui/commons/ProcessFlowRenderer.js +3 -0
- package/src/sap/suite/ui/commons/Timeline.js +9 -0
- package/src/sap/suite/ui/commons/TimelineNavigator.js +37 -5
- package/src/sap/suite/ui/commons/TimelineRenderer.js +3 -3
- package/src/sap/suite/ui/commons/collaboration/BaseHelperService.js +0 -1
- package/src/sap/suite/ui/commons/collaboration/CollaborationHelper.js +0 -3
- package/src/sap/suite/ui/commons/collaboration/CollaborationManagerService.js +0 -1
- package/src/sap/suite/ui/commons/collaboration/ContactHelper.js +12 -1
- package/src/sap/suite/ui/commons/collaboration/ContactPopover.fragment.xml +4 -1
- package/src/sap/suite/ui/commons/collaboration/MinimalContactPopover.fragment.xml +8 -5
- package/src/sap/suite/ui/commons/collaboration/ServiceContainer.js +12 -2
- package/src/sap/suite/ui/commons/collaboration/TeamsHelperService.js +0 -6
- package/src/sap/suite/ui/commons/collaboration/channels/MessageChannel.js +0 -2
- package/src/sap/suite/ui/commons/collaboration/flpplugins/msplugin/Component-preload.js +1 -1
- package/src/sap/suite/ui/commons/collaboration/flpplugins/msplugin/Component.js +1 -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 +9 -6
- 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 +25 -1
- package/src/sap/suite/ui/commons/messagebundle.properties +20 -9
- package/src/sap/suite/ui/commons/messagebundle_ar.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_bg.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_ca.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_cnr.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_cs.properties +23 -2
- package/src/sap/suite/ui/commons/messagebundle_cy.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_da.properties +23 -2
- package/src/sap/suite/ui/commons/messagebundle_de.properties +36 -15
- package/src/sap/suite/ui/commons/messagebundle_el.properties +25 -4
- package/src/sap/suite/ui/commons/messagebundle_en.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_en_GB.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_en_US_saprigi.properties +11 -5
- package/src/sap/suite/ui/commons/messagebundle_es.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_es_MX.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_et.properties +23 -2
- package/src/sap/suite/ui/commons/messagebundle_fi.properties +23 -2
- package/src/sap/suite/ui/commons/messagebundle_fr.properties +32 -11
- package/src/sap/suite/ui/commons/messagebundle_fr_CA.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_hi.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_hr.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_hu.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_id.properties +25 -4
- package/src/sap/suite/ui/commons/messagebundle_it.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_iw.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_ja.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_kk.properties +25 -4
- package/src/sap/suite/ui/commons/messagebundle_ko.properties +23 -2
- package/src/sap/suite/ui/commons/messagebundle_lt.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_lv.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_mk.properties +23 -2
- package/src/sap/suite/ui/commons/messagebundle_ms.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_nl.properties +23 -2
- package/src/sap/suite/ui/commons/messagebundle_no.properties +25 -4
- package/src/sap/suite/ui/commons/messagebundle_pl.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_pt.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_pt_PT.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_ro.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_ru.properties +25 -4
- package/src/sap/suite/ui/commons/messagebundle_sh.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_sk.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_sl.properties +23 -2
- package/src/sap/suite/ui/commons/messagebundle_sr.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_sv.properties +23 -2
- package/src/sap/suite/ui/commons/messagebundle_th.properties +25 -4
- package/src/sap/suite/ui/commons/messagebundle_tr.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_uk.properties +27 -6
- package/src/sap/suite/ui/commons/messagebundle_vi.properties +26 -5
- package/src/sap/suite/ui/commons/messagebundle_zh_CN.properties +24 -3
- package/src/sap/suite/ui/commons/messagebundle_zh_TW.properties +26 -5
- package/src/sap/suite/ui/commons/networkgraph/Graph.js +49 -22
- package/src/sap/suite/ui/commons/networkgraph/KeyboardNavigator.js +45 -4
- package/src/sap/suite/ui/commons/networkgraph/Line.js +157 -11
- package/src/sap/suite/ui/commons/networkgraph/Node.js +289 -86
- package/src/sap/suite/ui/commons/networkgraph/Utils.js +239 -10
- package/src/sap/suite/ui/commons/networkgraph/layout/NoopLayout.js +55 -8
- package/src/sap/suite/ui/commons/networkgraph/util/DependencyLayoutHelper.js +156 -74
- package/src/sap/suite/ui/commons/networkgraph/util/DragDropManager.js +52 -50
- package/src/sap/suite/ui/commons/networkgraph/util/PortManager.js +14 -6
- 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/NetworkLine.less +26 -5
- package/src/sap/suite/ui/commons/windowmessages/CollaborationMessageConsumer.js +3 -3
package/package.json
CHANGED
|
@@ -134,7 +134,7 @@ sap.ui.define([
|
|
|
134
134
|
* @extends sap.ui.core.Control
|
|
135
135
|
*
|
|
136
136
|
* @author SAP SE
|
|
137
|
-
* @version 1.
|
|
137
|
+
* @version 1.146.0
|
|
138
138
|
* @since 1.56.0
|
|
139
139
|
*
|
|
140
140
|
* @constructor
|
|
@@ -345,7 +345,19 @@ sap.ui.define([
|
|
|
345
345
|
/**
|
|
346
346
|
* This event is fired after the expression is validated.
|
|
347
347
|
*/
|
|
348
|
-
afterValidation: {}
|
|
348
|
+
afterValidation: {},
|
|
349
|
+
/**
|
|
350
|
+
* This event is triggered when the focus leaves the input field.
|
|
351
|
+
* @param {string} value The current expression value
|
|
352
|
+
* @param {int} position The cursor position in the expression
|
|
353
|
+
* @since 1.146
|
|
354
|
+
*/
|
|
355
|
+
focusChange: {
|
|
356
|
+
parameters: {
|
|
357
|
+
value: "String",
|
|
358
|
+
position: "int"
|
|
359
|
+
}
|
|
360
|
+
}
|
|
349
361
|
}
|
|
350
362
|
},
|
|
351
363
|
renderer: {
|
|
@@ -456,6 +468,12 @@ sap.ui.define([
|
|
|
456
468
|
|
|
457
469
|
this._enableOrDisableExpandAllButton();
|
|
458
470
|
this.fireChange();
|
|
471
|
+
}.bind(this),
|
|
472
|
+
focusChange: function (oEvent) {
|
|
473
|
+
this.fireFocusChange({
|
|
474
|
+
value: oEvent.getParameter("value"),
|
|
475
|
+
position: oEvent.getParameter("position")
|
|
476
|
+
});
|
|
459
477
|
}.bind(this)
|
|
460
478
|
});
|
|
461
479
|
this.addDependent(this._oInput);
|
|
@@ -772,9 +790,12 @@ sap.ui.define([
|
|
|
772
790
|
|
|
773
791
|
CalculationBuilder.prototype._getFunctionDefinition = function (sKey) {
|
|
774
792
|
sKey = (sKey || "").toLowerCase();
|
|
775
|
-
|
|
793
|
+
// Check custom functions first, then fall back to default FunctionsMap
|
|
794
|
+
// This ensures custom functions take precedence when they have the same key as defaults
|
|
795
|
+
var oCustomFunction = jQuery.grep(this.getFunctions(), function (oFunction) {
|
|
776
796
|
return oFunction.getKey().toLowerCase() === sKey;
|
|
777
797
|
})[0];
|
|
798
|
+
return oCustomFunction || FunctionsMap[sKey];
|
|
778
799
|
};
|
|
779
800
|
|
|
780
801
|
CalculationBuilder.prototype._getFunctionDescription = function (oFunction) {
|
|
@@ -865,10 +886,17 @@ sap.ui.define([
|
|
|
865
886
|
return ItemType.Variable;
|
|
866
887
|
}
|
|
867
888
|
|
|
868
|
-
if
|
|
889
|
+
// Check if default function exists and is not disabled
|
|
890
|
+
var bDefaultExistsInMap = this._findInArray(sKey, Object.keys(FunctionType));
|
|
891
|
+
var bIsDefaultDisabled = !!this._mDisabledTokens[sKey];
|
|
892
|
+
|
|
893
|
+
// If default function exists and is NOT disabled, return Function type
|
|
894
|
+
// (enabled defaults take precedence over custom functions with same key)
|
|
895
|
+
if (bDefaultExistsInMap && !bIsDefaultDisabled) {
|
|
869
896
|
return ItemType.Function;
|
|
870
897
|
}
|
|
871
898
|
|
|
899
|
+
// If default is disabled or doesn't exist, check for custom function
|
|
872
900
|
if (this._findInChildren(sKey, "Function")) {
|
|
873
901
|
return ItemType.CustomFunction;
|
|
874
902
|
}
|
|
@@ -1071,8 +1099,9 @@ sap.ui.define([
|
|
|
1071
1099
|
var aFunctions = [];
|
|
1072
1100
|
|
|
1073
1101
|
Object.keys(FunctionsMap).forEach(function (sKey) {
|
|
1074
|
-
// Only add built-in function if it's allowed
|
|
1075
|
-
|
|
1102
|
+
// Only add built-in function if it's allowed (not disabled)
|
|
1103
|
+
// bCheckCustomOverride=false ensures disabled functions are excluded even if custom override exists
|
|
1104
|
+
if (FunctionsMap[sKey].allowed && this._isTokenAllowed(sKey, false)) {
|
|
1076
1105
|
aFunctions.push(this._createFunctionObject(FunctionsMap[sKey]));
|
|
1077
1106
|
}
|
|
1078
1107
|
}.bind(this));
|
|
@@ -110,6 +110,12 @@ sap.ui.define([
|
|
|
110
110
|
position: "integer",
|
|
111
111
|
validate: "boolean"
|
|
112
112
|
}
|
|
113
|
+
},
|
|
114
|
+
focusChange: {
|
|
115
|
+
parameters: {
|
|
116
|
+
value: "String",
|
|
117
|
+
position: "int"
|
|
118
|
+
}
|
|
113
119
|
}
|
|
114
120
|
}
|
|
115
121
|
},
|
|
@@ -987,6 +993,11 @@ sap.ui.define([
|
|
|
987
993
|
} else {
|
|
988
994
|
this._showErrorText(false);
|
|
989
995
|
this._validate(false);
|
|
996
|
+
var sCurrentValue = fnGetNodesText(this.$("input")[0], true);
|
|
997
|
+
this.fireFocusChange({
|
|
998
|
+
value: sCurrentValue,
|
|
999
|
+
position: this._iCarretPosition
|
|
1000
|
+
});
|
|
990
1001
|
}
|
|
991
1002
|
};
|
|
992
1003
|
|
|
@@ -115,12 +115,10 @@ sap.ui.define([
|
|
|
115
115
|
* @extends sap.m.Dialog
|
|
116
116
|
*
|
|
117
117
|
* @namespace sap.suite.ui.commons.CloudFilePicker
|
|
118
|
-
* @experimental
|
|
119
|
-
* @since 1.101
|
|
120
118
|
* @class
|
|
121
119
|
* @public
|
|
122
120
|
* @internal
|
|
123
|
-
* @version 1.
|
|
121
|
+
* @version 1.146.0
|
|
124
122
|
*/
|
|
125
123
|
var CloudFilePicker = Dialog.extend("sap.suite.ui.commons.CloudFilePicker", {
|
|
126
124
|
metadata: {
|
|
@@ -30,11 +30,14 @@ sap.ui.define([
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
|
-
renderer:
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
renderer: {
|
|
34
|
+
apiVersion: 2,
|
|
35
|
+
render (oRm, oProxy) {
|
|
36
|
+
var sItem = oProxy.getAssociation("control"),
|
|
37
|
+
oItem = Element.getElementById(sItem);
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
oRm.renderControl(oItem);
|
|
40
|
+
}
|
|
38
41
|
}
|
|
39
42
|
});
|
|
40
43
|
|
|
@@ -404,7 +404,7 @@ sap.ui.define([
|
|
|
404
404
|
ResizeHandler.deregister(this._resizeRegId);
|
|
405
405
|
}
|
|
406
406
|
|
|
407
|
-
if(this._oInvisibleText) {
|
|
407
|
+
if (this._oInvisibleText) {
|
|
408
408
|
this._oInvisibleText.destroy();
|
|
409
409
|
}
|
|
410
410
|
|
|
@@ -547,7 +547,7 @@ sap.ui.define([
|
|
|
547
547
|
* @param {jQuery.Event} oEvent The event object of the triggered event
|
|
548
548
|
*/
|
|
549
549
|
ProcessFlow.prototype.ontouchend = function (oEvent) {
|
|
550
|
-
if ( (oEvent?.target && oEvent.target.id.indexOf("arrowScroll") !== -1) ||
|
|
550
|
+
if ( (oEvent?.target && oEvent.target.id.indexOf("arrowScroll") !== -1) ||
|
|
551
551
|
(oEvent?.srcControl && oEvent.srcControl.getId().indexOf("arrowScroll") !== -1) ) {
|
|
552
552
|
this._onArrowClick(oEvent);
|
|
553
553
|
} else {
|
|
@@ -2427,6 +2427,10 @@ sap.ui.define([
|
|
|
2427
2427
|
*/
|
|
2428
2428
|
ProcessFlow.InternalMatrixCalculation.prototype._calculatePathInMatrix = function (originalMatrix) {
|
|
2429
2429
|
var oCurrentElement = null;
|
|
2430
|
+
// Track which parent has already drawn an upward path to a specific lane (column)
|
|
2431
|
+
// Key: parentNodeId + "_" + laneColumn, Value: { minRow, maxRow }
|
|
2432
|
+
this._parentUpwardPaths = {};
|
|
2433
|
+
|
|
2430
2434
|
for (var key in this.nodePositions) {
|
|
2431
2435
|
if (this.nodePositions.hasOwnProperty(key)) {
|
|
2432
2436
|
oCurrentElement = this.nodePositions[key];
|
|
@@ -2470,61 +2474,82 @@ sap.ui.define([
|
|
|
2470
2474
|
"Coordinates : '" + parentX + "','" + parentY + "','" + childrenX + "','" + childrenY + "'"
|
|
2471
2475
|
];
|
|
2472
2476
|
} else if (iVertical <= -1) {
|
|
2473
|
-
//
|
|
2474
|
-
var
|
|
2475
|
-
var
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
var
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2477
|
+
// Going up - child is above parent
|
|
2478
|
+
var sParentNodeId = nodeParent.c.nodeId;
|
|
2479
|
+
var iTargetLaneColumn = childrenY - 1; // The column before the target lane where vertical line goes
|
|
2480
|
+
|
|
2481
|
+
// Check if THIS PARENT has already drawn an upward path to THIS LANE
|
|
2482
|
+
var sParentLaneKey = sParentNodeId + "_" + iTargetLaneColumn;
|
|
2483
|
+
var bParentAlreadyHasPath = this._parentUpwardPaths && this._parentUpwardPaths[sParentLaneKey];
|
|
2484
|
+
|
|
2485
|
+
if (bParentAlreadyHasPath) {
|
|
2486
|
+
// This parent already has a vertical line to this lane column
|
|
2487
|
+
// Just extend the vertical line to reach this new target
|
|
2488
|
+
var existingPath = this._parentUpwardPaths[sParentLaneKey];
|
|
2489
|
+
|
|
2490
|
+
// Extend vertical line if needed (to reach the new target row)
|
|
2491
|
+
if (childrenX < existingPath.minRow) {
|
|
2492
|
+
originalMatrix = this._writeVerticalLine(originalMatrix, existingPath.minRow, childrenX, iTargetLaneColumn, nodeParent, nodeChildren);
|
|
2493
|
+
existingPath.minRow = childrenX;
|
|
2494
|
+
}
|
|
2495
|
+
|
|
2496
|
+
// Add horizontal connection from vertical line to the target
|
|
2497
|
+
originalMatrix[childrenX][iTargetLaneColumn] =
|
|
2498
|
+
this._createConnectionElement(originalMatrix[childrenX][iTargetLaneColumn],
|
|
2499
|
+
ProcessFlow._cellEdgeConstants.UR, nodeParent,
|
|
2500
|
+
nodeChildren, true);
|
|
2501
|
+
} else {
|
|
2502
|
+
// First connection from this parent to this lane
|
|
2503
|
+
// Draw a new path using the target lane column for the vertical line
|
|
2504
|
+
var iPositionY = iTargetLaneColumn;
|
|
2505
|
+
|
|
2506
|
+
originalMatrix[parentX][iPositionY] = this._createConnectionElement(
|
|
2507
|
+
originalMatrix[parentX][iPositionY], ProcessFlow._cellEdgeConstants.LU,
|
|
2508
|
+
nodeParent, nodeChildren, false);
|
|
2486
2509
|
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2510
|
+
//Going up to the children.
|
|
2511
|
+
originalMatrix = this._writeVerticalLine(originalMatrix, parentX, childrenX, iPositionY, nodeParent, nodeChildren);
|
|
2512
|
+
|
|
2513
|
+
originalMatrix[childrenX][iPositionY] =
|
|
2514
|
+
this._createConnectionElement(originalMatrix[childrenX][iPositionY],
|
|
2515
|
+
ProcessFlow._cellEdgeConstants.UR, nodeParent,
|
|
2516
|
+
nodeChildren, true);
|
|
2517
|
+
|
|
2518
|
+
// Draw horizontal line from parent to the vertical line column
|
|
2519
|
+
originalMatrix = this._writeHorizontalLine(originalMatrix, parentX, parentY + 1, iPositionY + 1, nodeParent, nodeChildren);
|
|
2520
|
+
|
|
2521
|
+
// Store that this parent now has an upward path to this lane column
|
|
2522
|
+
|
|
2523
|
+
this._parentUpwardPaths[sParentLaneKey] = {
|
|
2524
|
+
minRow: childrenX,
|
|
2525
|
+
maxRow: parentX,
|
|
2526
|
+
column: iPositionY
|
|
2527
|
+
};
|
|
2500
2528
|
}
|
|
2501
|
-
originalMatrix = this._writeHorizontalLine(originalMatrix, iPositionX, iStartY, iEndY, nodeParent, nodeChildren);
|
|
2502
2529
|
} else if (iVertical === 0) {
|
|
2503
2530
|
originalMatrix = this._writeHorizontalLine(originalMatrix, parentX, parentY + 1, childrenY, nodeParent, nodeChildren);
|
|
2504
|
-
} else if (iVertical
|
|
2505
|
-
//
|
|
2506
|
-
//
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
//
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
nodeChildren, (parentY + 1) === (childrenY - 1));
|
|
2527
|
-
originalMatrix = this._writeHorizontalLine(originalMatrix, childrenX, parentY + 2, childrenY, nodeParent, nodeChildren);
|
|
2531
|
+
} else if (iVertical >= 1) {
|
|
2532
|
+
// Going down - child is below parent
|
|
2533
|
+
// Use the column before the target lane for the vertical drop (similar to upward case)
|
|
2534
|
+
var iTargetLaneColumnDown = childrenY - 1;
|
|
2535
|
+
|
|
2536
|
+
// Draw horizontal line from parent to the vertical drop column
|
|
2537
|
+
originalMatrix = this._writeHorizontalLine(originalMatrix, parentX, parentY + 1, iTargetLaneColumnDown + 1, nodeParent, nodeChildren);
|
|
2538
|
+
|
|
2539
|
+
// Add LD corner (left to down) at parent row
|
|
2540
|
+
originalMatrix[parentX][iTargetLaneColumnDown] = this._createConnectionElement(
|
|
2541
|
+
originalMatrix[parentX][iTargetLaneColumnDown], ProcessFlow._cellEdgeConstants.LD,
|
|
2542
|
+
nodeParent, nodeChildren, false);
|
|
2543
|
+
|
|
2544
|
+
// Draw vertical line down to child row (if more than 1 row down)
|
|
2545
|
+
if (iVertical > 1) {
|
|
2546
|
+
originalMatrix = this._writeVerticalLine(originalMatrix, childrenX, parentX, iTargetLaneColumnDown, nodeParent, nodeChildren);
|
|
2547
|
+
}
|
|
2548
|
+
|
|
2549
|
+
// Add DR corner (down to right) at child row - this is the arrow
|
|
2550
|
+
originalMatrix[childrenX][iTargetLaneColumnDown] = this._createConnectionElement(
|
|
2551
|
+
originalMatrix[childrenX][iTargetLaneColumnDown], ProcessFlow._cellEdgeConstants.DR,
|
|
2552
|
+
nodeParent, nodeChildren, true);
|
|
2528
2553
|
}
|
|
2529
2554
|
return originalMatrix;
|
|
2530
2555
|
};
|
|
@@ -2549,27 +2574,6 @@ sap.ui.define([
|
|
|
2549
2574
|
return originalMatrix;
|
|
2550
2575
|
};
|
|
2551
2576
|
|
|
2552
|
-
/**
|
|
2553
|
-
* Checks if the horizontal line is possible.
|
|
2554
|
-
*
|
|
2555
|
-
* @private
|
|
2556
|
-
* @param {Object[]} originalMatrix The original matrix
|
|
2557
|
-
* @param {int} row The index of the row
|
|
2558
|
-
* @param {int} firstColumn The index of the first column
|
|
2559
|
-
* @param {int} lastColumn The index of the last column
|
|
2560
|
-
* @returns {boolean} Function return true, if the path is free, otherwise false
|
|
2561
|
-
*/
|
|
2562
|
-
ProcessFlow.InternalMatrixCalculation.prototype._checkIfHorizontalLinePossible = function (originalMatrix, row, firstColumn, lastColumn) {
|
|
2563
|
-
var bLinePossible = true;
|
|
2564
|
-
for (var i = firstColumn; i < lastColumn; i++) {
|
|
2565
|
-
if (originalMatrix[row][i] instanceof ProcessFlow.NodeElement) {
|
|
2566
|
-
bLinePossible = false;
|
|
2567
|
-
break;
|
|
2568
|
-
}
|
|
2569
|
-
}
|
|
2570
|
-
return bLinePossible;
|
|
2571
|
-
};
|
|
2572
|
-
|
|
2573
2577
|
/**
|
|
2574
2578
|
* Function calculated and writes horizontal line.
|
|
2575
2579
|
*
|
|
@@ -3505,7 +3509,7 @@ sap.ui.define([
|
|
|
3505
3509
|
*/
|
|
3506
3510
|
ProcessFlow.prototype._getScrollingArrow = function (direction) {
|
|
3507
3511
|
var sSrc;
|
|
3508
|
-
var sAltText;
|
|
3512
|
+
var sAltText;
|
|
3509
3513
|
|
|
3510
3514
|
if (Device.system.desktop) {
|
|
3511
3515
|
//Use navigation arrows on desktop and win8 combi devices.
|
|
@@ -72,6 +72,9 @@ sap.ui.define([
|
|
|
72
72
|
aLanePositionNodes = oControl._getOrCreateLaneMap();
|
|
73
73
|
aConnectionsBetweenNodes = oControl._getConnectionsMap();
|
|
74
74
|
} catch (exc) {
|
|
75
|
+
oRm.close("div"); //Scroll content.
|
|
76
|
+
oRm.close("div"); //Scroll container.
|
|
77
|
+
oRm.close("div"); //Whole control.
|
|
75
78
|
oControl._handleException(exc);
|
|
76
79
|
return;
|
|
77
80
|
}
|
|
@@ -2587,6 +2587,15 @@ sap.ui.define([
|
|
|
2587
2587
|
selectedItem: aFocusedItems[0],
|
|
2588
2588
|
userAction: oEvent.mParameters.event && oEvent.mParameters.event.type === "mousedown"
|
|
2589
2589
|
});
|
|
2590
|
+
if (!this._isVertical() && oFocusedDomRef){
|
|
2591
|
+
if (oFocusedDomRef.scrollIntoView) {
|
|
2592
|
+
oFocusedDomRef.scrollIntoView({
|
|
2593
|
+
behavior: 'smooth',
|
|
2594
|
+
block: 'nearest',
|
|
2595
|
+
inline: 'nearest'
|
|
2596
|
+
});
|
|
2597
|
+
}
|
|
2598
|
+
}
|
|
2590
2599
|
}
|
|
2591
2600
|
}, this);
|
|
2592
2601
|
this.oItemNavigation.attachEvent("Enter", function (oEvent) {
|
|
@@ -7,13 +7,14 @@
|
|
|
7
7
|
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
"sap/ui/thirdparty/jquery",
|
|
10
|
+
"./library",
|
|
10
11
|
"sap/ui/core/delegate/ItemNavigation",
|
|
11
12
|
"sap/base/assert",
|
|
12
13
|
"sap/ui/dom/containsOrEquals",
|
|
13
14
|
"sap/ui/events/KeyCodes"
|
|
14
|
-
], function (jQuery, ItemNavigation, assert, containsOrEquals, KeyCodes) {
|
|
15
|
+
], function (jQuery, library, ItemNavigation, assert, containsOrEquals, KeyCodes) {
|
|
15
16
|
"use strict";
|
|
16
|
-
|
|
17
|
+
var TimelineAxisOrientation = library.TimelineAxisOrientation;
|
|
17
18
|
function stringEndsWith(sString, sPattern) {
|
|
18
19
|
var iDiff = sString.length - sPattern.length;
|
|
19
20
|
return iDiff >= 0 && sString.lastIndexOf(sPattern) === iDiff;
|
|
@@ -110,10 +111,37 @@ sap.ui.define([
|
|
|
110
111
|
*/
|
|
111
112
|
TimelineNavigator.prototype.setItemDomRefs = function (aItemDomRefs) {
|
|
112
113
|
assert(Array.isArray(aItemDomRefs), "aItemDomRefs must be an array of DOM elements");
|
|
113
|
-
|
|
114
|
+
var bIsVertical = false;
|
|
115
|
+
if (this.oDomRef) {
|
|
116
|
+
var $timeline = jQuery(this.oDomRef).closest(".sapSuiteUiCommonsTimeline");
|
|
117
|
+
var oTimelineControl = $timeline.control(0);
|
|
118
|
+
if (oTimelineControl) {
|
|
119
|
+
var sOrientation = oTimelineControl.getAxisOrientation();
|
|
120
|
+
bIsVertical = (sOrientation === TimelineAxisOrientation.Vertical);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
var aValidItems = [];
|
|
124
|
+
for (var j = 0; j < aItemDomRefs.length; j++) {
|
|
125
|
+
var oDomRef = aItemDomRefs[j];
|
|
126
|
+
if (oDomRef) {
|
|
127
|
+
var sClass = oDomRef.className || "";
|
|
128
|
+
var sTag = oDomRef.tagName || "";
|
|
129
|
+
var bIsTimelineItem = sClass.indexOf("sapSuiteUiCommonsTimelineItemOutline") >= 0;
|
|
130
|
+
var bIsGroupHeader = sClass.indexOf("sapSuiteUiCommonsTimelineGroupHeaderMainWrapper") >= 0;
|
|
131
|
+
var bIsButton = sTag === "BUTTON" || sClass.indexOf("sapMBtn") >= 0;
|
|
132
|
+
|
|
133
|
+
if (bIsTimelineItem || bIsGroupHeader) {
|
|
134
|
+
aValidItems.push(oDomRef);
|
|
135
|
+
}
|
|
136
|
+
else if (bIsButton && bIsVertical) {
|
|
137
|
+
aValidItems.push(oDomRef);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
114
141
|
|
|
115
|
-
|
|
116
|
-
|
|
142
|
+
this.aItemDomRefs = aValidItems;
|
|
143
|
+
if (this.iFocusedIndex > aValidItems.length - 1) {
|
|
144
|
+
this.iFocusedIndex = aValidItems.length - 1;
|
|
117
145
|
}
|
|
118
146
|
|
|
119
147
|
// in nested ItemNavigation the tabindex must only be set if it's the focused item of the parent ItemNavigation
|
|
@@ -157,6 +185,10 @@ sap.ui.define([
|
|
|
157
185
|
*/
|
|
158
186
|
TimelineNavigator.prototype.setItemsTabindex = function () {
|
|
159
187
|
|
|
188
|
+
if (!this.aItemDomRefs) {
|
|
189
|
+
return this;
|
|
190
|
+
}
|
|
191
|
+
|
|
160
192
|
for (var i = 0; i < this.aItemDomRefs.length; i++) {
|
|
161
193
|
if (this.aItemDomRefs[i]) { // separators return null here
|
|
162
194
|
var $Item = jQuery(this.aItemDomRefs[i]);
|
|
@@ -117,9 +117,9 @@ sap.ui.define([
|
|
|
117
117
|
oItem, sPlacementLine, bIsEven, bIsGroupHeader, oNextItem, cParent,
|
|
118
118
|
bIsMaxed = oTimeline._isMaxed(),
|
|
119
119
|
bLastGroup,
|
|
120
|
-
fnCreateUL = function() {
|
|
120
|
+
fnCreateUL = function(sRole) {
|
|
121
121
|
var eUl = new HtmlElement("ul");
|
|
122
|
-
eUl.setAttribute("role", "list");
|
|
122
|
+
eUl.setAttribute("role", sRole ? sRole : "list");
|
|
123
123
|
return eUl;
|
|
124
124
|
};
|
|
125
125
|
|
|
@@ -131,7 +131,7 @@ sap.ui.define([
|
|
|
131
131
|
eTopLine = new HtmlElement("div"),
|
|
132
132
|
eUlTop = fnCreateUL(),
|
|
133
133
|
eMiddleLine = new HtmlElement("div"),
|
|
134
|
-
eUlMid = fnCreateUL(),
|
|
134
|
+
eUlMid = fnCreateUL(oTimeline.getAxisOrientation() === TimelineAxisOrientation.Horizontal ? "presentation" : "list"),
|
|
135
135
|
eBottomLine = new HtmlElement("div"),
|
|
136
136
|
eUlBot = fnCreateUL(),
|
|
137
137
|
eLeftScroller = new HtmlElement("div"),
|
|
@@ -28,7 +28,6 @@ sap.ui.define(
|
|
|
28
28
|
/**
|
|
29
29
|
* CollaborationHelper for collaboration-related functionalities
|
|
30
30
|
* @namespace
|
|
31
|
-
* @since 1.108
|
|
32
31
|
* @alias module:sap/suite/ui/commons/collaboration/CollaborationHelper
|
|
33
32
|
* @public
|
|
34
33
|
*/
|
|
@@ -43,7 +42,6 @@ sap.ui.define(
|
|
|
43
42
|
* `<protocol>/<hostname>#<semantic-object>&/sap-url-hash=<UUID>`
|
|
44
43
|
* @private
|
|
45
44
|
* @ui5-restricted sap.suite.suite-ui-commons
|
|
46
|
-
* @experimental since 1.108
|
|
47
45
|
*/
|
|
48
46
|
CollaborationHelper.compactHash = function(sUrl) {
|
|
49
47
|
const UshellContainer = sap.ui.require("sap/ushell/Container");
|
|
@@ -266,7 +264,6 @@ sap.ui.define(
|
|
|
266
264
|
* Hides the avatar of the user if the app is running in the Microsoft Teams application.
|
|
267
265
|
* @private
|
|
268
266
|
* @ui5-restricted sap.suite.suite-ui-commons
|
|
269
|
-
* @experimental since 1.108
|
|
270
267
|
*/
|
|
271
268
|
CollaborationHelper._hideAvatarFromShellbar = function() {
|
|
272
269
|
this.isTeamsModeActive().then(function(bIsActive) {
|
|
@@ -21,7 +21,6 @@ sap.ui.define([
|
|
|
21
21
|
* @alias module:sap/suite/ui/commons/collaboration/CollaborationManagerService
|
|
22
22
|
* @private
|
|
23
23
|
* @ui5-restricted
|
|
24
|
-
* @experimental Since 1.125
|
|
25
24
|
*/
|
|
26
25
|
|
|
27
26
|
var CollaborationManagerService = BaseHelperService.extend("sap.suite.ui.commons.collaboration.CollaborationManagerService");
|
|
@@ -14,13 +14,14 @@ sap.ui.define([
|
|
|
14
14
|
"sap/ui/core/Fragment",
|
|
15
15
|
"sap/ui/model/json/JSONModel",
|
|
16
16
|
"sap/m/library",
|
|
17
|
+
"sap/m/MessageToast",
|
|
17
18
|
"sap/ui/core/Lib",
|
|
18
19
|
"sap/ui/core/Core",
|
|
19
20
|
"sap/ui/model/resource/ResourceModel",
|
|
20
21
|
"./CollaborationContactInfoHelper",
|
|
21
22
|
"sap/ui/performance/trace/FESRHelper",
|
|
22
23
|
"sap/ui/core/Element"
|
|
23
|
-
], function(Controller, Fragment, JSONModel, mLibrary, Library, Core, ResourceModel, CollaborationContactInfoHelper, FESRHelper, Element) {
|
|
24
|
+
], function(Controller, Fragment, JSONModel, mLibrary, MessageToast, Library, Core, ResourceModel, CollaborationContactInfoHelper, FESRHelper, Element) {
|
|
24
25
|
"use strict";
|
|
25
26
|
|
|
26
27
|
var I18_BUNDLE = Library.getResourceBundleFor("sap.suite.ui.commons");
|
|
@@ -163,6 +164,7 @@ sap.ui.define([
|
|
|
163
164
|
loadMinimalContactPopover: function(sEmail, oParams) {
|
|
164
165
|
// oParams contains subject and body of the email
|
|
165
166
|
this.afterClose(); // Make sure, previously opened popup is closed if any
|
|
167
|
+
this.sEmail = sEmail;
|
|
166
168
|
var oJsonModel = new JSONModel({
|
|
167
169
|
"mail": sEmail,
|
|
168
170
|
"params": oParams
|
|
@@ -329,6 +331,15 @@ sap.ui.define([
|
|
|
329
331
|
|
|
330
332
|
Object.assign(oFullProfileData, oBadgeInfo);
|
|
331
333
|
return oFullProfileData;
|
|
334
|
+
},
|
|
335
|
+
|
|
336
|
+
handleCopyEmailPress: function() {
|
|
337
|
+
if (typeof window !== "undefined" && window.navigator && window.navigator.clipboard && window.navigator.clipboard.writeText) {
|
|
338
|
+
window.navigator.clipboard.writeText(this.sEmail);
|
|
339
|
+
MessageToast.show(I18_BUNDLE.getText("POPOVER_CONTACT_COPY_EMAIL_SUCCESS"));
|
|
340
|
+
} else {
|
|
341
|
+
MessageToast.show(I18_BUNDLE.getText("POPOVER_CONTACT_COPY_EMAIL_ERROR"));
|
|
342
|
+
}
|
|
332
343
|
}
|
|
333
344
|
});
|
|
334
345
|
});
|