@elyra/canvas 12.16.0 → 12.21.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-controller-ccb05f9f.js +2 -0
- package/dist/canvas-controller-ccb05f9f.js.map +1 -0
- package/dist/canvas-controller-feabad26.js +2 -0
- package/dist/canvas-controller-feabad26.js.map +1 -0
- package/dist/{common-canvas-51ed78a5.js → common-canvas-bcfe04ef.js} +2 -2
- package/dist/common-canvas-bcfe04ef.js.map +1 -0
- package/dist/{common-canvas-d0230688.js → common-canvas-c4f77878.js} +2 -2
- package/dist/common-canvas-c4f77878.js.map +1 -0
- package/dist/common-canvas.es.js +1 -1
- package/dist/common-canvas.js +1 -1
- package/dist/common-properties-267a9a6c.js +2 -0
- package/dist/common-properties-267a9a6c.js.map +1 -0
- package/dist/common-properties-6520f90b.js +2 -0
- package/dist/common-properties-6520f90b.js.map +1 -0
- package/dist/{extends-8d17c85c.js → extends-12382a72.js} +2 -2
- package/dist/extends-12382a72.js.map +1 -0
- package/dist/extends-195c6b49.js +7 -0
- package/dist/extends-195c6b49.js.map +1 -0
- package/dist/flexible-table-056c538e.js +2 -0
- package/dist/{flexible-table-60c73b88.js.map → flexible-table-056c538e.js.map} +1 -1
- package/dist/flexible-table-7fb8a62e.js +2 -0
- package/dist/{flexible-table-0c7ae548.js.map → flexible-table-7fb8a62e.js.map} +1 -1
- package/dist/{icon-918d2dd3.js → icon-162ec1ee.js} +2 -2
- package/dist/{icon-918d2dd3.js.map → icon-162ec1ee.js.map} +1 -1
- package/dist/{icon-4882a57f.js → icon-1ef0f3b9.js} +2 -2
- package/dist/{icon-4882a57f.js.map → icon-1ef0f3b9.js.map} +1 -1
- package/dist/{index-390d8148.js → index-61be3509.js} +2 -2
- package/dist/index-61be3509.js.map +1 -0
- package/dist/index-8076376e.js +2 -0
- package/dist/index-8076376e.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/styles/common-canvas.min.css +1 -1
- package/dist/styles/common-canvas.min.css.map +1 -1
- package/dist/{toolbar-3f4b173f.js → toolbar-59ce5251.js} +2 -2
- package/dist/{toolbar-3f4b173f.js.map → toolbar-59ce5251.js.map} +1 -1
- package/dist/{toolbar-29ec7983.js → toolbar-bb5bee87.js} +2 -2
- package/dist/{toolbar-29ec7983.js.map → toolbar-bb5bee87.js.map} +1 -1
- package/locales/command-actions/locales/de.json +8 -8
- package/locales/command-actions/locales/es.json +8 -8
- package/locales/command-actions/locales/fr.json +9 -9
- package/locales/command-actions/locales/it.json +13 -13
- package/locales/command-actions/locales/ja.json +8 -8
- package/locales/command-actions/locales/ko.json +8 -8
- package/locales/command-actions/locales/pt-br.json +10 -10
- package/locales/command-actions/locales/sv.json +1 -1
- package/locales/command-actions/locales/zh-CN.json +8 -8
- package/locales/command-actions/locales/zh-TW.json +10 -10
- package/locales/common-canvas/locales/de.json +18 -4
- package/locales/common-canvas/locales/es.json +16 -2
- package/locales/common-canvas/locales/fr.json +16 -2
- package/locales/common-canvas/locales/it.json +17 -3
- package/locales/common-canvas/locales/ja.json +19 -5
- package/locales/common-canvas/locales/ko.json +25 -11
- package/locales/common-canvas/locales/pt-br.json +18 -4
- package/locales/common-canvas/locales/sv.json +18 -4
- package/locales/common-canvas/locales/zh-CN.json +15 -1
- package/locales/common-canvas/locales/zh-TW.json +15 -1
- package/locales/common-properties/locales/de.json +22 -22
- package/locales/common-properties/locales/en.json +7 -1
- package/locales/common-properties/locales/eo.json +6 -0
- package/locales/common-properties/locales/es.json +12 -12
- package/locales/common-properties/locales/fr.json +22 -22
- package/locales/common-properties/locales/it.json +13 -13
- package/locales/common-properties/locales/ja.json +28 -28
- package/locales/common-properties/locales/ko.json +10 -10
- package/locales/common-properties/locales/pt-br.json +16 -16
- package/locales/common-properties/locales/sv.json +8 -8
- package/locales/common-properties/locales/zh-CN.json +28 -28
- package/locales/common-properties/locales/zh-TW.json +26 -26
- package/locales/palette/locales/it.json +1 -1
- package/locales/palette/locales/ja.json +1 -1
- package/locales/palette/locales/pt-br.json +1 -1
- package/locales/palette/locales/sv.json +1 -1
- package/locales/palette/locales/zh-CN.json +4 -4
- package/locales/palette/locales/zh-TW.json +2 -2
- package/locales/toolbar/locales/es.json +1 -1
- package/locales/toolbar/locales/it.json +2 -2
- package/locales/toolbar/locales/pt-br.json +1 -1
- package/package.json +3 -3
- package/src/command-actions/createCommentAction.js +5 -9
- package/src/common-canvas/canvas-controller.js +13 -2
- package/src/common-canvas/svg-canvas-d3.js +2 -2
- package/src/common-canvas/svg-canvas-renderer.js +11 -5
- package/src/common-properties/actions.js +10 -0
- package/src/common-properties/components/components.scss +1 -1
- package/src/common-properties/components/editor-form/editor-form.jsx +23 -3
- package/src/common-properties/components/wide-flyout/wide-flyout.jsx +5 -2
- package/src/common-properties/constants/constants.js +10 -1
- package/src/common-properties/constants/form-constants.js +6 -2
- package/src/common-properties/controls/abstract-table.jsx +2 -2
- package/src/common-properties/controls/checkboxset/checkboxset.scss +7 -4
- package/src/common-properties/controls/control-factory.js +5 -0
- package/src/common-properties/controls/controls.scss +1 -0
- package/src/common-properties/controls/dropdown/dropdown.jsx +7 -5
- package/src/common-properties/controls/expression/expression-builder/expression-select-field-function.jsx +14 -2
- package/src/common-properties/controls/expression/expression-toggle/expression-toggle.jsx +74 -0
- package/src/common-properties/controls/expression/expression-toggle/expression-toggle.scss +12 -0
- package/src/common-properties/controls/expression/expression.jsx +15 -1
- package/src/common-properties/controls/expression/expression.scss +61 -33
- package/src/common-properties/controls/expression/expressionInfo-parser.js +11 -1
- package/src/common-properties/controls/passwordfield/passwordfield.jsx +16 -14
- package/src/common-properties/controls/radioset/radioset.jsx +4 -4
- package/src/common-properties/controls/selectcolumns/selectcolumns.jsx +3 -3
- package/src/common-properties/controls/someofselect/someofselect.jsx +4 -4
- package/src/common-properties/controls/toggle/index.jsx +18 -0
- package/src/common-properties/controls/toggle/toggle.jsx +89 -0
- package/src/common-properties/controls/toggle/toggle.scss +23 -0
- package/src/common-properties/form/ControlInfo.js +3 -0
- package/src/common-properties/form/EditorForm.js +12 -1
- package/src/common-properties/form/ParameterInfo.js +5 -0
- package/src/common-properties/form/UIItem.js +10 -0
- package/src/common-properties/panels/panels.scss +1 -0
- package/src/common-properties/panels/summary/summary.jsx +5 -2
- package/src/common-properties/panels/tearsheet/index.js +18 -0
- package/src/common-properties/panels/tearsheet/tearsheet.jsx +54 -0
- package/src/common-properties/panels/tearsheet/tearsheet.scss +31 -0
- package/src/common-properties/properties-controller.js +40 -13
- package/src/common-properties/properties-main/properties-main.jsx +1 -0
- package/src/common-properties/properties-store.js +35 -3
- package/src/common-properties/reducers/tearsheet-states.js +29 -0
- package/src/common-properties/reducers/wide-flyout-primary-button-disable.jsx +31 -0
- package/src/common-properties/ui-conditions/condition-ops/colDoesExists.js +9 -3
- package/src/common-properties/ui-conditions/conditions-utils.js +10 -16
- package/src/object-model/api-pipeline.js +11 -4
- package/src/palette/palette-content-list-item.jsx +3 -1
- package/stats.html +1 -1
- package/dist/canvas-controller-c420f377.js +0 -2
- package/dist/canvas-controller-c420f377.js.map +0 -1
- package/dist/canvas-controller-e02a5de5.js +0 -2
- package/dist/canvas-controller-e02a5de5.js.map +0 -1
- package/dist/common-canvas-51ed78a5.js.map +0 -1
- package/dist/common-canvas-d0230688.js.map +0 -1
- package/dist/common-properties-0a697e6a.js +0 -2
- package/dist/common-properties-0a697e6a.js.map +0 -1
- package/dist/common-properties-233593d2.js +0 -2
- package/dist/common-properties-233593d2.js.map +0 -1
- package/dist/extends-1139e06f.js +0 -7
- package/dist/extends-1139e06f.js.map +0 -1
- package/dist/extends-8d17c85c.js.map +0 -1
- package/dist/flexible-table-0c7ae548.js +0 -2
- package/dist/flexible-table-60c73b88.js +0 -2
- package/dist/index-390d8148.js.map +0 -1
- package/dist/index-e6d8ea9c.js +0 -2
- package/dist/index-e6d8ea9c.js.map +0 -1
|
@@ -15,55 +15,83 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
@import "./expression-builder/expression-builder";
|
|
18
|
+
@import "./expression-toggle/expression-toggle";
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
.CodeMirror
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
.react-codemirror2 {
|
|
21
|
+
.CodeMirror {
|
|
22
|
+
width: 100%;
|
|
23
|
+
background: $field-02;
|
|
24
|
+
color: $text-01;
|
|
23
25
|
|
|
24
|
-
.CodeMirror-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
.CodeMirror-gutters {
|
|
27
|
+
border-right: none;
|
|
28
|
+
background-color: inherit;
|
|
29
|
+
}
|
|
27
30
|
|
|
28
|
-
.CodeMirror {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
31
|
+
.CodeMirror-lines {
|
|
32
|
+
padding-top: $spacing-05;
|
|
33
|
+
.CodeMirror-line-like {
|
|
34
|
+
padding-left: $spacing-03;
|
|
35
|
+
}
|
|
36
|
+
.CodeMirror-placeholder {
|
|
37
|
+
opacity: 0.5;
|
|
38
|
+
@include carbon--type-style("code-02");
|
|
39
|
+
}
|
|
40
|
+
.CodeMirror-cursor {
|
|
41
|
+
border-left: 1px solid $text-01;
|
|
42
|
+
}
|
|
43
|
+
.CodeMirror-code {
|
|
33
44
|
|
|
34
|
-
.CodeMirror-
|
|
35
|
-
|
|
36
|
-
}
|
|
45
|
+
.CodeMirror-linenumber {
|
|
46
|
+
@include carbon--type-style("body-short-01");
|
|
47
|
+
}
|
|
37
48
|
|
|
38
|
-
.
|
|
49
|
+
.CodeMirror-line {
|
|
50
|
+
padding-left: $spacing-03;
|
|
39
51
|
|
|
40
|
-
|
|
52
|
+
span {
|
|
53
|
+
@include carbon--type-style("code-02");
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
41
59
|
|
|
42
|
-
.cm-s-
|
|
60
|
+
.cm-s-error.CodeMirror { border: $spacing-01 solid $support-01; }
|
|
43
61
|
|
|
44
|
-
.cm-s-
|
|
62
|
+
.cm-s-warning.CodeMirror { border: $spacing-01 solid $support-03; }
|
|
45
63
|
|
|
46
|
-
.cm-s-
|
|
64
|
+
.cm-s-disabled.CodeMirror { opacity: 0.5}
|
|
47
65
|
|
|
48
|
-
.cm-s-custom .cm-
|
|
66
|
+
.cm-s-custom .cm-keyword { color: $link-01; }
|
|
49
67
|
|
|
50
|
-
.cm-s-custom .cm-
|
|
68
|
+
.cm-s-custom .cm-number { color: $text-02; }
|
|
51
69
|
|
|
52
|
-
.cm-s-custom .cm-
|
|
53
|
-
|
|
54
|
-
.cm-s-custom .cm-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
.cm-s-custom .cm-
|
|
70
|
+
.cm-s-custom .cm-def { color: $support-01; }
|
|
71
|
+
|
|
72
|
+
.cm-s-custom .cm-comment { color: $support-02; }
|
|
73
|
+
|
|
74
|
+
.cm-s-custom .cm-variable,
|
|
75
|
+
.cm-s-custom .cm-punctuation,
|
|
76
|
+
.cm-s-custom .cm-property,
|
|
77
|
+
.cm-s-custom .cm-operator {
|
|
78
|
+
color: $text-01;
|
|
79
|
+
}
|
|
80
|
+
.cm-s-custom .cm-variable-2 { color: $text-01; }
|
|
59
81
|
|
|
60
|
-
.cm-s-custom .cm-variable-3, .cm-s-custom .cm-type { color: $text-01; }
|
|
82
|
+
.cm-s-custom .cm-variable-3, .cm-s-custom .cm-type { color: $text-01; }
|
|
61
83
|
|
|
62
|
-
.cm-s-custom .cm-string { color: $text-error; }
|
|
84
|
+
.cm-s-custom .cm-string { color: $text-error; }
|
|
63
85
|
|
|
64
|
-
.cm-s-custom .cm-string-2 { color: $text-error; }
|
|
86
|
+
.cm-s-custom .cm-string-2 { color: $text-error; }
|
|
65
87
|
|
|
66
|
-
.cm-s-custom .cm-meta { color: $ui-01; }
|
|
88
|
+
.cm-s-custom .cm-meta { color: $ui-01; }
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* Override so Codemirror autocomplete shows up on top */
|
|
92
|
+
.CodeMirror-hints {
|
|
93
|
+
z-index: 1110;
|
|
94
|
+
}
|
|
67
95
|
|
|
68
96
|
.properties-expression-editor {
|
|
69
97
|
border: 1px solid $ui-03;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import logger from "../../../../utils/logger";
|
|
18
|
-
import { L10nProvider } from "../../util/L10nProvider";
|
|
18
|
+
import { L10nProvider, ResourceDef } from "../../util/L10nProvider";
|
|
19
19
|
import { cloneDeep, propertyOf } from "lodash";
|
|
20
20
|
|
|
21
21
|
function setExpressionInfo(inExpressionInfo) {
|
|
@@ -75,6 +75,11 @@ function setExpressionInfo(inExpressionInfo) {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
+
|
|
79
|
+
if (inExpressionInfo && inExpressionInfo.resources) {
|
|
80
|
+
expressionFunctionInfo.resources = inExpressionInfo.resources;
|
|
81
|
+
}
|
|
82
|
+
|
|
78
83
|
return expressionFunctionInfo;
|
|
79
84
|
}
|
|
80
85
|
|
|
@@ -85,6 +90,11 @@ function _genFunctionParameters(functionInfoList, l10nProvider) {
|
|
|
85
90
|
newEntry.locLabel = l10nProvider.l10nLabel(newEntry, newEntry.id);
|
|
86
91
|
newEntry.help = l10nProvider.l10nDesc(newEntry, newEntry.locLabel);
|
|
87
92
|
newEntry.value = newEntry.locLabel;
|
|
93
|
+
// Translatable return type of function
|
|
94
|
+
if (newEntry.return_type_label) {
|
|
95
|
+
const returnTypeLabel = ResourceDef.make(newEntry.return_type_label);
|
|
96
|
+
newEntry.locReturnType = l10nProvider.l10nResource(returnTypeLabel);
|
|
97
|
+
}
|
|
88
98
|
if (Array.isArray(functionInfo.parameters)) {
|
|
89
99
|
// if the function label has any parameter substituion char '?' then replace with parameter label
|
|
90
100
|
if (newEntry.locLabel && newEntry.locLabel.indexOf("?") !== -1) {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import React from "react";
|
|
18
18
|
import PropTypes from "prop-types";
|
|
19
19
|
import { connect } from "react-redux";
|
|
20
|
-
import { TextInput } from "carbon-components-react";
|
|
20
|
+
import { TextInput, Form } from "carbon-components-react";
|
|
21
21
|
import ValidationMessage from "./../../components/validation-message";
|
|
22
22
|
import * as ControlUtils from "./../../util/control-utils";
|
|
23
23
|
import { STATES } from "./../../constants/constants.js";
|
|
@@ -40,19 +40,21 @@ class PasswordControl extends React.Component {
|
|
|
40
40
|
const validationProps = ControlUtils.getValidationProps(this.props.messageInfo, this.props.tableControl);
|
|
41
41
|
return (
|
|
42
42
|
<div className={className} data-id={ControlUtils.getDataId(this.props.propertyId)}>
|
|
43
|
-
<
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
<Form>
|
|
44
|
+
<TextInput.PasswordInput
|
|
45
|
+
{...validationProps}
|
|
46
|
+
autoComplete="off"
|
|
47
|
+
id={this.id}
|
|
48
|
+
disabled={this.props.state === STATES.DISABLED}
|
|
49
|
+
placeholder={this.props.control.additionalText}
|
|
50
|
+
onChange={this.handleChange.bind(this)}
|
|
51
|
+
value={value}
|
|
52
|
+
labelText={this.props.controlItem}
|
|
53
|
+
hideLabel={this.props.tableControl}
|
|
54
|
+
light={this.props.controller.getLight()}
|
|
55
|
+
tooltipAlignment="end"
|
|
56
|
+
/>
|
|
57
|
+
</Form>
|
|
56
58
|
<ValidationMessage inTable={this.props.tableControl} tableOnly state={this.props.state} messageInfo={this.props.messageInfo} />
|
|
57
59
|
</div>);
|
|
58
60
|
}
|
|
@@ -23,7 +23,7 @@ import * as ConditionsUtils from "./../../ui-conditions/conditions-utils.js";
|
|
|
23
23
|
import ValidationMessage from "./../../components/validation-message";
|
|
24
24
|
import { RadioButton } from "carbon-components-react";
|
|
25
25
|
import classNames from "classnames";
|
|
26
|
-
import { STATES } from "./../../constants/constants.js";
|
|
26
|
+
import { STATES, UPDATE_TYPE } from "./../../constants/constants.js";
|
|
27
27
|
import { ORIENTATIONS } from "./../../constants/form-constants.js";
|
|
28
28
|
import { v4 as uuid4 } from "uuid";
|
|
29
29
|
import { Information16 } from "@carbon/icons-react";
|
|
@@ -39,7 +39,7 @@ class RadiosetControl extends React.Component {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
componentDidMount() {
|
|
42
|
-
this.updateValueFromFilterEnum(true);
|
|
42
|
+
this.updateValueFromFilterEnum(true, UPDATE_TYPE.INITIAL_LOAD);
|
|
43
43
|
const val = this.props.controller.getPropertyValue(this.props.propertyId);
|
|
44
44
|
this.setEnabledStateOfOptionalPanels(val);
|
|
45
45
|
if (typeof this.props.value !== "undefined" && this.props.value !== null) {
|
|
@@ -92,7 +92,7 @@ class RadiosetControl extends React.Component {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
// this is needed in order to reset the property value when a value is filtered out.
|
|
95
|
-
updateValueFromFilterEnum(skipValidateInput) {
|
|
95
|
+
updateValueFromFilterEnum(skipValidateInput, updateType) {
|
|
96
96
|
if (this.props.value !== null && typeof this.props.value !== "undefined" &&
|
|
97
97
|
!this.props.controlOpts.values.includes(this.props.value)) {
|
|
98
98
|
let defaultValue = null;
|
|
@@ -100,7 +100,7 @@ class RadiosetControl extends React.Component {
|
|
|
100
100
|
if (this.props.control.valueDef && this.props.control.valueDef.defaultValue && this.props.controlOpts.values.includes(this.props.control.valueDef.defaultValue)) {
|
|
101
101
|
defaultValue = this.props.control.valueDef.defaultValue;
|
|
102
102
|
}
|
|
103
|
-
this.props.controller.updatePropertyValue(this.props.propertyId, defaultValue, skipValidateInput);
|
|
103
|
+
this.props.controller.updatePropertyValue(this.props.propertyId, defaultValue, skipValidateInput, updateType);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
|
|
@@ -31,7 +31,7 @@ import ReadonlyControl from "./../readonly";
|
|
|
31
31
|
|
|
32
32
|
/* eslint max-depth: ["error", 6] */
|
|
33
33
|
|
|
34
|
-
class
|
|
34
|
+
class SelectColumnsControl extends AbstractTable {
|
|
35
35
|
|
|
36
36
|
constructor(props) {
|
|
37
37
|
super(props);
|
|
@@ -170,7 +170,7 @@ class SelectColumns extends AbstractTable {
|
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
SelectColumnsControl.propTypes = {
|
|
174
174
|
control: PropTypes.object.isRequired,
|
|
175
175
|
propertyId: PropTypes.object.isRequired,
|
|
176
176
|
controller: PropTypes.object.isRequired,
|
|
@@ -194,4 +194,4 @@ const mapStateToProps = (state, ownProps) => ({
|
|
|
194
194
|
tableButtons: ownProps.controller.getTableButtons(ownProps.propertyId)
|
|
195
195
|
});
|
|
196
196
|
|
|
197
|
-
export default connect(mapStateToProps, null)(
|
|
197
|
+
export default connect(mapStateToProps, null)(SelectColumnsControl);
|
|
@@ -23,7 +23,7 @@ import ValidationMessage from "./../../components/validation-message";
|
|
|
23
23
|
import classNames from "classnames";
|
|
24
24
|
import { isEqual, intersection } from "lodash";
|
|
25
25
|
|
|
26
|
-
import { STATES } from "../../constants/constants";
|
|
26
|
+
import { STATES, UPDATE_TYPE } from "../../constants/constants";
|
|
27
27
|
|
|
28
28
|
class SomeofselectControl extends React.Component {
|
|
29
29
|
constructor(props) {
|
|
@@ -34,7 +34,7 @@ class SomeofselectControl extends React.Component {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
componentDidMount() {
|
|
37
|
-
this.updateValueFromFilterEnum(true);
|
|
37
|
+
this.updateValueFromFilterEnum(true, UPDATE_TYPE.INITIAL_LOAD);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
componentDidUpdate(prevProps) {
|
|
@@ -45,10 +45,10 @@ class SomeofselectControl extends React.Component {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
// this is needed in order to reset the property value when a value is filtered out.
|
|
48
|
-
updateValueFromFilterEnum(skipValidateInput) {
|
|
48
|
+
updateValueFromFilterEnum(skipValidateInput, updateType) {
|
|
49
49
|
const newValues = intersection(this.props.value, this.props.controlOpts.values);
|
|
50
50
|
if (!isEqual(newValues, this.props.value)) {
|
|
51
|
-
this.props.controller.updatePropertyValue(this.props.propertyId, newValues, skipValidateInput);
|
|
51
|
+
this.props.controller.updatePropertyValue(this.props.propertyId, newValues, skipValidateInput, updateType);
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2017-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
|
+
|
|
17
|
+
import ToggleControl from "./toggle.jsx";
|
|
18
|
+
export default ToggleControl;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2017-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
|
+
|
|
17
|
+
import React from "react";
|
|
18
|
+
import PropTypes from "prop-types";
|
|
19
|
+
import { connect } from "react-redux";
|
|
20
|
+
import { Toggle } from "carbon-components-react";
|
|
21
|
+
import ValidationMessage from "./../../components/validation-message";
|
|
22
|
+
import * as ControlUtils from "./../../util/control-utils";
|
|
23
|
+
import { STATES, MESSAGE_KEYS } from "./../../constants/constants.js";
|
|
24
|
+
import classNames from "classnames";
|
|
25
|
+
import { formatMessage } from "./../../util/property-utils";
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ToggleControl extends React.Component {
|
|
29
|
+
constructor(props) {
|
|
30
|
+
super(props);
|
|
31
|
+
this.id = ControlUtils.getControlId(this.props.propertyId);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
handleChange(value) {
|
|
36
|
+
this.props.controller.updatePropertyValue(this.props.propertyId, value);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
render() {
|
|
40
|
+
const overrideLabelKeyOn = `${this.props.control.name}.toggle.on.label`;
|
|
41
|
+
const overrideLabelKeyOff = `${this.props.control.name}.toggle.off.label`;
|
|
42
|
+
|
|
43
|
+
const defaultOnEditLabel = formatMessage(this.reactIntl, MESSAGE_KEYS.TOGGLE_ON_LABEL);
|
|
44
|
+
const defaultOffEditLabel = formatMessage(this.reactIntl, MESSAGE_KEYS.TOGGLE_OFF_LABEL);
|
|
45
|
+
|
|
46
|
+
const labelOn = this.props.controller.getResource(overrideLabelKeyOn, defaultOnEditLabel);
|
|
47
|
+
const labelOff = this.props.controller.getResource(overrideLabelKeyOff, defaultOffEditLabel);
|
|
48
|
+
const size = this.props.tableControl ? "sm" : "md";
|
|
49
|
+
const toggleControl = (<Toggle
|
|
50
|
+
id={this.id}
|
|
51
|
+
size={size}
|
|
52
|
+
disabled={this.props.state === STATES.DISABLED}
|
|
53
|
+
toggled={Boolean(this.props.value)}
|
|
54
|
+
labelB={labelOn}
|
|
55
|
+
labelA={labelOff}
|
|
56
|
+
onToggle={this.handleChange.bind(this)}
|
|
57
|
+
labelText={this.props.controlItem}
|
|
58
|
+
/>);
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
const className = classNames("properties-toggle", { "hide": this.props.state === STATES.HIDDEN }, this.props.messageInfo ? this.props.messageInfo.type : null);
|
|
62
|
+
return (
|
|
63
|
+
<div className={className} data-id={ControlUtils.getDataId(this.props.propertyId)}>
|
|
64
|
+
{toggleControl}
|
|
65
|
+
<ValidationMessage inTable={this.props.tableControl} state={this.props.state} messageInfo={this.props.messageInfo} />
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
ToggleControl.propTypes = {
|
|
73
|
+
control: PropTypes.object.isRequired,
|
|
74
|
+
propertyId: PropTypes.object.isRequired,
|
|
75
|
+
controller: PropTypes.object.isRequired,
|
|
76
|
+
controlItem: PropTypes.element,
|
|
77
|
+
tableControl: PropTypes.bool,
|
|
78
|
+
state: PropTypes.string, // pass in by redux
|
|
79
|
+
value: PropTypes.bool, // pass in by redux
|
|
80
|
+
messageInfo: PropTypes.object // pass in by redux
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const mapStateToProps = (state, ownProps) => ({
|
|
84
|
+
value: ownProps.controller.getPropertyValue(ownProps.propertyId),
|
|
85
|
+
state: ownProps.controller.getControlState(ownProps.propertyId),
|
|
86
|
+
messageInfo: ownProps.controller.getErrorMessage(ownProps.propertyId)
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
export default connect(mapStateToProps, null)(ToggleControl);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2017-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
|
+
|
|
17
|
+
.properties-table-cell-control { // overrides when in a table cell
|
|
18
|
+
.properties-toggle {
|
|
19
|
+
.bx--toggle__switch { // override carbon when inside a table
|
|
20
|
+
margin: $spacing-02 0;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -238,6 +238,17 @@ function _makeUIItem(parameterMetadata, actionMetadata, group, structureMetadata
|
|
|
238
238
|
}
|
|
239
239
|
return UIItem.makePanel(new ControlPanel(groupName, PanelType.TWISTY_PANEL, groupClassName, nestedPanel, panSubItems, groupLabel, group.open));
|
|
240
240
|
}
|
|
241
|
+
case GroupType.TEARSHEET_PANEL: {
|
|
242
|
+
groupLabel = l10nProvider.l10nLabel(group, group.name);
|
|
243
|
+
const panSubItems = [];
|
|
244
|
+
if (Array.isArray(group.subGroups)) {
|
|
245
|
+
group.subGroups.forEach(function(subGroup) {
|
|
246
|
+
groupItem = _makeUIItem(parameterMetadata, actionMetadata, subGroup, structureMetadata, l10nProvider);
|
|
247
|
+
panSubItems.push(groupItem);
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
return UIItem.makeTearsheetPanel(new ControlPanel(groupName, PanelType.TEARSHEET, groupClassName, nestedPanel, panSubItems, groupLabel, false), group.description);
|
|
251
|
+
}
|
|
241
252
|
default:
|
|
242
253
|
logger.warn("(Unknown group type '" + group.groupType() + "')");
|
|
243
254
|
return null;
|
|
@@ -605,6 +616,7 @@ function _makeControl(parameterMetadata, paramName, group, structureDefinition,
|
|
|
605
616
|
settings.moveableRows = moveableRows;
|
|
606
617
|
settings.required = required;
|
|
607
618
|
settings.language = parameter.language;
|
|
619
|
+
settings.enableMaximize = parameter.enableMaximize;
|
|
608
620
|
settings.summary = parameter.summary;
|
|
609
621
|
settings.increment = parameter.increment;
|
|
610
622
|
settings.rowSelection = rowSelection;
|
|
@@ -625,7 +637,6 @@ function _makeControl(parameterMetadata, paramName, group, structureDefinition,
|
|
|
625
637
|
settings.customValueAllowed = parameter.customValueAllowed;
|
|
626
638
|
settings.className = parameter.className;
|
|
627
639
|
settings.buttons = buttons;
|
|
628
|
-
|
|
629
640
|
if (isSubControl) {
|
|
630
641
|
settings.visible = parameter.visible;
|
|
631
642
|
settings.width = parameter.columns(8);
|
|
@@ -113,6 +113,10 @@ export class ParameterDef {
|
|
|
113
113
|
if (settings.language) {
|
|
114
114
|
this.language = settings.language;
|
|
115
115
|
}
|
|
116
|
+
if (settings.enableMaximize) {
|
|
117
|
+
this.enableMaximize = settings.enableMaximize;
|
|
118
|
+
}
|
|
119
|
+
|
|
116
120
|
if (toType(settings.summary) === "boolean") {
|
|
117
121
|
this.summary = settings.summary;
|
|
118
122
|
}
|
|
@@ -314,6 +318,7 @@ export class ParameterDef {
|
|
|
314
318
|
if (param) {
|
|
315
319
|
return new ParameterDef({
|
|
316
320
|
"id": propertyOf(param)("id"),
|
|
321
|
+
"enableMaximize": propertyOf(uihint)("enable_maximize"),
|
|
317
322
|
"label": propertyOf(uihint)("label"),
|
|
318
323
|
"description": propertyOf(uihint)("description"),
|
|
319
324
|
"type": propertyOf(param)("type"),
|
|
@@ -123,4 +123,14 @@ export class UIItem {
|
|
|
123
123
|
className: className
|
|
124
124
|
});
|
|
125
125
|
}
|
|
126
|
+
|
|
127
|
+
static makeTearsheetPanel(control, description) {
|
|
128
|
+
return new UIItem({
|
|
129
|
+
itemType: ItemType.TEARSHEET,
|
|
130
|
+
panel: {
|
|
131
|
+
...control,
|
|
132
|
+
description
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
126
136
|
}
|
|
@@ -299,6 +299,7 @@ class SummaryPanel extends React.Component {
|
|
|
299
299
|
rejectLabel={rejectLabel}
|
|
300
300
|
title={this.props.panel.label}
|
|
301
301
|
light={this.props.controller.getLight()}
|
|
302
|
+
okButtonEnabled={this.props.okButtonEnabled}
|
|
302
303
|
>
|
|
303
304
|
<div>
|
|
304
305
|
{this.props.children}
|
|
@@ -326,11 +327,13 @@ SummaryPanel.propTypes = {
|
|
|
326
327
|
controller: PropTypes.object.isRequired,
|
|
327
328
|
children: PropTypes.array,
|
|
328
329
|
panel: PropTypes.object.isRequired,
|
|
329
|
-
panelState: PropTypes.string // set by redux
|
|
330
|
+
panelState: PropTypes.string, // set by redux
|
|
331
|
+
okButtonEnabled: PropTypes.bool // set by redux
|
|
330
332
|
};
|
|
331
333
|
|
|
332
334
|
const mapStateToProps = (state, ownProps) => ({
|
|
333
|
-
panelState: ownProps.controller.getPanelState({ name: ownProps.panel.id })
|
|
335
|
+
panelState: ownProps.controller.getPanelState({ name: ownProps.panel.id }),
|
|
336
|
+
okButtonEnabled: !ownProps.controller.getWideFlyoutPrimaryButtonDisabled({ name: ownProps.panel.id })
|
|
334
337
|
});
|
|
335
338
|
|
|
336
339
|
export default connect(mapStateToProps, null)(SummaryPanel);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2017-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
|
+
|
|
17
|
+
import TearSheet from "./tearsheet.jsx";
|
|
18
|
+
export default TearSheet;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React, { Component } from "react";
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
|
+
import { ComposedModal, ModalHeader, ModalBody } from "carbon-components-react";
|
|
4
|
+
import { Portal } from "react-portal";
|
|
5
|
+
|
|
6
|
+
class TearSheet extends Component {
|
|
7
|
+
constructor(props) {
|
|
8
|
+
super(props);
|
|
9
|
+
this.state = {
|
|
10
|
+
open: false
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
componentDidMount() {
|
|
14
|
+
setTimeout(() => {
|
|
15
|
+
this.setState({
|
|
16
|
+
open: true
|
|
17
|
+
});
|
|
18
|
+
}, 0);
|
|
19
|
+
}
|
|
20
|
+
render() {
|
|
21
|
+
const title = this.props.panel.label ? this.props.panel.label : null;
|
|
22
|
+
const description = this.props.panel.description ? this.props.panel.description.default : null;
|
|
23
|
+
return (
|
|
24
|
+
<Portal>
|
|
25
|
+
<ComposedModal
|
|
26
|
+
className="properties-tearsheet-panel"
|
|
27
|
+
open={this.state.open}
|
|
28
|
+
size="lg"
|
|
29
|
+
preventCloseOnClickOutside
|
|
30
|
+
>
|
|
31
|
+
<ModalHeader
|
|
32
|
+
title={title}
|
|
33
|
+
buttonOnClick={() => {
|
|
34
|
+
setTimeout(() => {
|
|
35
|
+
this.props.controller.clearActiveTearsheet();
|
|
36
|
+
}, 500);
|
|
37
|
+
}}
|
|
38
|
+
>
|
|
39
|
+
{description ? (<p>{description}</p>) : null}
|
|
40
|
+
</ModalHeader>
|
|
41
|
+
<ModalBody>
|
|
42
|
+
{this.props.children}
|
|
43
|
+
</ModalBody>
|
|
44
|
+
</ComposedModal>
|
|
45
|
+
</Portal>);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
TearSheet.propTypes = {
|
|
49
|
+
panel: PropTypes.object.isRequired,
|
|
50
|
+
controller: PropTypes.object.isRequired,
|
|
51
|
+
children: PropTypes.array
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export default TearSheet;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.properties-tearsheet-panel.bx--modal {
|
|
2
|
+
align-items: flex-end;
|
|
3
|
+
.bx--modal-container {
|
|
4
|
+
max-height: calc(100% - 88px);
|
|
5
|
+
height: 100%;
|
|
6
|
+
width: calc(100% - 128px);
|
|
7
|
+
transform: translate3d(0, 500px, 0);
|
|
8
|
+
transition: transform 240ms cubic-bezier(0, 0, 0.3, 1);
|
|
9
|
+
.bx--modal-header {
|
|
10
|
+
padding: $spacing-06 $spacing-07;
|
|
11
|
+
border-bottom: 1px solid $ui-03;
|
|
12
|
+
margin-bottom: 0;
|
|
13
|
+
h3 {
|
|
14
|
+
@include carbon--type-style("productive-heading-04");
|
|
15
|
+
}
|
|
16
|
+
p {
|
|
17
|
+
margin-top: $spacing-03;
|
|
18
|
+
@include carbon--type-style("body-short-01");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
.bx--modal-content {
|
|
22
|
+
padding: $spacing-06 $spacing-07;
|
|
23
|
+
background-color: $ui-background;
|
|
24
|
+
margin-bottom: 0;
|
|
25
|
+
.react-codemirror2, .react-codemirror2 .CodeMirror {
|
|
26
|
+
background-color: $ui-01;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
}
|