@elyra/canvas 12.39.1 → 12.40.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/{_baseIteratee-64ab55d0.js → _baseIteratee-f4715b87.js} +2 -2
- package/dist/_baseIteratee-f4715b87.js.map +1 -0
- package/dist/_baseIteratee-fb637d17.js +7 -0
- package/dist/_baseIteratee-fb637d17.js.map +1 -0
- package/dist/canvas-constants-c5e07e1c.js +2 -0
- package/dist/{canvas-constants-be5521b9.js.map → canvas-constants-c5e07e1c.js.map} +1 -1
- package/dist/canvas-constants-ef23ad87.js +2 -0
- package/dist/{canvas-constants-45f5f039.js.map → canvas-constants-ef23ad87.js.map} +1 -1
- package/dist/canvas-controller-95ecdee5.js +2 -0
- package/dist/{canvas-controller-ad1c218a.js.map → canvas-controller-95ecdee5.js.map} +1 -1
- package/dist/canvas-controller-bde80f8a.js +2 -0
- package/dist/{canvas-controller-c8b0d574.js.map → canvas-controller-bde80f8a.js.map} +1 -1
- package/dist/common-canvas-32d7e405.js +2 -0
- package/dist/{common-canvas-c16aeb7c.js.map → common-canvas-32d7e405.js.map} +1 -1
- package/dist/common-canvas-b32c379e.js +2 -0
- package/dist/{common-canvas-891b7b38.js.map → common-canvas-b32c379e.js.map} +1 -1
- 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-06008d04.js +2 -0
- package/dist/common-properties-06008d04.js.map +1 -0
- package/dist/common-properties-f0e8fedb.js +2 -0
- package/dist/common-properties-f0e8fedb.js.map +1 -0
- package/dist/context-menu-wrapper-96f437f2.js +2 -0
- package/dist/{context-menu-wrapper-4dc8d351.js.map → context-menu-wrapper-96f437f2.js.map} +1 -1
- package/dist/context-menu-wrapper-a55b8cb4.js +2 -0
- package/dist/{context-menu-wrapper-5b795ee5.js.map → context-menu-wrapper-a55b8cb4.js.map} +1 -1
- package/dist/{datarecord-metadata-v3-schema-618b308b.js → datarecord-metadata-v3-schema-76e8fa3e.js} +2 -2
- package/dist/{datarecord-metadata-v3-schema-618b308b.js.map → datarecord-metadata-v3-schema-76e8fa3e.js.map} +1 -1
- package/dist/{datarecord-metadata-v3-schema-ee0f5c4c.js → datarecord-metadata-v3-schema-9b4a5306.js} +2 -2
- package/dist/{datarecord-metadata-v3-schema-ee0f5c4c.js.map → datarecord-metadata-v3-schema-9b4a5306.js.map} +1 -1
- package/dist/flexible-table-93144915.js +2 -0
- package/dist/flexible-table-93144915.js.map +1 -0
- package/dist/flexible-table-9de9d023.js +2 -0
- package/dist/flexible-table-9de9d023.js.map +1 -0
- package/dist/icon-1995d07f.js +2 -0
- package/dist/{icon-86ee98d5.js.map → icon-1995d07f.js.map} +1 -1
- package/dist/icon-9bf1b1d0.js +2 -0
- package/dist/{icon-630b5bba.js.map → icon-9bf1b1d0.js.map} +1 -1
- package/dist/index-2974f99f.js +2 -0
- package/dist/{index-11b62489.js.map → index-2974f99f.js.map} +1 -1
- package/dist/index-86e4c622.js +2 -0
- package/dist/{index-7bf8508e.js.map → index-86e4c622.js.map} +1 -1
- package/dist/inherits-226dfdb2.js +2 -0
- package/dist/inherits-226dfdb2.js.map +1 -0
- package/dist/{getPrototypeOf-d346567e.js → inherits-41673c87.js} +2 -2
- package/dist/inherits-41673c87.js.map +1 -0
- 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/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-8ed1e188.js +2 -0
- package/dist/{toolbar-d69430a2.js.map → toolbar-8ed1e188.js.map} +1 -1
- package/dist/toolbar-dbe39e96.js +2 -0
- package/dist/{toolbar-b1b9f37d.js.map → toolbar-dbe39e96.js.map} +1 -1
- package/locales/common-properties/locales/en.json +1 -0
- package/package.json +1 -1
- package/src/common-canvas/canvas-controller-menu-utils.js +2 -2
- package/src/common-canvas/canvas-controller.js +34 -28
- package/src/common-canvas/constants/canvas-constants.js +0 -5
- package/src/common-canvas/svg-canvas-d3.scss +37 -2
- package/src/common-canvas/svg-canvas-renderer.js +9 -2
- package/src/common-properties/components/flexible-table/flexible-table.jsx +15 -2
- package/src/common-properties/components/virtualized-table/virtualized-table.jsx +1 -1
- package/src/common-properties/constants/constants.js +1 -0
- package/src/common-properties/controls/expression/expression-builder/expression-select-field-function.jsx +86 -28
- package/src/common-properties/controls/expression/expressionInfo-parser.js +0 -1
- package/src/common-properties/properties-controller.js +26 -4
- package/src/object-model/object-model.js +12 -0
- package/src/object-model/redux/reducers/canvasinfo.js +13 -1
- package/src/object-model/redux/reducers/comments.js +0 -1
- package/src/object-model/redux/reducers/links.js +16 -0
- package/src/object-model/redux/reducers/nodes.js +16 -0
- package/stats.html +1 -1
- package/dist/_baseIteratee-64ab55d0.js.map +0 -1
- package/dist/_baseIteratee-82d2e94c.js +0 -7
- package/dist/_baseIteratee-82d2e94c.js.map +0 -1
- package/dist/canvas-constants-45f5f039.js +0 -2
- package/dist/canvas-constants-be5521b9.js +0 -2
- package/dist/canvas-controller-ad1c218a.js +0 -2
- package/dist/canvas-controller-c8b0d574.js +0 -2
- package/dist/common-canvas-891b7b38.js +0 -2
- package/dist/common-canvas-c16aeb7c.js +0 -2
- package/dist/common-properties-9cfe3daa.js +0 -2
- package/dist/common-properties-9cfe3daa.js.map +0 -1
- package/dist/common-properties-bbe82be2.js +0 -2
- package/dist/common-properties-bbe82be2.js.map +0 -1
- package/dist/context-menu-wrapper-4dc8d351.js +0 -2
- package/dist/context-menu-wrapper-5b795ee5.js +0 -2
- package/dist/flexible-table-41beff38.js +0 -2
- package/dist/flexible-table-41beff38.js.map +0 -1
- package/dist/flexible-table-52f85f0b.js +0 -2
- package/dist/flexible-table-52f85f0b.js.map +0 -1
- package/dist/getPrototypeOf-11f2726a.js +0 -2
- package/dist/getPrototypeOf-11f2726a.js.map +0 -1
- package/dist/getPrototypeOf-d346567e.js.map +0 -1
- package/dist/icon-630b5bba.js +0 -2
- package/dist/icon-86ee98d5.js +0 -2
- package/dist/index-11b62489.js +0 -2
- package/dist/index-7bf8508e.js +0 -2
- package/dist/toolbar-b1b9f37d.js +0 -2
- package/dist/toolbar-d69430a2.js +0 -2
|
@@ -4204,7 +4204,12 @@ export default class SVGCanvasRenderer {
|
|
|
4204
4204
|
|
|
4205
4205
|
// Returns the class string to be appled to the link group object.
|
|
4206
4206
|
getLinkGroupClass(d) {
|
|
4207
|
-
return "d3-link-group " + this.getLinkTypeClass(d) + " " + this.getLinkCustomClass(d);
|
|
4207
|
+
return "d3-link-group " + this.getLinkTypeClass(d) + " " + this.getLinkBranchHighlightCLass(d) + " " + this.getLinkCustomClass(d);
|
|
4208
|
+
}
|
|
4209
|
+
|
|
4210
|
+
// Returns the class to be used for branch highlighting if the branchHighlight flag id set for the link.
|
|
4211
|
+
getLinkBranchHighlightCLass(d) {
|
|
4212
|
+
return (d.branchHighlight ? "d3-branch-highlight" : "");
|
|
4208
4213
|
}
|
|
4209
4214
|
|
|
4210
4215
|
// Returns the custom class string for the link object passed in.
|
|
@@ -4282,7 +4287,9 @@ export default class SVGCanvasRenderer {
|
|
|
4282
4287
|
? " d3-resized"
|
|
4283
4288
|
: "";
|
|
4284
4289
|
|
|
4285
|
-
|
|
4290
|
+
const branchHighlightClass = d.branchHighlight ? " d3-branch-highlight" : "";
|
|
4291
|
+
|
|
4292
|
+
return "d3-node-group" + supernodeClass + resizeClass + draggableClass + branchHighlightClass + customClass;
|
|
4286
4293
|
}
|
|
4287
4294
|
|
|
4288
4295
|
// Pushes the links to be below nodes within the nodesLinksGrp group.
|
|
@@ -61,6 +61,7 @@ class FlexibleTable extends React.Component {
|
|
|
61
61
|
this.onSort = this.onSort.bind(this);
|
|
62
62
|
this.sortHeaderClick = this.sortHeaderClick.bind(this);
|
|
63
63
|
this._updateTableWidth = this._updateTableWidth.bind(this);
|
|
64
|
+
this._updateRows = this._updateRows.bind(this);
|
|
64
65
|
this._adjustTableHeight = this._adjustTableHeight.bind(this);
|
|
65
66
|
this.handleCheckedRow = this.handleCheckedRow.bind(this);
|
|
66
67
|
this.handleCheckedAllRows = this.handleCheckedAllRows.bind(this);
|
|
@@ -74,8 +75,11 @@ class FlexibleTable extends React.Component {
|
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
componentDidUpdate(prevProps, prevState) {
|
|
77
|
-
if (prevProps.rows !== this.props.rows
|
|
78
|
-
|
|
78
|
+
if (prevProps.rows !== this.props.rows) {
|
|
79
|
+
this._updateRows();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (prevProps.columns !== this.props.columns ||
|
|
79
83
|
prevProps.noAutoSize !== this.props.noAutoSize) {
|
|
80
84
|
this._adjustTableHeight();
|
|
81
85
|
}
|
|
@@ -243,10 +247,19 @@ class FlexibleTable extends React.Component {
|
|
|
243
247
|
}
|
|
244
248
|
}
|
|
245
249
|
|
|
250
|
+
_updateRows() {
|
|
251
|
+
if (this.props.rows && this.props.rows !== this.state.rows) {
|
|
252
|
+
this.setState({ rows: this.props.rows }, () => {
|
|
253
|
+
this._adjustTableHeight();
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
246
258
|
_adjustTableHeight() {
|
|
247
259
|
if (this.props.noAutoSize) {
|
|
248
260
|
return;
|
|
249
261
|
}
|
|
262
|
+
|
|
250
263
|
let newHeight = this.state.tableHeight;
|
|
251
264
|
let dynamicH = this.state.dynamicHeight;
|
|
252
265
|
const multiSelectTableHeight = REM_ROW_HEIGHT + REM_HEADER_HEIGHT;
|
|
@@ -380,7 +380,7 @@ class VirtualizedTable extends React.Component {
|
|
|
380
380
|
}
|
|
381
381
|
|
|
382
382
|
if (this.props.selectable) {
|
|
383
|
-
const rowSelected = this.isRowSelected(rowData.originalRowIndex);
|
|
383
|
+
const rowSelected = this.props.sortDirection ? this.isRowSelected(rowData.index) : this.isRowSelected(rowData.originalRowIndex); // use current row index when Sorted
|
|
384
384
|
selectedRow = this.props.selectable && rowSelected;
|
|
385
385
|
if (this.props.rowSelection !== ROW_SELECTION.SINGLE) {
|
|
386
386
|
const translatedRowCheckboxLabel = this.props.intl.formatMessage(
|
|
@@ -73,6 +73,7 @@ export const MESSAGE_KEYS = {
|
|
|
73
73
|
EXPRESSION_FIELDS_TITLE: "expression.fields.title",
|
|
74
74
|
EXPRESSION_VALUES_TITLE: "expression.values.title",
|
|
75
75
|
EXPRESSION_FIELD_COLUMN: "expression.field.column",
|
|
76
|
+
EXPRESSION_ADD_COLUMN: "expression.add.column",
|
|
76
77
|
EXPRESSION_FIELD_COLUMN_DESCRIPTION: "expression.field.column.description",
|
|
77
78
|
EXPRESSION_STORAGE_COLUMN: "expression.storage.column",
|
|
78
79
|
EXPRESSION_VALUE_COLUMN: "expression.value.column",
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
import React from "react";
|
|
18
18
|
import PropTypes from "prop-types";
|
|
19
|
+
import { Add16 } from "@carbon/icons-react";
|
|
20
|
+
import { Button } from "carbon-components-react";
|
|
19
21
|
import { Switch, ContentSwitcher, Dropdown } from "carbon-components-react";
|
|
20
22
|
import FlexibleTable from "./../../../components/flexible-table/flexible-table";
|
|
21
23
|
import TruncatedContentTooltip from "./../../../components/truncated-content-tooltip";
|
|
@@ -38,6 +40,9 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
38
40
|
id: this.recentUseCat,
|
|
39
41
|
locLabel: this.recentUseCat,
|
|
40
42
|
field_columns: {
|
|
43
|
+
add_column_info: {
|
|
44
|
+
locLabel: formatMessage(this.reactIntl, MESSAGE_KEYS.EXPRESSION_ADD_COLUMN)
|
|
45
|
+
},
|
|
41
46
|
field_column_info: {
|
|
42
47
|
locLabel: formatMessage(this.reactIntl, MESSAGE_KEYS.EXPRESSION_RECENTLY_USED_COLUMN)
|
|
43
48
|
},
|
|
@@ -71,11 +76,11 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
71
76
|
this.language = props.language;
|
|
72
77
|
|
|
73
78
|
this.onFieldTableClick = this.onFieldTableClick.bind(this);
|
|
74
|
-
this.
|
|
79
|
+
this.onAddFieldClick = this.onAddFieldClick.bind(this);
|
|
75
80
|
this.onFunctionTableClick = this.onFunctionTableClick.bind(this);
|
|
76
|
-
this.
|
|
81
|
+
this.onAddFunctionClick = this.onAddFunctionClick.bind(this);
|
|
77
82
|
this.onValueTableClick = this.onValueTableClick.bind(this);
|
|
78
|
-
this.
|
|
83
|
+
this.onAddValueClick = this.onAddValueClick.bind(this);
|
|
79
84
|
|
|
80
85
|
this.sortTableRows = this.sortTableRows.bind(this);
|
|
81
86
|
this.shouldQuoteField = this.shouldQuoteField.bind(this);
|
|
@@ -120,7 +125,7 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
120
125
|
|
|
121
126
|
}
|
|
122
127
|
|
|
123
|
-
|
|
128
|
+
onAddFieldClick(rowKey) {
|
|
124
129
|
const field = this.state.currentFieldDataset[rowKey];
|
|
125
130
|
let value = field.id;
|
|
126
131
|
if (this.state.fieldCategory !== this.recentUseCat) {
|
|
@@ -145,7 +150,7 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
145
150
|
});
|
|
146
151
|
}
|
|
147
152
|
|
|
148
|
-
|
|
153
|
+
onAddValueClick(rowKey) {
|
|
149
154
|
if (this.props.onChange) {
|
|
150
155
|
const field = this.state.currentFieldDataset[this.state.fieldSelected];
|
|
151
156
|
const quote = "\"";
|
|
@@ -174,7 +179,7 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
174
179
|
});
|
|
175
180
|
}
|
|
176
181
|
|
|
177
|
-
|
|
182
|
+
onAddFunctionClick(rowKey) {
|
|
178
183
|
let field;
|
|
179
184
|
if (this.state.functionCategory === this.recentUseCat) {
|
|
180
185
|
field = this.props.controller.getExpressionRecentlyUsed()[rowKey];
|
|
@@ -265,7 +270,40 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
265
270
|
return contentObject;
|
|
266
271
|
}
|
|
267
272
|
|
|
273
|
+
createAddButtonContent(index, tableType) {
|
|
274
|
+
const addValueButtonContent = (
|
|
275
|
+
<Button
|
|
276
|
+
className="expression-add-field-button properties-expr-table-cell"
|
|
277
|
+
onClick={this.handleAddButtonClick.bind(this, index, tableType)}
|
|
278
|
+
kind="ghost"
|
|
279
|
+
size="small"
|
|
280
|
+
>
|
|
281
|
+
<Add16 aria-label={formatMessage(this.reactIntl, MESSAGE_KEYS.EXPRESSION_ADD_COLUMN)} />
|
|
282
|
+
</Button>
|
|
283
|
+
);
|
|
284
|
+
return addValueButtonContent;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
handleAddButtonClick(index, tableType) {
|
|
288
|
+
switch (tableType) {
|
|
289
|
+
case "value": {
|
|
290
|
+
this.onAddValueClick(index);
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
293
|
+
case "field": {
|
|
294
|
+
this.onAddFieldClick(index);
|
|
295
|
+
break;
|
|
296
|
+
}
|
|
297
|
+
case "function": {
|
|
298
|
+
this.onAddFunctionClick(index);
|
|
299
|
+
break;
|
|
300
|
+
}
|
|
301
|
+
default:
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
268
305
|
_makeDatasetFields(dataset, fieldDataset) {
|
|
306
|
+
const addNewColumn = formatMessage(this.reactIntl, MESSAGE_KEYS.EXPRESSION_ADD_COLUMN);
|
|
269
307
|
const fieldColumn = formatMessage(this.reactIntl, MESSAGE_KEYS.EXPRESSION_FIELD_COLUMN);
|
|
270
308
|
const fieldColumnDesc = formatMessage(this.reactIntl, MESSAGE_KEYS.EXPRESSION_FIELD_COLUMN_DESCRIPTION);
|
|
271
309
|
const storageColumn = formatMessage(this.reactIntl, MESSAGE_KEYS.EXPRESSION_STORAGE_COLUMN);
|
|
@@ -274,6 +312,9 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
274
312
|
id: "fields",
|
|
275
313
|
locLabel: dropdownLabel,
|
|
276
314
|
field_columns: {
|
|
315
|
+
add_column_info: {
|
|
316
|
+
locLabel: addNewColumn
|
|
317
|
+
},
|
|
277
318
|
field_column_info: {
|
|
278
319
|
locLabel: fieldColumn,
|
|
279
320
|
descLabel: fieldColumnDesc
|
|
@@ -377,17 +418,31 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
377
418
|
}
|
|
378
419
|
|
|
379
420
|
if (categoryInfo) {
|
|
380
|
-
fieldHeaders.push(
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
421
|
+
fieldHeaders.push(
|
|
422
|
+
{
|
|
423
|
+
key: "addColumn",
|
|
424
|
+
label: formatMessage(this.reactIntl, MESSAGE_KEYS.EXPRESSION_ADD_COLUMN),
|
|
425
|
+
width: "50px",
|
|
426
|
+
staticWidth: true
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
key: "fieldName",
|
|
430
|
+
label: categoryInfo.field_columns.field_column_info.locLabel,
|
|
431
|
+
description: categoryInfo.field_columns.field_column_info.descLabel,
|
|
432
|
+
resizable: true
|
|
433
|
+
});
|
|
434
|
+
valueHeader.push(
|
|
435
|
+
{
|
|
436
|
+
key: "addColumn",
|
|
437
|
+
label: formatMessage(this.reactIntl, MESSAGE_KEYS.EXPRESSION_ADD_COLUMN),
|
|
438
|
+
width: "50px",
|
|
439
|
+
staticWidth: true
|
|
440
|
+
},
|
|
441
|
+
{
|
|
442
|
+
key: "values",
|
|
443
|
+
label: categoryInfo.field_columns.value_column_info.locLabel,
|
|
444
|
+
description: categoryInfo.field_columns.value_column_info.descLabel
|
|
445
|
+
});
|
|
391
446
|
if (categoryInfo.field_columns.additional_column_info) {
|
|
392
447
|
for (let i = 0; i < categoryInfo.field_columns.additional_column_info.length; i++) {
|
|
393
448
|
sortable.push(categoryInfo.field_columns.additional_column_info[i].id);
|
|
@@ -404,8 +459,9 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
404
459
|
const field = tableContents.field_value_groups[index];
|
|
405
460
|
const fieldColumns = [];
|
|
406
461
|
if (!this.state.fieldFilterText || this.state.fieldFilterText.length === 0 ||
|
|
407
|
-
|
|
408
|
-
fieldColumns.push({ column: "
|
|
462
|
+
(field.id.toLowerCase().indexOf(this.state.fieldFilterText.toLowerCase()) > -1)) {
|
|
463
|
+
fieldColumns.push({ column: "addColumn", content: this.createAddButtonContent(index, "field"), value: field.id },
|
|
464
|
+
{ column: "fieldName", content: this.createContentObject(field.id), value: field.id });
|
|
409
465
|
if (field.additional_column_entries) {
|
|
410
466
|
this._makeAdditionalColumnsContent(field, fieldColumns);
|
|
411
467
|
}
|
|
@@ -453,7 +509,6 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
453
509
|
rowSelection={ROW_SELECTION.SINGLE}
|
|
454
510
|
updateRowSelections={this.onFieldTableClick}
|
|
455
511
|
selectedRows={[selectedField]}
|
|
456
|
-
onRowDoubleClick={this.onFieldTableDblClick}
|
|
457
512
|
onSort={this.setSortColumn.bind(this, "fieldTable")}
|
|
458
513
|
light={this.props.controller.getLight()}
|
|
459
514
|
emptyTablePlaceholder={emptyFieldsLabel}
|
|
@@ -471,7 +526,6 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
471
526
|
rowSelection={ROW_SELECTION.SINGLE}
|
|
472
527
|
updateRowSelections={this.onValueTableClick}
|
|
473
528
|
selectedRows={[selectedValue]}
|
|
474
|
-
onRowDoubleClick={this.onValueTableDblClick}
|
|
475
529
|
onSort={this.setSortColumn.bind(this, "valuesTable")}
|
|
476
530
|
light={this.props.controller.getLight()}
|
|
477
531
|
emptyTablePlaceholder={emptyValuesLabel}
|
|
@@ -504,9 +558,11 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
504
558
|
|
|
505
559
|
_addValueRow(content, index, valuesTableData) {
|
|
506
560
|
if (!this.state.valueFilterText || this.state.valueFilterText.length === 0 ||
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
const valueColumns = [
|
|
561
|
+
(String(content).toLowerCase()
|
|
562
|
+
.indexOf(this.state.valueFilterText.toLowerCase()) > -1)) {
|
|
563
|
+
const valueColumns = [
|
|
564
|
+
{ column: "addColumn", content: this.createAddButtonContent(index, "value"), value: content },
|
|
565
|
+
{ column: "values", content: this.createContentObject(content), value: content }];
|
|
510
566
|
valuesTableData.push({ columns: valueColumns, rowKey: index });
|
|
511
567
|
}
|
|
512
568
|
}
|
|
@@ -597,10 +653,12 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
597
653
|
MESSAGE_KEYS.EXPRESSION_FUNCTION_COLUMN);
|
|
598
654
|
const returnColumn = formatMessage(this.reactIntl,
|
|
599
655
|
MESSAGE_KEYS.EXPRESSION_RETURN_COLUMN);
|
|
656
|
+
const addNewColumn = formatMessage(this.reactIntl,
|
|
657
|
+
MESSAGE_KEYS.EXPRESSION_ADD_COLUMN);
|
|
600
658
|
|
|
601
|
-
|
|
602
|
-
headers.push({ key: "function", label: functionColumn, width:
|
|
603
|
-
headers.push({ key: "return", label: returnColumn, width:
|
|
659
|
+
headers.push({ key: "addColumn", label: addNewColumn, width: "50px", staticWidth: true });
|
|
660
|
+
headers.push({ key: "function", label: functionColumn, width: 50, resizable: true });
|
|
661
|
+
headers.push({ key: "return", label: returnColumn, width: 30 });
|
|
604
662
|
const table = this._buildFunctionTable(this.state.functionCategory);
|
|
605
663
|
|
|
606
664
|
let data = table.rows;
|
|
@@ -627,7 +685,6 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
627
685
|
rowSelection={ROW_SELECTION.SINGLE}
|
|
628
686
|
updateRowSelections={this.onFunctionTableClick}
|
|
629
687
|
selectedRows={[selectedFunction]}
|
|
630
|
-
onRowDoubleClick={this.onFunctionTableDblClick}
|
|
631
688
|
onSort={this.setSortColumn.bind(this, "functionTable")}
|
|
632
689
|
light={this.props.controller.getLight()}
|
|
633
690
|
emptyTablePlaceholder={functionsEmptyLabel}
|
|
@@ -650,6 +707,7 @@ export default class ExpressionSelectFieldOrFunction extends React.Component {
|
|
|
650
707
|
if (!this.state.functionFilterText || this.state.functionFilterText.length === 0 ||
|
|
651
708
|
(catFunction.locLabel.toLowerCase().indexOf(this.state.functionFilterText.toLowerCase()) > -1)) {
|
|
652
709
|
const returnType = catFunction.locReturnType ? catFunction.locReturnType : catFunction.return_type;
|
|
710
|
+
columns.push({ column: "addColumn", content: this.createAddButtonContent(index, "function"), value: catFunction.id });
|
|
653
711
|
columns.push({ column: "function", content: this.createContentObject(catFunction.locLabel), value: catFunction.locLabel });
|
|
654
712
|
columns.push({ column: "return", content: this.createContentObject(returnType), value: returnType });
|
|
655
713
|
table.rows.push({ columns: columns, rowKey: index });
|
|
@@ -57,7 +57,6 @@ function setExpressionInfo(inExpressionInfo) {
|
|
|
57
57
|
if (inExpressionInfo.fields.field_categories) {
|
|
58
58
|
inExpressionInfo.fields.field_categories.forEach((fieldCat) => {
|
|
59
59
|
fieldCat.locLabel = l10nProvider.l10nLabel(fieldCat, fieldCat.id);
|
|
60
|
-
|
|
61
60
|
fieldCat.field_columns.field_column_info.locLabel = l10nProvider.l10nLabel(fieldCat.field_columns.field_column_info, fieldCat.id + ".field_column_info");
|
|
62
61
|
fieldCat.field_columns.value_column_info.locLabel = l10nProvider.l10nLabel(fieldCat.field_columns.value_column_info, fieldCat.id + ".value_column_info");
|
|
63
62
|
|
|
@@ -395,7 +395,8 @@ export default class PropertiesController {
|
|
|
395
395
|
parseUiContent(this.panelTree, this.form, PANEL_TREE_ROOT);
|
|
396
396
|
}
|
|
397
397
|
|
|
398
|
-
_addToControlValues(sameParameterDefRendered, resolveParameterRefs) {
|
|
398
|
+
_addToControlValues(sameParameterDefRendered, resolveParameterRefs, setDefaultValues) {
|
|
399
|
+
const defaultControlValues = {};
|
|
399
400
|
for (const keyName in this.controls) {
|
|
400
401
|
if (!has(this.controls, keyName)) {
|
|
401
402
|
continue;
|
|
@@ -421,8 +422,11 @@ export default class PropertiesController {
|
|
|
421
422
|
controlValue = PropertyUtils.convertObjectStructureToArray(control.valueDef.isList, control.subControls, controlValue);
|
|
422
423
|
}
|
|
423
424
|
|
|
424
|
-
|
|
425
|
-
|
|
425
|
+
if (setDefaultValues) {
|
|
426
|
+
// When setDefaultValues is set, update all default values in a single call
|
|
427
|
+
defaultControlValues[control.name] = controlValue;
|
|
428
|
+
} else if (sameParameterDefRendered && !this.differentProperties.includes(control.name)) {
|
|
429
|
+
// When parameterDef is dynamically updated, don't set INITIAL_LOAD on pre-existing properties
|
|
426
430
|
this.updatePropertyValue(propertyId, controlValue, true);
|
|
427
431
|
} else {
|
|
428
432
|
this.updatePropertyValue(propertyId, controlValue, true, UPDATE_TYPE.INITIAL_LOAD);
|
|
@@ -435,6 +439,24 @@ export default class PropertiesController {
|
|
|
435
439
|
}
|
|
436
440
|
}
|
|
437
441
|
}
|
|
442
|
+
|
|
443
|
+
if (setDefaultValues) {
|
|
444
|
+
this.setDefaultControlValues(defaultControlValues);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
setDefaultControlValues(defaultControlValues) {
|
|
449
|
+
// Update all default values
|
|
450
|
+
this.propertiesStore.setPropertyValues(defaultControlValues);
|
|
451
|
+
|
|
452
|
+
// Single call to the propertyListener
|
|
453
|
+
if (this.handlers.propertyListener) {
|
|
454
|
+
this.handlers.propertyListener(
|
|
455
|
+
{
|
|
456
|
+
action: ACTIONS.SET_PROPERTIES // Setting the default control values
|
|
457
|
+
}
|
|
458
|
+
);
|
|
459
|
+
}
|
|
438
460
|
}
|
|
439
461
|
|
|
440
462
|
_populateFieldData(controlValue, control) {
|
|
@@ -1271,7 +1293,7 @@ export default class PropertiesController {
|
|
|
1271
1293
|
}
|
|
1272
1294
|
|
|
1273
1295
|
if (options && options.setDefaultValues) {
|
|
1274
|
-
this._addToControlValues(true);
|
|
1296
|
+
this._addToControlValues(false, false, true);
|
|
1275
1297
|
}
|
|
1276
1298
|
}
|
|
1277
1299
|
|
|
@@ -2302,6 +2302,18 @@ export default class ObjectModel {
|
|
|
2302
2302
|
return port;
|
|
2303
2303
|
}
|
|
2304
2304
|
|
|
2305
|
+
setObjectsBranchHighlight(pipelineObjIds) {
|
|
2306
|
+
this.store.dispatch({ type: "SET_OBJECTS_BRANCH_HIGHLIGHT", data: { pipelineObjIds: pipelineObjIds } });
|
|
2307
|
+
}
|
|
2308
|
+
|
|
2309
|
+
setLinksBranchHighlight(pipelineLinkIds) {
|
|
2310
|
+
this.store.dispatch({ type: "SET_LINKS_BRANCH_HIGHLIGHT", data: { pipelineObjIds: pipelineLinkIds } });
|
|
2311
|
+
}
|
|
2312
|
+
|
|
2313
|
+
unsetAllBranchHighlight() {
|
|
2314
|
+
this.store.dispatch({ type: "UNSET_OBJECTS_BRANCH_HIGHLIGHT" });
|
|
2315
|
+
}
|
|
2316
|
+
|
|
2305
2317
|
// ---------------------------------------------------------------------------
|
|
2306
2318
|
// Clipboard methods
|
|
2307
2319
|
// ---------------------------------------------------------------------------
|
|
@@ -445,7 +445,9 @@ export default (state = {}, action) => {
|
|
|
445
445
|
}
|
|
446
446
|
|
|
447
447
|
case "SET_OBJECTS_STYLE":
|
|
448
|
-
case "SET_LINKS_STYLE":
|
|
448
|
+
case "SET_LINKS_STYLE":
|
|
449
|
+
case "SET_OBJECTS_BRANCH_HIGHLIGHT":
|
|
450
|
+
case "SET_LINKS_BRANCH_HIGHLIGHT": {
|
|
449
451
|
const pipelineIds = Object.keys(action.data.pipelineObjIds);
|
|
450
452
|
const canvasInfoPipelines = state.pipelines.map((pipeline) => {
|
|
451
453
|
if (pipelineIds.indexOf(pipeline.id) > -1) {
|
|
@@ -461,6 +463,16 @@ export default (state = {}, action) => {
|
|
|
461
463
|
return Object.assign({}, state, { pipelines: canvasInfoPipelines });
|
|
462
464
|
}
|
|
463
465
|
|
|
466
|
+
case "UNSET_OBJECTS_BRANCH_HIGHLIGHT": {
|
|
467
|
+
const canvasInfoPipelines = state.pipelines.map((pipeline) => {
|
|
468
|
+
return Object.assign({}, pipeline, {
|
|
469
|
+
nodes: nodes(pipeline.nodes, action),
|
|
470
|
+
comments: comments(pipeline.comments, action),
|
|
471
|
+
links: links(pipeline.links, action) });
|
|
472
|
+
});
|
|
473
|
+
return Object.assign({}, state, { pipelines: canvasInfoPipelines });
|
|
474
|
+
}
|
|
475
|
+
|
|
464
476
|
case "SET_OBJECTS_MULTI_STYLE":
|
|
465
477
|
case "SET_LINKS_MULTI_STYLE": {
|
|
466
478
|
const canvasInfoPipelines = state.pipelines.map((pipeline) => {
|
|
@@ -251,6 +251,22 @@ export default (state = [], action) => {
|
|
|
251
251
|
return link;
|
|
252
252
|
});
|
|
253
253
|
|
|
254
|
+
case "SET_LINKS_BRANCH_HIGHLIGHT":
|
|
255
|
+
return state.map((link) => {
|
|
256
|
+
if (action.data.objIds.indexOf(link.id) > -1) {
|
|
257
|
+
return Object.assign({}, link, { branchHighlight: true });
|
|
258
|
+
}
|
|
259
|
+
return link;
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
case "UNSET_OBJECTS_BRANCH_HIGHLIGHT":
|
|
263
|
+
return state.map((link) => {
|
|
264
|
+
if (link.branchHighlight) {
|
|
265
|
+
return Object.assign({}, link, { branchHighlight: false });
|
|
266
|
+
}
|
|
267
|
+
return link;
|
|
268
|
+
});
|
|
269
|
+
|
|
254
270
|
case "SET_LINK_DECORATIONS":
|
|
255
271
|
return state.map((link, index) => {
|
|
256
272
|
if (action.data.linkId === link.id) {
|
|
@@ -287,6 +287,22 @@ export default (state = [], action) => {
|
|
|
287
287
|
return node;
|
|
288
288
|
});
|
|
289
289
|
|
|
290
|
+
case "SET_OBJECTS_BRANCH_HIGHLIGHT":
|
|
291
|
+
return state.map((node) => {
|
|
292
|
+
if (action.data.objIds.indexOf(node.id) > -1) {
|
|
293
|
+
return Object.assign({}, node, { branchHighlight: true });
|
|
294
|
+
}
|
|
295
|
+
return node;
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
case "UNSET_OBJECTS_BRANCH_HIGHLIGHT":
|
|
299
|
+
return state.map((node) => {
|
|
300
|
+
if (node.branchHighlight) {
|
|
301
|
+
return Object.assign({}, node, { branchHighlight: false });
|
|
302
|
+
}
|
|
303
|
+
return node;
|
|
304
|
+
});
|
|
305
|
+
|
|
290
306
|
case "SET_INPUT_PORT_LABEL":
|
|
291
307
|
case "SET_INPUT_PORT_SUBFLOW_NODE_REF":
|
|
292
308
|
return state.map((node, index) => {
|