@cgeui/utils 0.0.2 → 0.0.4
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/esm/charts/Chart/utils/complementData.js +714 -0
- package/dist/esm/charts/Chart/utils/convertToEchartsConfig/chartsToEchartsConfig.js +99 -0
- package/dist/esm/charts/Chart/utils/convertToEchartsConfig/index.js +2 -0
- package/dist/esm/charts/Chart/utils/convertToEchartsConfig/pieChartToEchartsConfig.js +140 -0
- package/dist/esm/charts/Chart/utils/getOption.js +365 -0
- package/dist/esm/charts/Chart/utils/handleChartConfig.js +279 -0
- package/dist/esm/charts/Chart/utils/index.js +5 -0
- package/dist/esm/charts/Chart/utils/preConfig/index.js +307 -0
- package/dist/esm/charts/Chart/utils/preConfig/type.js +1 -0
- package/dist/esm/charts/PieChart/interface.js +1 -0
- package/dist/esm/charts/PieChart/locales/en-US.js +9 -0
- package/dist/esm/charts/PieChart/locales/index.js +7 -0
- package/dist/esm/charts/PieChart/locales/zh-CN.js +9 -0
- package/dist/esm/charts/PieChart/util.js +434 -0
- package/dist/esm/charts/SuperChart/config/bar.js +39 -0
- package/dist/esm/charts/SuperChart/config/index.js +237 -0
- package/dist/esm/charts/SuperChart/configStyle/color.js +23 -0
- package/dist/esm/charts/SuperChart/configStyle/dataZoom.js +13 -0
- package/dist/esm/charts/SuperChart/configStyle/grid.js +20 -0
- package/dist/esm/charts/SuperChart/configStyle/index.js +10 -0
- package/dist/esm/charts/SuperChart/configStyle/legend.js +68 -0
- package/dist/esm/charts/SuperChart/configStyle/lineStyle.js +80 -0
- package/dist/esm/charts/SuperChart/configStyle/title.js +16 -0
- package/dist/esm/charts/SuperChart/configStyle/tooltip.js +38 -0
- package/dist/esm/charts/SuperChart/configStyle/visualMap.js +18 -0
- package/dist/esm/charts/SuperChart/configStyle/xAxis.js +19 -0
- package/dist/esm/charts/SuperChart/configStyle/yAxis.js +56 -0
- package/dist/esm/charts/SuperChart/interface.js +1 -0
- package/dist/esm/charts/chartTheme/colorUtil.js +22 -0
- package/dist/esm/charts/chartTheme/darkChart.js +508 -0
- package/dist/esm/charts/chartTheme/defaultChart.js +492 -0
- package/dist/esm/charts/chartTheme/index.js +4 -0
- package/dist/esm/charts/chartTheme/themeColor.js +168 -0
- package/dist/esm/charts/index.js +5 -0
- package/dist/esm/charts/utils/charts/hex2Rgb.js +32 -0
- package/dist/esm/charts/utils/constants/env.js +6 -0
- package/dist/esm/charts/utils/constants/helper.js +5 -0
- package/dist/esm/charts/utils/constants/index.js +3 -0
- package/dist/esm/charts/utils/constants/table.js +17 -0
- package/dist/esm/charts/utils/data.js +450 -0
- package/dist/esm/charts/utils/index.js +5 -0
- package/dist/esm/charts/utils/locale.js +7 -0
- package/dist/esm/charts/utils/time/index.js +14 -0
- package/dist/esm/charts/utils/types/action.d.ts +33 -0
- package/dist/esm/charts/utils/types/chart.d.ts +220 -0
- package/dist/esm/charts/utils/types/data.d.ts +51 -0
- package/dist/esm/charts/utils/types/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/lib/charts/Chart/utils/complementData.js +721 -0
- package/dist/lib/charts/Chart/utils/convertToEchartsConfig/chartsToEchartsConfig.js +105 -0
- package/dist/lib/charts/Chart/utils/convertToEchartsConfig/index.js +27 -0
- package/dist/lib/charts/Chart/utils/convertToEchartsConfig/pieChartToEchartsConfig.js +147 -0
- package/dist/lib/charts/Chart/utils/getOption.js +371 -0
- package/dist/lib/charts/Chart/utils/handleChartConfig.js +284 -0
- package/dist/lib/charts/Chart/utils/index.js +60 -0
- package/dist/lib/charts/Chart/utils/preConfig/index.js +313 -0
- package/dist/lib/charts/Chart/utils/preConfig/type.js +5 -0
- package/dist/lib/charts/PieChart/interface.js +5 -0
- package/dist/lib/charts/PieChart/locales/en-US.js +15 -0
- package/dist/lib/charts/PieChart/locales/index.js +14 -0
- package/dist/lib/charts/PieChart/locales/zh-CN.js +15 -0
- package/dist/lib/charts/PieChart/util.js +441 -0
- package/dist/lib/charts/SuperChart/config/bar.js +45 -0
- package/dist/lib/charts/SuperChart/config/index.js +243 -0
- package/dist/lib/charts/SuperChart/configStyle/color.js +29 -0
- package/dist/lib/charts/SuperChart/configStyle/dataZoom.js +19 -0
- package/dist/lib/charts/SuperChart/configStyle/grid.js +26 -0
- package/dist/lib/charts/SuperChart/configStyle/index.js +76 -0
- package/dist/lib/charts/SuperChart/configStyle/legend.js +74 -0
- package/dist/lib/charts/SuperChart/configStyle/lineStyle.js +86 -0
- package/dist/lib/charts/SuperChart/configStyle/title.js +22 -0
- package/dist/lib/charts/SuperChart/configStyle/tooltip.js +44 -0
- package/dist/lib/charts/SuperChart/configStyle/visualMap.js +24 -0
- package/dist/lib/charts/SuperChart/configStyle/xAxis.js +25 -0
- package/dist/lib/charts/SuperChart/configStyle/yAxis.js +62 -0
- package/dist/lib/charts/SuperChart/interface.js +5 -0
- package/dist/lib/charts/chartTheme/colorUtil.js +28 -0
- package/dist/lib/charts/chartTheme/darkChart.js +514 -0
- package/dist/lib/charts/chartTheme/defaultChart.js +498 -0
- package/dist/lib/charts/chartTheme/index.js +49 -0
- package/dist/lib/charts/chartTheme/themeColor.js +174 -0
- package/dist/lib/charts/index.js +60 -0
- package/dist/lib/charts/utils/charts/hex2Rgb.js +38 -0
- package/dist/lib/charts/utils/constants/env.js +12 -0
- package/dist/lib/charts/utils/constants/helper.js +11 -0
- package/dist/lib/charts/utils/constants/index.js +38 -0
- package/dist/lib/charts/utils/constants/table.js +23 -0
- package/dist/lib/charts/utils/data.js +454 -0
- package/dist/lib/charts/utils/index.js +60 -0
- package/dist/lib/charts/utils/locale.js +13 -0
- package/dist/lib/charts/utils/time/index.js +21 -0
- package/dist/lib/charts/utils/types/action.d.ts +33 -0
- package/dist/lib/charts/utils/types/chart.d.ts +220 -0
- package/dist/lib/charts/utils/types/data.d.ts +51 -0
- package/dist/lib/charts/utils/types/index.d.ts +3 -0
- package/dist/lib/index.js +25 -0
- package/dist/tsconfig.declaration.tsbuildinfo +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
3
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
12
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
13
|
+
import { transformWithConfig } from "../Chart/utils/complementData";
|
|
14
|
+
import { accAdd } from "../utils/data";
|
|
15
|
+
import { hex2Rgb } from "../utils/charts/hex2Rgb";
|
|
16
|
+
import { cloneDeep } from 'lodash';
|
|
17
|
+
export var getLegendData = function getLegendData(data, chartConfig) {
|
|
18
|
+
var legend = chartConfig.legend;
|
|
19
|
+
return data === null || data === void 0 ? void 0 : data.map(function (item) {
|
|
20
|
+
return {
|
|
21
|
+
name: item === null || item === void 0 ? void 0 : item.name,
|
|
22
|
+
icon: (legend === null || legend === void 0 ? void 0 : legend.icon) || 'circle'
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
var getTotal = function getTotal(data) {
|
|
27
|
+
var total = 0;
|
|
28
|
+
for (var i = 0; i < data.length; i++) {
|
|
29
|
+
total = accAdd(total, data[i].value);
|
|
30
|
+
}
|
|
31
|
+
return total;
|
|
32
|
+
};
|
|
33
|
+
var getColorByTheme = function getColorByTheme(theme) {
|
|
34
|
+
if (theme === 'default') {
|
|
35
|
+
return {
|
|
36
|
+
innerColorLightColor: '#9EA4AD',
|
|
37
|
+
innerColorDarkColor: '#CFD5DE',
|
|
38
|
+
noDataColor: '#E7EAEF',
|
|
39
|
+
borderColor: '#fff'
|
|
40
|
+
};
|
|
41
|
+
} else {
|
|
42
|
+
return {
|
|
43
|
+
innerColorLightColor: '#fff',
|
|
44
|
+
innerColorDarkColor: 'rgba(255,255,255,0.2)',
|
|
45
|
+
noDataColor: '#9EA4AD',
|
|
46
|
+
borderColor: '#0B1227'
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
var getNoData = function getNoData(theme) {
|
|
51
|
+
var _getColorByTheme;
|
|
52
|
+
var color = (_getColorByTheme = getColorByTheme(theme)) === null || _getColorByTheme === void 0 ? void 0 : _getColorByTheme.noDataColor;
|
|
53
|
+
return {
|
|
54
|
+
outterCircleData: [{
|
|
55
|
+
name: '',
|
|
56
|
+
value: 0,
|
|
57
|
+
itemStyle: {
|
|
58
|
+
color: color
|
|
59
|
+
}
|
|
60
|
+
}],
|
|
61
|
+
centerCircleData: [{
|
|
62
|
+
name: '',
|
|
63
|
+
value: 0,
|
|
64
|
+
itemStyle: {
|
|
65
|
+
color: color
|
|
66
|
+
}
|
|
67
|
+
}]
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
//最大余额法使饼图各项相加的占比为100%
|
|
72
|
+
export var getPercentValue = function getPercentValue(valueList, idx, precision) {
|
|
73
|
+
var _valueList$idx;
|
|
74
|
+
// 判断是否为空
|
|
75
|
+
if (!((_valueList$idx = valueList[idx]) !== null && _valueList$idx !== void 0 && _valueList$idx.value)) {
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
// 求和
|
|
79
|
+
var sum = valueList.reduce(function (acc, val) {
|
|
80
|
+
return acc + (isNaN(Number(val === null || val === void 0 ? void 0 : val.value)) ? 0 : Number(val === null || val === void 0 ? void 0 : val.value));
|
|
81
|
+
}, 0);
|
|
82
|
+
if (sum === 0) {
|
|
83
|
+
return 0;
|
|
84
|
+
}
|
|
85
|
+
// 10的2次幂是100,用于计算精度。
|
|
86
|
+
var digits = Math.pow(10, precision);
|
|
87
|
+
// 扩大比例100,
|
|
88
|
+
var votesPerQuota = valueList.map(function (val) {
|
|
89
|
+
return (isNaN(Number(val === null || val === void 0 ? void 0 : val.value)) ? 0 : Number(val === null || val === void 0 ? void 0 : val.value)) / sum * digits * 100;
|
|
90
|
+
});
|
|
91
|
+
// 总数,扩大比例意味的总数要扩大
|
|
92
|
+
var targetSeats = digits * 100;
|
|
93
|
+
// 再向下取值,组成数组
|
|
94
|
+
var seats = votesPerQuota.map(function (votes) {
|
|
95
|
+
return Math.floor(votes);
|
|
96
|
+
});
|
|
97
|
+
// 再新计算合计,用于判断与总数量是否相同,相同则占比会100%
|
|
98
|
+
var currentSum = seats.reduce(function (acc, val) {
|
|
99
|
+
return acc + val;
|
|
100
|
+
}, 0);
|
|
101
|
+
// 余数部分的数组:原先数组减去向下取值的数组,得到余数部分的数组
|
|
102
|
+
var remainder = votesPerQuota.map(function (votes, idx) {
|
|
103
|
+
return votes - seats[idx];
|
|
104
|
+
});
|
|
105
|
+
// 给最大最大的余额加1,凑个占比100%;
|
|
106
|
+
while (currentSum < targetSeats) {
|
|
107
|
+
// 找到下一个最大的余额,给其加1
|
|
108
|
+
var max = Number.NEGATIVE_INFINITY;
|
|
109
|
+
var maxId = null;
|
|
110
|
+
for (var i = 0, len = remainder.length; i < len; ++i) {
|
|
111
|
+
if (remainder[i] > max) {
|
|
112
|
+
max = remainder[i];
|
|
113
|
+
maxId = i;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// 对最大项余额加1
|
|
117
|
+
++seats[maxId];
|
|
118
|
+
// 已经增加最大余数加1,则下次判断就可以不需要再判断这个余额数。
|
|
119
|
+
remainder[maxId] = 0;
|
|
120
|
+
// 总的也要加1,为了判断是否总数是否相同,跳出循环。
|
|
121
|
+
++currentSum;
|
|
122
|
+
}
|
|
123
|
+
// 这时候的seats就会总数占比会100%
|
|
124
|
+
return seats[idx] / digits;
|
|
125
|
+
};
|
|
126
|
+
export var getBasicData = function getBasicData(color, data, percentToFixedNumber, theme) {
|
|
127
|
+
if (!data || data.length === 0) {
|
|
128
|
+
return getNoData(theme);
|
|
129
|
+
}
|
|
130
|
+
var colorRgba = [];
|
|
131
|
+
var colorCenterRgba = [];
|
|
132
|
+
|
|
133
|
+
//将色号换成rgb形式
|
|
134
|
+
for (var i = 0; i < data.length; i++) {
|
|
135
|
+
var index = i % color.length;
|
|
136
|
+
colorRgba.push(hex2Rgb(color[index], 1));
|
|
137
|
+
colorCenterRgba.push(hex2Rgb(color[index], 0.16));
|
|
138
|
+
}
|
|
139
|
+
var len = data.length;
|
|
140
|
+
var outterCircleDataConfig = [];
|
|
141
|
+
var centerCircleDataConfig = [];
|
|
142
|
+
for (var _i = 0; _i < len; _i++) {
|
|
143
|
+
var percent = 0;
|
|
144
|
+
percent = getPercentValue(data, _i, 2);
|
|
145
|
+
outterCircleDataConfig.push(_objectSpread(_objectSpread({}, data[_i]), {}, {
|
|
146
|
+
percent: percent,
|
|
147
|
+
itemStyle: {
|
|
148
|
+
color: colorRgba[_i]
|
|
149
|
+
}
|
|
150
|
+
}));
|
|
151
|
+
centerCircleDataConfig.push(_objectSpread(_objectSpread({}, data[_i]), {}, {
|
|
152
|
+
percent: percent,
|
|
153
|
+
itemStyle: {
|
|
154
|
+
color: colorCenterRgba[_i]
|
|
155
|
+
}
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
outterCircleData: outterCircleDataConfig,
|
|
160
|
+
centerCircleData: centerCircleDataConfig
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
var defaultSeriesConfig = {
|
|
164
|
+
type: 'pie',
|
|
165
|
+
label: {
|
|
166
|
+
show: false
|
|
167
|
+
},
|
|
168
|
+
labelLine: {
|
|
169
|
+
show: false
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
export var getFontSizeByNumber = function getFontSizeByNumber(fontSize, number) {
|
|
173
|
+
switch (number === null || number === void 0 ? void 0 : number.toString().length) {
|
|
174
|
+
case 4:
|
|
175
|
+
return fontSize * 0.9;
|
|
176
|
+
case 5:
|
|
177
|
+
return fontSize * 0.85;
|
|
178
|
+
case 6:
|
|
179
|
+
return fontSize * 0.75;
|
|
180
|
+
case 7:
|
|
181
|
+
case 8:
|
|
182
|
+
case 9:
|
|
183
|
+
case 10:
|
|
184
|
+
case 11:
|
|
185
|
+
case 12:
|
|
186
|
+
return fontSize * 0.6;
|
|
187
|
+
default:
|
|
188
|
+
return fontSize;
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
export function mergeDeep(target, source) {
|
|
192
|
+
for (var key in source) {
|
|
193
|
+
if (source[key] instanceof Object && key in target) {
|
|
194
|
+
Object.assign(source[key], mergeDeep(target[key], source[key]));
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// 合并两个对象
|
|
198
|
+
return Object.assign(target || {}, source);
|
|
199
|
+
}
|
|
200
|
+
var chartLabelFormatter = function chartLabelFormatter(data, title, unit, theme, locales, totalToFixedNumber, transformUnit, isShowTotal, customTotal, centerStyle, totalFontSizeCoefficient) {
|
|
201
|
+
var color = theme === 'default' ? '#000' : '#fff';
|
|
202
|
+
var total = customTotal ? customTotal : getTotal(data);
|
|
203
|
+
if (totalToFixedNumber !== null && totalToFixedNumber !== void 0 && totalToFixedNumber.toString()) {
|
|
204
|
+
total = total.toFixed(totalToFixedNumber);
|
|
205
|
+
}
|
|
206
|
+
total += transformUnit ? transformUnit : '';
|
|
207
|
+
var defaultCenterStyle = {
|
|
208
|
+
titleStyle: {
|
|
209
|
+
fontSize: '0.75rem',
|
|
210
|
+
color: color,
|
|
211
|
+
padding: title ? [0, 0, 20, 0] : [0, 0, 0, 0]
|
|
212
|
+
},
|
|
213
|
+
totalStyle: {
|
|
214
|
+
fontSize: "".concat(getFontSizeByNumber(2.625 * totalFontSizeCoefficient, total) * 16, "px"),
|
|
215
|
+
fontWeight: '700',
|
|
216
|
+
color: color
|
|
217
|
+
},
|
|
218
|
+
unitStyle: {
|
|
219
|
+
fontSize: '0.75rem',
|
|
220
|
+
color: color,
|
|
221
|
+
padding: [0, 0, -11, 0]
|
|
222
|
+
},
|
|
223
|
+
noDataStyle: {
|
|
224
|
+
fontSize: '20',
|
|
225
|
+
padding: [0, 0, -11, 0]
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
return {
|
|
229
|
+
show: isShowTotal === undefined ? true : isShowTotal,
|
|
230
|
+
position: 'center',
|
|
231
|
+
color: color,
|
|
232
|
+
formatter: function formatter() {
|
|
233
|
+
if (!data || data.length === 0) {
|
|
234
|
+
var _locales$PieChart;
|
|
235
|
+
return "{noDataStyle|".concat(locales === null || locales === void 0 || (_locales$PieChart = locales.PieChart) === null || _locales$PieChart === void 0 ? void 0 : _locales$PieChart.noData, "\n}");
|
|
236
|
+
}
|
|
237
|
+
return "{titleStyle|".concat(title, "}\n{totalStyle|").concat(total, "}{titleStyle| }{unitStyle|").concat(unit, "}");
|
|
238
|
+
},
|
|
239
|
+
rich: mergeDeep(defaultCenterStyle, centerStyle)
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
export var handleSeriesConfig = function handleSeriesConfig() {
|
|
243
|
+
var seriesConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
244
|
+
var center = seriesConfig.center,
|
|
245
|
+
radius = seriesConfig.radius;
|
|
246
|
+
var resolvedSeriesConfig = {
|
|
247
|
+
outer: _objectSpread({}, seriesConfig),
|
|
248
|
+
center: _objectSpread({}, seriesConfig),
|
|
249
|
+
inner: _defineProperty(_defineProperty({}, center && 'center', center), "radius", ['50%', '51%'])
|
|
250
|
+
};
|
|
251
|
+
if (radius && radius.length >= 2) {
|
|
252
|
+
var xRadius = _toConsumableArray(radius[0].split('%'))[0];
|
|
253
|
+
var YRadius = _toConsumableArray(radius[1].split('%'))[0];
|
|
254
|
+
var x = Number(xRadius);
|
|
255
|
+
var y = Number(YRadius);
|
|
256
|
+
resolvedSeriesConfig.center.radius = [x - 15 + '%', y - 8 + '%'];
|
|
257
|
+
resolvedSeriesConfig.inner.radius = [x - 22 + '%', y - 29 + '%'];
|
|
258
|
+
}
|
|
259
|
+
return resolvedSeriesConfig;
|
|
260
|
+
};
|
|
261
|
+
export var getSeriesConfig = function getSeriesConfig(dataset, theme, data, title, unit) {
|
|
262
|
+
var seriesConfig = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
|
|
263
|
+
var locales = arguments.length > 6 ? arguments[6] : undefined;
|
|
264
|
+
var transform = arguments.length > 7 ? arguments[7] : undefined;
|
|
265
|
+
var transformUnit = arguments.length > 8 ? arguments[8] : undefined;
|
|
266
|
+
var totalToFixedNumber = arguments.length > 9 ? arguments[9] : undefined;
|
|
267
|
+
var isShowTotal = arguments.length > 10 ? arguments[10] : undefined;
|
|
268
|
+
var customTotal = arguments.length > 11 ? arguments[11] : undefined;
|
|
269
|
+
var centerStyle = arguments.length > 12 ? arguments[12] : undefined;
|
|
270
|
+
var totalFontSizeCoefficient = arguments.length > 13 ? arguments[13] : undefined;
|
|
271
|
+
var colorByTheme = getColorByTheme(theme);
|
|
272
|
+
var innerColorLight = {
|
|
273
|
+
value: 0.7,
|
|
274
|
+
itemStyle: {
|
|
275
|
+
color: colorByTheme.innerColorLightColor
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
var innerColorDark = {
|
|
279
|
+
value: 6,
|
|
280
|
+
itemStyle: {
|
|
281
|
+
color: colorByTheme.innerColorDarkColor
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
var circleItemStyle = {
|
|
285
|
+
borderRadius: 0,
|
|
286
|
+
borderWidth: 3,
|
|
287
|
+
borderColor: getColorByTheme(theme).borderColor
|
|
288
|
+
};
|
|
289
|
+
var resolvedSeriesConfig = handleSeriesConfig(seriesConfig);
|
|
290
|
+
var seriesData = [_objectSpread(_objectSpread({
|
|
291
|
+
name: 'outer',
|
|
292
|
+
data: dataset.outterCircleData,
|
|
293
|
+
radius: ['72%', '80%'],
|
|
294
|
+
itemStyle: circleItemStyle
|
|
295
|
+
}, defaultSeriesConfig), {}, {
|
|
296
|
+
label: chartLabelFormatter(data, title, unit, theme, locales, totalToFixedNumber, transformUnit, isShowTotal, customTotal, centerStyle, totalFontSizeCoefficient)
|
|
297
|
+
}, resolvedSeriesConfig.outer), _objectSpread(_objectSpread({
|
|
298
|
+
name: 'center',
|
|
299
|
+
data: dataset.centerCircleData,
|
|
300
|
+
radius: ['57%', '72%'],
|
|
301
|
+
itemStyle: circleItemStyle,
|
|
302
|
+
silent: true
|
|
303
|
+
}, defaultSeriesConfig), resolvedSeriesConfig.center), _objectSpread(_objectSpread({
|
|
304
|
+
name: 'inner',
|
|
305
|
+
data: [innerColorLight, innerColorDark, innerColorLight, innerColorLight, innerColorDark, innerColorLight],
|
|
306
|
+
silent: true
|
|
307
|
+
}, defaultSeriesConfig), resolvedSeriesConfig.inner)];
|
|
308
|
+
if (transform) {
|
|
309
|
+
var _transformWithConfig;
|
|
310
|
+
var copyData = cloneDeep(seriesData);
|
|
311
|
+
var transformData = (_transformWithConfig = transformWithConfig(copyData.splice(0, 2), transform, 'pie')) === null || _transformWithConfig === void 0 ? void 0 : _transformWithConfig.dataset.concat(seriesData.splice(2));
|
|
312
|
+
transformData[0].label = chartLabelFormatter(transformData[0].data, title, unit, theme, locales, totalToFixedNumber, transformUnit, isShowTotal, customTotal, centerStyle, totalFontSizeCoefficient);
|
|
313
|
+
return transformData;
|
|
314
|
+
}
|
|
315
|
+
return seriesData;
|
|
316
|
+
};
|
|
317
|
+
export var defaultLegendConfig = {
|
|
318
|
+
right: 100,
|
|
319
|
+
top: 'middle',
|
|
320
|
+
itemWidth: 6,
|
|
321
|
+
itemHeight: 6,
|
|
322
|
+
itemStyle: {
|
|
323
|
+
opacity: 0.85,
|
|
324
|
+
borderWidth: 0,
|
|
325
|
+
borderColor: 'transparent'
|
|
326
|
+
},
|
|
327
|
+
textStyle: {
|
|
328
|
+
rich: {
|
|
329
|
+
nameStyle: {
|
|
330
|
+
fontWeight: '400',
|
|
331
|
+
fontSize: '12'
|
|
332
|
+
},
|
|
333
|
+
percentStyle: {
|
|
334
|
+
fontWeight: '600',
|
|
335
|
+
fontSize: '14'
|
|
336
|
+
},
|
|
337
|
+
periodBasisTextStyle: {
|
|
338
|
+
color: '#888'
|
|
339
|
+
},
|
|
340
|
+
periodBasisValueUpStyle: {
|
|
341
|
+
color: '#30C147'
|
|
342
|
+
},
|
|
343
|
+
periodBasisValueDownStyle: {
|
|
344
|
+
color: '#D74851'
|
|
345
|
+
},
|
|
346
|
+
periodBasisIconUpStyle: {
|
|
347
|
+
backgroundColor: {
|
|
348
|
+
image: 'data:image/svg+xml;base64,PHN2ZyB0PSIxNzIzODgxMjg2ODg2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQxODMiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTgwMCA3MTQuNjY2NjY2NjdsLTI4NC44NjM5OTk5OS0zODQtMjkxLjEzNjAwMDAxIDM4NHoiIHAtaWQ9IjQxODQiIGZpbGw9IiMzMGMxNDciPjwvcGF0aD48L3N2Zz4='
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
periodBasisIconDownStyle: {
|
|
352
|
+
backgroundColor: {
|
|
353
|
+
image: 'data:image/svg+xml;base64,PHN2ZyB0PSIxNzIzODgxNDE2OTQ2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQzNjciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTIyNCAzMDkuMzMzMzMzMzNsMjg0Ljg2NCAzODQgMjkxLjEzNi0zODR6IiBwLWlkPSI0MzY4IiBmaWxsPSIjZDc0ODUxIj48L3BhdGg+PC9zdmc+'
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
periodBasisIconRedUpStyle: {
|
|
357
|
+
backgroundColor: {
|
|
358
|
+
image: ' data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzI0Mzc0NjE5ODY4IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ1MzQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTgwMCA2NzIuMDAwMDAwMDFsLTI4NC44NjM5OTk5OS0zODQtMjkxLjEzNjAwMDAxIDM4NHoiIHAtaWQ9IjQ1MzUiIGZpbGw9IiNkNzQ4NTEiPjwvcGF0aD48L3N2Zz4='
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
periodBasisIconGreenDownStyle: {
|
|
362
|
+
backgroundColor: {
|
|
363
|
+
image: 'data:image/svg+xml;charset=utf-8;base64,PHN2ZyB0PSIxNzI0Mzc0Nzc2OTUyIiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjEyNjkiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTIyNCAzMDkuMzMzMzMzMzNsMjg0Ljg2Mzk5OTk5IDM4NCAyOTEuMTM2MDAwMDEtMzg0eiIgcC1pZD0iMTI3MCIgZmlsbD0iIzMwYzE0NyI+PC9wYXRoPjwvc3ZnPg=='
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
periodBasisNullStyle: {}
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
icon: 'circle',
|
|
370
|
+
orient: 'vertical',
|
|
371
|
+
itemGap: 15
|
|
372
|
+
};
|
|
373
|
+
export var chartLegendFormatter = function chartLegendFormatter(name, ticket, callback, dataset, sourceData, legendFormatter, lang, chartConfig, isShowPeriodBasisCompare, isGreenUp) {
|
|
374
|
+
var _chartConfig$legend;
|
|
375
|
+
var data = dataset.outterCircleData;
|
|
376
|
+
var value = 0;
|
|
377
|
+
var p = 0;
|
|
378
|
+
var yearToYear = undefined;
|
|
379
|
+
var monthToMonth = undefined;
|
|
380
|
+
if (!name) {
|
|
381
|
+
return null;
|
|
382
|
+
}
|
|
383
|
+
for (var i = 0, l = data.length; i < l; i++) {
|
|
384
|
+
if (data[i].name === name) {
|
|
385
|
+
var _data$i, _data$i2;
|
|
386
|
+
value = data[i].value;
|
|
387
|
+
p = data[i].percent;
|
|
388
|
+
monthToMonth = (_data$i = data[i]) === null || _data$i === void 0 ? void 0 : _data$i.monthToMonth;
|
|
389
|
+
yearToYear = (_data$i2 = data[i]) === null || _data$i2 === void 0 ? void 0 : _data$i2.yearToYear;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
if (typeof legendFormatter === 'function') {
|
|
393
|
+
return legendFormatter(name, p, value, monthToMonth, yearToYear);
|
|
394
|
+
}
|
|
395
|
+
if (typeof (chartConfig === null || chartConfig === void 0 || (_chartConfig$legend = chartConfig.legend) === null || _chartConfig$legend === void 0 ? void 0 : _chartConfig$legend.legendFormatter) === 'function') {
|
|
396
|
+
var _chartConfig$legend2;
|
|
397
|
+
return chartConfig === null || chartConfig === void 0 || (_chartConfig$legend2 = chartConfig.legend) === null || _chartConfig$legend2 === void 0 ? void 0 : _chartConfig$legend2.legendFormatter(name, p, value, monthToMonth, yearToYear);
|
|
398
|
+
}
|
|
399
|
+
var periodBasisValueStyle = function periodBasisValueStyle(periodBasis) {
|
|
400
|
+
if (periodBasis === null || periodBasis === undefined) {
|
|
401
|
+
return 'periodBasisNullStyle';
|
|
402
|
+
}
|
|
403
|
+
if (isGreenUp) {
|
|
404
|
+
return periodBasis >= 0 ? 'periodBasisValueUpStyle' : 'periodBasisValueDownStyle';
|
|
405
|
+
} else {
|
|
406
|
+
return periodBasis >= 0 ? 'periodBasisValueDownStyle' : 'periodBasisValueUpStyle';
|
|
407
|
+
}
|
|
408
|
+
};
|
|
409
|
+
var periodBasisIconStyle = function periodBasisIconStyle(periodBasis) {
|
|
410
|
+
if (periodBasis === null || periodBasis === undefined) {
|
|
411
|
+
return 'periodBasisNullStyle';
|
|
412
|
+
}
|
|
413
|
+
if (isGreenUp) {
|
|
414
|
+
return periodBasis >= 0 ? 'periodBasisIconUpStyle' : 'periodBasisIconDownStyle';
|
|
415
|
+
} else {
|
|
416
|
+
return periodBasis >= 0 ? 'periodBasisIconRedUpStyle' : 'periodBasisIconGreenDownStyle';
|
|
417
|
+
}
|
|
418
|
+
};
|
|
419
|
+
var periodBasisNumber = function periodBasisNumber(periodBasis) {
|
|
420
|
+
if (periodBasis === null || periodBasis === undefined) {
|
|
421
|
+
return '';
|
|
422
|
+
}
|
|
423
|
+
var resolvedBasis = periodBasis;
|
|
424
|
+
if (periodBasis < 0) resolvedBasis = -resolvedBasis;
|
|
425
|
+
return resolvedBasis.toFixed(1) + '%';
|
|
426
|
+
};
|
|
427
|
+
//环比 monthToMonth,同比 yearToYear
|
|
428
|
+
if (lang === 'zh-CN') {
|
|
429
|
+
if (isShowPeriodBasisCompare) {
|
|
430
|
+
return "{nameStyle|".concat(name, "\u6570 }{percentStyle|").concat(p, "} {percentStyle|%}\n{periodBasisTextStyle|").concat(monthToMonth !== null && monthToMonth !== undefined ? '环比' : '', "} {").concat(periodBasisValueStyle(monthToMonth), "|").concat(periodBasisNumber(monthToMonth), "}{").concat(periodBasisIconStyle(monthToMonth), "| }{periodBasisTextStyle|").concat(yearToYear !== null && yearToYear !== undefined ? '同比' : '', "} {").concat(periodBasisValueStyle(yearToYear), "|").concat(periodBasisNumber(yearToYear), "}{").concat(periodBasisIconStyle(yearToYear), "| }");
|
|
431
|
+
} else return "{nameStyle|".concat(name, "\u6570 }{percentStyle|").concat(p, "} {percentStyle|%}");
|
|
432
|
+
}
|
|
433
|
+
return "{nameStyle|Number of ".concat(name, " }{percentStyle|").concat(p, "} {percentStyle|%}");
|
|
434
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { themeColor } from "../../chartTheme";
|
|
2
|
+
export var legend = {
|
|
3
|
+
itemWidth: 8,
|
|
4
|
+
itemHeight: 8,
|
|
5
|
+
// textStyle: {
|
|
6
|
+
// color: 'rgba(255, 255, 255, 0.85)',
|
|
7
|
+
// },
|
|
8
|
+
itemStyle: {
|
|
9
|
+
opacity: 0.85
|
|
10
|
+
},
|
|
11
|
+
icon: 'diamond',
|
|
12
|
+
right: 0
|
|
13
|
+
};
|
|
14
|
+
export var color = [themeColor.blue, themeColor.purple, themeColor.red, themeColor.orange];
|
|
15
|
+
export var lineBarColor = [themeColor.blue, themeColor.green];
|
|
16
|
+
export var barWidth = 24;
|
|
17
|
+
export var barBackground = {
|
|
18
|
+
showBackground: true,
|
|
19
|
+
backgroundStyle: {
|
|
20
|
+
color: themeColor.grey,
|
|
21
|
+
opacity: 0.09
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
export var tooltip = {
|
|
25
|
+
trigger: 'axis',
|
|
26
|
+
axisPointer: {
|
|
27
|
+
type: 'shadow',
|
|
28
|
+
shadowStyle: {
|
|
29
|
+
color: 'rgba(12, 111, 242, 0.09)'
|
|
30
|
+
// width: 40,
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
backgroundColor: 'rgba(255, 255, 255, 0.12)',
|
|
34
|
+
borderColor: 'rgba(255, 255, 255, 0.12)',
|
|
35
|
+
textStyle: {
|
|
36
|
+
color: '#FFFFFF'
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export var colorArr = ['#00B42A', '#F4A547', '#525FDD', '#FFCB47', '#34A5E5', '#E67754', '13BDCC', 'C85DB8', '#30C147', '9251DE'];
|