@sapui5/sap.suite.ui.commons 1.146.0 → 1.147.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 +56 -2
- package/src/sap/suite/ui/commons/CalculationBuilderExpression.js +87 -14
- 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 +16 -3
- package/src/sap/suite/ui/commons/CalculationBuilderValidationResult.js +1 -1
- package/src/sap/suite/ui/commons/CalculationBuilderVariable.js +1 -1
- package/src/sap/suite/ui/commons/CloudFilePicker.js +1 -1
- package/src/sap/suite/ui/commons/MicroProcessFlow.js +1 -1
- package/src/sap/suite/ui/commons/MicroProcessFlowItem.js +1 -1
- package/src/sap/suite/ui/commons/collaboration/ContactPopover.fragment.xml +8 -8
- package/src/sap/suite/ui/commons/collaboration/MinimalContactPopover.fragment.xml +5 -5
- 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 +4 -4
- package/src/sap/suite/ui/commons/messagebundle.properties +12 -8
- package/src/sap/suite/ui/commons/messagebundle_mk.properties +1 -1
- package/src/sap/suite/ui/commons/networkgraph/Graph.js +138 -27
- package/src/sap/suite/ui/commons/networkgraph/GraphMap.js +25 -3
- package/src/sap/suite/ui/commons/networkgraph/KeyboardNavigator.js +332 -13
- package/src/sap/suite/ui/commons/networkgraph/Line.js +5 -1
- package/src/sap/suite/ui/commons/networkgraph/Node.js +67 -5
- package/src/sap/suite/ui/commons/networkgraph/Utils.js +10 -0
- package/src/sap/suite/ui/commons/networkgraph/util/ConnectionPathUtils.js +34 -4
- package/src/sap/suite/ui/commons/networkgraph/util/DependencyLayoutHelper.js +213 -74
- 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/BusinessCard.less +5 -4
- package/src/sap/suite/ui/commons/themes/base/CalculationBuilder.less +33 -24
- package/src/sap/suite/ui/commons/themes/base/CalculationBuilderExpression.less +40 -31
- package/src/sap/suite/ui/commons/themes/base/CalculationBuilderInput.less +26 -10
- package/src/sap/suite/ui/commons/themes/base/CalculationBuilderItem.less +76 -63
- package/src/sap/suite/ui/commons/themes/base/ChartContainer.less +8 -11
- package/src/sap/suite/ui/commons/themes/base/ChartTile.less +5 -8
- package/src/sap/suite/ui/commons/themes/base/CollaborationPopover.less +116 -106
- package/src/sap/suite/ui/commons/themes/base/DateRangeScroller.less +5 -5
- package/src/sap/suite/ui/commons/themes/base/DateRangeSliderInternal.less +9 -10
- package/src/sap/suite/ui/commons/themes/base/FacetOverview.less +9 -10
- package/src/sap/suite/ui/commons/themes/base/FeedItemHeader.less +9 -12
- package/src/sap/suite/ui/commons/themes/base/FeedTile.less +23 -27
- package/src/sap/suite/ui/commons/themes/base/GenericTile2X2.less +15 -15
- package/src/sap/suite/ui/commons/themes/base/HeaderCell.less +7 -6
- package/src/sap/suite/ui/commons/themes/base/HeaderContainer.less +35 -37
- package/src/sap/suite/ui/commons/themes/base/ImageEditor.less +28 -10
- package/src/sap/suite/ui/commons/themes/base/ImageEditorContainer.less +29 -22
- package/src/sap/suite/ui/commons/themes/base/InfoTile.less +10 -4
- package/src/sap/suite/ui/commons/themes/base/InfoTileSize.less +5 -4
- package/src/sap/suite/ui/commons/themes/base/KpiTile.less +10 -11
- package/src/sap/suite/ui/commons/themes/base/LaunchTile.less +9 -8
- package/src/sap/suite/ui/commons/themes/base/LinkActionSheet.less +14 -43
- package/src/sap/suite/ui/commons/themes/base/MicroProcessFlow.less +51 -47
- package/src/sap/suite/ui/commons/themes/base/MonitoringContent.less +5 -5
- package/src/sap/suite/ui/commons/themes/base/NetworkGraph.less +57 -62
- package/src/sap/suite/ui/commons/themes/base/NetworkGroup.less +61 -65
- package/src/sap/suite/ui/commons/themes/base/NetworkLine.less +58 -55
- package/src/sap/suite/ui/commons/themes/base/NetworkNode.less +3 -0
- package/src/sap/suite/ui/commons/themes/base/NetworkTooltip.less +21 -25
- package/src/sap/suite/ui/commons/themes/base/NoteTaker.less +13 -18
- package/src/sap/suite/ui/commons/themes/base/NoteTakerCard.less +26 -27
- package/src/sap/suite/ui/commons/themes/base/NoteTakerFeeder.less +22 -44
- package/src/sap/suite/ui/commons/themes/base/NumericTile.less +7 -5
- package/src/sap/suite/ui/commons/themes/base/PictureZoomIn.less +6 -5
- package/src/sap/suite/ui/commons/themes/base/ProcessFlow.less +57 -76
- package/src/sap/suite/ui/commons/themes/base/ProcessFlowConnection.less +71 -17
- package/src/sap/suite/ui/commons/themes/base/ProcessFlowConnectionLabel.less +9 -13
- package/src/sap/suite/ui/commons/themes/base/ProcessFlowLaneHeader.less +37 -96
- package/src/sap/suite/ui/commons/themes/base/ProcessFlowNode.less +219 -238
- package/src/sap/suite/ui/commons/themes/base/SemanticColorMixins.less +55 -0
- package/src/sap/suite/ui/commons/themes/base/SplitButton.less +7 -20
- package/src/sap/suite/ui/commons/themes/base/StatusIndicator.less +10 -9
- package/src/sap/suite/ui/commons/themes/base/TAccount.less +78 -73
- package/src/sap/suite/ui/commons/themes/base/TargetFilter.less +50 -58
- package/src/sap/suite/ui/commons/themes/base/ThingCollection.less +18 -13
- package/src/sap/suite/ui/commons/themes/base/ThreePanelThingViewer.less +14 -14
- package/src/sap/suite/ui/commons/themes/base/TileContent2X2.less +9 -13
- package/src/sap/suite/ui/commons/themes/base/Timeline.less +16 -19
- package/src/sap/suite/ui/commons/themes/base/TimelineItem.less +95 -103
- package/src/sap/suite/ui/commons/themes/base/UnifiedThingGroup.less +7 -9
- package/src/sap/suite/ui/commons/themes/base/UnifiedThingInspector.less +12 -9
- package/src/sap/suite/ui/commons/themes/base/VerticalNavigationBar.less +10 -15
- package/src/sap/suite/ui/commons/themes/base/ViewRepeater.less +8 -9
- package/src/sap/suite/ui/commons/themes/base/library.source.less +0 -2
- package/src/sap/suite/ui/commons/themes/sap_fiori_3/MicroProcessFlow.less +9 -3
- package/src/sap/suite/ui/commons/themes/sap_fiori_3/ProcessFlowConnection.less +14 -7
- package/src/sap/suite/ui/commons/themes/sap_fiori_3/ProcessFlowConnectionLabel.less +38 -35
- package/src/sap/suite/ui/commons/themes/sap_fiori_3/ProcessFlowLaneHeader.less +29 -30
- package/src/sap/suite/ui/commons/themes/sap_fiori_3/ProcessFlowNode.less +158 -102
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_dark/MicroProcessFlow.less +9 -3
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_dark/ProcessFlowConnection.less +14 -7
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_dark/ProcessFlowConnectionLabel.less +38 -35
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_dark/ProcessFlowLaneHeader.less +30 -31
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_dark/ProcessFlowNode.less +157 -101
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_hcb/ProcessFlowConnection.less +14 -7
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_hcb/ProcessFlowConnectionLabel.less +38 -35
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_hcb/ProcessFlowLaneHeader.less +30 -31
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_hcb/ProcessFlowNode.less +147 -101
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_hcw/ProcessFlowConnection.less +14 -7
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_hcw/ProcessFlowConnectionLabel.less +38 -35
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_hcw/ProcessFlowLaneHeader.less +30 -31
- package/src/sap/suite/ui/commons/themes/sap_fiori_3_hcw/ProcessFlowNode.less +158 -102
- package/src/sap/suite/ui/commons/themes/sap_horizon/MicroProcessFlow.less +5 -0
- package/src/sap/suite/ui/commons/themes/sap_horizon/NetworkLine.less +12 -8
- package/src/sap/suite/ui/commons/themes/sap_horizon/ProcessFlowConnection.less +17 -10
- package/src/sap/suite/ui/commons/themes/sap_horizon/ProcessFlowConnectionLabel.less +154 -133
- package/src/sap/suite/ui/commons/themes/sap_horizon/ProcessFlowLaneHeader.less +30 -32
- package/src/sap/suite/ui/commons/themes/sap_horizon/ProcessFlowNode.less +113 -214
- package/src/sap/suite/ui/commons/themes/sap_horizon/TimelineItem.less +43 -39
- package/src/sap/suite/ui/commons/themes/sap_horizon_dark/MicroProcessFlow.less +5 -0
- package/src/sap/suite/ui/commons/themes/sap_horizon_dark/NetworkLine.less +12 -12
- package/src/sap/suite/ui/commons/themes/sap_horizon_dark/ProcessFlowConnection.less +17 -10
- package/src/sap/suite/ui/commons/themes/sap_horizon_dark/ProcessFlowConnectionLabel.less +154 -133
- package/src/sap/suite/ui/commons/themes/sap_horizon_dark/ProcessFlowLaneHeader.less +30 -31
- package/src/sap/suite/ui/commons/themes/sap_horizon_dark/ProcessFlowNode.less +114 -216
- package/src/sap/suite/ui/commons/themes/sap_horizon_dark/TimelineItem.less +41 -39
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcb/MicroProcessFlow.less +4 -4
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcb/ProcessFlowConnection.less +17 -10
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcb/ProcessFlowConnectionLabel.less +153 -131
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcb/ProcessFlowLaneHeader.less +29 -30
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcb/ProcessFlowNode.less +159 -103
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcb/TimelineItem.less +41 -39
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcw/MicroProcessFlow.less +4 -4
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcw/ProcessFlowConnection.less +16 -9
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcw/ProcessFlowConnectionLabel.less +153 -131
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcw/ProcessFlowLaneHeader.less +29 -30
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcw/ProcessFlowNode.less +157 -101
- package/src/sap/suite/ui/commons/themes/sap_horizon_hcw/TimelineItem.less +41 -39
- package/src/sap/suite/ui/commons/themes/base/DateRangeSlider.less +0 -3
- package/src/sap/suite/ui/commons/themes/base/MonitoringTile.less +0 -3
|
@@ -532,10 +532,10 @@ NETWORKGRAPH_CANCEL_BUTTON=Cancel
|
|
|
532
532
|
#XBUT: Cancel button text
|
|
533
533
|
NETWORKGRAPH_CREATE_BUTTON=Create
|
|
534
534
|
#XTXT: Connection type display texts
|
|
535
|
-
NETWORKGRAPH_CONNECTION_TYPE_LEFT_TO_LEFT=
|
|
536
|
-
NETWORKGRAPH_CONNECTION_TYPE_LEFT_TO_RIGHT=
|
|
537
|
-
NETWORKGRAPH_CONNECTION_TYPE_RIGHT_TO_LEFT=
|
|
538
|
-
NETWORKGRAPH_CONNECTION_TYPE_RIGHT_TO_RIGHT=
|
|
535
|
+
NETWORKGRAPH_CONNECTION_TYPE_LEFT_TO_LEFT=Start to Start
|
|
536
|
+
NETWORKGRAPH_CONNECTION_TYPE_LEFT_TO_RIGHT=Start to Finish
|
|
537
|
+
NETWORKGRAPH_CONNECTION_TYPE_RIGHT_TO_LEFT=Finish to Start
|
|
538
|
+
NETWORKGRAPH_CONNECTION_TYPE_RIGHT_TO_RIGHT=Finish to Finish
|
|
539
539
|
NETWORKGRAPH_CONNECTION_TYPE_TOP_TO_TOP=Top to Top
|
|
540
540
|
NETWORKGRAPH_CONNECTION_TYPE_TOP_TO_BOTTOM=Top to Bottom
|
|
541
541
|
NETWORKGRAPH_CONNECTION_TYPE_BOTTOM_TO_TOP=Bottom to Top
|
|
@@ -553,13 +553,13 @@ NETWORK_GRAPH_NODE_ATTRIBUTES=Attributes are
|
|
|
553
553
|
#XACT: Text for node status accessibility label
|
|
554
554
|
NETWORK_GRAPH_NODE_ACCESSIBILITY_STATUS=Status is
|
|
555
555
|
#XACT: Text for incoming connectors accessibility label (singular)
|
|
556
|
-
NETWORK_GRAPH_INCOMING_CONNECTOR_SINGULAR=
|
|
556
|
+
NETWORK_GRAPH_INCOMING_CONNECTOR_SINGULAR={0} incoming connector
|
|
557
557
|
#XACT: Text for incoming connectors accessibility label (plural)
|
|
558
|
-
NETWORK_GRAPH_INCOMING_CONNECTORS_PLURAL=
|
|
558
|
+
NETWORK_GRAPH_INCOMING_CONNECTORS_PLURAL={0} incoming connectors
|
|
559
559
|
#XACT: Text for outgoing connectors accessibility label (singular)
|
|
560
|
-
NETWORK_GRAPH_OUTGOING_CONNECTOR_SINGULAR=
|
|
560
|
+
NETWORK_GRAPH_OUTGOING_CONNECTOR_SINGULAR={0} outgoing connector
|
|
561
561
|
#XACT: Text for outgoing connectors accessibility label (plural)
|
|
562
|
-
NETWORK_GRAPH_OUTGOING_CONNECTORS_PLURAL=
|
|
562
|
+
NETWORK_GRAPH_OUTGOING_CONNECTORS_PLURAL={0} outgoing connectors
|
|
563
563
|
#XACT: Text for keyboard navigation to outgoing connector
|
|
564
564
|
NETWORK_GRAPH_NAVIGATION_TAB_TO_OUTGOING=To navigate to the outgoing connector, press Tab
|
|
565
565
|
#XACT: Text for keyboard navigation to incoming connector
|
|
@@ -570,6 +570,10 @@ NETWORK_GRAPH_LINE_NAVIGATION_TAB_TO_TARGET=To navigate to {0}, press Tab
|
|
|
570
570
|
NETWORK_GRAPH_LINE_NAVIGATION_SHIFT_TAB_TO_SOURCE=To navigate back to {0}, press Shift + Tab
|
|
571
571
|
#XACT: Text for keyboard navigation between connectors
|
|
572
572
|
NETWORK_GRAPH_LINE_NAVIGATION_ARROW_KEYS=To navigate to other connectors from {0}, Use arrow keys
|
|
573
|
+
#XACT: Text hint to hear individual connector navigation options via Alt+
|
|
574
|
+
NETWORK_GRAPH_NAVIGATION_ALT_CONNECTORS=To hear possible connectors, press ALT +
|
|
575
|
+
#XACT: Text for individual connector announcement when Alt+ is pressed. {0}=type, {1}=direction, {2}=connection type, {3}=from node, {4}=to node, {5}=number
|
|
576
|
+
NETWORK_GRAPH_NAVIGATION_ALT_CONNECTOR_ANNOUNCE=Navigate to {0} connector on {1}, {2} connector connecting {3} to {4}, press ALT + {5}
|
|
573
577
|
#XACT: Text for line status accessibility label
|
|
574
578
|
NETWORK_GRAPH_LINE_ACCESSIBILITY_STATUS=Status is
|
|
575
579
|
#XACT: Text for line accessibility - connection going from source to destination
|
|
@@ -297,7 +297,7 @@ NETWORK_GRAPH_OUTGOING_CONNECTORS_PLURAL=\u041F\u043E\u0441\u0442\u043E\u0458\u0
|
|
|
297
297
|
NETWORK_GRAPH_NAVIGATION_TAB_TO_OUTGOING=\u0417\u0430 \u043D\u0430\u0432\u0438\u0433\u0438\u0440\u0430\u045A\u0435 \u043A\u043E\u043D \u0438\u0437\u043B\u0435\u0437\u043D\u0438\u043E\u0442 \u043A\u043E\u043D\u0435\u043A\u0442\u043E\u0440, \u043F\u0440\u0438\u0442\u0438\u0441\u043D\u0435\u0442\u0435 Tab
|
|
298
298
|
NETWORK_GRAPH_NAVIGATION_SHIFT_TAB_TO_INCOMING=\u0417\u0430 \u043D\u0430\u0432\u0438\u0433\u0438\u0440\u0430\u045A\u0435 \u043A\u043E\u043D \u0432\u043B\u0435\u0437\u043D\u0438\u043E\u0442 \u043A\u043E\u043D\u0435\u043A\u0442\u043E\u0440, \u043F\u0440\u0438\u0442\u0438\u0441\u043D\u0435\u0442\u0435 Shift + Tab
|
|
299
299
|
NETWORK_GRAPH_LINE_NAVIGATION_TAB_TO_TARGET=\u041F\u0440\u0438\u0442\u0438\u0441\u043D\u0435\u0442\u0435 \u043D\u0430 \u043A\u043E\u043F\u0447\u0435\u0442\u043E Tab \u0437\u0430 \u0434\u0430 \u043F\u043E\u0458\u0434\u0435\u0442\u0435 \u043D\u0430 {0}
|
|
300
|
-
NETWORK_GRAPH_LINE_NAVIGATION_SHIFT_TAB_TO_SOURCE=\u041F\u0440\u0438\u0442\u0438\u0441\u043D\u0435\u0442\u0435 \u043D\u0430 \u043A\u043E\u043F\u0447\u0438\u045A\u0430\u0442\u0430 Shift+Tab \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0432\u0440\u0430\u0442\u0438\u0442\u0435 \u043D\u0430 {0}
|
|
300
|
+
NETWORK_GRAPH_LINE_NAVIGATION_SHIFT_TAB_TO_SOURCE=\u041F\u0440\u0438\u0442\u0438\u0441\u043D\u0435\u0442\u0435 \u043D\u0430 \u043A\u043E\u043F\u0447\u0438\u045A\u0430\u0442\u0430 Shift+Tab \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0432\u0440\u0430\u0442\u0438\u0442\u0435 \u043D\u0430\u0437\u0430\u0434 \u043D\u0430 {0}
|
|
301
301
|
NETWORK_GRAPH_LINE_NAVIGATION_ARROW_KEYS=\u0417\u0430 \u0434\u0430 \u043D\u0430\u0432\u0438\u0433\u0438\u0440\u0430\u0442\u0435 \u043A\u043E\u043D \u0434\u0440\u0443\u0433\u0438 \u043A\u043E\u043D\u0435\u043A\u0442\u043E\u0440\u0438 \u043E\u0434 {0}, \u043A\u043E\u0440\u0438\u0441\u0442\u0435\u0442\u0435 \u0433\u0438 \u043A\u043E\u043F\u0447\u0438\u045A\u0430\u0442\u0430 \u0441\u043E \u0441\u0442\u0440\u0435\u043B\u043A\u0438
|
|
302
302
|
NETWORK_GRAPH_LINE_ACCESSIBILITY_STATUS=\u0421\u0442\u0430\u0442\u0443\u0441\u043E\u0442 \u0435
|
|
303
303
|
NETWORK_GRAPH_LINE_ACCESSIBILITY_CONNECTION_FROM_TO=\u0412\u0440\u0441\u043A\u0430\u0442\u0430 \u043E\u0434\u0438 \u043E\u0434 {0} \u0434\u043E {1}
|
|
@@ -291,10 +291,10 @@ sap.ui.define([
|
|
|
291
291
|
*/
|
|
292
292
|
connectionTypeMapping: {
|
|
293
293
|
type: "object", group: "Behavior", defaultValue: {
|
|
294
|
-
"LeftToLeft": "
|
|
295
|
-
"LeftToRight": "
|
|
296
|
-
"RightToLeft": "
|
|
297
|
-
"RightToRight": "
|
|
294
|
+
"LeftToLeft": "Start to Start",
|
|
295
|
+
"LeftToRight": "Start to Finish",
|
|
296
|
+
"RightToLeft": "Finish to Start",
|
|
297
|
+
"RightToRight": "Finish to Finish"
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
300
|
},
|
|
@@ -480,7 +480,14 @@ sap.ui.define([
|
|
|
480
480
|
*/
|
|
481
481
|
item: { type: "sap.suite.ui.commons.networkgraph.ElementBase" }
|
|
482
482
|
}
|
|
483
|
-
}
|
|
483
|
+
},
|
|
484
|
+
/**
|
|
485
|
+
* Fired when the user requests to add a node via INSERT or Ctrl+Alt+N.
|
|
486
|
+
* Only available when NoopLayout is used and enableDragAndDrop is <code>true</code>.
|
|
487
|
+
* @public
|
|
488
|
+
* @since 1.148
|
|
489
|
+
*/
|
|
490
|
+
nodeAdded: {}
|
|
484
491
|
}
|
|
485
492
|
}
|
|
486
493
|
});
|
|
@@ -579,13 +586,66 @@ sap.ui.define([
|
|
|
579
586
|
}
|
|
580
587
|
// Initialize PortManager with this graph instance
|
|
581
588
|
PortManager.setGraphInstance(this);
|
|
589
|
+
Core.ready(this._handleCoreInitialized.bind(this));
|
|
590
|
+
|
|
591
|
+
};
|
|
592
|
+
|
|
593
|
+
/**
|
|
594
|
+
* Handler for the core's init event. Attaches listener for localization changes.
|
|
595
|
+
* @private
|
|
596
|
+
*/
|
|
597
|
+
Graph.prototype._handleCoreInitialized = function () {
|
|
598
|
+
Localization.attachChange(this._handleLocalizationChanged.bind(this));
|
|
599
|
+
};
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* Handler for localization changes. Sets a pending flag when RTL mode changes so that
|
|
603
|
+
* node dimensions are re-measured after RTL CSS files finish loading.
|
|
604
|
+
* UI5 automatically re-renders all UIAreas on RTL change; the flag prevents premature
|
|
605
|
+
* layout calculation in onAfterRendering before CSS dimensions are stable.
|
|
606
|
+
* @private
|
|
607
|
+
*/
|
|
608
|
+
Graph.prototype._handleLocalizationChanged = function () {
|
|
609
|
+
const bNewRtl = Localization.getRTL();
|
|
610
|
+
if (this._bIsRtl !== bNewRtl) {
|
|
611
|
+
this._bIsRtl = bNewRtl;
|
|
612
|
+
this._bRtlMeasurementPending = true;
|
|
613
|
+
|
|
614
|
+
const fnOnApplied = function () {
|
|
615
|
+
Theming.detachApplied(fnOnApplied);
|
|
616
|
+
if (this._bRtlMeasurementPending) {
|
|
617
|
+
this._bRtlMeasurementPending = false;
|
|
618
|
+
this._measureAndLayout();
|
|
619
|
+
}
|
|
620
|
+
}.bind(this);
|
|
621
|
+
Theming.attachApplied(fnOnApplied);
|
|
622
|
+
}
|
|
623
|
+
};
|
|
582
624
|
|
|
625
|
+
Graph.prototype._measureAndLayout = function () {
|
|
626
|
+
var aNodes = this.getNodes();
|
|
627
|
+
aNodes.forEach(function (oNode) {
|
|
628
|
+
if (this._isUseNodeHtml()) {
|
|
629
|
+
oNode._setupDivDimensions();
|
|
630
|
+
} else {
|
|
631
|
+
oNode.calculateSizes();
|
|
632
|
+
oNode._setupWidthAndHeight();
|
|
633
|
+
}
|
|
634
|
+
}.bind(this));
|
|
635
|
+
this._bTriggerLayoutCalculation = true;
|
|
636
|
+
this._preprocessData();
|
|
583
637
|
};
|
|
584
638
|
|
|
585
639
|
Graph.prototype.onBeforeRendering = function () {
|
|
586
640
|
// indicates RTL
|
|
587
641
|
this._bIsRtl = Localization.getRTL();
|
|
588
642
|
|
|
643
|
+
// Check if the currently focused item has been destroyed and clear it
|
|
644
|
+
if (this._oFocus && this._oFocus.item && (this._oFocus.item.bIsDestroyed || this._oFocus.item.isDestroyed?.())) {
|
|
645
|
+
Log.info("NetworkGraph: Focused item was destroyed before rendering, clearing focus");
|
|
646
|
+
this._oFocus = null;
|
|
647
|
+
}
|
|
648
|
+
|
|
589
649
|
this.setBusy(false);
|
|
590
650
|
this.setBusyIndicatorDelay(0);
|
|
591
651
|
|
|
@@ -633,7 +693,6 @@ sap.ui.define([
|
|
|
633
693
|
this.$().addClass("sapSuiteUiCommonsNetworkGraphFullScreen");
|
|
634
694
|
}
|
|
635
695
|
|
|
636
|
-
|
|
637
696
|
if (aNodes.length === 0 || this._bIsInvalid || this.getNoData()) {
|
|
638
697
|
if (this._bIsInvalid) {
|
|
639
698
|
oRm.openStart("span");
|
|
@@ -695,29 +754,18 @@ sap.ui.define([
|
|
|
695
754
|
oRm.flush(this._$innerscroller[0], true, this._$innerscroller.children().length);
|
|
696
755
|
}
|
|
697
756
|
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
// call after rendering before layouter starts - can be handy when user custom renders
|
|
702
|
-
oNode._setupDivDimensions();
|
|
703
|
-
} else {
|
|
704
|
-
oNode.calculateSizes();
|
|
705
|
-
oNode._setupWidthAndHeight();
|
|
706
|
-
}
|
|
707
|
-
}.bind(this));
|
|
708
|
-
|
|
709
|
-
this._preprocessData();
|
|
710
|
-
Theming.detachApplied(fnProcess);
|
|
757
|
+
if (!this._bRtlMeasurementPending) {
|
|
758
|
+
this._measureAndLayout();
|
|
759
|
+
}
|
|
711
760
|
}.bind(this);
|
|
712
761
|
|
|
713
|
-
|
|
714
|
-
// else it will be called once theme is applied.
|
|
715
|
-
Theming.attachApplied(fnProcess);
|
|
762
|
+
fnProcess();
|
|
716
763
|
}
|
|
717
764
|
this.oInvisibleMessage = InvisibleMessage.getInstance();
|
|
718
765
|
oRm.destroy();
|
|
719
766
|
|
|
720
767
|
};
|
|
768
|
+
|
|
721
769
|
Graph.prototype.exit = function () {
|
|
722
770
|
// if (this.oHashChanger) {
|
|
723
771
|
// this.oHashChanger.destroy();
|
|
@@ -1025,6 +1073,21 @@ sap.ui.define([
|
|
|
1025
1073
|
this._oZoomLevelInvisibleText.setText(oResourceBundle.getText("NETWORK_GRAPH_ZOOM_LEVEL") + ": " + this._getZoomText());
|
|
1026
1074
|
};
|
|
1027
1075
|
|
|
1076
|
+
/**
|
|
1077
|
+
* Restores keyboard focus to the last focused item in the graph, or falls back to the graph wrapper.
|
|
1078
|
+
* @private
|
|
1079
|
+
*/
|
|
1080
|
+
Graph.prototype._restoreFocusToGraph = function () {
|
|
1081
|
+
if (this._oFocus) {
|
|
1082
|
+
const oFocusToRestore = this._oFocus;
|
|
1083
|
+
// Force setFocus to re-apply even if the item hasn't changed.
|
|
1084
|
+
this._oFocus = null;
|
|
1085
|
+
this.setFocus(oFocusToRestore);
|
|
1086
|
+
} else {
|
|
1087
|
+
this.getFocusDomRef().focus();
|
|
1088
|
+
}
|
|
1089
|
+
};
|
|
1090
|
+
|
|
1028
1091
|
/**
|
|
1029
1092
|
* Gets the associated control linked to this graph instance using the 'associatedControl' association.
|
|
1030
1093
|
* This can be any UI5 control that is related to the graph.
|
|
@@ -1086,7 +1149,14 @@ sap.ui.define([
|
|
|
1086
1149
|
oTooltip.attachEvent("afterClose", function () {
|
|
1087
1150
|
var oFocus = this.getFocus();
|
|
1088
1151
|
|
|
1089
|
-
if (oFocus) {
|
|
1152
|
+
if (oFocus && oFocus.item) {
|
|
1153
|
+
// Check if the focused item is destroyed before trying to restore focus
|
|
1154
|
+
if (oFocus.item.bIsDestroyed || oFocus.item.isDestroyed?.()) {
|
|
1155
|
+
Log.info("NetworkGraph: Cannot restore focus on destroyed control after tooltip close");
|
|
1156
|
+
this._oFocus = null;
|
|
1157
|
+
return;
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1090
1160
|
this.setFocus(oFocus);
|
|
1091
1161
|
|
|
1092
1162
|
if (oFocus.button == "menu") {
|
|
@@ -1192,6 +1262,13 @@ sap.ui.define([
|
|
|
1192
1262
|
* @private
|
|
1193
1263
|
*/
|
|
1194
1264
|
Graph.prototype.setFocus = function (oFocus, bIsClickOrEnter) {
|
|
1265
|
+
// Check if the focused item has been destroyed and clear it
|
|
1266
|
+
if (oFocus && oFocus.item && (oFocus.item.bIsDestroyed || oFocus.item.isDestroyed?.())) {
|
|
1267
|
+
Log.info("NetworkGraph: Cannot set focus on destroyed control, clearing focus");
|
|
1268
|
+
this._oFocus = null;
|
|
1269
|
+
return;
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1195
1272
|
// Identity redundant
|
|
1196
1273
|
if (!oFocus && !this._oFocus ||
|
|
1197
1274
|
oFocus && this._oFocus && oFocus.item === this._oFocus.item && oFocus.button === this._oFocus.button && oFocus.groupInFocused === this._oFocus.groupInFocused) {
|
|
@@ -1406,12 +1483,25 @@ sap.ui.define([
|
|
|
1406
1483
|
|
|
1407
1484
|
// While Expand/Collapse, focus will still remain to the button
|
|
1408
1485
|
if (this._oFocus && this._oFocus.button === Group.BUTTONS.COLLAPSE) {
|
|
1409
|
-
|
|
1486
|
+
// Check if the focused item still exists and is not destroyed
|
|
1487
|
+
if (this._oFocus.item && !this._oFocus.item.bIsDestroyed && !this._oFocus.item.isDestroyed?.()) {
|
|
1488
|
+
this._oFocus.item._setCollapseButtonFocus(true);
|
|
1489
|
+
} else {
|
|
1490
|
+
Log.info("NetworkGraph: Focused item was destroyed, clearing focus");
|
|
1491
|
+
this._oFocus = null;
|
|
1492
|
+
}
|
|
1410
1493
|
}
|
|
1411
1494
|
this._bIsLayedOut = true;
|
|
1412
1495
|
this._setupEvents();
|
|
1413
1496
|
this._setupKeyboardNavigation();
|
|
1414
|
-
|
|
1497
|
+
// Only restore focus if the focused item still exists and is not destroyed
|
|
1498
|
+
var oCurrentFocus = this.getFocus();
|
|
1499
|
+
if (oCurrentFocus && oCurrentFocus.item && (oCurrentFocus.item.bIsDestroyed || oCurrentFocus.item.isDestroyed?.())) {
|
|
1500
|
+
Log.info("NetworkGraph: Cannot restore focus on destroyed control, clearing focus");
|
|
1501
|
+
this._oFocus = null;
|
|
1502
|
+
} else {
|
|
1503
|
+
this.setFocus(oCurrentFocus);
|
|
1504
|
+
}
|
|
1415
1505
|
|
|
1416
1506
|
// when there is background image, busy is set false after image is loaded (own event)
|
|
1417
1507
|
// in case image was already loaded continue as usual
|
|
@@ -2876,7 +2966,13 @@ sap.ui.define([
|
|
|
2876
2966
|
fHeight = oItem._iHeight;
|
|
2877
2967
|
}
|
|
2878
2968
|
|
|
2879
|
-
|
|
2969
|
+
const fScrollLeft = ((fX + (fWidth ? fWidth : 0) / 2) * this._fZoomLevel) - (this.$scroller.width() / 2);
|
|
2970
|
+
|
|
2971
|
+
if (this._bIsRtl) {
|
|
2972
|
+
this.$scroller.get(0).scrollLeft = -fScrollLeft;
|
|
2973
|
+
} else {
|
|
2974
|
+
this.$scroller.get(0).scrollLeft = fScrollLeft;
|
|
2975
|
+
}
|
|
2880
2976
|
this.$scroller.get(0).scrollTop = ((fY + (fHeight ? fHeight : 0) / 2) * this._fZoomLevel) - (this.$scroller.height() / 2);
|
|
2881
2977
|
};
|
|
2882
2978
|
|
|
@@ -2897,6 +2993,14 @@ sap.ui.define([
|
|
|
2897
2993
|
iRight = iLeft + this.$scroller.width() / this._fZoomLevel,
|
|
2898
2994
|
iBottom = iTop + this.$scroller.height() / this._fZoomLevel;
|
|
2899
2995
|
|
|
2996
|
+
if (this._bIsRtl) {
|
|
2997
|
+
const iGraphWidth = this.$svg.width() / this._fZoomLevel;
|
|
2998
|
+
const iViewportWidth = this.$scroller.width() / this._fZoomLevel;
|
|
2999
|
+
const iScrollPosAbs = Math.abs(iLeft);
|
|
3000
|
+
iLeft = iGraphWidth - iScrollPosAbs - iViewportWidth;
|
|
3001
|
+
iRight = iLeft + iViewportWidth;
|
|
3002
|
+
}
|
|
3003
|
+
|
|
2900
3004
|
if (!oItem._isOnScreen(iLeft, iRight, iTop, iBottom)) {
|
|
2901
3005
|
if (oItem instanceof Node) {
|
|
2902
3006
|
iCenterX = oItem.getX() + oItem._iWidth / 2;
|
|
@@ -2911,7 +3015,14 @@ sap.ui.define([
|
|
|
2911
3015
|
}
|
|
2912
3016
|
|
|
2913
3017
|
if (iCenterX < iLeft || iCenterX > iRight) {
|
|
2914
|
-
|
|
3018
|
+
let iTargetScrollLeft = iCenterX * this._fZoomLevel - this.$scroller.width() / 2;
|
|
3019
|
+
|
|
3020
|
+
if (this._bIsRtl) {
|
|
3021
|
+
const iScrollRange = oScroller.scrollWidth - oScroller.clientWidth;
|
|
3022
|
+
iTargetScrollLeft = -(iScrollRange - iTargetScrollLeft);
|
|
3023
|
+
}
|
|
3024
|
+
|
|
3025
|
+
oScroller.scrollLeft = iTargetScrollLeft;
|
|
2915
3026
|
}
|
|
2916
3027
|
if (iCenterY < iTop || iCenterY > iBottom) {
|
|
2917
3028
|
oScroller.scrollTop = iCenterY * this._fZoomLevel - this.$scroller.height() / 2;
|
|
@@ -367,12 +367,28 @@ sap.ui.define([
|
|
|
367
367
|
}
|
|
368
368
|
};
|
|
369
369
|
|
|
370
|
+
/**
|
|
371
|
+
* Returns the horizontal scroll position in graph coordinates, accounting for RTL.
|
|
372
|
+
*/
|
|
373
|
+
GraphMap.prototype._getScrollLeftForMap = function (oGraph) {
|
|
374
|
+
const fScrollLeft = oGraph.$scroller[0].scrollLeft;
|
|
375
|
+
|
|
376
|
+
if (oGraph._bIsRtl) {
|
|
377
|
+
const iGraphWidth = oGraph.$svg.width() / oGraph._fZoomLevel;
|
|
378
|
+
const iViewportWidth = oGraph.$scroller.width() / oGraph._fZoomLevel;
|
|
379
|
+
const iScrollPosAbs = Math.abs(fScrollLeft) / oGraph._fZoomLevel;
|
|
380
|
+
return iGraphWidth - iScrollPosAbs - iViewportWidth;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
return fScrollLeft / oGraph._fZoomLevel;
|
|
384
|
+
};
|
|
385
|
+
|
|
370
386
|
GraphMap.prototype._resize = function () {
|
|
371
387
|
var oGraph = this.getGraph(),
|
|
372
388
|
$scroller = oGraph.$scroller,
|
|
373
389
|
$mapNavigator = this.$("mapNavigator");
|
|
374
390
|
|
|
375
|
-
$mapNavigator.attr("x", Math.max(NAVIGATORLINESIZE / 2,
|
|
391
|
+
$mapNavigator.attr("x", Math.max(NAVIGATORLINESIZE / 2, this._getScrollLeftForMap(oGraph)));
|
|
376
392
|
$mapNavigator.attr("y", Math.max(NAVIGATORLINESIZE / 2, $scroller[0].scrollTop / oGraph._fZoomLevel));
|
|
377
393
|
|
|
378
394
|
$mapNavigator.attr("width", $scroller.width() / oGraph._fZoomLevel);
|
|
@@ -403,7 +419,7 @@ sap.ui.define([
|
|
|
403
419
|
$mapNavigator = this.$("mapNavigator");
|
|
404
420
|
|
|
405
421
|
if (oGraph && $scroller[0]) {
|
|
406
|
-
$mapNavigator.attr("x", Math.max(NAVIGATORLINESIZE / 2,
|
|
422
|
+
$mapNavigator.attr("x", Math.max(NAVIGATORLINESIZE / 2, this._getScrollLeftForMap(oGraph)));
|
|
407
423
|
$mapNavigator.attr("y", Math.max(NAVIGATORLINESIZE / 2, $scroller[0].scrollTop / oGraph._fZoomLevel));
|
|
408
424
|
|
|
409
425
|
this._correctMapNavigator();
|
|
@@ -424,7 +440,13 @@ sap.ui.define([
|
|
|
424
440
|
fRealStartX = $border.offset().left,
|
|
425
441
|
fRealStartY = $border.offset().top;
|
|
426
442
|
|
|
427
|
-
|
|
443
|
+
const fTargetScrollLeft = (oScrollData.pageX - fRealStartX) * iRatio - ($scroller.width() / 2);
|
|
444
|
+
if (oGraph._bIsRtl) {
|
|
445
|
+
const iScrollRange = oScroller.scrollWidth - oScroller.clientWidth;
|
|
446
|
+
oScroller.scrollLeft = -(iScrollRange - fTargetScrollLeft);
|
|
447
|
+
} else {
|
|
448
|
+
oScroller.scrollLeft = fTargetScrollLeft;
|
|
449
|
+
}
|
|
428
450
|
oScroller.scrollTop = (oScrollData.pageY - fRealStartY) * iRatio - ($scroller.height() / 2);
|
|
429
451
|
};
|
|
430
452
|
|