@elyra/canvas 12.10.0 → 12.11.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-7f93e705.js +2 -0
- package/dist/canvas-constants-7f93e705.js.map +1 -0
- package/dist/canvas-constants-ac5daafb.js +2 -0
- package/dist/canvas-constants-ac5daafb.js.map +1 -0
- package/dist/canvas-controller-183ff6a7.js +2 -0
- package/dist/canvas-controller-183ff6a7.js.map +1 -0
- package/dist/canvas-controller-d70a731e.js +2 -0
- package/dist/canvas-controller-d70a731e.js.map +1 -0
- package/dist/canvas-logger-815781bb.js +2 -0
- package/dist/canvas-logger-815781bb.js.map +1 -0
- package/dist/canvas-logger-a0f1beaa.js +2 -0
- package/dist/canvas-logger-a0f1beaa.js.map +1 -0
- package/dist/common-canvas-3e832a84.js +2 -0
- package/dist/common-canvas-3e832a84.js.map +1 -0
- package/dist/common-canvas-c50cb3f3.js +2 -0
- package/dist/common-canvas-c50cb3f3.js.map +1 -0
- package/dist/common-canvas.es.js +1 -1
- package/dist/common-canvas.es.js.map +1 -1
- package/dist/common-canvas.js +1 -1
- package/dist/common-canvas.js.map +1 -1
- package/dist/common-properties-4f471b2b.js +2 -0
- package/dist/common-properties-4f471b2b.js.map +1 -0
- package/dist/common-properties-9161cd27.js +2 -0
- package/dist/common-properties-9161cd27.js.map +1 -0
- package/dist/datarecord-metadata-v3-schema-bda88f2e.js +2 -0
- package/dist/datarecord-metadata-v3-schema-bda88f2e.js.map +1 -0
- package/dist/datarecord-metadata-v3-schema-d7ad05cd.js +2 -0
- package/dist/datarecord-metadata-v3-schema-d7ad05cd.js.map +1 -0
- package/dist/en-2ed89528.js +2 -0
- package/dist/en-2ed89528.js.map +1 -0
- package/dist/en-e93855cc.js +2 -0
- package/dist/en-e93855cc.js.map +1 -0
- package/dist/extends-39f57612.js +7 -0
- package/dist/extends-39f57612.js.map +1 -0
- package/dist/extends-51d9ddcc.js +7 -0
- package/dist/extends-51d9ddcc.js.map +1 -0
- package/dist/flexible-table-154a3359.js +2 -0
- package/dist/flexible-table-154a3359.js.map +1 -0
- package/dist/flexible-table-5e4a1e6d.js +2 -0
- package/dist/flexible-table-5e4a1e6d.js.map +1 -0
- package/dist/icon-811ffddd.js +2 -0
- package/dist/icon-811ffddd.js.map +1 -0
- package/dist/icon-d6909a68.js +2 -0
- package/dist/icon-d6909a68.js.map +1 -0
- package/dist/index-4fd90a14.js +2 -0
- package/dist/index-4fd90a14.js.map +1 -0
- package/dist/index-6d138021.js +2 -0
- package/dist/index-6d138021.js.map +1 -0
- package/dist/isArrayLikeObject-31e5e646.js +2 -0
- package/dist/isArrayLikeObject-31e5e646.js.map +1 -0
- package/dist/isArrayLikeObject-7c33c7fd.js +2 -0
- package/dist/isArrayLikeObject-7c33c7fd.js.map +1 -0
- package/dist/lib/canvas-controller.es.js +2 -0
- package/dist/lib/canvas-controller.es.js.map +1 -0
- package/dist/lib/canvas-controller.js +2 -0
- package/dist/lib/canvas-controller.js.map +1 -0
- package/dist/lib/canvas.es.js +1 -1
- package/dist/lib/canvas.js +1 -1
- package/dist/lib/context-menu.es.js +1 -1
- package/dist/lib/context-menu.es.js.map +1 -1
- package/dist/lib/context-menu.js +1 -1
- package/dist/lib/context-menu.js.map +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-335252dd.js +2 -0
- package/dist/toolbar-335252dd.js.map +1 -0
- package/dist/toolbar-85e6c77b.js +2 -0
- package/dist/toolbar-85e6c77b.js.map +1 -0
- package/locales/command-actions/locales/en.json +7 -1
- package/locales/command-actions/locales/eo.json +7 -1
- package/locales/command-actions/locales/index.js +3 -1
- package/locales/command-actions/locales/ko.json +9 -0
- package/locales/common-canvas/locales/en.json +1 -0
- package/locales/common-canvas/locales/eo.json +1 -0
- package/locales/common-canvas/locales/index.js +3 -1
- package/locales/common-canvas/locales/ko.json +32 -0
- package/locales/common-properties/locales/index.js +3 -1
- package/locales/common-properties/locales/ko.json +93 -0
- package/locales/palette/locales/index.js +3 -1
- package/locales/palette/locales/ko.json +10 -0
- package/locales/toolbar/locales/index.js +3 -1
- package/locales/toolbar/locales/ko.json +8 -0
- package/package.json +7 -3
- package/rollup.config.js +10 -7
- package/src/color-picker/color-picker-panel.jsx +61 -0
- package/src/color-picker/color-picker.jsx +37 -0
- package/src/color-picker/color-picker.scss +46 -0
- package/src/command-actions/colorSelectedObjectsAction.js +72 -0
- package/src/command-actions/deleteObjectsAction.js +16 -11
- package/src/command-actions/pasteAction.js +50 -21
- package/src/common-canvas/canvas-controller.js +32 -5
- package/src/common-canvas/cc-bottom-panel.jsx +34 -37
- package/src/common-canvas/cc-contents.jsx +114 -12
- package/src/common-canvas/cc-toolbar.jsx +3 -2
- package/src/common-canvas/common-canvas-utils.js +39 -78
- package/src/common-canvas/common-canvas.scss +28 -14
- package/src/common-canvas/constants/canvas-constants.js +17 -16
- package/src/common-canvas/label-util.js +1 -1
- package/src/common-canvas/svg-canvas-d3.js +20 -107
- package/src/common-canvas/svg-canvas-d3.scss +67 -6
- package/src/common-canvas/svg-canvas-pipeline.js +201 -0
- package/src/common-canvas/svg-canvas-renderer.js +155 -164
- package/src/common-canvas/svg-canvas-utils-links.js +3 -3
- package/src/common-canvas/svg-canvas-utils-nodes.js +22 -34
- package/src/common-properties/actions.js +4 -0
- package/src/common-properties/components/field-picker/field-picker.jsx +33 -36
- package/src/common-properties/components/field-picker/field-picker.scss +20 -23
- package/src/common-properties/components/flexible-table/flexible-table.jsx +46 -31
- package/src/common-properties/components/flexible-table/flexible-table.scss +14 -17
- package/src/common-properties/components/properties-buttons/properties-buttons.jsx +28 -21
- package/src/common-properties/components/table-buttons/table-buttons.jsx +3 -1
- package/src/common-properties/components/table-buttons/table-buttons.scss +8 -8
- package/src/common-properties/components/title-editor/title-editor.jsx +31 -4
- package/src/common-properties/components/title-editor/title-editor.scss +30 -5
- package/src/common-properties/components/virtualized-table/virtualized-table.jsx +120 -29
- package/src/common-properties/components/virtualized-table/virtualized-table.scss +72 -8
- package/src/common-properties/constants/constants.js +5 -1
- package/src/common-properties/constants/form-constants.js +1 -0
- package/src/common-properties/controls/abstract-table.jsx +12 -11
- package/src/common-properties/controls/abstract-table.scss +6 -2
- package/src/common-properties/controls/dropdown/dropdown.scss +4 -0
- package/src/common-properties/controls/expression/expression-builder/expression-select-field-function.jsx +2 -2
- package/src/common-properties/controls/passwordfield/passwordfield.jsx +2 -2
- package/src/common-properties/controls/readonlytable/readonlytable.jsx +4 -2
- package/src/common-properties/controls/selectcolumns/selectcolumns.scss +0 -19
- package/src/common-properties/controls/someofselect/someofselect.scss +2 -2
- package/src/common-properties/form/ControlInfo.js +8 -0
- package/src/common-properties/form/EditorForm.js +4 -0
- package/src/common-properties/form/ParameterInfo.js +4 -0
- package/src/common-properties/panels/sub-panel/cell.jsx +18 -23
- package/src/common-properties/panels/sub-panel/sub-panel.scss +5 -22
- package/src/common-properties/properties-controller.js +18 -0
- package/src/common-properties/properties-main/properties-main.jsx +15 -9
- package/src/common-properties/properties-main/properties-main.scss +9 -2
- package/src/common-properties/properties-store.js +27 -1
- package/src/common-properties/reducers/properties-settings.js +17 -1
- package/src/context-menu/common-context-menu.jsx +74 -29
- package/src/context-menu/context-menu-wrapper.jsx +2 -2
- package/src/icons/icon.jsx +5 -46
- package/src/index.scss +1 -0
- package/src/object-model/api-pipeline.js +25 -42
- package/src/object-model/object-model.js +27 -3
- package/src/object-model/redux/canvas-store.js +68 -0
- package/src/object-model/redux/reducers/canvasinfo.js +36 -0
- package/src/object-model/redux/reducers/comments.js +58 -10
- package/src/object-model/redux/reducers/externalpipelineflows.js +1 -0
- package/src/object-model/redux/reducers/links.js +9 -7
- package/src/object-model/redux/reducers/selectioninfo.js +2 -1
- package/src/palette/palette-content-list-item.jsx +8 -1
- package/src/palette/palette-dialog-content-grid-node.jsx +8 -1
- package/src/palette/palette-flyout-utils.js +3 -3
- package/src/toolbar/toolbar-action-item.jsx +77 -14
- package/src/toolbar/toolbar-overflow-item.jsx +2 -3
- package/src/tooltip/tooltip.jsx +4 -1
- package/stats.html +1 -1
- package/dist/canvas-controller-5c90a709.js +0 -2
- package/dist/canvas-controller-5c90a709.js.map +0 -1
- package/dist/canvas-controller-a851a663.js +0 -2
- package/dist/canvas-controller-a851a663.js.map +0 -1
- package/dist/common-properties-3758e3b2.js +0 -2
- package/dist/common-properties-3758e3b2.js.map +0 -1
- package/dist/common-properties-6334cca1.js +0 -2
- package/dist/common-properties-6334cca1.js.map +0 -1
- package/dist/datarecord-metadata-v3-schema-3a2957c3.js +0 -2
- package/dist/datarecord-metadata-v3-schema-3a2957c3.js.map +0 -1
- package/dist/datarecord-metadata-v3-schema-82f2b977.js +0 -2
- package/dist/datarecord-metadata-v3-schema-82f2b977.js.map +0 -1
- package/dist/en-9e368daa.js +0 -2
- package/dist/en-9e368daa.js.map +0 -1
- package/dist/en-a3710fcf.js +0 -2
- package/dist/en-a3710fcf.js.map +0 -1
- package/dist/extends-41535aa9.js +0 -7
- package/dist/extends-41535aa9.js.map +0 -1
- package/dist/extends-76e6b8d2.js +0 -8
- package/dist/extends-76e6b8d2.js.map +0 -1
- package/dist/flexible-table-2bbb9e48.js +0 -2
- package/dist/flexible-table-2bbb9e48.js.map +0 -1
- package/dist/flexible-table-756ff86a.js +0 -2
- package/dist/flexible-table-756ff86a.js.map +0 -1
- package/dist/index-1eff5860.js +0 -2
- package/dist/index-1eff5860.js.map +0 -1
- package/dist/index-7fba99b9.js +0 -2
- package/dist/index-7fba99b9.js.map +0 -1
- package/dist/isEmpty-3550e76f.js +0 -2
- package/dist/isEmpty-3550e76f.js.map +0 -1
- package/dist/isEmpty-c6f783dd.js +0 -2
- package/dist/isEmpty-c6f783dd.js.map +0 -1
|
@@ -79,9 +79,10 @@ $node-port-input-arrow-connected-stroke-color: $inverse-02;
|
|
|
79
79
|
$node-port-input-arrow-connected-fill-color: transparent;
|
|
80
80
|
|
|
81
81
|
// Comment colors
|
|
82
|
-
$comment-outline-color: $ui
|
|
83
|
-
$comment-
|
|
84
|
-
$comment-
|
|
82
|
+
$comment-outline-color: $active-light-ui;
|
|
83
|
+
$comment-outline-hover-color: $inverse-hover-ui;
|
|
84
|
+
$comment-fill-color: $white-0;
|
|
85
|
+
$comment-text-color: $gray-100;
|
|
85
86
|
|
|
86
87
|
// Comment properties
|
|
87
88
|
$comment-text-font-size: 12px;
|
|
@@ -293,7 +294,6 @@ $link-highlight-color: $support-04;
|
|
|
293
294
|
}
|
|
294
295
|
}
|
|
295
296
|
|
|
296
|
-
|
|
297
297
|
/* Node styles - Error indication */
|
|
298
298
|
|
|
299
299
|
.d3-node-error-label {
|
|
@@ -473,7 +473,6 @@ $link-highlight-color: $support-04;
|
|
|
473
473
|
}
|
|
474
474
|
}
|
|
475
475
|
|
|
476
|
-
|
|
477
476
|
/* Error indicator */
|
|
478
477
|
.d3-error-circle {
|
|
479
478
|
stroke: $canvas-background-color;
|
|
@@ -605,7 +604,14 @@ $link-highlight-color: $support-04;
|
|
|
605
604
|
|
|
606
605
|
/* Comment styles */
|
|
607
606
|
|
|
608
|
-
|
|
607
|
+
.d3-comment-group:hover {
|
|
608
|
+
.d3-comment-rect {
|
|
609
|
+
stroke: $comment-outline-hover-color
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
|
|
614
|
+
/* Style for default comment background rectangle */
|
|
609
615
|
.d3-comment-rect {
|
|
610
616
|
fill: $comment-fill-color;
|
|
611
617
|
stroke: $comment-outline-color;
|
|
@@ -616,6 +622,59 @@ $link-highlight-color: $support-04;
|
|
|
616
622
|
user-select: none;
|
|
617
623
|
}
|
|
618
624
|
|
|
625
|
+
@mixin comment-color-overrides($background-color) {
|
|
626
|
+
.d3-comment-rect {
|
|
627
|
+
fill: $background-color;
|
|
628
|
+
}
|
|
629
|
+
.d3-comment-entry {
|
|
630
|
+
background-color: $background-color;
|
|
631
|
+
color: $gray-100;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
/* Styles for comments colored by the user */
|
|
637
|
+
// We add g. at the front of each selector below to override any color set
|
|
638
|
+
// by a class provided for the comment by the host application. The
|
|
639
|
+
// assumption is, the user would prefer the color they set in the UI to
|
|
640
|
+
// override any color provided by the host app.
|
|
641
|
+
g.bkg-col-white-0 {
|
|
642
|
+
@include comment-color-overrides($white-0);
|
|
643
|
+
}
|
|
644
|
+
g.bkg-col-yellow-20 {
|
|
645
|
+
@include comment-color-overrides($yellow-20);
|
|
646
|
+
}
|
|
647
|
+
g.bkg-col-gray-20 {
|
|
648
|
+
@include comment-color-overrides($gray-20);
|
|
649
|
+
}
|
|
650
|
+
g.bkg-col-green-20 {
|
|
651
|
+
@include comment-color-overrides($green-20);
|
|
652
|
+
}
|
|
653
|
+
g.bkg-col-teal-20 {
|
|
654
|
+
@include comment-color-overrides($teal-20);
|
|
655
|
+
}
|
|
656
|
+
g.bkg-col-cyan-20 {
|
|
657
|
+
@include comment-color-overrides($cyan-20);
|
|
658
|
+
}
|
|
659
|
+
g.bkg-col-red-50 {
|
|
660
|
+
@include comment-color-overrides($red-50);
|
|
661
|
+
}
|
|
662
|
+
g.bkg-col-orange-40 {
|
|
663
|
+
@include comment-color-overrides($orange-40);
|
|
664
|
+
}
|
|
665
|
+
g.bkg-col-gray-50 {
|
|
666
|
+
@include comment-color-overrides($gray-50);
|
|
667
|
+
}
|
|
668
|
+
g.bkg-col-green-50 {
|
|
669
|
+
@include comment-color-overrides($green-50);
|
|
670
|
+
}
|
|
671
|
+
g.bkg-col-teal-50 {
|
|
672
|
+
@include comment-color-overrides($teal-50);
|
|
673
|
+
}
|
|
674
|
+
g.bkg-col-cyan-50 {
|
|
675
|
+
@include comment-color-overrides($cyan-50);
|
|
676
|
+
}
|
|
677
|
+
|
|
619
678
|
.d3-comment-selection-highlight {
|
|
620
679
|
stroke-width: 0;
|
|
621
680
|
fill: transparent;
|
|
@@ -632,6 +691,7 @@ $link-highlight-color: $support-04;
|
|
|
632
691
|
|
|
633
692
|
@mixin d3-comment-mixin {
|
|
634
693
|
color: $comment-text-color;
|
|
694
|
+
background-color: transparent;
|
|
635
695
|
font-size: $comment-text-font-size;
|
|
636
696
|
font-weight: $comment-text-font-weight;
|
|
637
697
|
font-family: $comment-text-font-family;
|
|
@@ -653,6 +713,7 @@ $link-highlight-color: $support-04;
|
|
|
653
713
|
.d3-comment-text {
|
|
654
714
|
@include d3-comment-mixin;
|
|
655
715
|
border-width: $comment-text-display-border;
|
|
716
|
+
user-select: none;
|
|
656
717
|
}
|
|
657
718
|
|
|
658
719
|
/* Style for comment text entry when shown in an HTML textarea control. */
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Elyra Authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/* eslint brace-style: "off" */
|
|
17
|
+
|
|
18
|
+
import { isEmpty } from "lodash";
|
|
19
|
+
import Logger from "../logging/canvas-logger.js";
|
|
20
|
+
import CanvasUtils from "./common-canvas-utils.js";
|
|
21
|
+
import { COMMENT_LINK } from "./constants/canvas-constants";
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
export default class SVGCanvasPipeline {
|
|
25
|
+
constructor(pipelineId, canvasInfo) {
|
|
26
|
+
this.logger = new Logger("SVGCanvasActivePipeline");
|
|
27
|
+
this.logger.logStartTimer("constructor");
|
|
28
|
+
this.canvasInfo = canvasInfo;
|
|
29
|
+
this.pipeline = this.getPipeline(pipelineId, canvasInfo);
|
|
30
|
+
|
|
31
|
+
// These variables are accessed directly by svg-canvas-renderer
|
|
32
|
+
this.id = this.pipeline.id;
|
|
33
|
+
this.zoom = this.pipeline.zoom;
|
|
34
|
+
this.nodes = this.pipeline.nodes;
|
|
35
|
+
this.comments = this.pipeline.comments;
|
|
36
|
+
this.links = this.pipeline.links;
|
|
37
|
+
|
|
38
|
+
// We create mapped arrays for quick lookup
|
|
39
|
+
this.mappedNodes = this.getMappedArray(this.pipeline.nodes);
|
|
40
|
+
this.mappedComments = this.getMappedArray(this.pipeline.comments);
|
|
41
|
+
this.mappedLinks = this.getMappedArray(this.pipeline.links);
|
|
42
|
+
|
|
43
|
+
// preProcessPipeline uses the mapped objects so this needs to be done
|
|
44
|
+
// after they have been created.
|
|
45
|
+
this.pipeline = this.preProcessPipeline(this.pipeline);
|
|
46
|
+
|
|
47
|
+
this.logger.logEndTimer("constructor");
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
getCanvasDimensions(gap) {
|
|
51
|
+
return CanvasUtils.getCanvasDimensions(
|
|
52
|
+
this.pipeline.nodes, this.pipeline.comments,
|
|
53
|
+
this.pipeline.links, gap);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Returns the name of the type of object d.
|
|
57
|
+
getObjectTypeName(d) {
|
|
58
|
+
if (this.getComment(d.id)) {
|
|
59
|
+
return "comment";
|
|
60
|
+
} else if (this.getNode(d.id)) {
|
|
61
|
+
return "node";
|
|
62
|
+
}
|
|
63
|
+
return "link";
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
getNode(nodeId) {
|
|
67
|
+
const node = this.mappedNodes[nodeId];
|
|
68
|
+
return (typeof node === "undefined") ? null : node;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
getNodes(nodeIds) {
|
|
72
|
+
const nodes = [];
|
|
73
|
+
nodeIds.forEach((nId) => {
|
|
74
|
+
const n = this.getNode(nId);
|
|
75
|
+
if (n) {
|
|
76
|
+
nodes.push(n);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
return nodes;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
getSupernodes() {
|
|
83
|
+
return this.pipeline.nodes.filter((node) => CanvasUtils.isSupernode(node));
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Returns true if the pipeline is empty except for any binding nodes.
|
|
87
|
+
isEmptyOrBindingsOnly() {
|
|
88
|
+
return (isEmpty(this.pipeline.nodes) || this.containsOnlyBindingNodes()) &&
|
|
89
|
+
isEmpty(this.pipeline.comments);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
containsOnlyBindingNodes() {
|
|
93
|
+
return !this.pipeline.nodes.find((node) => !CanvasUtils.isSuperBindingNode(node));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
getComment(commentId) {
|
|
97
|
+
const com = this.mappedComments[commentId];
|
|
98
|
+
return (typeof com === "undefined") ? null : com;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
getNodesAndComments() {
|
|
102
|
+
return this.pipeline.nodes.concat(this.pipeline.comments);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
getNodeOrComment(id) {
|
|
106
|
+
let obj = this.getNode(id);
|
|
107
|
+
if (obj === null) {
|
|
108
|
+
obj = this.getComment(id);
|
|
109
|
+
}
|
|
110
|
+
return obj;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
getLink(linkId) {
|
|
114
|
+
const link = this.mappedLinks[linkId];
|
|
115
|
+
return (typeof link === "undefined") ? null : link;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Replaces the link in the links array with the one passed in.
|
|
119
|
+
replaceLink(oldLink) {
|
|
120
|
+
const index = this.pipeline.links.findIndex((l) => l.id === oldLink.id);
|
|
121
|
+
this.pipeline.links.splice(index, 1, oldLink);
|
|
122
|
+
this.mappedLinks = this.getMappedArray(this.pipeline.links);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
getPipeline(pipelineId, canvasInfo) {
|
|
126
|
+
const pipeline = canvasInfo.pipelines.find((p) => p.id === pipelineId);
|
|
127
|
+
if (pipeline) {
|
|
128
|
+
return pipeline;
|
|
129
|
+
}
|
|
130
|
+
return { id: pipelineId, nodes: [], comments: [], links: [] };
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Preprocesses the pipeline to set the connected attribute of the ports
|
|
134
|
+
// for each node. This is used when rendering the connection satus of ports.
|
|
135
|
+
preProcessPipeline(pipeline) {
|
|
136
|
+
this.setAllPortsDisconnected(pipeline);
|
|
137
|
+
|
|
138
|
+
pipeline.links.forEach((link) => {
|
|
139
|
+
if (link.type === COMMENT_LINK) {
|
|
140
|
+
link.srcObj = this.getComment(link.srcNodeId);
|
|
141
|
+
link.trgNode = this.getNode(link.trgNodeId);
|
|
142
|
+
|
|
143
|
+
} else {
|
|
144
|
+
link.srcObj = this.getNode(link.srcNodeId);
|
|
145
|
+
link.trgNode = this.getNode(link.trgNodeId);
|
|
146
|
+
|
|
147
|
+
if (link.srcObj) {
|
|
148
|
+
this.setOutputPortConnected(link.srcObj, link.srcNodePortId);
|
|
149
|
+
}
|
|
150
|
+
if (link.trgNode) {
|
|
151
|
+
this.setInputPortConnected(link.trgNode, link.trgNodePortId);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
return pipeline;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Sets the isConnected property of all ports in the pipeline to false.
|
|
159
|
+
setAllPortsDisconnected(pipeline) {
|
|
160
|
+
pipeline.nodes.forEach((n) => {
|
|
161
|
+
if (n.inputs) {
|
|
162
|
+
n.inputs.forEach((inp) => (inp.isConnected = false));
|
|
163
|
+
}
|
|
164
|
+
if (n.outputs) {
|
|
165
|
+
n.outputs.forEach((out) => (out.isConnected = false));
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Sets the isConnected property of the port, identified by inPortId,
|
|
171
|
+
// for the trgNode to true.
|
|
172
|
+
setInputPortConnected(trgNode, inPortId) {
|
|
173
|
+
const portId = inPortId || CanvasUtils.getDefaultInputPortId(trgNode);
|
|
174
|
+
if (trgNode.inputs) {
|
|
175
|
+
trgNode.inputs.forEach((inp) => {
|
|
176
|
+
if (inp.id === portId) {
|
|
177
|
+
inp.isConnected = true;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// Sets the isConnected property of the port, identified by outPortId,
|
|
184
|
+
// for the srcNode to true.
|
|
185
|
+
setOutputPortConnected(srcNode, outPortId) {
|
|
186
|
+
const portId = outPortId || CanvasUtils.getDefaultOutputPortId(srcNode);
|
|
187
|
+
if (srcNode.outputs) {
|
|
188
|
+
srcNode.outputs.forEach((out) => {
|
|
189
|
+
if (out.id === portId) {
|
|
190
|
+
out.isConnected = true;
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// Returns an object where each element in the array provided is indexed by
|
|
197
|
+
// the id property of the element.
|
|
198
|
+
getMappedArray(array) {
|
|
199
|
+
return array.reduce((map, o) => { map[o.id] = o; return map; }, {});
|
|
200
|
+
}
|
|
201
|
+
}
|