@elyra/canvas 12.43.0 → 12.44.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/dist/{canvas-constants-ff5cf88e.js → canvas-constants-089e7830.js} +2 -2
- package/dist/{canvas-constants-ff5cf88e.js.map → canvas-constants-089e7830.js.map} +1 -1
- package/dist/{canvas-constants-acb99f64.js → canvas-constants-69e90162.js} +2 -2
- package/dist/{canvas-constants-acb99f64.js.map → canvas-constants-69e90162.js.map} +1 -1
- package/dist/canvas-controller-3e6b8ce4.js +2 -0
- package/dist/canvas-controller-3e6b8ce4.js.map +1 -0
- package/dist/canvas-controller-c6274fad.js +2 -0
- package/dist/canvas-controller-c6274fad.js.map +1 -0
- package/dist/{canvas-logger-295dafe4.js → canvas-logger-6f4b2551.js} +2 -2
- package/dist/{canvas-logger-295dafe4.js.map → canvas-logger-6f4b2551.js.map} +1 -1
- package/dist/{canvas-logger-e07a0b4a.js → canvas-logger-ab9d9048.js} +2 -2
- package/dist/{canvas-logger-e07a0b4a.js.map → canvas-logger-ab9d9048.js.map} +1 -1
- package/dist/common-canvas-6ed21ab6.js +2 -0
- package/dist/common-canvas-6ed21ab6.js.map +1 -0
- package/dist/common-canvas-8abf016c.js +2 -0
- package/dist/common-canvas-8abf016c.js.map +1 -0
- package/dist/common-canvas.es.js +1 -1
- package/dist/common-canvas.js +1 -1
- package/dist/common-properties-88377242.js +2 -0
- package/dist/{common-properties-acd55e94.js.map → common-properties-88377242.js.map} +1 -1
- package/dist/common-properties-b295acc8.js +2 -0
- package/dist/{common-properties-08707efe.js.map → common-properties-b295acc8.js.map} +1 -1
- package/dist/context-menu-wrapper-949393c7.js +2 -0
- package/dist/{context-menu-wrapper-e4a7ab4d.js.map → context-menu-wrapper-949393c7.js.map} +1 -1
- package/dist/context-menu-wrapper-f62dfcdb.js +2 -0
- package/dist/{context-menu-wrapper-271eb2df.js.map → context-menu-wrapper-f62dfcdb.js.map} +1 -1
- package/dist/{createClass-440000a3.js → createClass-02596015.js} +2 -2
- package/dist/createClass-02596015.js.map +1 -0
- package/dist/createClass-155bf7da.js +2 -0
- package/dist/createClass-155bf7da.js.map +1 -0
- package/dist/datarecord-metadata-v3-schema-07d18e19.js +2 -0
- package/dist/{datarecord-metadata-v3-schema-03427296.js.map → datarecord-metadata-v3-schema-07d18e19.js.map} +1 -1
- package/dist/datarecord-metadata-v3-schema-df939dd1.js +2 -0
- package/dist/{datarecord-metadata-v3-schema-dba0b214.js.map → datarecord-metadata-v3-schema-df939dd1.js.map} +1 -1
- package/dist/defineProperty-ad55dbff.js +2 -0
- package/dist/{defineProperty-3dc7d8d0.js.map → defineProperty-ad55dbff.js.map} +1 -1
- package/dist/{defineProperty-6d406743.js → defineProperty-bcc9968d.js} +2 -2
- package/dist/{defineProperty-6d406743.js.map → defineProperty-bcc9968d.js.map} +1 -1
- package/dist/flexible-table-c6a8b402.js +2 -0
- package/dist/{flexible-table-107ca2fd.js.map → flexible-table-c6a8b402.js.map} +1 -1
- package/dist/flexible-table-f7b294a0.js +2 -0
- package/dist/{flexible-table-5cc1ad6b.js.map → flexible-table-f7b294a0.js.map} +1 -1
- package/dist/{icon-2caf035c.js → icon-56b27c4f.js} +2 -2
- package/dist/{icon-2caf035c.js.map → icon-56b27c4f.js.map} +1 -1
- package/dist/{icon-e622f99b.js → icon-8ec2f0ec.js} +2 -2
- package/dist/{icon-e622f99b.js.map → icon-8ec2f0ec.js.map} +1 -1
- package/dist/index-01cbacf9.js +2 -0
- package/dist/{index-fee06179.js.map → index-01cbacf9.js.map} +1 -1
- package/dist/index-79543d41.js +2 -0
- package/dist/{index-5dac3da8.js.map → index-79543d41.js.map} +1 -1
- package/dist/inherits-42ae8426.js +2 -0
- package/dist/inherits-42ae8426.js.map +1 -0
- package/dist/inherits-75817f22.js +2 -0
- package/dist/inherits-75817f22.js.map +1 -0
- package/dist/isArrayLikeObject-04f333a5.js +1 -1
- package/dist/isArrayLikeObject-04f333a5.js.map +1 -1
- package/dist/isArrayLikeObject-7a30aa4b.js +1 -1
- package/dist/isArrayLikeObject-7a30aa4b.js.map +1 -1
- package/dist/lib/canvas-controller.es.js +1 -1
- package/dist/lib/canvas-controller.js +1 -1
- package/dist/lib/canvas.es.js +1 -1
- package/dist/lib/canvas.js +1 -1
- package/dist/lib/command-stack.es.js +1 -1
- package/dist/lib/command-stack.es.js.map +1 -1
- package/dist/lib/command-stack.js +1 -1
- package/dist/lib/command-stack.js.map +1 -1
- package/dist/lib/context-menu.es.js +1 -1
- package/dist/lib/context-menu.js +1 -1
- package/dist/lib/properties/field-picker.es.js +1 -1
- package/dist/lib/properties/field-picker.js +1 -1
- package/dist/lib/properties/flexible-table.es.js +1 -1
- package/dist/lib/properties/flexible-table.js +1 -1
- package/dist/lib/properties.es.js +1 -1
- package/dist/lib/properties.js +1 -1
- package/dist/lib/tooltip.es.js +1 -1
- package/dist/lib/tooltip.es.js.map +1 -1
- package/dist/lib/tooltip.js +1 -1
- package/dist/lib/tooltip.js.map +1 -1
- package/dist/styles/common-canvas.min.css +1 -1
- package/dist/styles/common-canvas.min.css.map +1 -1
- package/dist/toolbar-235dfb9d.js +2 -0
- package/dist/toolbar-235dfb9d.js.map +1 -0
- package/dist/toolbar-6607e35c.js +2 -0
- package/dist/toolbar-6607e35c.js.map +1 -0
- package/package.json +1 -1
- package/src/common-canvas/canvas-controller.js +18 -1
- package/src/common-canvas/cc-toolbar.jsx +9 -4
- package/src/common-canvas/common-canvas-utils.js +73 -2
- package/src/common-canvas/common-canvas.scss +5 -5
- package/src/common-canvas/constants/canvas-constants.js +1 -0
- package/src/common-canvas/svg-canvas-renderer.js +140 -73
- package/src/common-canvas/svg-canvas-utils-external.js +1 -1
- package/src/common-canvas/svg-canvas-utils-links.js +28 -32
- package/src/common-canvas/svg-canvas-utils-nodes.js +5 -13
- package/src/icons/icon.scss +1 -1
- package/src/object-model/config-utils.js +2 -2
- package/src/object-model/layout-dimensions.js +82 -87
- package/src/object-model/object-model-utils.js +271 -0
- package/src/object-model/object-model.js +28 -240
- package/src/toolbar/toolbar-action-item.jsx +2 -1
- package/src/toolbar/toolbar-button-item.jsx +3 -2
- package/src/toolbar/toolbar-overflow-item.jsx +10 -4
- package/src/toolbar/toolbar.jsx +4 -1
- package/stats.html +1 -1
- package/dist/canvas-controller-6726b9ac.js +0 -2
- package/dist/canvas-controller-6726b9ac.js.map +0 -1
- package/dist/canvas-controller-6c6bc68f.js +0 -2
- package/dist/canvas-controller-6c6bc68f.js.map +0 -1
- package/dist/common-canvas-9374ef35.js +0 -2
- package/dist/common-canvas-9374ef35.js.map +0 -1
- package/dist/common-canvas-a6435bdb.js +0 -2
- package/dist/common-canvas-a6435bdb.js.map +0 -1
- package/dist/common-properties-08707efe.js +0 -2
- package/dist/common-properties-acd55e94.js +0 -2
- package/dist/context-menu-wrapper-271eb2df.js +0 -2
- package/dist/context-menu-wrapper-e4a7ab4d.js +0 -2
- package/dist/createClass-440000a3.js.map +0 -1
- package/dist/createClass-5ca26865.js +0 -2
- package/dist/createClass-5ca26865.js.map +0 -1
- package/dist/datarecord-metadata-v3-schema-03427296.js +0 -2
- package/dist/datarecord-metadata-v3-schema-dba0b214.js +0 -2
- package/dist/defineProperty-3dc7d8d0.js +0 -2
- package/dist/flexible-table-107ca2fd.js +0 -2
- package/dist/flexible-table-5cc1ad6b.js +0 -2
- package/dist/index-5dac3da8.js +0 -2
- package/dist/index-fee06179.js +0 -2
- package/dist/inherits-226dfdb2.js +0 -2
- package/dist/inherits-226dfdb2.js.map +0 -1
- package/dist/inherits-41673c87.js +0 -2
- package/dist/inherits-41673c87.js.map +0 -1
- package/dist/toolbar-ccc1d600.js +0 -2
- package/dist/toolbar-ccc1d600.js.map +0 -1
- package/dist/toolbar-e4445bf8.js +0 -2
- package/dist/toolbar-e4445bf8.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2017-
|
|
2
|
+
* Copyright 2017-2024 Elyra Authors
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -3384,135 +3384,202 @@ export default class SVGCanvasRenderer {
|
|
|
3384
3384
|
}
|
|
3385
3385
|
|
|
3386
3386
|
setPortPositionsForNode(node) {
|
|
3387
|
-
if (this.canvasLayout.linkDirection === LINK_DIR_TOP_BOTTOM
|
|
3388
|
-
|
|
3389
|
-
this.setPortPositionsVertical(
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3387
|
+
if (this.canvasLayout.linkDirection === LINK_DIR_TOP_BOTTOM ||
|
|
3388
|
+
this.canvasLayout.linkDirection === LINK_DIR_BOTTOM_TOP) {
|
|
3389
|
+
this.setPortPositionsVertical(
|
|
3390
|
+
node, node.inputs, node.inputPortsWidth,
|
|
3391
|
+
node.layout.inputPortPositions,
|
|
3392
|
+
node.layout.inputPortAutoPosition);
|
|
3393
|
+
this.setPortPositionsVertical(
|
|
3394
|
+
node, node.outputs, node.outputPortsWidth,
|
|
3395
|
+
node.layout.outputPortPositions,
|
|
3396
|
+
node.layout.outputPortAutoPosition,
|
|
3397
|
+
this.config.enableSingleOutputPortDisplay);
|
|
3398
|
+
|
|
3393
3399
|
} else {
|
|
3394
|
-
this.
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3400
|
+
this.setPortPositionsHoriz(
|
|
3401
|
+
node, node.inputs, node.inputPortsHeight,
|
|
3402
|
+
node.layout.inputPortPositions,
|
|
3403
|
+
node.layout.inputPortAutoPosition);
|
|
3404
|
+
this.setPortPositionsHoriz(
|
|
3405
|
+
node, node.outputs, node.outputPortsHeight,
|
|
3406
|
+
node.layout.outputPortPositions,
|
|
3407
|
+
node.layout.outputPortAutoPosition,
|
|
3398
3408
|
this.config.enableSingleOutputPortDisplay);
|
|
3399
3409
|
}
|
|
3400
3410
|
}
|
|
3401
3411
|
|
|
3402
|
-
|
|
3403
|
-
return node.height + node.layout.outputPortBottomPosY;
|
|
3404
|
-
}
|
|
3405
|
-
|
|
3406
|
-
getInputPortBottomPosY(node) {
|
|
3407
|
-
return node.height + node.layout.inputPortBottomPosY;
|
|
3408
|
-
}
|
|
3409
|
-
|
|
3410
|
-
setPortPositionsVertical(data, ports, portsWidth, xPos, yPos) {
|
|
3412
|
+
setPortPositionsVertical(node, ports, portsWidth, portPositions, autoPosition, displaySinglePort = false) {
|
|
3411
3413
|
if (ports && ports.length > 0) {
|
|
3412
|
-
|
|
3414
|
+
const xPos = this.nodeUtils.getNodePortPosX(portPositions[0], node);
|
|
3415
|
+
const yPos = this.nodeUtils.getNodePortPosY(portPositions[0], node);
|
|
3416
|
+
|
|
3417
|
+
if (node.width <= node.layout.defaultNodeWidth &&
|
|
3413
3418
|
ports.length === 1) {
|
|
3414
3419
|
ports[0].cx = xPos;
|
|
3415
3420
|
ports[0].cy = yPos;
|
|
3416
3421
|
} else {
|
|
3417
|
-
|
|
3422
|
+
// If we are only going to display a single port, we set all the
|
|
3423
|
+
// port positions to be the same as if there is only one port.
|
|
3424
|
+
if (displaySinglePort) {
|
|
3425
|
+
this.setPortPositionsVerticalDisplaySingle(node, ports, xPos, yPos);
|
|
3418
3426
|
|
|
3419
|
-
if (CanvasUtils.isExpandedSupernode(
|
|
3420
|
-
|
|
3421
|
-
const remainingSpace = widthSvgArea - portsWidth;
|
|
3422
|
-
xPosition = (2 * this.canvasLayout.supernodeSVGAreaPadding) + (remainingSpace / 2);
|
|
3427
|
+
} else if (autoPosition || CanvasUtils.isExpandedSupernode(node)) {
|
|
3428
|
+
this.setPortPositionsVerticalAuto(node, ports, portsWidth, yPos);
|
|
3423
3429
|
|
|
3424
|
-
} else
|
|
3425
|
-
|
|
3430
|
+
} else {
|
|
3431
|
+
this.setPortPositionsCustom(ports, portPositions, node, xPos, yPos);
|
|
3426
3432
|
}
|
|
3433
|
+
}
|
|
3434
|
+
}
|
|
3435
|
+
}
|
|
3427
3436
|
|
|
3428
|
-
|
|
3437
|
+
// If only a single port is to be displayed, this methods sets the x and y
|
|
3438
|
+
// coordinates of all the ports to the same values appropriately for either
|
|
3439
|
+
// regular nodes or expanded supernodes.
|
|
3440
|
+
setPortPositionsVerticalDisplaySingle(node, ports, xPos, yPos) {
|
|
3441
|
+
let xPosition = 0;
|
|
3442
|
+
if (CanvasUtils.isExpandedSupernode(node)) {
|
|
3443
|
+
const widthSvgArea = node.width - (2 * this.canvasLayout.supernodeSVGAreaPadding);
|
|
3444
|
+
xPosition = widthSvgArea / 2;
|
|
3429
3445
|
|
|
3430
|
-
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
// necessary with binding nodes with mutiple ports.
|
|
3434
|
-
let multiplier = 1;
|
|
3435
|
-
if (CanvasUtils.isSuperBindingNode(data)) {
|
|
3436
|
-
multiplier = 1 / this.zoomUtils.getZoomScale();
|
|
3437
|
-
}
|
|
3446
|
+
} else {
|
|
3447
|
+
xPosition = xPos;
|
|
3448
|
+
}
|
|
3438
3449
|
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3450
|
+
ports.forEach((p) => {
|
|
3451
|
+
p.cx = xPosition;
|
|
3452
|
+
p.cy = yPos;
|
|
3453
|
+
});
|
|
3454
|
+
}
|
|
3455
|
+
|
|
3456
|
+
// Sets the ports x and y coordinates for regular and expanded supernodes
|
|
3457
|
+
// when all ports are displayed in a normal manner (as opposed to when a
|
|
3458
|
+
// single port is displayed).
|
|
3459
|
+
setPortPositionsVerticalAuto(node, ports, portsWidth, yPos) {
|
|
3460
|
+
let xPosition = 0;
|
|
3461
|
+
|
|
3462
|
+
if (CanvasUtils.isExpandedSupernode(node)) {
|
|
3463
|
+
const widthSvgArea = node.width - (2 * this.canvasLayout.supernodeSVGAreaPadding);
|
|
3464
|
+
const remainingSpace = widthSvgArea - portsWidth;
|
|
3465
|
+
xPosition = this.canvasLayout.supernodeSVGAreaPadding + (remainingSpace / 2);
|
|
3466
|
+
|
|
3467
|
+
} else if (portsWidth < node.width) {
|
|
3468
|
+
xPosition = (node.width - portsWidth) / 2;
|
|
3446
3469
|
}
|
|
3470
|
+
|
|
3471
|
+
xPosition += node.layout.portArcOffset;
|
|
3472
|
+
|
|
3473
|
+
// Sub-flow binding node ports need to be spaced by the inverse of the
|
|
3474
|
+
// zoom amount so that, after zoomToFit on the in-place sub-flow the
|
|
3475
|
+
// binding node ports line up with those on the supernode. This is only
|
|
3476
|
+
// necessary with binding nodes with mutiple ports.
|
|
3477
|
+
let multiplier = 1;
|
|
3478
|
+
if (CanvasUtils.isSuperBindingNode(node)) {
|
|
3479
|
+
multiplier = 1 / this.zoomUtils.getZoomScale();
|
|
3480
|
+
}
|
|
3481
|
+
ports.forEach((p) => {
|
|
3482
|
+
xPosition += (node.layout.portArcRadius * multiplier);
|
|
3483
|
+
p.cx = xPosition;
|
|
3484
|
+
p.cy = yPos;
|
|
3485
|
+
xPosition += ((node.layout.portArcRadius + node.layout.portArcSpacing) * multiplier);
|
|
3486
|
+
});
|
|
3447
3487
|
}
|
|
3448
3488
|
|
|
3449
|
-
|
|
3489
|
+
setPortPositionsHoriz(node, ports, portsHeight, portPositions, autoPosition, displaySinglePort = false) {
|
|
3450
3490
|
if (ports && ports.length > 0) {
|
|
3451
|
-
|
|
3491
|
+
const xPos = this.nodeUtils.getNodePortPosX(portPositions[0], node);
|
|
3492
|
+
const yPos = this.nodeUtils.getNodePortPosY(portPositions[0], node);
|
|
3493
|
+
|
|
3494
|
+
if (node.height <= node.layout.defaultNodeHeight &&
|
|
3452
3495
|
ports.length === 1) {
|
|
3453
3496
|
ports[0].cx = xPos;
|
|
3454
3497
|
ports[0].cy = yPos;
|
|
3498
|
+
|
|
3455
3499
|
} else {
|
|
3456
|
-
// If we are only going to display a single port, we
|
|
3500
|
+
// If we are only going to display a single port, we set all the
|
|
3457
3501
|
// port positions to be the same as if there is only one port.
|
|
3458
3502
|
if (displaySinglePort) {
|
|
3459
|
-
this.
|
|
3503
|
+
this.setPortPositionsHorizDisplaySingle(node, ports, xPos, yPos);
|
|
3504
|
+
|
|
3505
|
+
} else if (autoPosition || CanvasUtils.isExpandedSupernode(node)) {
|
|
3506
|
+
this.setPortPositionsHorizAuto(node, ports, portsHeight, xPos);
|
|
3507
|
+
|
|
3460
3508
|
} else {
|
|
3461
|
-
this.
|
|
3509
|
+
this.setPortPositionsCustom(ports, portPositions, node, xPos, yPos);
|
|
3462
3510
|
}
|
|
3463
3511
|
}
|
|
3464
3512
|
}
|
|
3465
3513
|
}
|
|
3466
3514
|
|
|
3515
|
+
// If only a single port is to be displayed, this methods sets the x and y
|
|
3516
|
+
// coordinates of all the ports to the same values appropriately for either
|
|
3517
|
+
// regular nodes or expanded supernodes.
|
|
3518
|
+
setPortPositionsHorizDisplaySingle(node, ports, xPos, yPos) {
|
|
3519
|
+
let yPosition = 0;
|
|
3520
|
+
if (CanvasUtils.isExpandedSupernode(node)) {
|
|
3521
|
+
const heightSvgArea = node.height - this.canvasLayout.supernodeTopAreaHeight - this.canvasLayout.supernodeSVGAreaPadding;
|
|
3522
|
+
yPosition = this.canvasLayout.supernodeTopAreaHeight + (heightSvgArea / 2);
|
|
3523
|
+
|
|
3524
|
+
} else {
|
|
3525
|
+
yPosition = yPos;
|
|
3526
|
+
}
|
|
3527
|
+
|
|
3528
|
+
ports.forEach((p) => {
|
|
3529
|
+
p.cx = xPos;
|
|
3530
|
+
p.cy = yPosition;
|
|
3531
|
+
});
|
|
3532
|
+
}
|
|
3533
|
+
|
|
3467
3534
|
// Sets the ports x and y coordinates for regular and expanded supernodes
|
|
3468
3535
|
// when all ports are displayed in a normal manner (as opposed to when a
|
|
3469
3536
|
// single port is displayed).
|
|
3470
|
-
|
|
3537
|
+
setPortPositionsHorizAuto(node, ports, portsHeight, xPos) {
|
|
3471
3538
|
let yPosition = 0;
|
|
3472
3539
|
|
|
3473
|
-
if (CanvasUtils.isExpandedSupernode(
|
|
3474
|
-
const heightSvgArea =
|
|
3540
|
+
if (CanvasUtils.isExpandedSupernode(node)) {
|
|
3541
|
+
const heightSvgArea = node.height - this.canvasLayout.supernodeTopAreaHeight - this.canvasLayout.supernodeSVGAreaPadding;
|
|
3475
3542
|
const remainingSpace = heightSvgArea - portsHeight;
|
|
3476
|
-
yPosition = this.canvasLayout.supernodeTopAreaHeight +
|
|
3543
|
+
yPosition = this.canvasLayout.supernodeTopAreaHeight + (remainingSpace / 2);
|
|
3477
3544
|
|
|
3478
|
-
} else if (portsHeight <
|
|
3479
|
-
yPosition = (
|
|
3545
|
+
} else if (portsHeight < node.height) {
|
|
3546
|
+
yPosition = (node.height - portsHeight) / 2;
|
|
3480
3547
|
}
|
|
3481
3548
|
|
|
3482
|
-
yPosition +=
|
|
3549
|
+
yPosition += node.layout.portArcOffset;
|
|
3483
3550
|
|
|
3484
3551
|
// Sub-flow binding node ports need to be spaced by the inverse of the
|
|
3485
3552
|
// zoom amount so that, after zoomToFit on the in-place sub-flow the
|
|
3486
3553
|
// binding node ports line up with those on the supernode. This is only
|
|
3487
3554
|
// necessary with binding nodes with mutiple ports.
|
|
3488
3555
|
let multiplier = 1;
|
|
3489
|
-
if (CanvasUtils.isSuperBindingNode(
|
|
3556
|
+
if (CanvasUtils.isSuperBindingNode(node)) {
|
|
3490
3557
|
multiplier = 1 / this.zoomUtils.getZoomScale();
|
|
3491
3558
|
}
|
|
3492
3559
|
ports.forEach((p) => {
|
|
3493
|
-
yPosition += (
|
|
3560
|
+
yPosition += (node.layout.portArcRadius * multiplier);
|
|
3494
3561
|
p.cx = xPos;
|
|
3495
3562
|
p.cy = yPosition;
|
|
3496
|
-
yPosition += ((
|
|
3563
|
+
yPosition += ((node.layout.portArcRadius + node.layout.portArcSpacing) * multiplier);
|
|
3497
3564
|
});
|
|
3498
3565
|
}
|
|
3499
3566
|
|
|
3500
|
-
//
|
|
3501
|
-
//
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
let
|
|
3505
|
-
if (CanvasUtils.isExpandedSupernode(data)) {
|
|
3506
|
-
const heightSvgArea = data.height - this.canvasLayout.supernodeTopAreaHeight - this.canvasLayout.supernodeSVGAreaPadding;
|
|
3507
|
-
yPosition = this.canvasLayout.supernodeTopAreaHeight + (heightSvgArea / 2);
|
|
3567
|
+
// Sets the node's port positions based on the custom positions provided
|
|
3568
|
+
// by the application in the portPositions array.
|
|
3569
|
+
setPortPositionsCustom(ports, portPositions, node, zerothX, zerothY) {
|
|
3570
|
+
let xPos = zerothX;
|
|
3571
|
+
let yPos = zerothY;
|
|
3508
3572
|
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3573
|
+
ports.forEach((p, i) => {
|
|
3574
|
+
// No need to recalculate the zeroth position AND if there are more
|
|
3575
|
+
// ports than portPositions just use the last port position for all
|
|
3576
|
+
// subsequent ports.
|
|
3577
|
+
if (i > 0 && i < portPositions.length) {
|
|
3578
|
+
xPos = this.nodeUtils.getNodePortPosX(portPositions[i], node);
|
|
3579
|
+
yPos = this.nodeUtils.getNodePortPosY(portPositions[i], node);
|
|
3580
|
+
}
|
|
3514
3581
|
p.cx = xPos;
|
|
3515
|
-
p.cy =
|
|
3582
|
+
p.cy = yPos;
|
|
3516
3583
|
});
|
|
3517
3584
|
}
|
|
3518
3585
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2017-
|
|
2
|
+
* Copyright 2017-2024 Elyra Authors
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -245,34 +245,29 @@ export default class SvgCanvasLinks {
|
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
getNodeLinkCoordsForPorts(srcNode, srcPortId, trgNode, trgPortId) {
|
|
248
|
-
let srcX
|
|
249
|
-
let srcY
|
|
250
|
-
let trgX
|
|
251
|
-
let trgY
|
|
252
|
-
|
|
253
|
-
if (this.canvasLayout.linkDirection === LINK_DIR_TOP_BOTTOM) {
|
|
254
|
-
srcX = srcNode.layout.outputPortBottomPosX;
|
|
255
|
-
srcY = srcNode.height + srcNode.layout.outputPortBottomPosY;
|
|
256
|
-
trgX = trgNode.layout.inputPortTopPosX;
|
|
257
|
-
trgY = trgNode.layout.inputPortTopPosY;
|
|
258
|
-
|
|
259
|
-
} else if (this.canvasLayout.linkDirection === LINK_DIR_BOTTOM_TOP) {
|
|
260
|
-
srcX = srcNode.layout.outputPortBottomPosX;
|
|
261
|
-
srcY = srcNode.layout.outputPortBottomPosY;
|
|
262
|
-
trgX = trgNode.layout.inputPortTopPosX;
|
|
263
|
-
trgY = trgNode.height + trgNode.layout.inputPortTopPosY;
|
|
264
|
-
}
|
|
248
|
+
let srcX;
|
|
249
|
+
let srcY;
|
|
250
|
+
let trgX;
|
|
251
|
+
let trgY;
|
|
265
252
|
|
|
266
253
|
if (srcNode.outputs && srcNode.outputs.length > 0) {
|
|
267
254
|
const port = srcNode.outputs.find((srcPort) => srcPort.id === srcPortId);
|
|
268
255
|
srcX = port ? port.cx : srcX;
|
|
269
256
|
srcY = port ? port.cy : srcY;
|
|
257
|
+
|
|
258
|
+
} else {
|
|
259
|
+
srcX = this.nodeUtils.getNodePortPosX(srcNode.layout.outputPortPositions[0], srcNode);
|
|
260
|
+
srcY = this.nodeUtils.getNodePortPosY(srcNode.layout.outputPortPositions[0], srcNode);
|
|
270
261
|
}
|
|
271
262
|
|
|
272
263
|
if (trgNode.inputs && trgNode.inputs.length > 0) {
|
|
273
264
|
const port = trgNode.inputs.find((trgPort) => trgPort.id === trgPortId);
|
|
274
265
|
trgX = port ? port.cx : trgX;
|
|
275
266
|
trgY = port ? port.cy : trgY;
|
|
267
|
+
|
|
268
|
+
} else {
|
|
269
|
+
trgX = this.nodeUtils.getNodePortPosX(trgNode.layout.inputPortPositions[0], trgNode);
|
|
270
|
+
trgY = this.nodeUtils.getNodePortPosY(trgNode.layout.inputPortPositions[0], trgNode);
|
|
276
271
|
}
|
|
277
272
|
|
|
278
273
|
return {
|
|
@@ -284,31 +279,32 @@ export default class SvgCanvasLinks {
|
|
|
284
279
|
}
|
|
285
280
|
|
|
286
281
|
getAssociationCurveLinkCoords(srcNode, trgNode, assocLinkVariation) {
|
|
287
|
-
let
|
|
288
|
-
let
|
|
282
|
+
let srcX = 0;
|
|
283
|
+
let trgX = 0;
|
|
289
284
|
|
|
290
285
|
if (assocLinkVariation === ASSOC_VAR_CURVE_RIGHT) {
|
|
291
|
-
|
|
292
|
-
|
|
286
|
+
srcX = srcNode.width;
|
|
287
|
+
trgX = 0;
|
|
293
288
|
|
|
294
289
|
} else if (assocLinkVariation === ASSOC_VAR_CURVE_LEFT) {
|
|
295
|
-
|
|
296
|
-
|
|
290
|
+
srcX = 0;
|
|
291
|
+
trgX = trgNode.width;
|
|
297
292
|
|
|
298
293
|
} else if (assocLinkVariation === ASSOC_VAR_DOUBLE_BACK_LEFT) {
|
|
299
|
-
|
|
300
|
-
|
|
294
|
+
srcX = 0;
|
|
295
|
+
trgX = 0;
|
|
301
296
|
|
|
302
297
|
} else {
|
|
303
|
-
|
|
304
|
-
|
|
298
|
+
srcX = srcNode.width;
|
|
299
|
+
trgX = trgNode.width;
|
|
305
300
|
}
|
|
306
301
|
|
|
307
302
|
return {
|
|
308
|
-
x1:
|
|
309
|
-
y1: srcNode.y_pos + srcNode.layout.
|
|
310
|
-
x2:
|
|
311
|
-
y2: trgNode.y_pos + trgNode.layout.
|
|
303
|
+
x1: srcNode.x_pos + srcX,
|
|
304
|
+
y1: srcNode.y_pos + this.nodeUtils.getNodePortPosY(srcNode.layout.outputPortPositions[0], srcNode),
|
|
305
|
+
x2: trgNode.x_pos + trgX,
|
|
306
|
+
y2: trgNode.y_pos + this.nodeUtils.getNodePortPosY(trgNode.layout.inputPortPositions[0], trgNode)
|
|
307
|
+
};
|
|
312
308
|
}
|
|
313
309
|
|
|
314
310
|
getCommentLinkCoords(srcComment, trgNode) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2017-
|
|
2
|
+
* Copyright 2017-2024 Elyra Authors
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -339,20 +339,12 @@ export default class SvgCanvasNodes {
|
|
|
339
339
|
return node.layout.errorHeight;
|
|
340
340
|
}
|
|
341
341
|
|
|
342
|
-
|
|
343
|
-
return this.getElementPosX(node.width,
|
|
342
|
+
getNodePortPosX(posInfo, node) {
|
|
343
|
+
return this.getElementPosX(node.width, posInfo.x_pos, posInfo.pos);
|
|
344
344
|
}
|
|
345
345
|
|
|
346
|
-
|
|
347
|
-
return this.getElementPosY(node.height,
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
getNodeOutputPortRightPosX(node) {
|
|
351
|
-
return this.getElementPosX(node.width, node.layout.outputPortRightPosX, node.layout.outputPortRightPosition);
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
getNodeOutputPortRightPosY(node) {
|
|
355
|
-
return this.getElementPosY(node.height, node.layout.outputPortRightPosY, node.layout.outputPortRightPosition);
|
|
346
|
+
getNodePortPosY(posInfo, node) {
|
|
347
|
+
return this.getElementPosY(node.height, posInfo.y_pos, posInfo.pos);
|
|
356
348
|
}
|
|
357
349
|
|
|
358
350
|
getElementPosX(width, xOffset = 0, position = "topLeft") {
|
package/src/icons/icon.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2017-
|
|
2
|
+
* Copyright 2017-2024 Elyra Authors
|
|
3
3
|
*
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
@@ -21,7 +21,7 @@ import { isMatch, isMatchWith, omit } from "lodash";
|
|
|
21
21
|
import LayoutDimensions from "./layout-dimensions.js";
|
|
22
22
|
import { ASSOC_STRAIGHT, LINK_SELECTION_NONE } from "../common-canvas/constants/canvas-constants";
|
|
23
23
|
|
|
24
|
-
export default class
|
|
24
|
+
export default class ConfigUtils {
|
|
25
25
|
|
|
26
26
|
// Returns a config object which is the result of merging config into
|
|
27
27
|
// startConfig.
|