@etsoo/materialui 1.5.62 → 1.5.63
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/lib/cjs/JsonDataInput.d.ts +11 -0
- package/lib/cjs/JsonDataInput.js +43 -0
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.js +1 -0
- package/lib/mjs/JsonDataInput.d.ts +11 -0
- package/lib/mjs/JsonDataInput.js +37 -0
- package/lib/mjs/index.d.ts +1 -0
- package/lib/mjs/index.js +1 -0
- package/package.json +7 -7
- package/src/JsonDataInput.tsx +56 -0
- package/src/index.ts +1 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { InputFieldProps } from "./InputField";
|
|
2
|
+
/**
|
|
3
|
+
* JSON data input component properties
|
|
4
|
+
*/
|
|
5
|
+
export type JsonDataInputProps = Omit<InputFieldProps, "multiple">;
|
|
6
|
+
/**
|
|
7
|
+
* JSON data input component
|
|
8
|
+
* @param props - Component properties
|
|
9
|
+
* @returns JSX Element
|
|
10
|
+
*/
|
|
11
|
+
export declare function JsonDataInput(props: JsonDataInputProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.JsonDataInput = JsonDataInput;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const InputField_1 = require("./InputField");
|
|
10
|
+
const ReactApp_1 = require("./app/ReactApp");
|
|
11
|
+
/**
|
|
12
|
+
* JSON data input component
|
|
13
|
+
* @param props - Component properties
|
|
14
|
+
* @returns JSX Element
|
|
15
|
+
*/
|
|
16
|
+
function JsonDataInput(props) {
|
|
17
|
+
// Destruct
|
|
18
|
+
const { onChange, rows = 3, ...rest } = props;
|
|
19
|
+
// Global app
|
|
20
|
+
const app = (0, ReactApp_1.useRequiredAppContext)();
|
|
21
|
+
const jsonError = app.get("jsonDataError") ?? "JSON format error";
|
|
22
|
+
// Error message
|
|
23
|
+
const [error, setError] = react_1.default.useState();
|
|
24
|
+
// Layout
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)(InputField_1.InputField, { multiline: true, rows: rows, ...rest, error: !!error, helperText: error, onChange: (e) => {
|
|
26
|
+
if (onChange) {
|
|
27
|
+
onChange(e);
|
|
28
|
+
if (e.isDefaultPrevented())
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const json = e.target.value;
|
|
32
|
+
if (json) {
|
|
33
|
+
try {
|
|
34
|
+
JSON.parse(json);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
setError(`${jsonError}: ${e instanceof Error ? e.message : String(e)}`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
setError(undefined);
|
|
42
|
+
} }));
|
|
43
|
+
}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -70,6 +70,7 @@ export * from "./InputField";
|
|
|
70
70
|
export * from "./InputTipField";
|
|
71
71
|
export * from "./IntInputField";
|
|
72
72
|
export * from "./ItemList";
|
|
73
|
+
export * from "./JsonDataInput";
|
|
73
74
|
export * from "./LineChart";
|
|
74
75
|
export * from "./LinkEx";
|
|
75
76
|
export * from "./ListChooser";
|
package/lib/cjs/index.js
CHANGED
|
@@ -86,6 +86,7 @@ __exportStar(require("./InputField"), exports);
|
|
|
86
86
|
__exportStar(require("./InputTipField"), exports);
|
|
87
87
|
__exportStar(require("./IntInputField"), exports);
|
|
88
88
|
__exportStar(require("./ItemList"), exports);
|
|
89
|
+
__exportStar(require("./JsonDataInput"), exports);
|
|
89
90
|
__exportStar(require("./LineChart"), exports);
|
|
90
91
|
__exportStar(require("./LinkEx"), exports);
|
|
91
92
|
__exportStar(require("./ListChooser"), exports);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { InputFieldProps } from "./InputField";
|
|
2
|
+
/**
|
|
3
|
+
* JSON data input component properties
|
|
4
|
+
*/
|
|
5
|
+
export type JsonDataInputProps = Omit<InputFieldProps, "multiple">;
|
|
6
|
+
/**
|
|
7
|
+
* JSON data input component
|
|
8
|
+
* @param props - Component properties
|
|
9
|
+
* @returns JSX Element
|
|
10
|
+
*/
|
|
11
|
+
export declare function JsonDataInput(props: JsonDataInputProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { InputField } from "./InputField";
|
|
4
|
+
import { useRequiredAppContext } from "./app/ReactApp";
|
|
5
|
+
/**
|
|
6
|
+
* JSON data input component
|
|
7
|
+
* @param props - Component properties
|
|
8
|
+
* @returns JSX Element
|
|
9
|
+
*/
|
|
10
|
+
export function JsonDataInput(props) {
|
|
11
|
+
// Destruct
|
|
12
|
+
const { onChange, rows = 3, ...rest } = props;
|
|
13
|
+
// Global app
|
|
14
|
+
const app = useRequiredAppContext();
|
|
15
|
+
const jsonError = app.get("jsonDataError") ?? "JSON format error";
|
|
16
|
+
// Error message
|
|
17
|
+
const [error, setError] = React.useState();
|
|
18
|
+
// Layout
|
|
19
|
+
return (_jsx(InputField, { multiline: true, rows: rows, ...rest, error: !!error, helperText: error, onChange: (e) => {
|
|
20
|
+
if (onChange) {
|
|
21
|
+
onChange(e);
|
|
22
|
+
if (e.isDefaultPrevented())
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const json = e.target.value;
|
|
26
|
+
if (json) {
|
|
27
|
+
try {
|
|
28
|
+
JSON.parse(json);
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
setError(`${jsonError}: ${e instanceof Error ? e.message : String(e)}`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
setError(undefined);
|
|
36
|
+
} }));
|
|
37
|
+
}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -70,6 +70,7 @@ export * from "./InputField";
|
|
|
70
70
|
export * from "./InputTipField";
|
|
71
71
|
export * from "./IntInputField";
|
|
72
72
|
export * from "./ItemList";
|
|
73
|
+
export * from "./JsonDataInput";
|
|
73
74
|
export * from "./LineChart";
|
|
74
75
|
export * from "./LinkEx";
|
|
75
76
|
export * from "./ListChooser";
|
package/lib/mjs/index.js
CHANGED
|
@@ -70,6 +70,7 @@ export * from "./InputField";
|
|
|
70
70
|
export * from "./InputTipField";
|
|
71
71
|
export * from "./IntInputField";
|
|
72
72
|
export * from "./ItemList";
|
|
73
|
+
export * from "./JsonDataInput";
|
|
73
74
|
export * from "./LineChart";
|
|
74
75
|
export * from "./LinkEx";
|
|
75
76
|
export * from "./ListChooser";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@etsoo/materialui",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.63",
|
|
4
4
|
"description": "TypeScript Material-UI Implementation",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/mjs/index.js",
|
|
@@ -40,14 +40,14 @@
|
|
|
40
40
|
"@dnd-kit/sortable": "^10.0.0",
|
|
41
41
|
"@emotion/react": "^11.14.0",
|
|
42
42
|
"@emotion/styled": "^11.14.0",
|
|
43
|
-
"@etsoo/appscript": "^1.6.
|
|
43
|
+
"@etsoo/appscript": "^1.6.41",
|
|
44
44
|
"@etsoo/notificationbase": "^1.1.63",
|
|
45
45
|
"@etsoo/react": "^1.8.49",
|
|
46
46
|
"@etsoo/shared": "^1.2.75",
|
|
47
|
-
"@mui/icons-material": "^7.1.
|
|
48
|
-
"@mui/material": "^7.1.
|
|
49
|
-
"@mui/x-data-grid": "^8.5.
|
|
50
|
-
"chart.js": "^4.
|
|
47
|
+
"@mui/icons-material": "^7.1.2",
|
|
48
|
+
"@mui/material": "^7.1.2",
|
|
49
|
+
"@mui/x-data-grid": "^8.5.3",
|
|
50
|
+
"chart.js": "^4.5.0",
|
|
51
51
|
"chartjs-plugin-datalabels": "^2.2.0",
|
|
52
52
|
"dompurify": "^3.2.6",
|
|
53
53
|
"eventemitter3": "^5.0.1",
|
|
@@ -84,6 +84,6 @@
|
|
|
84
84
|
"@vitejs/plugin-react": "^4.5.2",
|
|
85
85
|
"jsdom": "^26.1.0",
|
|
86
86
|
"typescript": "^5.8.3",
|
|
87
|
-
"vitest": "^3.2.
|
|
87
|
+
"vitest": "^3.2.4"
|
|
88
88
|
}
|
|
89
89
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { InputField, InputFieldProps } from "./InputField";
|
|
3
|
+
import { useRequiredAppContext } from "./app/ReactApp";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* JSON data input component properties
|
|
7
|
+
*/
|
|
8
|
+
export type JsonDataInputProps = Omit<InputFieldProps, "multiple">;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* JSON data input component
|
|
12
|
+
* @param props - Component properties
|
|
13
|
+
* @returns JSX Element
|
|
14
|
+
*/
|
|
15
|
+
export function JsonDataInput(props: JsonDataInputProps) {
|
|
16
|
+
// Destruct
|
|
17
|
+
const { onChange, rows = 3, ...rest } = props;
|
|
18
|
+
|
|
19
|
+
// Global app
|
|
20
|
+
const app = useRequiredAppContext();
|
|
21
|
+
const jsonError = app.get("jsonDataError") ?? "JSON format error";
|
|
22
|
+
|
|
23
|
+
// Error message
|
|
24
|
+
const [error, setError] = React.useState<string>();
|
|
25
|
+
|
|
26
|
+
// Layout
|
|
27
|
+
return (
|
|
28
|
+
<InputField
|
|
29
|
+
multiline
|
|
30
|
+
rows={rows}
|
|
31
|
+
{...rest}
|
|
32
|
+
error={!!error}
|
|
33
|
+
helperText={error}
|
|
34
|
+
onChange={(e) => {
|
|
35
|
+
if (onChange) {
|
|
36
|
+
onChange(e);
|
|
37
|
+
if (e.isDefaultPrevented()) return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const json = e.target.value;
|
|
41
|
+
if (json) {
|
|
42
|
+
try {
|
|
43
|
+
JSON.parse(json);
|
|
44
|
+
} catch (e) {
|
|
45
|
+
setError(
|
|
46
|
+
`${jsonError}: ${e instanceof Error ? e.message : String(e)}`
|
|
47
|
+
);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
setError(undefined);
|
|
53
|
+
}}
|
|
54
|
+
/>
|
|
55
|
+
);
|
|
56
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -76,6 +76,7 @@ export * from "./InputField";
|
|
|
76
76
|
export * from "./InputTipField";
|
|
77
77
|
export * from "./IntInputField";
|
|
78
78
|
export * from "./ItemList";
|
|
79
|
+
export * from "./JsonDataInput";
|
|
79
80
|
export * from "./LineChart";
|
|
80
81
|
export * from "./LinkEx";
|
|
81
82
|
export * from "./ListChooser";
|