@elyra/canvas 12.23.1 → 12.24.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-07dbe4b7.js +2 -0
- package/dist/{canvas-constants-ab55d0fd.js.map → canvas-constants-07dbe4b7.js.map} +1 -1
- package/dist/canvas-constants-ba465147.js +2 -0
- package/dist/canvas-constants-ba465147.js.map +1 -0
- package/dist/canvas-controller-60ed1f25.js +2 -0
- package/dist/canvas-controller-60ed1f25.js.map +1 -0
- package/dist/canvas-controller-6239cacc.js +2 -0
- package/dist/canvas-controller-6239cacc.js.map +1 -0
- package/dist/{canvas-logger-fa8cef5b.js → canvas-logger-27d3180d.js} +2 -2
- package/dist/{canvas-logger-fa8cef5b.js.map → canvas-logger-27d3180d.js.map} +1 -1
- package/dist/{canvas-logger-3459dfc2.js → canvas-logger-bb537fb3.js} +2 -2
- package/dist/{canvas-logger-3459dfc2.js.map → canvas-logger-bb537fb3.js.map} +1 -1
- package/dist/common-canvas-4ae99af6.js +2 -0
- package/dist/common-canvas-4ae99af6.js.map +1 -0
- package/dist/common-canvas-86633e44.js +2 -0
- package/dist/common-canvas-86633e44.js.map +1 -0
- package/dist/common-canvas.es.js +1 -1
- package/dist/common-canvas.js +1 -1
- package/dist/common-properties-2bc0b14a.js +2 -0
- package/dist/common-properties-2bc0b14a.js.map +1 -0
- package/dist/common-properties-56bf68a6.js +2 -0
- package/dist/common-properties-56bf68a6.js.map +1 -0
- package/dist/createClass-826941b3.js +2 -0
- package/dist/createClass-826941b3.js.map +1 -0
- package/dist/createClass-be661622.js +2 -0
- package/dist/createClass-be661622.js.map +1 -0
- package/dist/{datarecord-metadata-v3-schema-03db5d5d.js → datarecord-metadata-v3-schema-3323a91e.js} +2 -2
- package/dist/{datarecord-metadata-v3-schema-03db5d5d.js.map → datarecord-metadata-v3-schema-3323a91e.js.map} +1 -1
- package/dist/{datarecord-metadata-v3-schema-07d7682c.js → datarecord-metadata-v3-schema-93ec5562.js} +2 -2
- package/dist/{datarecord-metadata-v3-schema-07d7682c.js.map → datarecord-metadata-v3-schema-93ec5562.js.map} +1 -1
- package/dist/en-7201b548.js +2 -0
- package/dist/{en-8647c347.js.map → en-7201b548.js.map} +1 -1
- package/dist/en-a08356c8.js +2 -0
- package/dist/{en-7a0f1db1.js.map → en-a08356c8.js.map} +1 -1
- package/dist/extends-11efb86b.js +7 -0
- package/dist/extends-11efb86b.js.map +1 -0
- package/dist/extends-bb395e42.js +7 -0
- package/dist/extends-bb395e42.js.map +1 -0
- package/dist/flexible-table-989859ec.js +2 -0
- package/dist/flexible-table-989859ec.js.map +1 -0
- package/dist/flexible-table-d51a7d72.js +2 -0
- package/dist/flexible-table-d51a7d72.js.map +1 -0
- package/dist/getPrototypeOf-1e698126.js +2 -0
- package/dist/getPrototypeOf-1e698126.js.map +1 -0
- package/dist/getPrototypeOf-3751add9.js +2 -0
- package/dist/getPrototypeOf-3751add9.js.map +1 -0
- package/dist/icon-037ad6d1.js +2 -0
- package/dist/{icon-816af0e7.js.map → icon-037ad6d1.js.map} +1 -1
- package/dist/icon-b619470c.js +2 -0
- package/dist/{icon-2c16236a.js.map → icon-b619470c.js.map} +1 -1
- package/dist/{index-2f6be19d.js → index-46a80c08.js} +2 -2
- package/dist/{index-2f6be19d.js.map → index-46a80c08.js.map} +1 -1
- package/dist/index-b527a82d.js +2 -0
- package/dist/{index-6f739fa1.js.map → index-b527a82d.js.map} +1 -1
- package/dist/isArrayLikeObject-a9c7973b.js +1 -1
- package/dist/isArrayLikeObject-a9c7973b.js.map +1 -1
- package/dist/isArrayLikeObject-f3b27f64.js +1 -1
- package/dist/isArrayLikeObject-f3b27f64.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.js +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.js +1 -1
- package/dist/styles/common-canvas.min.css +1 -1
- package/dist/styles/common-canvas.min.css.map +1 -1
- package/dist/toolbar-3f93ec4b.js +2 -0
- package/dist/toolbar-3f93ec4b.js.map +1 -0
- package/dist/toolbar-e4c551ae.js +2 -0
- package/dist/toolbar-e4c551ae.js.map +1 -0
- package/locales/command-actions/locales/en.json +1 -1
- package/locales/command-actions/locales/eo.json +41 -41
- package/locales/common-canvas/locales/en.json +1 -0
- package/locales/common-canvas/locales/eo.json +1 -0
- package/locales/common-properties/locales/de.json +10 -1
- package/locales/common-properties/locales/en.json +4 -1
- package/locales/common-properties/locales/eo.json +23 -18
- package/locales/common-properties/locales/es.json +10 -1
- package/locales/common-properties/locales/fr.json +10 -1
- package/locales/common-properties/locales/it.json +10 -1
- package/locales/common-properties/locales/ja.json +10 -1
- package/locales/common-properties/locales/ko.json +10 -1
- package/locales/common-properties/locales/pt-br.json +10 -1
- package/locales/common-properties/locales/sv.json +10 -1
- package/locales/common-properties/locales/zh-CN.json +10 -1
- package/locales/common-properties/locales/zh-TW.json +10 -1
- package/package.json +1 -1
- package/src/common-canvas/canvas-controller.js +38 -4
- package/src/common-canvas/svg-canvas-d3.js +12 -0
- package/src/common-canvas/svg-canvas-renderer.js +244 -66
- package/src/common-canvas/svg-canvas-utils-links.js +37 -7
- package/src/common-canvas/svg-canvas-utils-markdown.js +0 -2
- package/src/common-canvas/svg-canvas-utils-textarea.js +56 -43
- package/src/common-properties/components/editor-form/editor-form.jsx +19 -5
- package/src/common-properties/components/editor-form/editor-form.scss +30 -3
- package/src/common-properties/components/field-picker/field-picker.jsx +18 -59
- package/src/common-properties/components/field-picker/field-picker.scss +15 -24
- package/src/common-properties/components/flexible-table/flexible-table.jsx +32 -16
- package/src/common-properties/components/flexible-table/flexible-table.scss +6 -12
- package/src/common-properties/components/properties-modal/properties-modal.jsx +3 -1
- package/src/common-properties/components/properties-modal/properties-modal.scss +1 -0
- package/src/common-properties/components/table-buttons/table-buttons.jsx +1 -0
- package/src/common-properties/components/table-buttons/table-buttons.scss +4 -26
- package/src/common-properties/components/virtualized-table/virtualized-table.jsx +6 -5
- package/src/common-properties/constants/constants.js +11 -2
- package/src/common-properties/controls/abstract-table.jsx +12 -4
- package/src/common-properties/controls/datefield/datefield.jsx +1 -1
- package/src/common-properties/controls/dropdown/dropdown.jsx +3 -3
- package/src/common-properties/controls/expression/expression-builder/expression-select-field-function.jsx +11 -2
- package/src/common-properties/controls/expression/expression-toggle/expression-toggle.jsx +5 -6
- package/src/common-properties/controls/expression/expression.jsx +3 -1
- package/src/common-properties/controls/expression/expression.scss +1 -2
- package/src/common-properties/controls/list/list.jsx +1 -1
- package/src/common-properties/controls/multiselect/multiselect.jsx +2 -2
- package/src/common-properties/controls/numberfield/numberfield.jsx +30 -6
- package/src/common-properties/controls/passwordfield/passwordfield.jsx +13 -2
- package/src/common-properties/controls/radioset/radioset.scss +1 -5
- package/src/common-properties/controls/selectcolumns/selectcolumns.jsx +1 -1
- package/src/common-properties/controls/someofselect/someofselect.jsx +1 -1
- package/src/common-properties/controls/textarea/textarea.jsx +2 -2
- package/src/common-properties/controls/textfield/textfield.jsx +1 -1
- package/src/common-properties/controls/timefield/timefield.jsx +1 -1
- package/src/common-properties/form/ControlInfo.js +3 -1
- package/src/common-properties/form/EditorForm.js +11 -11
- package/src/common-properties/index.scss +2 -4
- package/src/common-properties/panels/control/control.jsx +1 -0
- package/src/common-properties/panels/control/control.scss +12 -0
- package/src/common-properties/panels/sub-panel/invoker.jsx +2 -0
- package/src/common-properties/panels/sub-panel/sub-panel.scss +6 -0
- package/src/common-properties/panels/subtabs/subtabs.jsx +13 -3
- package/src/common-properties/panels/subtabs/subtabs.scss +62 -0
- package/src/common-properties/panels/tearsheet/tearsheet.jsx +64 -7
- package/src/common-properties/panels/tearsheet/tearsheet.scss +84 -18
- package/src/common-properties/properties-controller.js +4 -0
- package/src/common-properties/properties-main/properties-main.jsx +17 -1
- package/src/object-model/api-pipeline.js +1 -6
- package/src/object-model/canvas-in-handler.js +6 -3
- package/src/object-model/layout-dimensions.js +12 -0
- package/src/object-model/object-model.js +7 -39
- package/src/object-model/redux/canvas-store.js +55 -0
- package/src/toolbar/toolbar-action-item.jsx +3 -1
- package/src/toolbar/toolbar-overflow-item.jsx +3 -1
- package/src/toolbar/toolbar.jsx +6 -2
- package/src/toolbar/toolbar.scss +21 -0
- package/stats.html +1 -1
- package/dist/canvas-constants-09ffa4d4.js +0 -2
- package/dist/canvas-constants-09ffa4d4.js.map +0 -1
- package/dist/canvas-constants-ab55d0fd.js +0 -2
- package/dist/canvas-controller-3a399ae6.js +0 -2
- package/dist/canvas-controller-3a399ae6.js.map +0 -1
- package/dist/canvas-controller-c046093c.js +0 -2
- package/dist/canvas-controller-c046093c.js.map +0 -1
- package/dist/common-canvas-088c1a4b.js +0 -2
- package/dist/common-canvas-088c1a4b.js.map +0 -1
- package/dist/common-canvas-7676cc1b.js +0 -2
- package/dist/common-canvas-7676cc1b.js.map +0 -1
- package/dist/common-properties-9d77f8e1.js +0 -2
- package/dist/common-properties-9d77f8e1.js.map +0 -1
- package/dist/common-properties-a31de521.js +0 -2
- package/dist/common-properties-a31de521.js.map +0 -1
- package/dist/createClass-72b049bc.js +0 -2
- package/dist/createClass-72b049bc.js.map +0 -1
- package/dist/createClass-d5cac0b7.js +0 -2
- package/dist/createClass-d5cac0b7.js.map +0 -1
- package/dist/en-7a0f1db1.js +0 -2
- package/dist/en-8647c347.js +0 -2
- package/dist/extends-87da7df3.js +0 -7
- package/dist/extends-87da7df3.js.map +0 -1
- package/dist/extends-dc95dba8.js +0 -7
- package/dist/extends-dc95dba8.js.map +0 -1
- package/dist/flexible-table-59ad2c83.js +0 -2
- package/dist/flexible-table-59ad2c83.js.map +0 -1
- package/dist/flexible-table-5c4fbb7b.js +0 -2
- package/dist/flexible-table-5c4fbb7b.js.map +0 -1
- package/dist/getPrototypeOf-4e282dd3.js +0 -2
- package/dist/getPrototypeOf-4e282dd3.js.map +0 -1
- package/dist/getPrototypeOf-b3806813.js +0 -2
- package/dist/getPrototypeOf-b3806813.js.map +0 -1
- package/dist/icon-2c16236a.js +0 -2
- package/dist/icon-816af0e7.js +0 -2
- package/dist/index-6f739fa1.js +0 -2
- package/dist/toolbar-2ef99bd8.js +0 -2
- package/dist/toolbar-2ef99bd8.js.map +0 -1
- package/dist/toolbar-cb967e26.js +0 -2
- package/dist/toolbar-cb967e26.js.map +0 -1
|
@@ -58,8 +58,6 @@ import SvgCanvasDecs from "./svg-canvas-utils-decs.js";
|
|
|
58
58
|
import SvgCanvasTextArea from "./svg-canvas-utils-textarea.js";
|
|
59
59
|
import SVGCanvasPipeline from "./svg-canvas-pipeline";
|
|
60
60
|
|
|
61
|
-
const showLinksTime = false;
|
|
62
|
-
|
|
63
61
|
const NINETY_DEGREES = 90;
|
|
64
62
|
|
|
65
63
|
const INPUT_TYPE = "input_type";
|
|
@@ -184,13 +182,14 @@ export default class SVGCanvasRenderer {
|
|
|
184
182
|
// Flag to indicate when a zoom is invoked programmatically.
|
|
185
183
|
this.zoomingAction = false;
|
|
186
184
|
|
|
187
|
-
//
|
|
188
|
-
this.movingBindingNodes = false;
|
|
189
|
-
|
|
190
|
-
// Keep track of when the context menu has been closed so we don't remove
|
|
185
|
+
// Keep track of when the context menu has been closed, so we don't remove
|
|
191
186
|
// selections when a context menu is closed during a zoom gesture.
|
|
192
187
|
this.contextMenuClosedOnZoom = false;
|
|
193
188
|
|
|
189
|
+
// Keep track of when text editing has been closed, so we don't remove
|
|
190
|
+
// selections when that happens during a zoom gesture.
|
|
191
|
+
this.textEditingClosedfOnZoom = false;
|
|
192
|
+
|
|
194
193
|
// Used to monitor the region selection rectangle.
|
|
195
194
|
this.regionSelect = false;
|
|
196
195
|
|
|
@@ -419,7 +418,7 @@ export default class SVGCanvasRenderer {
|
|
|
419
418
|
// Ensure the SVG area is displayed, incase it was previously hidden.
|
|
420
419
|
this.canvasSVG.style("display", "inherit");
|
|
421
420
|
|
|
422
|
-
this.displayComments();
|
|
421
|
+
this.displayComments();
|
|
423
422
|
this.displayNodes();
|
|
424
423
|
this.displayLinks();
|
|
425
424
|
|
|
@@ -433,6 +432,12 @@ export default class SVGCanvasRenderer {
|
|
|
433
432
|
this.displayPortsForSubFlowFullPage();
|
|
434
433
|
}
|
|
435
434
|
|
|
435
|
+
this.displayCanvasAccoutrements();
|
|
436
|
+
|
|
437
|
+
this.logger.logEndTimer("displayCanvas");
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
displayCanvasAccoutrements() {
|
|
436
441
|
if (this.config.enableBoundingRectangles) {
|
|
437
442
|
this.displayBoundingRectangles();
|
|
438
443
|
}
|
|
@@ -440,8 +445,6 @@ export default class SVGCanvasRenderer {
|
|
|
440
445
|
if (this.config.enableCanvasUnderlay !== "None" && this.dispUtils.isDisplayingPrimaryFlowFullPage()) {
|
|
441
446
|
this.setCanvasUnderlaySize();
|
|
442
447
|
}
|
|
443
|
-
|
|
444
|
-
this.logger.logEndTimer("displayCanvas");
|
|
445
448
|
}
|
|
446
449
|
|
|
447
450
|
// Ensures the binding ports for a full-page sub-flow are calculated
|
|
@@ -477,10 +480,10 @@ export default class SVGCanvasRenderer {
|
|
|
477
480
|
// moved to the right place.
|
|
478
481
|
this.setPortPositionsAllNodes();
|
|
479
482
|
this.moveSuperBindingNodes();
|
|
480
|
-
|
|
481
|
-
this.
|
|
482
|
-
this.
|
|
483
|
-
|
|
483
|
+
|
|
484
|
+
this.displayMovedNodes();
|
|
485
|
+
this.displayMovedLinks();
|
|
486
|
+
|
|
484
487
|
this.logger.log("displayBindingNodesToFitSVG - end");
|
|
485
488
|
}
|
|
486
489
|
|
|
@@ -680,11 +683,28 @@ export default class SVGCanvasRenderer {
|
|
|
680
683
|
return this.nodesLinksGrp.selectChildren(nodeGrpSelector);
|
|
681
684
|
}
|
|
682
685
|
|
|
683
|
-
getLinkGroupSelectionById(
|
|
684
|
-
const linkGrpSelector = this.getSelectorForId("link_grp",
|
|
686
|
+
getLinkGroupSelectionById(linkId) {
|
|
687
|
+
const linkGrpSelector = this.getSelectorForId("link_grp", linkId);
|
|
685
688
|
return this.nodesLinksGrp.selectChildren(linkGrpSelector);
|
|
686
689
|
}
|
|
687
690
|
|
|
691
|
+
getCommentGroupSelectionById(comId) {
|
|
692
|
+
const selector = this.getSelectorForId("comment_grp", comId);
|
|
693
|
+
return this.commentsGrp.selectChildren(selector);
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
getNodeDecSelectionById(decId, nodeId) {
|
|
697
|
+
const nodeSel = this.getNodeGroupSelectionById(nodeId);
|
|
698
|
+
const selector = this.getSelectorForId("node_dec_group", decId);
|
|
699
|
+
return nodeSel.selectAll(selector);
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
getLinkDecSelectionById(decId, linkId) {
|
|
703
|
+
const linkSel = this.getLinkGroupSelectionById(linkId);
|
|
704
|
+
const selector = this.getSelectorForId("link_dec_group", decId);
|
|
705
|
+
return linkSel.selectAll(selector);
|
|
706
|
+
}
|
|
707
|
+
|
|
688
708
|
// Returns a selector for the ID string like one of the following:
|
|
689
709
|
// * [data-id='prefix_instanceID']
|
|
690
710
|
// * [data-id='prefix_instanceID_suffix']
|
|
@@ -961,13 +981,13 @@ export default class SVGCanvasRenderer {
|
|
|
961
981
|
// the Chrome browser userAgent contains the words "Chrome and "Safari"!
|
|
962
982
|
// However, with the Safari browser, userAgent only contains the word "Safari".
|
|
963
983
|
if (navigator.userAgent.includes("Chrome")) {
|
|
964
|
-
browserZoom =
|
|
984
|
+
browserZoom = 1; // This works for Chrome
|
|
965
985
|
|
|
966
986
|
} else if (navigator.userAgent.includes("Safari")) {
|
|
967
987
|
browserZoom = (window.outerWidth - 8) / window.innerWidth; // This works for Safari
|
|
968
988
|
|
|
969
989
|
} else if (navigator.userAgent.includes("Firefox")) {
|
|
970
|
-
browserZoom =
|
|
990
|
+
browserZoom = 1; // This works for Firefox
|
|
971
991
|
}
|
|
972
992
|
|
|
973
993
|
return browserZoom;
|
|
@@ -1597,6 +1617,57 @@ export default class SVGCanvasRenderer {
|
|
|
1597
1617
|
feMerge.append("feMergeNode").attr("in", "SourceGraphic");
|
|
1598
1618
|
}
|
|
1599
1619
|
|
|
1620
|
+
setNodeLabelEditingMode(nodeId, pipelineId) {
|
|
1621
|
+
if (this.pipelineId === pipelineId) {
|
|
1622
|
+
const node = this.activePipeline.getNode(nodeId);
|
|
1623
|
+
if (node && node.layout.labelEditable && this.config.enableEditingActions) {
|
|
1624
|
+
const nodeSel = this.getNodeGroupSelectionById(nodeId);
|
|
1625
|
+
const nodeDomObj = nodeSel.node();
|
|
1626
|
+
this.displayNodeLabelTextArea(node, nodeDomObj);
|
|
1627
|
+
}
|
|
1628
|
+
} else {
|
|
1629
|
+
this.superRenderers.forEach((renderer) => {
|
|
1630
|
+
renderer.setNodeLabelEditingMode(nodeId, pipelineId);
|
|
1631
|
+
});
|
|
1632
|
+
}
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
setNodeDecorationLabelEditingMode(decId, nodeId, pipelineId) {
|
|
1636
|
+
if (this.pipelineId === pipelineId) {
|
|
1637
|
+
const node = this.activePipeline.getNode(nodeId);
|
|
1638
|
+
if (node && node.decorations) {
|
|
1639
|
+
const dec = node.decorations.find((d) => d.id === decId);
|
|
1640
|
+
if (dec && typeof dec.label !== "undefined" && dec.label_editable && this.config.enableEditingActions) {
|
|
1641
|
+
const nodeDecSel = this.getNodeDecSelectionById(decId, nodeId);
|
|
1642
|
+
const nodeDecDomObj = nodeDecSel.node();
|
|
1643
|
+
this.displayDecLabelTextArea(dec, node, "node", nodeDecDomObj);
|
|
1644
|
+
}
|
|
1645
|
+
}
|
|
1646
|
+
} else {
|
|
1647
|
+
this.superRenderers.forEach((renderer) => {
|
|
1648
|
+
renderer.setLinkDecorationLabelEditingMode(decId, nodeId, pipelineId);
|
|
1649
|
+
});
|
|
1650
|
+
}
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
setLinkDecorationLabelEditingMode(decId, linkId, pipelineId) {
|
|
1654
|
+
if (this.pipelineId === pipelineId) {
|
|
1655
|
+
const link = this.activePipeline.getLink(linkId);
|
|
1656
|
+
if (link && link.decorations) {
|
|
1657
|
+
const dec = link.decorations.find((d) => d.id === decId);
|
|
1658
|
+
if (dec && typeof dec.label !== "undefined" && dec.label_editable && this.config.enableEditingActions) {
|
|
1659
|
+
const linkDecSel = this.getLinkDecSelectionById(decId, linkId);
|
|
1660
|
+
const linkDecDomObj = linkDecSel.node();
|
|
1661
|
+
this.displayDecLabelTextArea(dec, link, "link", linkDecDomObj);
|
|
1662
|
+
}
|
|
1663
|
+
}
|
|
1664
|
+
} else {
|
|
1665
|
+
this.superRenderers.forEach((renderer) => {
|
|
1666
|
+
renderer.setLinkDecorationLabelEditingMode(decId, linkId, pipelineId);
|
|
1667
|
+
});
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1670
|
+
|
|
1600
1671
|
// Restores the zoom of the canvas, if it has changed, based on the type
|
|
1601
1672
|
// of 'save zoom' specified in the configuration and, if no saved zoom, was
|
|
1602
1673
|
// provided pans the canvas area so it is always visible.
|
|
@@ -1806,6 +1877,13 @@ export default class SVGCanvasRenderer {
|
|
|
1806
1877
|
this.contextMenuClosedOnZoom = true;
|
|
1807
1878
|
}
|
|
1808
1879
|
|
|
1880
|
+
// Any text editing in progress will be closed by the textarea's blur event
|
|
1881
|
+
// if the user clicks on the canvas background. So we set this flag to
|
|
1882
|
+
// prevent the selection being lost in the zoomEnd (mouseup) event.
|
|
1883
|
+
if (this.svgCanvasTextArea.isEditingText()) {
|
|
1884
|
+
this.textEditingClosedfOnZoom = true;
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1809
1887
|
this.regionSelect = this.shouldDoRegionSelect(d3Event);
|
|
1810
1888
|
|
|
1811
1889
|
if (this.regionSelect) {
|
|
@@ -1883,6 +1961,7 @@ export default class SVGCanvasRenderer {
|
|
|
1883
1961
|
this.resetCanvasCursor(d3Event);
|
|
1884
1962
|
this.removeTempCursorOverlay();
|
|
1885
1963
|
this.contextMenuClosedOnZoom = false;
|
|
1964
|
+
this.textEditingClosedfOnZoom = false;
|
|
1886
1965
|
this.regionSelect = false;
|
|
1887
1966
|
}
|
|
1888
1967
|
|
|
@@ -1950,7 +2029,9 @@ export default class SVGCanvasRenderer {
|
|
|
1950
2029
|
zoomClick() {
|
|
1951
2030
|
// Only clear selections if clicked on the canvas of the current active pipeline.
|
|
1952
2031
|
// Clicking the canvas of an expanded supernode will select that node.
|
|
1953
|
-
if
|
|
2032
|
+
// Also, don't clear selections if we have closed a context menu or
|
|
2033
|
+
// closed text editing.
|
|
2034
|
+
if (this.dispUtils.isDisplayingCurrentPipeline() && !this.contextMenuClosedOnZoom && !this.textEditingClosedfOnZoom) {
|
|
1954
2035
|
this.selecting = true;
|
|
1955
2036
|
this.canvasController.clearSelections();
|
|
1956
2037
|
this.selecting = false;
|
|
@@ -2315,7 +2396,15 @@ export default class SVGCanvasRenderer {
|
|
|
2315
2396
|
}
|
|
2316
2397
|
}
|
|
2317
2398
|
|
|
2318
|
-
this.
|
|
2399
|
+
this.displayMovedComments();
|
|
2400
|
+
this.displayMovedNodes();
|
|
2401
|
+
this.displayMovedLinks();
|
|
2402
|
+
this.displayCanvasAccoutrements();
|
|
2403
|
+
|
|
2404
|
+
if (this.dispUtils.isDisplayingSubFlowInPlace()) {
|
|
2405
|
+
this.displaySVGToFitSupernode();
|
|
2406
|
+
}
|
|
2407
|
+
|
|
2319
2408
|
|
|
2320
2409
|
if (this.existingNodeInsertableIntoLink) {
|
|
2321
2410
|
const link = this.getLinkAtMousePos(d3Event.sourceEvent.clientX, d3Event.sourceEvent.clientY);
|
|
@@ -2524,15 +2613,7 @@ export default class SVGCanvasRenderer {
|
|
|
2524
2613
|
// redrawn which will need port positions to be set appropriately.
|
|
2525
2614
|
this.setPortPositionsAllNodes();
|
|
2526
2615
|
|
|
2527
|
-
|
|
2528
|
-
if (this.commentSizing) {
|
|
2529
|
-
this.logger.logEndTimer("displayNodes " + this.getFlags());
|
|
2530
|
-
return;
|
|
2531
|
-
|
|
2532
|
-
} else if ((this.dragging && !this.nodeSizing && !this.commentSizing) || this.movingBindingNodes) {
|
|
2533
|
-
this.displayMovedNodes();
|
|
2534
|
-
|
|
2535
|
-
} else if (this.selecting) {
|
|
2616
|
+
if (this.selecting) {
|
|
2536
2617
|
this.displayNodesSelectionStatus();
|
|
2537
2618
|
|
|
2538
2619
|
} else {
|
|
@@ -2542,6 +2623,7 @@ export default class SVGCanvasRenderer {
|
|
|
2542
2623
|
}
|
|
2543
2624
|
|
|
2544
2625
|
displayMovedNodes() {
|
|
2626
|
+
this.logger.logStartTimer("displayMovedNodes");
|
|
2545
2627
|
const nodeGroupSel = this.getAllNodeGroupsSelection();
|
|
2546
2628
|
|
|
2547
2629
|
nodeGroupSel
|
|
@@ -2560,6 +2642,7 @@ export default class SVGCanvasRenderer {
|
|
|
2560
2642
|
}
|
|
2561
2643
|
});
|
|
2562
2644
|
}
|
|
2645
|
+
this.logger.logEndTimer("displayMovedNodes");
|
|
2563
2646
|
}
|
|
2564
2647
|
|
|
2565
2648
|
displayNodesSelectionStatus(nodeGroupSel) {
|
|
@@ -2577,8 +2660,25 @@ export default class SVGCanvasRenderer {
|
|
|
2577
2660
|
// Displays all the nodes on the canvas either by creating new nodes,
|
|
2578
2661
|
// updating existing nodes or removing unwanted nodes.
|
|
2579
2662
|
displayAllNodes() {
|
|
2580
|
-
this.
|
|
2581
|
-
|
|
2663
|
+
this.logger.log("displayAllNodes");
|
|
2664
|
+
const sel = this.getAllNodeGroupsSelection();
|
|
2665
|
+
this.displayNodesSubset(sel, this.activePipeline.nodes);
|
|
2666
|
+
}
|
|
2667
|
+
|
|
2668
|
+
displaySingleNode(d) {
|
|
2669
|
+
this.logger.logStartTimer("displaySingleNode " + this.getFlags());
|
|
2670
|
+
|
|
2671
|
+
this.setPortPositionsForNode(d);
|
|
2672
|
+
|
|
2673
|
+
const selection = this.getNodeGroupSelectionById(d.id);
|
|
2674
|
+
this.displayNodesSubset(selection, [d]);
|
|
2675
|
+
|
|
2676
|
+
this.logger.logEndTimer("displaySingleNode " + this.getFlags());
|
|
2677
|
+
}
|
|
2678
|
+
|
|
2679
|
+
displayNodesSubset(selection, data) {
|
|
2680
|
+
selection
|
|
2681
|
+
.data(data, (d) => d.id)
|
|
2582
2682
|
.join(
|
|
2583
2683
|
(enter) => this.createNodes(enter)
|
|
2584
2684
|
)
|
|
@@ -2896,11 +2996,14 @@ export default class SVGCanvasRenderer {
|
|
|
2896
2996
|
})
|
|
2897
2997
|
// Use mouse down instead of click because it gets called before drag start.
|
|
2898
2998
|
.on("mousedown", (d3Event, d) => {
|
|
2899
|
-
this.logger.
|
|
2999
|
+
this.logger.logStartTimer("Node Group - mouse down");
|
|
3000
|
+
if (this.svgCanvasTextArea.isEditingText()) {
|
|
3001
|
+
this.svgCanvasTextArea.completeEditing();
|
|
3002
|
+
}
|
|
2900
3003
|
if (!this.config.enableDragWithoutSelect) {
|
|
2901
3004
|
this.selectObjectD3Event(d3Event, d);
|
|
2902
3005
|
}
|
|
2903
|
-
this.logger.
|
|
3006
|
+
this.logger.logEndTimer("Node Group - mouse down");
|
|
2904
3007
|
})
|
|
2905
3008
|
.on("mousemove", (d3Event, d) => {
|
|
2906
3009
|
// this.logger.log("Node Group - mouse move");
|
|
@@ -3715,7 +3818,14 @@ export default class SVGCanvasRenderer {
|
|
|
3715
3818
|
if (!this.config.enableDragWithoutSelect) {
|
|
3716
3819
|
this.selectObjectD3Event(d3Event, d);
|
|
3717
3820
|
}
|
|
3718
|
-
this.
|
|
3821
|
+
if (this.canvasController.isContextMenuDisplayed()) {
|
|
3822
|
+
this.canvasController.closeContextMenu();
|
|
3823
|
+
} else {
|
|
3824
|
+
const rect = ellipsisGrp.node().getBoundingClientRect();
|
|
3825
|
+
const rect2 = this.canvasSVG.node().getBoundingClientRect();
|
|
3826
|
+
const pos = { x: rect.left - rect2.left, y: rect.bottom - rect2.top };
|
|
3827
|
+
this.openContextMenu(d3Event, "node", d, null, pos);
|
|
3828
|
+
}
|
|
3719
3829
|
});
|
|
3720
3830
|
|
|
3721
3831
|
ellipsisGrp
|
|
@@ -3873,14 +3983,16 @@ export default class SVGCanvasRenderer {
|
|
|
3873
3983
|
|
|
3874
3984
|
}
|
|
3875
3985
|
|
|
3876
|
-
openContextMenu(d3Event, type, d, port) {
|
|
3986
|
+
openContextMenu(d3Event, type, d, port, pos) {
|
|
3877
3987
|
CanvasUtils.stopPropagationAndPreventDefault(d3Event); // Stop the browser context menu appearing
|
|
3878
3988
|
this.canvasController.contextMenuHandler({
|
|
3879
3989
|
type: type,
|
|
3880
3990
|
targetObject: type === "canvas" ? null : d,
|
|
3881
3991
|
id: type === "canvas" ? null : d.id, // For historical puposes, we pass d.id as well as d as targetObject.
|
|
3882
3992
|
pipelineId: this.activePipeline.id,
|
|
3883
|
-
cmPos:
|
|
3993
|
+
cmPos: pos
|
|
3994
|
+
? pos
|
|
3995
|
+
: this.getMousePos(d3Event, this.canvasDiv.selectAll("svg")), // Get mouse pos relative to top most SVG area even in a subflow.
|
|
3884
3996
|
mousePos: this.getMousePosSnapToGrid(this.getTransformedMousePos(d3Event)),
|
|
3885
3997
|
selectedObjectIds: this.objectModel.getSelectedObjectIds(),
|
|
3886
3998
|
addBreadcrumbs: (d && d.type === SUPER_NODE) ? this.getSupernodeBreadcrumbs(d3Event.currentTarget) : null,
|
|
@@ -4733,6 +4845,9 @@ export default class SVGCanvasRenderer {
|
|
|
4733
4845
|
// Returns a path string that will draw the selection outline shape of the node.
|
|
4734
4846
|
getNodeSelectionOutline(data) {
|
|
4735
4847
|
if (data.layout.selectionPath && !CanvasUtils.isExpanded(data)) {
|
|
4848
|
+
if (typeof data.layout.selectionPath === "function") {
|
|
4849
|
+
return data.layout.selectionPath(data);
|
|
4850
|
+
}
|
|
4736
4851
|
return data.layout.selectionPath;
|
|
4737
4852
|
|
|
4738
4853
|
} else if (data.layout.nodeShape === "port-arcs") {
|
|
@@ -4745,6 +4860,10 @@ export default class SVGCanvasRenderer {
|
|
|
4745
4860
|
// Returns a path string that will draw the body shape of the node.
|
|
4746
4861
|
getNodeShapePath(data) {
|
|
4747
4862
|
if (data.layout.bodyPath && !CanvasUtils.isExpanded(data)) {
|
|
4863
|
+
if (typeof data.layout.bodyPath === "function") {
|
|
4864
|
+
return data.layout.bodyPath(data);
|
|
4865
|
+
}
|
|
4866
|
+
|
|
4748
4867
|
return data.layout.bodyPath;
|
|
4749
4868
|
|
|
4750
4869
|
} else if (data.layout.nodeShape === "port-arcs") {
|
|
@@ -5047,10 +5166,7 @@ export default class SVGCanvasRenderer {
|
|
|
5047
5166
|
displayComments() {
|
|
5048
5167
|
this.logger.logStartTimer("displayComments " + this.getFlags());
|
|
5049
5168
|
|
|
5050
|
-
if (this.
|
|
5051
|
-
this.displayMovedComments();
|
|
5052
|
-
|
|
5053
|
-
} else if (this.selecting) {
|
|
5169
|
+
if (this.selecting) {
|
|
5054
5170
|
this.displayCommentsSelectionStatus();
|
|
5055
5171
|
|
|
5056
5172
|
} else {
|
|
@@ -5061,9 +5177,13 @@ export default class SVGCanvasRenderer {
|
|
|
5061
5177
|
}
|
|
5062
5178
|
|
|
5063
5179
|
displayMovedComments() {
|
|
5180
|
+
this.logger.logStartTimer("displayMovedComments");
|
|
5181
|
+
|
|
5064
5182
|
this.getAllCommentGroupsSelection()
|
|
5065
5183
|
.attr("transform", (c) => `translate(${c.x_pos}, ${c.y_pos})`)
|
|
5066
5184
|
.datum((d) => this.activePipeline.getComment(d.id));
|
|
5185
|
+
|
|
5186
|
+
this.logger.logEndTimer("displayMovedComments");
|
|
5067
5187
|
}
|
|
5068
5188
|
|
|
5069
5189
|
displayCommentsSelectionStatus() {
|
|
@@ -5078,9 +5198,19 @@ export default class SVGCanvasRenderer {
|
|
|
5078
5198
|
});
|
|
5079
5199
|
}
|
|
5080
5200
|
|
|
5201
|
+
displaySingleComment(comment) {
|
|
5202
|
+
const selection = this.getCommentGroupSelectionById(comment.id);
|
|
5203
|
+
this.displayCommentsSubset(selection, [comment]);
|
|
5204
|
+
}
|
|
5205
|
+
|
|
5081
5206
|
displayAllComments() {
|
|
5082
|
-
this.getAllCommentGroupsSelection()
|
|
5083
|
-
|
|
5207
|
+
const selection = this.getAllCommentGroupsSelection();
|
|
5208
|
+
this.displayCommentsSubset(selection, this.activePipeline.comments);
|
|
5209
|
+
}
|
|
5210
|
+
|
|
5211
|
+
displayCommentsSubset(selection, data) {
|
|
5212
|
+
selection
|
|
5213
|
+
.data(data, (c) => c.id)
|
|
5084
5214
|
.join(
|
|
5085
5215
|
(enter) => this.createComments(enter)
|
|
5086
5216
|
)
|
|
@@ -5194,11 +5324,14 @@ export default class SVGCanvasRenderer {
|
|
|
5194
5324
|
})
|
|
5195
5325
|
// Use mouse down instead of click because it gets called before drag start.
|
|
5196
5326
|
.on("mousedown", (d3Event, d) => {
|
|
5197
|
-
this.logger.
|
|
5327
|
+
this.logger.logStartTimer("Comment Group - mouse down");
|
|
5328
|
+
if (this.svgCanvasTextArea.isEditingText()) {
|
|
5329
|
+
this.svgCanvasTextArea.completeEditing();
|
|
5330
|
+
}
|
|
5198
5331
|
if (!this.config.enableDragWithoutSelect) {
|
|
5199
5332
|
this.selectObjectD3Event(d3Event, d);
|
|
5200
5333
|
}
|
|
5201
|
-
this.logger.
|
|
5334
|
+
this.logger.logEndTimer("Comment Group - mouse down");
|
|
5202
5335
|
})
|
|
5203
5336
|
.on("click", (d3Event, d) => {
|
|
5204
5337
|
this.logger.log("Comment Group - click");
|
|
@@ -5521,9 +5654,13 @@ export default class SVGCanvasRenderer {
|
|
|
5521
5654
|
this.nodeSizingDetLinksInfo = Object.assign(this.nodeSizingDetLinksInfo, linksInfo);
|
|
5522
5655
|
}
|
|
5523
5656
|
|
|
5524
|
-
this.
|
|
5525
|
-
|
|
5526
|
-
this.
|
|
5657
|
+
this.logger.logStartTimer("displayObjects");
|
|
5658
|
+
|
|
5659
|
+
this.displayMovedComments();
|
|
5660
|
+
this.displayMovedNodes();
|
|
5661
|
+
this.displaySingleNode(resizeObj);
|
|
5662
|
+
this.displayMovedLinks();
|
|
5663
|
+
this.displayCanvasAccoutrements();
|
|
5527
5664
|
|
|
5528
5665
|
if (CanvasUtils.isSupernode(resizeObj)) {
|
|
5529
5666
|
if (this.dispUtils.isDisplayingSubFlow()) {
|
|
@@ -5531,6 +5668,7 @@ export default class SVGCanvasRenderer {
|
|
|
5531
5668
|
}
|
|
5532
5669
|
this.superRenderers.forEach((renderer) => renderer.displaySVGToFitSupernode());
|
|
5533
5670
|
}
|
|
5671
|
+
this.logger.logEndTimer("displayObjects");
|
|
5534
5672
|
}
|
|
5535
5673
|
}
|
|
5536
5674
|
|
|
@@ -5541,8 +5679,9 @@ export default class SVGCanvasRenderer {
|
|
|
5541
5679
|
resizeComment(d3Event, d) {
|
|
5542
5680
|
const resizeObj = this.activePipeline.getComment(d.id);
|
|
5543
5681
|
this.resizeObject(d3Event, resizeObj, this.commentSizingDirection, 20, 20);
|
|
5544
|
-
this.
|
|
5545
|
-
this.
|
|
5682
|
+
this.displaySingleComment(resizeObj);
|
|
5683
|
+
this.displayMovedLinks();
|
|
5684
|
+
this.displayCanvasAccoutrements();
|
|
5546
5685
|
}
|
|
5547
5686
|
|
|
5548
5687
|
// Sets the size and position of the object in the canvasInfo
|
|
@@ -5586,6 +5725,9 @@ export default class SVGCanvasRenderer {
|
|
|
5586
5725
|
width = CanvasUtils.snapToGrid(this.notSnappedWidth, this.canvasLayout.snapToGridXPx);
|
|
5587
5726
|
height = CanvasUtils.snapToGrid(this.notSnappedHeight, this.canvasLayout.snapToGridYPx);
|
|
5588
5727
|
|
|
5728
|
+
width = Math.max(width, minWidth);
|
|
5729
|
+
height = Math.max(height, minHeight);
|
|
5730
|
+
|
|
5589
5731
|
} else {
|
|
5590
5732
|
xPos = canvasObj.x_pos + incrementX;
|
|
5591
5733
|
yPos = canvasObj.y_pos + incrementY;
|
|
@@ -5622,9 +5764,10 @@ export default class SVGCanvasRenderer {
|
|
|
5622
5764
|
let resizeObj = this.activePipeline.getNode(node.id);
|
|
5623
5765
|
if (this.config.enableSnapToGridType === SNAP_TO_GRID_AFTER) {
|
|
5624
5766
|
resizeObj = this.snapToGridObject(resizeObj);
|
|
5767
|
+
resizeObj = this.restrictNodeSizingToMinimums(resizeObj);
|
|
5625
5768
|
}
|
|
5626
5769
|
|
|
5627
|
-
// If the dimensions or position has changed, issue the command.
|
|
5770
|
+
// If the dimensions or position has changed, issue the "resizeObjects" command.
|
|
5628
5771
|
// Note: x_pos or y_pos might change on resize if the node is sized
|
|
5629
5772
|
// upwards or to the left.
|
|
5630
5773
|
if (this.resizeObjInitialInfo.x_pos !== resizeObj.x_pos ||
|
|
@@ -5697,6 +5840,16 @@ export default class SVGCanvasRenderer {
|
|
|
5697
5840
|
this.commentSizing = false;
|
|
5698
5841
|
}
|
|
5699
5842
|
|
|
5843
|
+
// Ensure the snap-to-grid does not make the width or height smaller than
|
|
5844
|
+
// the minimums allowed.
|
|
5845
|
+
restrictNodeSizingToMinimums(resizeObj) {
|
|
5846
|
+
const minHeight = this.getMinHeight(resizeObj);
|
|
5847
|
+
const minWidth = this.getMinWidth(resizeObj);
|
|
5848
|
+
resizeObj.width = Math.max(resizeObj.width, minWidth);
|
|
5849
|
+
resizeObj.height = Math.max(resizeObj.height, minHeight);
|
|
5850
|
+
return resizeObj;
|
|
5851
|
+
}
|
|
5852
|
+
|
|
5700
5853
|
displayLinks() {
|
|
5701
5854
|
this.logger.logStartTimer("displayLinks " + this.getFlags());
|
|
5702
5855
|
|
|
@@ -5724,13 +5877,31 @@ export default class SVGCanvasRenderer {
|
|
|
5724
5877
|
}
|
|
5725
5878
|
|
|
5726
5879
|
displayAllLinks() {
|
|
5727
|
-
|
|
5880
|
+
const linksArray = this.buildLinksArray();
|
|
5881
|
+
const selection = this.getAllLinkGroupsSelection();
|
|
5882
|
+
this.displayLinksSubset(selection, linksArray);
|
|
5883
|
+
}
|
|
5884
|
+
|
|
5885
|
+
displayMovedLinks() {
|
|
5886
|
+
this.logger.logStartTimer("displayMovedLinks");
|
|
5728
5887
|
|
|
5729
|
-
const timeAfterDelete = Date.now();
|
|
5730
5888
|
const linksArray = this.buildLinksArray();
|
|
5731
|
-
const
|
|
5889
|
+
const movedLinks = linksArray.filter((l) => l.coordsUpdated);
|
|
5890
|
+
|
|
5891
|
+
movedLinks.forEach((l) => {
|
|
5892
|
+
this.displaySingleLink(l);
|
|
5893
|
+
});
|
|
5894
|
+
|
|
5895
|
+
this.logger.logEndTimer("displayMovedLinks");
|
|
5896
|
+
}
|
|
5732
5897
|
|
|
5733
|
-
|
|
5898
|
+
displaySingleLink(link) {
|
|
5899
|
+
const selection = this.getLinkGroupSelectionById(link.id);
|
|
5900
|
+
this.displayLinksSubset(selection, [link]);
|
|
5901
|
+
}
|
|
5902
|
+
|
|
5903
|
+
displayLinksSubset(selection, linksArray) {
|
|
5904
|
+
selection
|
|
5734
5905
|
.data(linksArray, (link) => link.id)
|
|
5735
5906
|
.join(
|
|
5736
5907
|
(enter) => this.createLinks(enter)
|
|
@@ -5741,13 +5912,6 @@ export default class SVGCanvasRenderer {
|
|
|
5741
5912
|
.call((joinedLinkGrps) => {
|
|
5742
5913
|
this.updateLinks(joinedLinkGrps, linksArray);
|
|
5743
5914
|
});
|
|
5744
|
-
|
|
5745
|
-
var endTimeDrawingLines = Date.now();
|
|
5746
|
-
|
|
5747
|
-
if (showLinksTime) {
|
|
5748
|
-
this.logger.log("displayLinks R " + (timeAfterDelete - startTimeDrawingLines) +
|
|
5749
|
-
" B " + (afterLineArray - timeAfterDelete) + " D " + (endTimeDrawingLines - afterLineArray));
|
|
5750
|
-
}
|
|
5751
5915
|
}
|
|
5752
5916
|
|
|
5753
5917
|
// Creates all newly created links specified in the enter selection.
|
|
@@ -5831,7 +5995,8 @@ export default class SVGCanvasRenderer {
|
|
|
5831
5995
|
// Update decorations on the node-node or association links.
|
|
5832
5996
|
joinedLinkGrps.each((d, i, linkGrps) => {
|
|
5833
5997
|
if (d.type === NODE_LINK || d.type === ASSOCIATION_LINK) {
|
|
5834
|
-
|
|
5998
|
+
const linkGrp = d3.select(linkGrps[i]).selectAll(".d3-link-decorations-group");
|
|
5999
|
+
this.displayDecorations(d, DEC_LINK, linkGrp, d.decorations);
|
|
5835
6000
|
}
|
|
5836
6001
|
});
|
|
5837
6002
|
|
|
@@ -5855,6 +6020,9 @@ export default class SVGCanvasRenderer {
|
|
|
5855
6020
|
linkGrps
|
|
5856
6021
|
.on("mousedown", (d3Event, d, index, links) => {
|
|
5857
6022
|
this.logger.log("Link Group - mouse down");
|
|
6023
|
+
if (this.svgCanvasTextArea.isEditingText()) {
|
|
6024
|
+
this.svgCanvasTextArea.completeEditing();
|
|
6025
|
+
}
|
|
5858
6026
|
if (this.config.enableLinkSelection !== LINK_SELECTION_NONE) {
|
|
5859
6027
|
this.selectObjectD3Event(d3Event, d);
|
|
5860
6028
|
}
|
|
@@ -6067,7 +6235,8 @@ export default class SVGCanvasRenderer {
|
|
|
6067
6235
|
|
|
6068
6236
|
// Returns the class string to be appled to the node group object.
|
|
6069
6237
|
getNodeGroupClass(d) {
|
|
6070
|
-
let customClass = "";
|
|
6238
|
+
let customClass = " " + d.layout.className || "";
|
|
6239
|
+
|
|
6071
6240
|
// If the node has a classname that isn't the default use it!
|
|
6072
6241
|
if (d.class_name &&
|
|
6073
6242
|
d.class_name !== "canvas-node" &&
|
|
@@ -6110,7 +6279,7 @@ export default class SVGCanvasRenderer {
|
|
|
6110
6279
|
// the side of the node and where those nodes may be positioned close to each
|
|
6111
6280
|
// other so it makes the ports appear on top of any adjacent node.
|
|
6112
6281
|
raiseNodeToTop(nodeGrp) {
|
|
6113
|
-
if (this.drawingNewLinkData === null && !this.dragging && this.getSelectedLinks().length === 0) {
|
|
6282
|
+
if (this.drawingNewLinkData === null && !this.dragging && this.getSelectedLinks().length === 0 && !this.isEditingText()) {
|
|
6114
6283
|
nodeGrp.raise();
|
|
6115
6284
|
}
|
|
6116
6285
|
}
|
|
@@ -6205,6 +6374,12 @@ export default class SVGCanvasRenderer {
|
|
|
6205
6374
|
: null;
|
|
6206
6375
|
const coords = this.linkUtils.getLinkCoords(link, srcObj, srcPortId, trgNode, trgPortId, assocLinkVariation);
|
|
6207
6376
|
|
|
6377
|
+
link.coordsUpdated =
|
|
6378
|
+
link.x1 !== coords.x1 ||
|
|
6379
|
+
link.y1 !== coords.y1 ||
|
|
6380
|
+
link.x2 !== coords.x2 ||
|
|
6381
|
+
link.y2 !== coords.y2;
|
|
6382
|
+
|
|
6208
6383
|
link.assocLinkVariation = assocLinkVariation;
|
|
6209
6384
|
link.srcPortId = srcPortId;
|
|
6210
6385
|
link.trgPortId = trgPortId;
|
|
@@ -6275,6 +6450,12 @@ export default class SVGCanvasRenderer {
|
|
|
6275
6450
|
}
|
|
6276
6451
|
}
|
|
6277
6452
|
|
|
6453
|
+
link.coordsUpdated =
|
|
6454
|
+
link.x1 !== coords.x1 ||
|
|
6455
|
+
link.y1 !== coords.y1 ||
|
|
6456
|
+
link.x2 !== coords.x2 ||
|
|
6457
|
+
link.y2 !== coords.y2;
|
|
6458
|
+
|
|
6278
6459
|
link.srcPortId = srcPortId;
|
|
6279
6460
|
link.trgPortId = trgPortId;
|
|
6280
6461
|
link.x1 = coords.x1;
|
|
@@ -6778,9 +6959,6 @@ export default class SVGCanvasRenderer {
|
|
|
6778
6959
|
if (this.commentSizing) {
|
|
6779
6960
|
str += " commentSizing = true";
|
|
6780
6961
|
}
|
|
6781
|
-
if (this.movingBindingNodes) {
|
|
6782
|
-
str += " movingBindingNodes = true";
|
|
6783
|
-
}
|
|
6784
6962
|
if (this.selecting) {
|
|
6785
6963
|
str += " selecting = true";
|
|
6786
6964
|
}
|