@iobroker/json-config 7.0.22 → 7.0.23
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/build/JsonConfigComponent/ConfigJsonEditor.d.ts +2 -0
- package/build/JsonConfigComponent/ConfigJsonEditor.js +19 -4
- package/build/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
- package/build/JsonConfigComponent/ConfigText.d.ts +2 -0
- package/build/JsonConfigComponent/ConfigText.js +24 -8
- package/build/JsonConfigComponent/ConfigText.js.map +1 -1
- package/build/types.d.ts +28 -1
- package/package.json +3 -3
|
@@ -7,9 +7,11 @@ interface ConfigJsonEditorProps extends ConfigGenericProps {
|
|
|
7
7
|
interface ConfigJsonEditorState extends ConfigGenericState {
|
|
8
8
|
initialized?: boolean;
|
|
9
9
|
showSelectId?: boolean;
|
|
10
|
+
jsonError?: boolean;
|
|
10
11
|
}
|
|
11
12
|
declare class ConfigJsonEditor extends ConfigGeneric<ConfigJsonEditorProps, ConfigJsonEditorState> {
|
|
12
13
|
componentDidMount(): Promise<void>;
|
|
14
|
+
validateJson(value: string | null | undefined): boolean;
|
|
13
15
|
renderItem(): React.JSX.Element;
|
|
14
16
|
}
|
|
15
17
|
export default ConfigJsonEditor;
|
|
@@ -26,7 +26,22 @@ class ConfigJsonEditor extends ConfigGeneric {
|
|
|
26
26
|
super.componentDidMount();
|
|
27
27
|
const { data, attr } = this.props;
|
|
28
28
|
const value = ConfigGeneric.getValue(data, attr) || {};
|
|
29
|
-
this.setState({ value, initialized: true });
|
|
29
|
+
this.setState({ value, initialized: true, jsonError: this.validateJson(value) });
|
|
30
|
+
}
|
|
31
|
+
validateJson(value) {
|
|
32
|
+
let jsonError = false;
|
|
33
|
+
if (this.props.schema.validateJson !== false) {
|
|
34
|
+
if (value || !this.props.schema.allowEmpty) {
|
|
35
|
+
try {
|
|
36
|
+
JSON.parse(value);
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
console.log('Error in JSON', err);
|
|
40
|
+
jsonError = true;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return jsonError;
|
|
30
45
|
}
|
|
31
46
|
renderItem( /* _error: string, _disabled: boolean, defaultValue */) {
|
|
32
47
|
if (!this.state.initialized) {
|
|
@@ -38,9 +53,9 @@ class ConfigJsonEditor extends ConfigGeneric {
|
|
|
38
53
|
React.createElement("div", { style: styles.flex },
|
|
39
54
|
React.createElement(Button, { color: "grey", style: styles.button, size: "small", variant: "outlined", onClick: () => this.setState({ showSelectId: true }) }, I18n.t('ra_JSON editor'))),
|
|
40
55
|
showSelectId ? React.createElement(CustomModal, { title: this.getText(schema.label), overflowHidden: true, onClose: () => this.setState({ showSelectId: false, value: ConfigGeneric.getValue(data, attr) || {} }), onApply: () => this.setState({ showSelectId: false }, () => this.onChange(attr, value)) },
|
|
41
|
-
React.createElement("div", { style: styles.wrapper },
|
|
42
|
-
React.createElement(Editor, { value: typeof value === 'object' ? JSON.stringify(value) : value, onChange: newValue => this.setState({ value: newValue }), name: "ConfigJsonEditor", themeType: this.props.themeType }))) : null,
|
|
43
|
-
schema.help ? React.createElement(FormHelperText, null, this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)) : null);
|
|
56
|
+
React.createElement("div", { style: { ...styles.wrapper, ...(this.state.jsonError ? {} : undefined) } },
|
|
57
|
+
React.createElement(Editor, { value: typeof value === 'object' ? JSON.stringify(value) : value, onChange: newValue => this.setState({ value: newValue, jsonError: this.validateJson(newValue) }), name: "ConfigJsonEditor", themeType: this.props.themeType }))) : null,
|
|
58
|
+
schema.help || this.state.jsonError ? React.createElement(FormHelperText, null, this.state.jsonError ? I18n.t('ra_Invalid JSON') : this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)) : null);
|
|
44
59
|
}
|
|
45
60
|
}
|
|
46
61
|
export default ConfigJsonEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigJsonEditor.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigJsonEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,cAAc,EACd,WAAW,EACX,MAAM,GACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAElD,OAAO,aAAa,EAAE,EAAoD,MAAM,iBAAiB,CAAC;AAClG,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAC3D,OAAO,MAAM,MAAM,6BAA6B,CAAC;AAEjD,MAAM,MAAM,GAAwC;IAChD,SAAS,EAAE;QACP,KAAK,EAAE,MAAM;KAChB;IACD,IAAI,EAAE;QACF,OAAO,EAAE,MAAM;KAClB;IACD,MAAM,EAAE;QACJ,MAAM,EAAE,EAAE;QACV,iBAAiB;QACjB,QAAQ,EAAE,EAAE;KACf;IACD,OAAO,EAAE;QACL,KAAK,EAAE,oBAAoB;QAC3B,MAAM,EAAE,qBAAqB;KAChC;CACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigJsonEditor.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigJsonEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,12 @@ interface ConfigTextProps extends ConfigGenericProps {
|
|
|
6
6
|
}
|
|
7
7
|
interface ConfigTextState extends ConfigGenericState {
|
|
8
8
|
oldValue?: string;
|
|
9
|
+
jsonError?: boolean;
|
|
9
10
|
}
|
|
10
11
|
declare class ConfigText extends ConfigGeneric<ConfigTextProps, ConfigTextState> {
|
|
11
12
|
private updateTimeout;
|
|
12
13
|
componentDidMount(): void;
|
|
14
|
+
validateJson(value: string | null | undefined): boolean;
|
|
13
15
|
static getDerivedStateFromProps(props: ConfigTextProps, state: ConfigTextState): string | {
|
|
14
16
|
value: any;
|
|
15
17
|
};
|
|
@@ -28,10 +28,25 @@ class ConfigText extends ConfigGeneric {
|
|
|
28
28
|
let value = ConfigGeneric.getValue(this.props.data, this.props.attr);
|
|
29
29
|
if (Array.isArray(value) && this.props.multiEdit) {
|
|
30
30
|
value = ConfigGeneric.DIFFERENT_VALUE;
|
|
31
|
-
this.setState({ value, oldValue: value });
|
|
31
|
+
this.setState({ value, oldValue: value, jsonError: false });
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
|
-
this.setState({ value, oldValue: value });
|
|
34
|
+
this.setState({ value, oldValue: value, jsonError: this.validateJson(value) });
|
|
35
|
+
}
|
|
36
|
+
validateJson(value) {
|
|
37
|
+
let jsonError = false;
|
|
38
|
+
if (this.props.schema.validateJson) {
|
|
39
|
+
if (value || !this.props.schema.allowEmpty) {
|
|
40
|
+
try {
|
|
41
|
+
JSON.parse(value);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
console.log('Error in JSON', err);
|
|
45
|
+
jsonError = true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return jsonError;
|
|
35
50
|
}
|
|
36
51
|
static getDerivedStateFromProps(props, state) {
|
|
37
52
|
if (props.multiEdit && state.value === ConfigGeneric.DIFFERENT_VALUE) {
|
|
@@ -69,7 +84,7 @@ class ConfigText extends ConfigGeneric {
|
|
|
69
84
|
onChange: (_, value) => {
|
|
70
85
|
const val = value ? value.value : '';
|
|
71
86
|
this.onChange(this.props.attr, val, () => {
|
|
72
|
-
this.setState({ value: val, oldValue: val });
|
|
87
|
+
this.setState({ value: val, oldValue: val, jsonError: this.validateJson(value) });
|
|
73
88
|
});
|
|
74
89
|
}, options: arr, getOptionLabel: option => option.label, renderInput: params => React.createElement(TextField, { variant: "standard", ...params, error: !!error, placeholder: this.getText(this.props.schema.placeholder), inputProps: {
|
|
75
90
|
...params.inputProps,
|
|
@@ -92,11 +107,11 @@ class ConfigText extends ConfigGeneric {
|
|
|
92
107
|
color: this.props.themeType === 'dark' ? '#fff' : '#111',
|
|
93
108
|
}, minRows: this.props.schema.minRows, maxRows: this.props.schema.maxRows, value: this.state.value === null || this.state.value === undefined ? '' : this.state.value, disabled: !!disabled, readOnly: this.props.schema.readOnly || false, onChange: e => {
|
|
94
109
|
const value = e.target.value;
|
|
95
|
-
this.setState({ value, oldValue: this.state.value }, () => this.onChange(this.props.attr, value || ''));
|
|
110
|
+
this.setState({ value, oldValue: this.state.value, jsonError: this.validateJson(value) }, () => this.onChange(this.props.attr, value || ''));
|
|
96
111
|
}, placeholder: this.getText(this.props.schema.placeholder) }),
|
|
97
|
-
helper || error ? React.createElement("div", { style: error ? styles.error : styles.helper }, error || helper) : null);
|
|
112
|
+
helper || error || this.state.jsonError ? React.createElement("div", { style: error ? styles.error : styles.helper }, error || (this.state.jsonError ? I18n.t('ra_Invalid JSON') : helper)) : null);
|
|
98
113
|
}
|
|
99
|
-
return React.createElement(TextField, { variant: "standard", fullWidth: true, value: this.state.value === null || this.state.value === undefined ? '' : this.state.value, error: !!error, disabled: !!disabled, inputProps: {
|
|
114
|
+
return React.createElement(TextField, { variant: "standard", fullWidth: true, value: this.state.value === null || this.state.value === undefined ? '' : this.state.value, error: !!error || !!this.state.jsonError, disabled: !!disabled, inputProps: {
|
|
100
115
|
maxLength: this.props.schema.maxLength || this.props.schema.max || undefined,
|
|
101
116
|
readOnly: this.props.schema.readOnly || false,
|
|
102
117
|
},
|
|
@@ -107,8 +122,9 @@ class ConfigText extends ConfigGeneric {
|
|
|
107
122
|
React.createElement(CloseIcon, null))) : null,
|
|
108
123
|
}, onChange: e => {
|
|
109
124
|
const value = e.target.value;
|
|
110
|
-
this.setState({ value, oldValue: this.state.value }, () => this.onChange(this.props.attr, value));
|
|
111
|
-
}, placeholder: this.getText(this.props.schema.placeholder), label: this.getText(this.props.schema.label), helperText: this.
|
|
125
|
+
this.setState({ value, oldValue: this.state.value, jsonError: this.validateJson(value) }, () => this.onChange(this.props.attr, value));
|
|
126
|
+
}, placeholder: this.getText(this.props.schema.placeholder), label: this.getText(this.props.schema.label), helperText: this.state.jsonError ? I18n.t('ra_Invalid JSON') :
|
|
127
|
+
this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation) });
|
|
112
128
|
}
|
|
113
129
|
}
|
|
114
130
|
export default ConfigText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigText.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACH,YAAY,EACZ,SAAS,EACT,gBAAgB,EAAE,cAAc,EAAE,UAAU,GAC/C,MAAM,eAAe,CAAC;AAEvB,OAAO,EACH,KAAK,IAAI,SAAS,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAGlD,OAAO,aAAa,EAAE,EAAoD,MAAM,iBAAiB,CAAC;AAElG,MAAM,MAAM,GAAwC;IAChD,aAAa,EAAE;QACX,OAAO,EAAE,GAAG;KACf;IACD,KAAK,EAAE;QACH,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,EAAE;KACf;IACD,MAAM,EAAE;QACJ,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,EAAE;KACf;IACD,KAAK,EAAE;QACH,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,SAAS;KACnB;CACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigText.js","sourceRoot":"./src/","sources":["JsonConfigComponent/ConfigText.tsx"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -147,15 +147,25 @@ export interface ConfigItemText extends ConfigItem {
|
|
|
147
147
|
maxLength?: number;
|
|
148
148
|
/** @deprecated use maxLength */
|
|
149
149
|
max?: number;
|
|
150
|
+
/** read-only field */
|
|
150
151
|
readOnly?: boolean;
|
|
152
|
+
/** default is true. Set this attribute to `false` if trim is not desired. */
|
|
151
153
|
trim?: boolean;
|
|
154
|
+
/** default is 1. Set this attribute to `2` or more if you want to have a textarea with more than one row. */
|
|
152
155
|
minRows?: number;
|
|
153
|
-
|
|
156
|
+
/** max rows of textarea. Used only if `minRows` > 1. */
|
|
157
|
+
maxRows?: number;
|
|
158
|
+
/** if true, the clear button will not be shown */
|
|
154
159
|
noClearButton?: boolean;
|
|
160
|
+
/** if true, the text will be validated as JSON */
|
|
161
|
+
validateJson?: boolean;
|
|
162
|
+
/** if true, the JSON will be validated only if the value is not empty */
|
|
163
|
+
allowEmpty?: boolean;
|
|
155
164
|
}
|
|
156
165
|
|
|
157
166
|
export interface ConfigItemColor extends ConfigItem {
|
|
158
167
|
type: 'color';
|
|
168
|
+
/** if true, the clear button will not be shown */
|
|
159
169
|
noClearButton?: boolean;
|
|
160
170
|
}
|
|
161
171
|
|
|
@@ -476,22 +486,35 @@ export interface ConfigItemSendTo extends Omit<ConfigItem, 'data'> {
|
|
|
476
486
|
export interface ConfigItemTextSendTo extends Omit<ConfigItem, 'data'> {
|
|
477
487
|
type: 'textSendTo';
|
|
478
488
|
container?: 'text' | 'div';
|
|
489
|
+
/** if true - show copy to clipboard button */
|
|
479
490
|
copyToClipboard?: boolean;
|
|
491
|
+
/** by change of which attributes, the command must be resent */
|
|
480
492
|
alsoDependsOn?: string[];
|
|
493
|
+
/** sendTo command */
|
|
481
494
|
command?: string;
|
|
495
|
+
/** string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to the backend */
|
|
482
496
|
jsonData?: string;
|
|
497
|
+
/** object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to the backend if jsonData is not defined. */
|
|
483
498
|
data?: Record<string, any>;
|
|
484
499
|
}
|
|
485
500
|
|
|
486
501
|
export interface ConfigItemSelectSendTo extends Omit<ConfigItem, 'data'> {
|
|
487
502
|
type: 'selectSendTo';
|
|
503
|
+
/** allow manual editing. Without drop-down menu (if instance is offline). Default `true`. */
|
|
488
504
|
manual?: boolean;
|
|
505
|
+
/** Multiple choice select */
|
|
489
506
|
multiple?: boolean;
|
|
507
|
+
/** show item even if no label was found for it (by multiple), default=`true` */
|
|
490
508
|
showAllValues?: boolean;
|
|
509
|
+
/** if true, the clear button will not be shown */
|
|
491
510
|
noClearButton?: boolean;
|
|
511
|
+
/** sendTo command */
|
|
492
512
|
command?: string;
|
|
513
|
+
/** string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to the backend */
|
|
493
514
|
jsonData?: string;
|
|
515
|
+
/** object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to the backend if jsonData is not defined. */
|
|
494
516
|
data?: Record<string, any>;
|
|
517
|
+
/** by change of which attributes, the command must be resent */
|
|
495
518
|
alsoDependsOn?: string[];
|
|
496
519
|
}
|
|
497
520
|
|
|
@@ -592,6 +615,10 @@ export interface ConfigItemUUID extends ConfigItem {
|
|
|
592
615
|
|
|
593
616
|
export interface ConfigItemJsonEditor extends ConfigItem {
|
|
594
617
|
type: 'jsonEditor';
|
|
618
|
+
/** if false, the text will be not validated as JSON */
|
|
619
|
+
validateJson?: boolean;
|
|
620
|
+
/** if true, the JSON will be validated only if the value is not empty */
|
|
621
|
+
allowEmpty?: boolean;
|
|
595
622
|
}
|
|
596
623
|
|
|
597
624
|
export interface ConfigItemInterface extends ConfigItem {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iobroker/json-config",
|
|
3
3
|
"description": "This package contains the ioBroker JSON config UI components",
|
|
4
|
-
"version": "7.0.
|
|
4
|
+
"version": "7.0.23",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"types": "./build/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"access": "public"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@iobroker/adapter-react-v5": "^6.1.
|
|
17
|
+
"@iobroker/adapter-react-v5": "^6.1.8",
|
|
18
18
|
"crypto-js": "^4.2.0",
|
|
19
19
|
"react-ace": "^12.0.0"
|
|
20
20
|
},
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"build/",
|
|
23
23
|
"LICENSE"
|
|
24
24
|
],
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "5af8b21a6eb95610ffb815f642dee05664768866"
|
|
26
26
|
}
|