@antv/gpt-vis 0.5.5 → 0.5.7
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/cjs/Area/index.d.ts +2 -3
- package/dist/cjs/Area/index.js +48 -5
- package/dist/cjs/Bar/index.d.ts +5 -2
- package/dist/cjs/Bar/index.js +43 -7
- package/dist/cjs/Boxplot/index.d.ts +13 -0
- package/dist/cjs/Boxplot/index.js +88 -0
- package/dist/cjs/ChartCodeRender/VisChart.d.ts +7 -1
- package/dist/cjs/ChartCodeRender/VisChart.js +100 -12
- package/dist/cjs/ChartCodeRender/index.js +16 -2
- package/dist/cjs/ChartCodeRender/type.d.ts +104 -5
- package/dist/cjs/Column/index.d.ts +5 -3
- package/dist/cjs/Column/index.js +44 -7
- package/dist/cjs/ConfigProvider/hooks/useConfig.js +2 -1
- package/dist/cjs/DualAxes/index.d.ts +1 -1
- package/dist/cjs/DualAxes/index.js +20 -8
- package/dist/cjs/FishboneDiagram/index.d.ts +1 -0
- package/dist/cjs/FishboneDiagram/index.js +21 -7
- package/dist/cjs/Funnel/index.d.ts +12 -0
- package/dist/cjs/Funnel/index.js +173 -0
- package/dist/cjs/Histogram/index.d.ts +4 -3
- package/dist/cjs/Histogram/index.js +32 -3
- package/dist/cjs/IndentedTree/index.d.ts +1 -0
- package/dist/cjs/IndentedTree/index.js +32 -20
- package/dist/cjs/Line/index.d.ts +2 -3
- package/dist/cjs/Line/index.js +36 -3
- package/dist/cjs/Liquid/index.d.ts +11 -0
- package/dist/cjs/Liquid/index.js +85 -0
- package/dist/cjs/MindMap/index.d.ts +1 -0
- package/dist/cjs/MindMap/index.js +29 -21
- package/dist/cjs/Pie/index.d.ts +2 -2
- package/dist/cjs/Pie/index.js +22 -3
- package/dist/cjs/Radar/index.d.ts +5 -3
- package/dist/cjs/Radar/index.js +106 -37
- package/dist/cjs/Sankey/index.d.ts +12 -0
- package/dist/cjs/Sankey/index.js +106 -0
- package/dist/cjs/Scatter/index.d.ts +2 -3
- package/dist/cjs/Scatter/index.js +52 -6
- package/dist/cjs/Treemap/index.d.ts +2 -3
- package/dist/cjs/Treemap/index.js +23 -3
- package/dist/cjs/Venn/index.d.ts +32 -0
- package/dist/cjs/Venn/index.js +87 -0
- package/dist/cjs/Violin/index.d.ts +10 -0
- package/dist/cjs/Violin/index.js +185 -0
- package/dist/cjs/WordCloud/index.d.ts +2 -3
- package/dist/cjs/WordCloud/index.js +34 -7
- package/dist/cjs/export.d.ts +7 -1
- package/dist/cjs/export.js +38 -8
- package/dist/cjs/theme.d.ts +2 -0
- package/dist/cjs/theme.js +133 -0
- package/dist/cjs/types/chart.d.ts +17 -0
- package/dist/cjs/types/chart.js +6 -0
- package/dist/cjs/utils/palette.d.ts +2 -0
- package/dist/cjs/utils/palette.js +54 -0
- package/dist/cjs/utils/plot.d.ts +1 -0
- package/dist/cjs/utils/plot.js +15 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/Area/index.d.ts +2 -3
- package/dist/esm/Area/index.js +80 -6
- package/dist/esm/Bar/index.d.ts +5 -2
- package/dist/esm/Bar/index.js +66 -9
- package/dist/esm/Boxplot/index.d.ts +13 -0
- package/dist/esm/Boxplot/index.js +83 -0
- package/dist/esm/ChartCodeRender/VisChart.d.ts +7 -1
- package/dist/esm/ChartCodeRender/VisChart.js +144 -34
- package/dist/esm/ChartCodeRender/index.js +15 -1
- package/dist/esm/ChartCodeRender/type.d.ts +104 -5
- package/dist/esm/Column/index.d.ts +5 -3
- package/dist/esm/Column/index.js +67 -9
- package/dist/esm/ConfigProvider/hooks/useConfig.js +9 -1
- package/dist/esm/DualAxes/index.d.ts +1 -1
- package/dist/esm/DualAxes/index.js +35 -12
- package/dist/esm/FishboneDiagram/index.d.ts +1 -0
- package/dist/esm/FishboneDiagram/index.js +23 -7
- package/dist/esm/Funnel/index.d.ts +12 -0
- package/dist/esm/Funnel/index.js +171 -0
- package/dist/esm/Histogram/index.d.ts +4 -3
- package/dist/esm/Histogram/index.js +55 -5
- package/dist/esm/IndentedTree/index.d.ts +1 -0
- package/dist/esm/IndentedTree/index.js +36 -29
- package/dist/esm/Line/index.d.ts +2 -3
- package/dist/esm/Line/index.js +63 -4
- package/dist/esm/Liquid/index.d.ts +11 -0
- package/dist/esm/Liquid/index.js +100 -0
- package/dist/esm/MindMap/index.d.ts +1 -0
- package/dist/esm/MindMap/index.js +37 -30
- package/dist/esm/Pie/index.d.ts +2 -2
- package/dist/esm/Pie/index.js +37 -4
- package/dist/esm/Radar/index.d.ts +5 -3
- package/dist/esm/Radar/index.js +138 -42
- package/dist/esm/Sankey/index.d.ts +12 -0
- package/dist/esm/Sankey/index.js +88 -0
- package/dist/esm/Scatter/index.d.ts +2 -3
- package/dist/esm/Scatter/index.js +76 -11
- package/dist/esm/Treemap/index.d.ts +2 -3
- package/dist/esm/Treemap/index.js +39 -4
- package/dist/esm/Venn/index.d.ts +32 -0
- package/dist/esm/Venn/index.js +69 -0
- package/dist/esm/Violin/index.d.ts +10 -0
- package/dist/esm/Violin/index.js +192 -0
- package/dist/esm/WordCloud/index.d.ts +2 -3
- package/dist/esm/WordCloud/index.js +51 -9
- package/dist/esm/export.d.ts +7 -1
- package/dist/esm/export.js +8 -2
- package/dist/esm/theme.d.ts +2 -0
- package/dist/esm/theme.js +103 -0
- package/dist/esm/types/chart.d.ts +17 -0
- package/dist/esm/types/chart.js +6 -0
- package/dist/esm/utils/palette.d.ts +2 -0
- package/dist/esm/utils/palette.js +2 -0
- package/dist/esm/utils/plot.d.ts +1 -0
- package/dist/esm/utils/plot.js +10 -0
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/umd/373.async.js +1 -0
- package/dist/umd/index.min.js +1 -1
- package/package.json +2 -1
- package/dist/umd/962.async.js +0 -1
|
@@ -1,73 +1,172 @@
|
|
|
1
1
|
import type { FC } from 'react';
|
|
2
2
|
import type { Components, ExtraProps } from 'react-markdown';
|
|
3
3
|
/**
|
|
4
|
+
* Text labels type for internationalization
|
|
5
|
+
* 文本标签类型 - 用于国际化
|
|
6
|
+
*/
|
|
7
|
+
export type TextLabels = {
|
|
8
|
+
chartTab?: string;
|
|
9
|
+
codeTab?: string;
|
|
10
|
+
download?: string;
|
|
11
|
+
copy?: string;
|
|
12
|
+
copied?: string;
|
|
13
|
+
renderError?: string;
|
|
14
|
+
parseError?: string;
|
|
15
|
+
unsupportedChart?: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Chart enhancement options - contains all new feature configurations
|
|
19
|
+
* 图表增强选项 - 包含所有新增的功能配置
|
|
20
|
+
*/
|
|
21
|
+
export type ChartEnhancementOptions = {
|
|
22
|
+
/**
|
|
23
|
+
* Controls whether tabs are displayed (default: true)
|
|
24
|
+
* 控制是否显示标签页 (默认: true)
|
|
25
|
+
*/
|
|
26
|
+
showTabs?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Controls whether code tab is shown (default: true)
|
|
29
|
+
* 控制是否显示代码标签页 (默认: true)
|
|
30
|
+
*/
|
|
31
|
+
showCodeTab?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Controls whether chart tab is shown (default: true)
|
|
34
|
+
* 控制是否显示图表标签页 (默认: true)
|
|
35
|
+
*/
|
|
36
|
+
showChartTab?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Default active tab (default: 'chart')
|
|
39
|
+
* 默认激活的标签页 (默认: 'chart')
|
|
40
|
+
*/
|
|
41
|
+
defaultTab?: 'chart' | 'code';
|
|
42
|
+
/**
|
|
43
|
+
* Custom text labels
|
|
44
|
+
* 自定义文本标签
|
|
45
|
+
*/
|
|
46
|
+
textLabels?: TextLabels;
|
|
47
|
+
/**
|
|
48
|
+
* Locale setting for default text labels (default: 'zh-CN')
|
|
49
|
+
* Supports: 'zh-CN' | 'en-US' | 'pt-BR'
|
|
50
|
+
* 语言区域设置,用于默认文本标签 (默认: 'zh-CN')
|
|
51
|
+
* 支持: 'zh-CN' | 'en-US' | 'pt-BR'
|
|
52
|
+
*/
|
|
53
|
+
locale?: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Error render function type
|
|
4
57
|
* 错误渲染函数类型
|
|
5
58
|
*/
|
|
6
59
|
export type ErrorRender = {
|
|
7
|
-
/** 错误对象 */
|
|
60
|
+
/** Error object | 错误对象 */
|
|
8
61
|
error?: Error;
|
|
9
|
-
/** 原始内容 */
|
|
62
|
+
/** Original content | 原始内容 */
|
|
10
63
|
content: string;
|
|
11
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* Component error render type
|
|
67
|
+
* 组件错误渲染类型
|
|
68
|
+
*/
|
|
12
69
|
export type ComponentErrorRender = {
|
|
13
|
-
/** 错误对象 */
|
|
70
|
+
/** Error object | 错误对象 */
|
|
14
71
|
error?: Error;
|
|
15
|
-
/** 原始内容 */
|
|
72
|
+
/** Original content | 原始内容 */
|
|
16
73
|
content: string;
|
|
17
74
|
};
|
|
75
|
+
/**
|
|
76
|
+
* Options for withChartCode HOC
|
|
77
|
+
* withChartCode 高阶组件选项
|
|
78
|
+
*/
|
|
18
79
|
export type WithChartCodeOptions = {
|
|
19
80
|
/**
|
|
81
|
+
* Additional chart components to load
|
|
20
82
|
* 要额外加载的图表组件
|
|
21
83
|
*/
|
|
22
84
|
components: ChartComponents;
|
|
23
85
|
/**
|
|
86
|
+
* Custom renderers for other language code blocks
|
|
24
87
|
* 自定义其它语言代码块渲染器
|
|
25
88
|
*/
|
|
26
89
|
languageRenderers?: LanguageRenderers;
|
|
27
90
|
/**
|
|
91
|
+
* Default code renderer
|
|
28
92
|
* 默认的代码渲染器
|
|
29
93
|
*/
|
|
30
94
|
defaultRenderer?: CodeRenderer;
|
|
31
95
|
/**
|
|
96
|
+
* Enable debug logging
|
|
32
97
|
* 打开调试日志
|
|
33
98
|
*/
|
|
34
99
|
debug?: boolean;
|
|
35
100
|
/**
|
|
101
|
+
* Loading animation timeout, default 5s
|
|
36
102
|
* 设置loading动画的超时时间,默认为 5s
|
|
37
103
|
*/
|
|
38
104
|
loadingTimeout?: number;
|
|
39
105
|
/**
|
|
106
|
+
* Chart styles, configure container styles
|
|
40
107
|
* 图表样式,配置容器样式
|
|
41
108
|
*/
|
|
42
109
|
style?: React.CSSProperties;
|
|
43
110
|
/**
|
|
111
|
+
* Custom component error render function
|
|
44
112
|
* 自定义组件错误渲染函数
|
|
45
113
|
*/
|
|
46
114
|
componentErrorRender?: (errorInfo: ComponentErrorRender) => React.ReactElement;
|
|
47
115
|
/**
|
|
116
|
+
* Custom error render function
|
|
48
117
|
* 自定义错误渲染函数
|
|
49
118
|
*/
|
|
50
119
|
errorRender?: (errorInfo: ErrorRender) => React.ReactElement;
|
|
51
|
-
};
|
|
120
|
+
} & ChartEnhancementOptions;
|
|
121
|
+
/**
|
|
122
|
+
* RenderVisChart component props type
|
|
123
|
+
* RenderVisChart 组件属性类型
|
|
124
|
+
*/
|
|
125
|
+
export type RenderVisChartProps = {
|
|
126
|
+
/** Chart content string | 图表内容字符串 */
|
|
127
|
+
content: string;
|
|
128
|
+
/** Chart components dictionary | 图表组件字典 */
|
|
129
|
+
components: ChartComponents;
|
|
130
|
+
/** Enable debug mode | 启用调试模式 */
|
|
131
|
+
debug?: boolean;
|
|
132
|
+
/** Loading timeout in milliseconds | 加载超时时间(毫秒) */
|
|
133
|
+
loadingTimeout: number;
|
|
134
|
+
/** Container styles | 容器样式 */
|
|
135
|
+
style?: React.CSSProperties;
|
|
136
|
+
/** Custom component error renderer | 自定义组件错误渲染器 */
|
|
137
|
+
componentErrorRender?: (errorInfo: ComponentErrorRender) => React.ReactElement;
|
|
138
|
+
/** Custom error renderer | 自定义错误渲染器 */
|
|
139
|
+
errorRender?: (errorInfo: ErrorRender) => React.ReactElement;
|
|
140
|
+
} & ChartEnhancementOptions;
|
|
52
141
|
/**
|
|
142
|
+
* Chart render data interface, for future extension, this is just an example
|
|
53
143
|
* 图表渲染数据接口,后续拓展,这里只是写个示例
|
|
54
144
|
*/
|
|
55
145
|
export interface ChartJson {
|
|
146
|
+
/** Chart type | 图表类型 */
|
|
56
147
|
type: string;
|
|
148
|
+
/** Chart data | 图表数据 */
|
|
57
149
|
data: any;
|
|
58
150
|
}
|
|
59
151
|
/**
|
|
152
|
+
* Chart components dictionary
|
|
60
153
|
* 图表组件字典
|
|
61
154
|
*/
|
|
62
155
|
export interface ChartComponents {
|
|
63
156
|
[key: string]: FC<any>;
|
|
64
157
|
}
|
|
65
158
|
/**
|
|
159
|
+
* Code block renderer interface
|
|
66
160
|
* 代码块渲染器接口
|
|
67
161
|
*/
|
|
68
162
|
export type CodeBlockComponent = Components['code'];
|
|
163
|
+
/**
|
|
164
|
+
* Code renderer type
|
|
165
|
+
* 代码渲染器类型
|
|
166
|
+
*/
|
|
69
167
|
type CodeRenderer = FC<React.ClassAttributes<HTMLElement> & React.HTMLAttributes<HTMLElement> & ExtraProps>;
|
|
70
168
|
/**
|
|
169
|
+
* Custom renderers for other language code blocks
|
|
71
170
|
* 自定义其它语言代码块渲染器
|
|
72
171
|
*/
|
|
73
172
|
interface LanguageRenderers {
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import type { ColumnConfig } from '@ant-design/plots';
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import type { BasePlotProps } from '../types';
|
|
2
|
+
import type { BasePlotProps, Style, Theme } from '../types';
|
|
4
3
|
export type ColumnDataItem = {
|
|
5
4
|
category: string | number;
|
|
6
5
|
value: number;
|
|
7
6
|
[key: string]: string | number;
|
|
8
7
|
};
|
|
9
|
-
export type ColumnProps = BasePlotProps<ColumnDataItem> &
|
|
8
|
+
export type ColumnProps = BasePlotProps<ColumnDataItem> & Theme & Style & {
|
|
9
|
+
group?: boolean;
|
|
10
|
+
stack?: boolean;
|
|
11
|
+
};
|
|
10
12
|
declare const Column: (props: ColumnProps) => React.JSX.Element;
|
|
11
13
|
export default Column;
|
package/dist/cjs/Column/index.js
CHANGED
|
@@ -36,14 +36,35 @@ var import_plots = require("@ant-design/plots");
|
|
|
36
36
|
var import_lodash = require("lodash");
|
|
37
37
|
var import_react = __toESM(require("react"));
|
|
38
38
|
var import_hooks = require("../ConfigProvider/hooks");
|
|
39
|
+
var import_theme = require("../theme");
|
|
39
40
|
var defaultConfig = (props) => {
|
|
40
|
-
const { data, xField = "category", yField = "value" } = props;
|
|
41
|
+
const { data, xField = "category", yField = "value", style = {}, theme = {} } = props;
|
|
42
|
+
const { backgroundColor, palette } = style;
|
|
41
43
|
const hasGroupField = (0, import_lodash.get)(data, "[0].group") !== void 0;
|
|
44
|
+
const hasPalette = !!(palette == null ? void 0 : palette[0]);
|
|
42
45
|
const axisYTitle = (0, import_lodash.get)(props, "axis.y.title");
|
|
46
|
+
let paletteConfig = { color: void 0 };
|
|
47
|
+
let radiusStyle = {
|
|
48
|
+
radiusTopLeft: 4,
|
|
49
|
+
radiusTopRight: 4
|
|
50
|
+
};
|
|
51
|
+
if ((theme == null ? void 0 : theme.type) === "academy") {
|
|
52
|
+
radiusStyle = {
|
|
53
|
+
radiusTopLeft: 0,
|
|
54
|
+
radiusTopRight: 0
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (hasPalette) {
|
|
58
|
+
paletteConfig = {
|
|
59
|
+
color: {
|
|
60
|
+
range: palette
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
43
64
|
return {
|
|
44
65
|
xField,
|
|
45
66
|
yField,
|
|
46
|
-
colorField: hasGroupField ? "group" :
|
|
67
|
+
colorField: hasGroupField ? "group" : xField,
|
|
47
68
|
tooltip: (d) => {
|
|
48
69
|
const tooltipName = axisYTitle || d[xField];
|
|
49
70
|
return {
|
|
@@ -52,14 +73,30 @@ var defaultConfig = (props) => {
|
|
|
52
73
|
};
|
|
53
74
|
},
|
|
54
75
|
style: {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
76
|
+
...radiusStyle,
|
|
77
|
+
columnWidthRatio: 0.8
|
|
78
|
+
},
|
|
79
|
+
scale: {
|
|
80
|
+
y: {
|
|
81
|
+
nice: true
|
|
82
|
+
},
|
|
83
|
+
...paletteConfig
|
|
84
|
+
},
|
|
85
|
+
...backgroundColor ? { viewStyle: { viewFill: backgroundColor } } : { viewStyle: void 0 },
|
|
86
|
+
legend: hasGroupField ? {} : false,
|
|
87
|
+
group: hasGroupField
|
|
59
88
|
};
|
|
60
89
|
};
|
|
61
90
|
var Column = (props) => {
|
|
62
|
-
const
|
|
91
|
+
const themeConfig = import_theme.THEME_MAP[props.theme ?? "default"];
|
|
92
|
+
const { data, group = false, stack = false } = props;
|
|
93
|
+
const hasGroupField = (0, import_lodash.get)(data, "[0].group") !== void 0;
|
|
94
|
+
const config = (0, import_hooks.usePlotConfig)("Column", defaultConfig, {
|
|
95
|
+
...props,
|
|
96
|
+
theme: themeConfig,
|
|
97
|
+
group: hasGroupField && group,
|
|
98
|
+
stack: hasGroupField && stack
|
|
99
|
+
});
|
|
63
100
|
return /* @__PURE__ */ import_react.default.createElement(import_plots.Column, { ...config });
|
|
64
101
|
};
|
|
65
102
|
var Column_default = Column;
|
|
@@ -63,9 +63,10 @@ function usePlotConfig(name, defaultConfig, props) {
|
|
|
63
63
|
const mergedProps = { ...globalConfig, ...props };
|
|
64
64
|
const transformedProps = (0, import_plot.transform2ADCProps)(mergedProps);
|
|
65
65
|
const _defaultConfig = typeof defaultConfig === "function" ? defaultConfig(transformedProps) : defaultConfig;
|
|
66
|
+
const { style, ...restTransformedProps } = transformedProps;
|
|
66
67
|
const config = {
|
|
67
68
|
..._defaultConfig,
|
|
68
|
-
...
|
|
69
|
+
...restTransformedProps
|
|
69
70
|
};
|
|
70
71
|
return config;
|
|
71
72
|
}
|
|
@@ -35,9 +35,20 @@ module.exports = __toCommonJS(DualAxes_exports);
|
|
|
35
35
|
var import_plots = require("@ant-design/plots");
|
|
36
36
|
var import_react = __toESM(require("react"));
|
|
37
37
|
var import_hooks = require("../ConfigProvider/hooks");
|
|
38
|
+
var import_theme = require("../theme");
|
|
38
39
|
var import_util = require("./util");
|
|
39
40
|
var defaultConfig = (props) => {
|
|
40
|
-
const { xField = "category", axisXTitle, legendTypeList } = props;
|
|
41
|
+
const { xField = "category", axisXTitle, legendTypeList, style = {} } = props;
|
|
42
|
+
const { palette, backgroundColor } = style;
|
|
43
|
+
const hasPalette = !!(palette == null ? void 0 : palette[0]);
|
|
44
|
+
let paletteConfig = { color: void 0 };
|
|
45
|
+
if (hasPalette) {
|
|
46
|
+
paletteConfig = {
|
|
47
|
+
color: {
|
|
48
|
+
range: palette
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
41
52
|
return {
|
|
42
53
|
xField,
|
|
43
54
|
axis: {
|
|
@@ -48,23 +59,24 @@ var defaultConfig = (props) => {
|
|
|
48
59
|
legend: {
|
|
49
60
|
color: {
|
|
50
61
|
itemMarker: (v, i) => {
|
|
51
|
-
return legendTypeList[i];
|
|
62
|
+
return legendTypeList == null ? void 0 : legendTypeList[i];
|
|
52
63
|
}
|
|
53
64
|
}
|
|
54
65
|
},
|
|
55
66
|
scale: {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
67
|
+
...paletteConfig
|
|
68
|
+
},
|
|
69
|
+
...backgroundColor ? { viewStyle: { viewFill: backgroundColor } } : { viewStyle: void 0 }
|
|
60
70
|
};
|
|
61
71
|
};
|
|
62
72
|
var DualAxes = (props) => {
|
|
63
|
-
const { categories, series, ...others } = props;
|
|
73
|
+
const { categories, series, theme = "default", ...others } = props;
|
|
74
|
+
const themeConfig = import_theme.THEME_MAP[theme];
|
|
64
75
|
const transformData = (0, import_react.useMemo)(() => (0, import_util.transform)(series, categories), [props]);
|
|
65
76
|
const config = (0, import_hooks.usePlotConfig)("DualAxes", defaultConfig, {
|
|
66
77
|
...others,
|
|
67
|
-
...transformData
|
|
78
|
+
...transformData,
|
|
79
|
+
theme: themeConfig
|
|
68
80
|
});
|
|
69
81
|
return /* @__PURE__ */ import_react.default.createElement(import_plots.DualAxes, { ...config });
|
|
70
82
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { TreeGraphProps } from '../types';
|
|
3
3
|
export interface FishboneDiagramProps extends TreeGraphProps {
|
|
4
|
+
theme?: 'default' | 'academy';
|
|
4
5
|
}
|
|
5
6
|
declare const FishboneDiagram: React.FC<FishboneDiagramProps>;
|
|
6
7
|
export default FishboneDiagram;
|
|
@@ -35,18 +35,32 @@ module.exports = __toCommonJS(FishboneDiagram_exports);
|
|
|
35
35
|
var import_graphs = require("@ant-design/graphs");
|
|
36
36
|
var import_react = __toESM(require("react"));
|
|
37
37
|
var import_hooks = require("../ConfigProvider/hooks");
|
|
38
|
+
var import_theme = require("../theme");
|
|
38
39
|
var import_graph = require("../utils/graph");
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
var getDefaultConfig = (props) => {
|
|
41
|
+
const { theme = "default" } = props;
|
|
42
|
+
return {
|
|
43
|
+
autoFit: "view",
|
|
44
|
+
autoResize: true,
|
|
45
|
+
zoomRange: [0.1, 5],
|
|
46
|
+
zoom: 1,
|
|
47
|
+
behaviors: ["drag-canvas"],
|
|
48
|
+
transforms: (prev) => [
|
|
49
|
+
{
|
|
50
|
+
...prev.find((transform) => transform.key === "assign-color-by-branch") || {},
|
|
51
|
+
...import_theme.G6THEME_MAP[theme]
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
};
|
|
45
55
|
};
|
|
46
56
|
var FishboneDiagram = (props) => {
|
|
47
57
|
const { data: propsData, ...restProps } = props;
|
|
48
58
|
const data = (0, import_react.useMemo)(() => (0, import_graph.visTreeData2GraphData)(propsData), [propsData]);
|
|
49
|
-
const config = (0, import_hooks.useGraphConfig)(
|
|
59
|
+
const config = (0, import_hooks.useGraphConfig)(
|
|
60
|
+
"FishboneDiagram",
|
|
61
|
+
getDefaultConfig(props),
|
|
62
|
+
restProps
|
|
63
|
+
);
|
|
50
64
|
return /* @__PURE__ */ import_react.default.createElement(import_graphs.Fishbone, { data, ...config });
|
|
51
65
|
};
|
|
52
66
|
var FishboneDiagram_default = FishboneDiagram;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BasePlotProps, Style, Theme } from '../types';
|
|
3
|
+
type FunnelDatum = {
|
|
4
|
+
category: string;
|
|
5
|
+
value: number;
|
|
6
|
+
};
|
|
7
|
+
export type FunnelProps = BasePlotProps<FunnelDatum> & Theme & Style & {
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
|
+
};
|
|
11
|
+
declare const Funnel: (props: FunnelProps) => React.JSX.Element;
|
|
12
|
+
export default Funnel;
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/Funnel/index.tsx
|
|
30
|
+
var Funnel_exports = {};
|
|
31
|
+
__export(Funnel_exports, {
|
|
32
|
+
default: () => Funnel_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(Funnel_exports);
|
|
35
|
+
var import_g2 = require("@antv/g2");
|
|
36
|
+
var import_react = __toESM(require("react"));
|
|
37
|
+
var import_theme = require("../theme");
|
|
38
|
+
var defaultConfig = (props) => {
|
|
39
|
+
const { data, title, theme = "default", style = {} } = props;
|
|
40
|
+
const { backgroundColor, palette = [] } = style;
|
|
41
|
+
const r = (start, end) => `${(end / start * 100).toFixed(2)} %`;
|
|
42
|
+
return {
|
|
43
|
+
type: "view",
|
|
44
|
+
data,
|
|
45
|
+
theme: import_theme.THEME_MAP[theme],
|
|
46
|
+
title,
|
|
47
|
+
padding: 40,
|
|
48
|
+
insetRight: 28,
|
|
49
|
+
children: [
|
|
50
|
+
{
|
|
51
|
+
type: "interval",
|
|
52
|
+
data,
|
|
53
|
+
encode: { x: "category", y: "value", color: "category", shape: "funnel" },
|
|
54
|
+
transform: [{ type: "symmetryY" }],
|
|
55
|
+
scale: {
|
|
56
|
+
x: { padding: 0 },
|
|
57
|
+
...(palette == null ? void 0 : palette[0]) ? {
|
|
58
|
+
color: {
|
|
59
|
+
range: palette
|
|
60
|
+
}
|
|
61
|
+
} : {}
|
|
62
|
+
},
|
|
63
|
+
coordinate: { transform: [{ type: "transpose" }] },
|
|
64
|
+
legend: {
|
|
65
|
+
color: {
|
|
66
|
+
position: "top",
|
|
67
|
+
layout: {
|
|
68
|
+
justifyContent: "center"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
labels: [
|
|
73
|
+
{
|
|
74
|
+
text: (d) => `${d.category}
|
|
75
|
+
${d.value}`,
|
|
76
|
+
position: "inside",
|
|
77
|
+
transform: [{ type: "contrastReverse" }]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
text: (d, i) => i !== 0 ? "———" : "",
|
|
81
|
+
style: {
|
|
82
|
+
"font-size": "1px",
|
|
83
|
+
color: "#666",
|
|
84
|
+
"letter-spacing": "0px"
|
|
85
|
+
},
|
|
86
|
+
position: "top-right",
|
|
87
|
+
fill: "#666",
|
|
88
|
+
dx: 35,
|
|
89
|
+
dy: -8
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
text: (d, i) => i !== 0 ? "转化率" : "",
|
|
93
|
+
position: "top-right",
|
|
94
|
+
textAlign: "left",
|
|
95
|
+
textBaseline: "middle",
|
|
96
|
+
fill: "#666",
|
|
97
|
+
dx: 40
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
text: (d, i, data2) => i !== 0 ? r(data2[i - 1].value, data2[i].value) : "",
|
|
101
|
+
position: "top-right",
|
|
102
|
+
textAlign: "left",
|
|
103
|
+
textBaseline: "middle",
|
|
104
|
+
dx: 80
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
...backgroundColor ? { viewStyle: { viewFill: backgroundColor } } : {}
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: "connector",
|
|
111
|
+
data: [
|
|
112
|
+
{
|
|
113
|
+
startX: data[0].category,
|
|
114
|
+
startY: data[data.length - 1].category,
|
|
115
|
+
endX: 0,
|
|
116
|
+
endY: (data[0].value - data[data.length - 1].value) / 2
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
encode: { x: "startX", x1: "startY", y: "endX", y1: "endY" },
|
|
120
|
+
style: {
|
|
121
|
+
stroke: "#666",
|
|
122
|
+
markerEnd: false,
|
|
123
|
+
connectLength1: -12,
|
|
124
|
+
offset2: -20,
|
|
125
|
+
connectorStroke: "#0649f2",
|
|
126
|
+
lineDash: [12, 2]
|
|
127
|
+
},
|
|
128
|
+
labels: [
|
|
129
|
+
{
|
|
130
|
+
text: "转化率",
|
|
131
|
+
position: "left",
|
|
132
|
+
textAlign: "start",
|
|
133
|
+
textBaseline: "middle",
|
|
134
|
+
fill: "#666",
|
|
135
|
+
dx: 10
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
text: r(data[0].value, data[data.length - 1].value),
|
|
139
|
+
position: "left",
|
|
140
|
+
textAlign: "start",
|
|
141
|
+
dx: 50,
|
|
142
|
+
fill: "#000"
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
axis: false,
|
|
148
|
+
animate: false
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
var Funnel = (props) => {
|
|
152
|
+
const containerRef = (0, import_react.useRef)(null);
|
|
153
|
+
const chartRef = (0, import_react.useRef)(null);
|
|
154
|
+
(0, import_react.useEffect)(() => {
|
|
155
|
+
if (!containerRef.current)
|
|
156
|
+
return;
|
|
157
|
+
const chart = new import_g2.Chart({
|
|
158
|
+
container: containerRef.current,
|
|
159
|
+
autoFit: true,
|
|
160
|
+
padding: "auto"
|
|
161
|
+
});
|
|
162
|
+
const config = defaultConfig(props);
|
|
163
|
+
chart.options(config);
|
|
164
|
+
chart.render();
|
|
165
|
+
chartRef.current = chart;
|
|
166
|
+
return () => {
|
|
167
|
+
chart.destroy();
|
|
168
|
+
chartRef.current = null;
|
|
169
|
+
};
|
|
170
|
+
}, [props]);
|
|
171
|
+
return /* @__PURE__ */ import_react.default.createElement("div", { ref: containerRef });
|
|
172
|
+
};
|
|
173
|
+
var Funnel_default = Funnel;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { HistogramConfig } from '@ant-design/plots';
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import type { BasePlotProps } from '../types';
|
|
4
|
-
export type HistogramProps = BasePlotProps<number> &
|
|
2
|
+
import type { BasePlotProps, Style, Theme } from '../types';
|
|
3
|
+
export type HistogramProps = BasePlotProps<number> & Theme & Style & {
|
|
4
|
+
binNumber: number;
|
|
5
|
+
};
|
|
5
6
|
declare const Histogram: (props: HistogramProps) => React.JSX.Element;
|
|
6
7
|
export default Histogram;
|
|
@@ -35,16 +35,45 @@ module.exports = __toCommonJS(Histogram_exports);
|
|
|
35
35
|
var import_plots = require("@ant-design/plots");
|
|
36
36
|
var import_react = __toESM(require("react"));
|
|
37
37
|
var import_hooks = require("../ConfigProvider/hooks");
|
|
38
|
+
var import_theme = require("../theme");
|
|
38
39
|
var defaultConfig = (props) => {
|
|
39
|
-
const { binField = (d) => d, binNumber } = props;
|
|
40
|
+
const { binField = (d) => d, binNumber, style = {} } = props;
|
|
41
|
+
const { backgroundColor, palette } = style;
|
|
42
|
+
const hasPalette = !!(palette == null ? void 0 : palette[0]);
|
|
43
|
+
let paletteConfig = { color: void 0 };
|
|
44
|
+
if (hasPalette) {
|
|
45
|
+
paletteConfig = {
|
|
46
|
+
color: {
|
|
47
|
+
range: palette
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
40
51
|
return {
|
|
41
52
|
binField,
|
|
42
53
|
binNumber,
|
|
43
|
-
style: { inset: 0.5 }
|
|
54
|
+
style: { inset: 0.5, minHeight: 1, columnWidthRatio: 1 },
|
|
55
|
+
legend: false,
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
encode: {
|
|
58
|
+
x: (d) => d,
|
|
59
|
+
y: "count",
|
|
60
|
+
color: () => "all"
|
|
61
|
+
},
|
|
62
|
+
scale: {
|
|
63
|
+
y: {
|
|
64
|
+
nice: true
|
|
65
|
+
},
|
|
66
|
+
...paletteConfig
|
|
67
|
+
},
|
|
68
|
+
...backgroundColor ? { viewStyle: { viewFill: backgroundColor } } : { viewStyle: void 0 }
|
|
44
69
|
};
|
|
45
70
|
};
|
|
46
71
|
var Histogram = (props) => {
|
|
47
|
-
const
|
|
72
|
+
const themeConfig = import_theme.THEME_MAP[props.theme ?? "default"];
|
|
73
|
+
const config = (0, import_hooks.usePlotConfig)("Histogram", defaultConfig, {
|
|
74
|
+
...props,
|
|
75
|
+
theme: themeConfig
|
|
76
|
+
});
|
|
48
77
|
return /* @__PURE__ */ import_react.default.createElement(import_plots.Histogram, { ...config });
|
|
49
78
|
};
|
|
50
79
|
var Histogram_default = Histogram;
|