@tsingroc/tsingroc-components 3.5.1 → 3.6.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.
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type FlexProps } from "antd";
|
|
2
|
+
export interface LineChartEditorProps extends Omit<FlexProps, "children"> {
|
|
3
|
+
/** X 轴的数据。*/
|
|
4
|
+
xData: (string | number)[];
|
|
5
|
+
/** Y 轴的原始数据。*/
|
|
6
|
+
origData: number[];
|
|
7
|
+
/**
|
|
8
|
+
* X 轴的名称。
|
|
9
|
+
* @default "时间"
|
|
10
|
+
*/
|
|
11
|
+
xName?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Y 轴的名称。
|
|
14
|
+
* @default "数值"
|
|
15
|
+
*/
|
|
16
|
+
yName?: string;
|
|
17
|
+
/**
|
|
18
|
+
* 原始曲线的名称。
|
|
19
|
+
* @default "原始曲线"
|
|
20
|
+
*/
|
|
21
|
+
origName?: string;
|
|
22
|
+
/**
|
|
23
|
+
* 修改后曲线的名称。
|
|
24
|
+
* @default "修正曲线"
|
|
25
|
+
*/
|
|
26
|
+
newName?: string;
|
|
27
|
+
/** 用户按下“确认”按钮时的回调。*/
|
|
28
|
+
onConfirm?: (newData: number[]) => void;
|
|
29
|
+
/** 上下调整数值的步长。*/
|
|
30
|
+
adjustStep?: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 一个曲线图编辑器,由曲线图、数据表格和确认/撤销按钮三部分组成。表格中的数据修改会即时反映到曲线图中。
|
|
34
|
+
*
|
|
35
|
+
* 除了文档列出的属性外,多余的属性会被传递给最外层的 [Flex][1] 组件。
|
|
36
|
+
*
|
|
37
|
+
* [1]: https://ant-design.antgroup.com/components/flex-cn#api
|
|
38
|
+
*/
|
|
39
|
+
declare function LineChartEditor(props: LineChartEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export default LineChartEditor;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Flex, Input, Table } from "antd";
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
|
+
import { createStyles } from "antd-style";
|
|
5
|
+
import EChartsReact from "echarts-for-react";
|
|
6
|
+
import * as echarts from "../echarts";
|
|
7
|
+
/**
|
|
8
|
+
* 一个曲线图编辑器,由曲线图、数据表格和确认/撤销按钮三部分组成。表格中的数据修改会即时反映到曲线图中。
|
|
9
|
+
*
|
|
10
|
+
* 除了文档列出的属性外,多余的属性会被传递给最外层的 [Flex][1] 组件。
|
|
11
|
+
*
|
|
12
|
+
* [1]: https://ant-design.antgroup.com/components/flex-cn#api
|
|
13
|
+
*/
|
|
14
|
+
function LineChartEditor(props) {
|
|
15
|
+
const { xData, origData, xName = "时间", yName = "数值", origName = "原始曲线", newName = "修正曲线", onConfirm, adjustStep, ...rest } = props;
|
|
16
|
+
const { styles, theme: token } = useStyles();
|
|
17
|
+
const [newData, setNewData] = useState(origData);
|
|
18
|
+
const option = echarts.buildEChartsOption({}, echarts.useGrid({
|
|
19
|
+
xAxis: {
|
|
20
|
+
name: xName,
|
|
21
|
+
data: xData,
|
|
22
|
+
},
|
|
23
|
+
yAxis: {
|
|
24
|
+
name: yName,
|
|
25
|
+
},
|
|
26
|
+
series: [
|
|
27
|
+
echarts.lineSeries({
|
|
28
|
+
name: origName,
|
|
29
|
+
data: origData,
|
|
30
|
+
option: {
|
|
31
|
+
lineStyle: { type: "dashed" },
|
|
32
|
+
},
|
|
33
|
+
}),
|
|
34
|
+
echarts.lineSeries({
|
|
35
|
+
name: newName,
|
|
36
|
+
data: newData,
|
|
37
|
+
}),
|
|
38
|
+
],
|
|
39
|
+
}), echarts.tooltip({ trigger: "axis" }));
|
|
40
|
+
const tableColumns = [
|
|
41
|
+
{
|
|
42
|
+
key: "x",
|
|
43
|
+
dataIndex: "x",
|
|
44
|
+
title: xName,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
key: "orig",
|
|
48
|
+
dataIndex: "orig",
|
|
49
|
+
title: origName,
|
|
50
|
+
width: "50%",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
key: "new",
|
|
54
|
+
dataIndex: "new",
|
|
55
|
+
title: newName,
|
|
56
|
+
width: "50%",
|
|
57
|
+
onCell: ((data, index) => ({
|
|
58
|
+
value: data.new,
|
|
59
|
+
onChange: (value) => {
|
|
60
|
+
setNewData((prev) => {
|
|
61
|
+
const next = [...prev];
|
|
62
|
+
next[index] = value;
|
|
63
|
+
return next;
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
step: adjustStep,
|
|
67
|
+
})),
|
|
68
|
+
onHeaderCell: () => ({
|
|
69
|
+
style: {
|
|
70
|
+
paddingInlineStart: token.paddingXS + token.paddingSM,
|
|
71
|
+
},
|
|
72
|
+
}),
|
|
73
|
+
},
|
|
74
|
+
];
|
|
75
|
+
const tableData = useMemo(() => xData.map((x, i) => ({
|
|
76
|
+
key: i,
|
|
77
|
+
x,
|
|
78
|
+
orig: origData[i],
|
|
79
|
+
new: newData[i],
|
|
80
|
+
})), [xData, origData, newData]);
|
|
81
|
+
return (_jsxs(Flex, { vertical: true, gap: token.marginXS, ...rest, children: [_jsx(EChartsReact, { option: option, notMerge: true }), _jsx(Table, { columns: tableColumns, dataSource: tableData, size: "small", pagination: false, style: { flexBasis: "100%", overflowY: "auto" }, components: { body: { cell: EditorCell } }, onRow: (data) => {
|
|
82
|
+
const modified = data.orig != data.new;
|
|
83
|
+
return {
|
|
84
|
+
className: styles.editableRow,
|
|
85
|
+
style: {
|
|
86
|
+
color: modified ? token.colorError : undefined,
|
|
87
|
+
background: modified ? token.colorErrorBg : undefined,
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
} }), _jsxs(Flex, { gap: token.marginXXS, children: [_jsx("div", { style: { flexBasis: "100%" } }), _jsx(Button, { type: "primary", onClick: () => onConfirm?.(newData), children: "\u4FDD\u5B58" }), _jsx(Button, { danger: true, onClick: () => setNewData(origData), children: "\u91CD\u7F6E" })] })] }));
|
|
91
|
+
}
|
|
92
|
+
export default LineChartEditor;
|
|
93
|
+
function EditorCell({ value, onChange, step, ...props }) {
|
|
94
|
+
if (value === undefined) {
|
|
95
|
+
return _jsx("td", { ...props });
|
|
96
|
+
}
|
|
97
|
+
/* eslint-disable react-hooks/rules-of-hooks */
|
|
98
|
+
const { styles } = useStyles();
|
|
99
|
+
const [editing, setEditing] = useState(false);
|
|
100
|
+
/* eslint-enable react-hooks/rules-of-hooks */
|
|
101
|
+
return (_jsx("td", { ...props, style: { paddingBlock: 0 }, children: editing ? (_jsx(Input, { ref: (input) => input?.focus(), type: "number", step: step, style: { margin: 0 }, defaultValue: value, onChange: (event) => onChange(event.currentTarget.valueAsNumber), onPressEnter: () => setEditing(false), onBlur: () => setEditing(false) })) : (_jsx("div", { className: styles.editableWrapper, onClick: () => setEditing(true), children: value })) }));
|
|
102
|
+
}
|
|
103
|
+
const useStyles = createStyles(({ css, token }) => {
|
|
104
|
+
const editableWrapper = css `
|
|
105
|
+
padding: ${token.paddingXXS}px ${token.paddingSM - 1 + 24}px
|
|
106
|
+
${token.paddingXXS}px ${token.paddingSM - 1}px;
|
|
107
|
+
cursor: text;
|
|
108
|
+
border-radius: ${token.borderRadius}px;
|
|
109
|
+
border: 1px solid transparent;
|
|
110
|
+
transition: border ${token.motionDurationFast};
|
|
111
|
+
`;
|
|
112
|
+
const editableRow = css `
|
|
113
|
+
&:hover .${editableWrapper} {
|
|
114
|
+
border-color: ${token.colorBorder};
|
|
115
|
+
}
|
|
116
|
+
`;
|
|
117
|
+
return { editableRow, editableWrapper };
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=LineChartEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineChartEditor.js","sourceRoot":"","sources":["../../src/components/LineChartEditor.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { default as CircularProgress, type CircularProgressProps, } from "./comp
|
|
|
4
4
|
export { default as Header, type HeaderProps } from "./components/Header";
|
|
5
5
|
export { default as ImageBackground, type ImageBackgroundProps, } from "./components/ImageBackground";
|
|
6
6
|
export { default as IndicatorLight, type IndicatorLightProps, } from "./components/IndicatorLight";
|
|
7
|
+
export { default as LineChartEditor, type LineChartEditorProps, } from "./components/LineChartEditor";
|
|
7
8
|
export { default as QuickDateRangePicker, type QuickDateRangePickerProps, } from "./components/QuickDateRangePicker";
|
|
8
9
|
export { default as SegmentedButtons, TimeUnitSwitcher, type TimeUnitSwitcherProps, } from "./components/SegmentedButtons";
|
|
9
10
|
export { default as Sidebar, type SidebarProps } from "./components/Sidebar";
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { default as CircularProgress, } from "./components/CircularProgress";
|
|
|
4
4
|
export { default as Header } from "./components/Header";
|
|
5
5
|
export { default as ImageBackground, } from "./components/ImageBackground";
|
|
6
6
|
export { default as IndicatorLight, } from "./components/IndicatorLight";
|
|
7
|
+
export { default as LineChartEditor, } from "./components/LineChartEditor";
|
|
7
8
|
export { default as QuickDateRangePicker, } from "./components/QuickDateRangePicker";
|
|
8
9
|
export { default as SegmentedButtons, TimeUnitSwitcher, } from "./components/SegmentedButtons";
|
|
9
10
|
export { default as Sidebar } from "./components/Sidebar";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,SAAS,EAET,YAAY,EAEZ,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAsB,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EACL,OAAO,IAAI,gBAAgB,GAE5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EACL,OAAO,IAAI,eAAe,GAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,OAAO,IAAI,cAAc,GAE1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,OAAO,IAAI,oBAAoB,GAEhC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,OAAO,IAAI,gBAAgB,EAC3B,gBAAgB,GAEjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAqB,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACL,OAAO,IAAI,kBAAkB,GAE9B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,OAAO,IAAI,aAAa,GAEzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,OAAO,IAAI,UAAU,GAEtB,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,SAAS,EAET,YAAY,EAEZ,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAsB,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EACL,OAAO,IAAI,gBAAgB,GAE5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EACL,OAAO,IAAI,eAAe,GAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,OAAO,IAAI,cAAc,GAE1B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,OAAO,IAAI,eAAe,GAE3B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,OAAO,IAAI,oBAAoB,GAEhC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,OAAO,IAAI,gBAAgB,EAC3B,gBAAgB,GAEjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAqB,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACL,OAAO,IAAI,kBAAkB,GAE9B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,OAAO,IAAI,aAAa,GAEzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,OAAO,IAAI,UAAU,GAEtB,MAAM,yBAAyB,CAAC"}
|