@sapui5/sap.suite.ui.commons 1.144.0 → 1.145.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/suite/ui/commons/.library +1 -1
- package/src/sap/suite/ui/commons/AriaProperties.js +1 -1
- package/src/sap/suite/ui/commons/CalculationBuilder.js +8 -4
- 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 -3
- 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/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 +7 -0
- package/src/sap/suite/ui/commons/collaboration/ContactPopover.fragment.xml +4 -1
- package/src/sap/suite/ui/commons/collaboration/MinimalContactPopover.fragment.xml +2 -1
- 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 +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 +25 -1
- package/src/sap/suite/ui/commons/messagebundle.properties +16 -9
- package/src/sap/suite/ui/commons/messagebundle_ar.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_bg.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_ca.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_cnr.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_cs.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_cy.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_da.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_de.properties +30 -15
- package/src/sap/suite/ui/commons/messagebundle_el.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_en.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_en_GB.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_en_US_saprigi.properties +2 -0
- package/src/sap/suite/ui/commons/messagebundle_es.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_es_MX.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_et.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_fi.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_fr.properties +26 -11
- package/src/sap/suite/ui/commons/messagebundle_fr_CA.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_hi.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_hr.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_hu.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_id.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_it.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_iw.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_ja.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_kk.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_ko.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_lt.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_lv.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_mk.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_ms.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_nl.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_no.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_pl.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_pt.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_pt_PT.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_ro.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_ru.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_sh.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_sk.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_sl.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_sr.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_sv.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_th.properties +18 -3
- package/src/sap/suite/ui/commons/messagebundle_tr.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_uk.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_vi.properties +19 -4
- package/src/sap/suite/ui/commons/messagebundle_zh_CN.properties +17 -2
- package/src/sap/suite/ui/commons/messagebundle_zh_TW.properties +19 -4
- package/src/sap/suite/ui/commons/networkgraph/Graph.js +45 -16
- package/src/sap/suite/ui/commons/networkgraph/KeyboardNavigator.js +45 -4
- package/src/sap/suite/ui/commons/networkgraph/Line.js +52 -0
- package/src/sap/suite/ui/commons/networkgraph/Node.js +289 -86
- package/src/sap/suite/ui/commons/networkgraph/util/DependencyLayoutHelper.js +143 -70
- package/src/sap/suite/ui/commons/networkgraph/util/PortManager.js +2 -3
- 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/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.145.1
|
|
138
138
|
* @since 1.56.0
|
|
139
139
|
*
|
|
140
140
|
* @constructor
|
|
@@ -772,9 +772,12 @@ sap.ui.define([
|
|
|
772
772
|
|
|
773
773
|
CalculationBuilder.prototype._getFunctionDefinition = function (sKey) {
|
|
774
774
|
sKey = (sKey || "").toLowerCase();
|
|
775
|
-
|
|
775
|
+
// Check custom functions first, then fall back to default FunctionsMap
|
|
776
|
+
// This ensures custom functions take precedence when they have the same key as defaults
|
|
777
|
+
var oCustomFunction = jQuery.grep(this.getFunctions(), function (oFunction) {
|
|
776
778
|
return oFunction.getKey().toLowerCase() === sKey;
|
|
777
779
|
})[0];
|
|
780
|
+
return oCustomFunction || FunctionsMap[sKey];
|
|
778
781
|
};
|
|
779
782
|
|
|
780
783
|
CalculationBuilder.prototype._getFunctionDescription = function (oFunction) {
|
|
@@ -1071,8 +1074,9 @@ sap.ui.define([
|
|
|
1071
1074
|
var aFunctions = [];
|
|
1072
1075
|
|
|
1073
1076
|
Object.keys(FunctionsMap).forEach(function (sKey) {
|
|
1074
|
-
// Only add built-in function if it's allowed
|
|
1075
|
-
|
|
1077
|
+
// Only add built-in function if it's allowed (not disabled)
|
|
1078
|
+
// bCheckCustomOverride=false ensures disabled functions are excluded even if custom override exists
|
|
1079
|
+
if (FunctionsMap[sKey].allowed && this._isTokenAllowed(sKey, false)) {
|
|
1076
1080
|
aFunctions.push(this._createFunctionObject(FunctionsMap[sKey]));
|
|
1077
1081
|
}
|
|
1078
1082
|
}.bind(this));
|
|
@@ -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.145.1
|
|
124
122
|
*/
|
|
125
123
|
var CloudFilePicker = Dialog.extend("sap.suite.ui.commons.CloudFilePicker", {
|
|
126
124
|
metadata: {
|
|
@@ -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.
|
|
@@ -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");
|
|
@@ -163,6 +163,7 @@ sap.ui.define([
|
|
|
163
163
|
loadMinimalContactPopover: function(sEmail, oParams) {
|
|
164
164
|
// oParams contains subject and body of the email
|
|
165
165
|
this.afterClose(); // Make sure, previously opened popup is closed if any
|
|
166
|
+
this.sEmail = sEmail;
|
|
166
167
|
var oJsonModel = new JSONModel({
|
|
167
168
|
"mail": sEmail,
|
|
168
169
|
"params": oParams
|
|
@@ -329,6 +330,12 @@ sap.ui.define([
|
|
|
329
330
|
|
|
330
331
|
Object.assign(oFullProfileData, oBadgeInfo);
|
|
331
332
|
return oFullProfileData;
|
|
333
|
+
},
|
|
334
|
+
|
|
335
|
+
handleCopyEmailPress: function() {
|
|
336
|
+
if (typeof window !== "undefined" && window.navigator && window.navigator.clipboard && window.navigator.clipboard.writeText) {
|
|
337
|
+
window.navigator.clipboard.writeText(this.sEmail);
|
|
338
|
+
}
|
|
332
339
|
}
|
|
333
340
|
});
|
|
334
341
|
});
|
|
@@ -71,7 +71,10 @@
|
|
|
71
71
|
|
|
72
72
|
<VBox visible="{= !!${userData>/mail}}" class="sapUiTinyMarginTop sapUiTinyMarginBottom" >
|
|
73
73
|
<Label id="UserEmail" text="{i18n>POPOVER_CONTACT_SECTION_EMAIL}:" />
|
|
74
|
-
|
|
74
|
+
<HBox>
|
|
75
|
+
<Link text="{userData>/mail}" href="{path: 'userData>/mail', formatter: '.formatUri'}" ariaLabelledBy="UserEmail" class="sapUiTinyMarginEnd"/>
|
|
76
|
+
<core:Icon src="sap-icon://copy" press="handleCopyEmailPress" decorative="false" tooltip="{i18n>POPOVER_CONTACT_COPY_EMAIL}"/>
|
|
77
|
+
</HBox>
|
|
75
78
|
</VBox>
|
|
76
79
|
|
|
77
80
|
<VBox visible="{= !!${userData>/officelocation}}" class="sapUiTinyMarginTop sapUiTinyMarginBottom" >
|
|
@@ -50,7 +50,8 @@
|
|
|
50
50
|
<core:Icon
|
|
51
51
|
src="sap-icon://email">
|
|
52
52
|
</core:Icon>
|
|
53
|
-
<Link text="{userData>/mail}" href="{parts: [{path: 'userData>/mail'}, {path: 'userData>/params'}], formatter: '.formatUri'}" class="sapUiSmallMarginBegin sapUiTinyMarginBottom" />
|
|
53
|
+
<Link text="{userData>/mail}" href="{parts: [{path: 'userData>/mail'}, {path: 'userData>/params'}], formatter: '.formatUri'}" class="sapUiSmallMarginBegin sapUiTinyMarginBottom sapUiTinyMarginEnd" />
|
|
54
|
+
<core:Icon src="sap-icon://copy" press="handleCopyEmailPress" decorative="false" tooltip="{i18n>POPOVER_CONTACT_COPY_EMAIL}"/>
|
|
54
55
|
</HBox>
|
|
55
56
|
</VBox>
|
|
56
57
|
</Popover>
|
|
@@ -38,7 +38,6 @@ sap.ui.define([
|
|
|
38
38
|
* @alias module:sap/suite/ui/commons/collaboration/TeamsHelperService
|
|
39
39
|
* @private
|
|
40
40
|
* @ui5-restricted
|
|
41
|
-
* @experimental Since 1.108
|
|
42
41
|
*/
|
|
43
42
|
var TeamsHelperService = BaseHelperService.extend("sap.suite.ui.commons.collaboration.TeamsHelperService", {
|
|
44
43
|
constructor: function(oProviderConfig) {
|
|
@@ -89,7 +88,6 @@ sap.ui.define([
|
|
|
89
88
|
* @returns {array} Array of available options
|
|
90
89
|
* @private
|
|
91
90
|
* @ui5-restricted
|
|
92
|
-
* @experimental Since 1.108
|
|
93
91
|
*/
|
|
94
92
|
TeamsHelperService.prototype.getOptions = function(oParams) {
|
|
95
93
|
oTeamsParams = {
|
|
@@ -207,7 +205,6 @@ sap.ui.define([
|
|
|
207
205
|
* @returns {void}
|
|
208
206
|
* @private
|
|
209
207
|
* @ui5-restricted
|
|
210
|
-
* @experimental Since 1.108
|
|
211
208
|
*/
|
|
212
209
|
TeamsHelperService.prototype.share = function(oOption, oParams) {
|
|
213
210
|
|
|
@@ -248,7 +245,6 @@ sap.ui.define([
|
|
|
248
245
|
* @returns {void}
|
|
249
246
|
* @private
|
|
250
247
|
* @ui5-restricted
|
|
251
|
-
* @experimental Since 1.108
|
|
252
248
|
*/
|
|
253
249
|
TeamsHelperService.prototype._shareAsChat = function(oParams) {
|
|
254
250
|
var newWindow = window.open(
|
|
@@ -309,7 +305,6 @@ sap.ui.define([
|
|
|
309
305
|
* @returns {void}
|
|
310
306
|
* @private
|
|
311
307
|
* @ui5-restricted
|
|
312
|
-
* @experimental Since 1.108
|
|
313
308
|
*/
|
|
314
309
|
TeamsHelperService.prototype._shareAsTab = async function(oParams) {
|
|
315
310
|
var sAppUri = await this._modifyUrlForShareAsTab(oParams.url, "MST:T");
|
|
@@ -380,7 +375,6 @@ sap.ui.define([
|
|
|
380
375
|
* @returns {void}
|
|
381
376
|
* @private
|
|
382
377
|
* @ui5-restricted
|
|
383
|
-
* @experimental Since 1.108
|
|
384
378
|
*/
|
|
385
379
|
TeamsHelperService.prototype._shareAsCard = async function (oParams) {
|
|
386
380
|
if (!oParams?.cardId || !oParams.cardId.length || !oParams.cardManifest || !this.isFeatureFlagEnabled()) {
|
|
@@ -19,7 +19,6 @@ sap.ui.define(
|
|
|
19
19
|
* @class
|
|
20
20
|
* @alias sap.suite.ui.commons.collaboration.channels.MessageChannel
|
|
21
21
|
* @public
|
|
22
|
-
* @experimental
|
|
23
22
|
*/
|
|
24
23
|
var MessageChannel = UI5Object.extend("sap.suite.ui.commons.collaboration.channels.MessageChannel", {
|
|
25
24
|
/**
|
|
@@ -49,7 +48,6 @@ sap.ui.define(
|
|
|
49
48
|
* Returns a promise that resolves to the singleton instance of the MessageChannel service.
|
|
50
49
|
* @returns {Promise<sap.suite.ui.commons.collaboration.channels.MessageChannel>} A promise that resolves to the MessageChannel instance.
|
|
51
50
|
* @public
|
|
52
|
-
* @experimental
|
|
53
51
|
*/
|
|
54
52
|
getInstance: function () {
|
|
55
53
|
if (!instance) {
|