@cgeui/utils 0.0.2 → 0.0.3

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.
Files changed (97) hide show
  1. package/dist/esm/charts/Chart/utils/complementData.js +714 -0
  2. package/dist/esm/charts/Chart/utils/convertToEchartsConfig/chartsToEchartsConfig.js +99 -0
  3. package/dist/esm/charts/Chart/utils/convertToEchartsConfig/index.js +2 -0
  4. package/dist/esm/charts/Chart/utils/convertToEchartsConfig/pieChartToEchartsConfig.js +140 -0
  5. package/dist/esm/charts/Chart/utils/getOption.js +365 -0
  6. package/dist/esm/charts/Chart/utils/handleChartConfig.js +279 -0
  7. package/dist/esm/charts/Chart/utils/index.js +5 -0
  8. package/dist/esm/charts/Chart/utils/preConfig/index.js +307 -0
  9. package/dist/esm/charts/Chart/utils/preConfig/type.js +1 -0
  10. package/dist/esm/charts/PieChart/interface.js +1 -0
  11. package/dist/esm/charts/PieChart/locales/en-US.js +9 -0
  12. package/dist/esm/charts/PieChart/locales/index.js +7 -0
  13. package/dist/esm/charts/PieChart/locales/zh-CN.js +9 -0
  14. package/dist/esm/charts/PieChart/util.js +434 -0
  15. package/dist/esm/charts/SuperChart/config/bar.js +39 -0
  16. package/dist/esm/charts/SuperChart/config/index.js +237 -0
  17. package/dist/esm/charts/SuperChart/configStyle/color.js +23 -0
  18. package/dist/esm/charts/SuperChart/configStyle/dataZoom.js +13 -0
  19. package/dist/esm/charts/SuperChart/configStyle/grid.js +20 -0
  20. package/dist/esm/charts/SuperChart/configStyle/index.js +10 -0
  21. package/dist/esm/charts/SuperChart/configStyle/legend.js +68 -0
  22. package/dist/esm/charts/SuperChart/configStyle/lineStyle.js +80 -0
  23. package/dist/esm/charts/SuperChart/configStyle/title.js +16 -0
  24. package/dist/esm/charts/SuperChart/configStyle/tooltip.js +38 -0
  25. package/dist/esm/charts/SuperChart/configStyle/visualMap.js +18 -0
  26. package/dist/esm/charts/SuperChart/configStyle/xAxis.js +19 -0
  27. package/dist/esm/charts/SuperChart/configStyle/yAxis.js +56 -0
  28. package/dist/esm/charts/SuperChart/interface.js +1 -0
  29. package/dist/esm/charts/chartTheme/colorUtil.js +22 -0
  30. package/dist/esm/charts/chartTheme/darkChart.js +508 -0
  31. package/dist/esm/charts/chartTheme/defaultChart.js +492 -0
  32. package/dist/esm/charts/chartTheme/index.js +4 -0
  33. package/dist/esm/charts/chartTheme/themeColor.js +168 -0
  34. package/dist/esm/charts/index.js +5 -0
  35. package/dist/esm/charts/utils/charts/hex2Rgb.js +32 -0
  36. package/dist/esm/charts/utils/constants/env.js +6 -0
  37. package/dist/esm/charts/utils/constants/helper.js +5 -0
  38. package/dist/esm/charts/utils/constants/index.js +3 -0
  39. package/dist/esm/charts/utils/constants/table.js +17 -0
  40. package/dist/esm/charts/utils/data.js +450 -0
  41. package/dist/esm/charts/utils/index.js +5 -0
  42. package/dist/esm/charts/utils/locale.js +7 -0
  43. package/dist/esm/charts/utils/time/index.js +14 -0
  44. package/dist/esm/charts/utils/types/action.d.ts +33 -0
  45. package/dist/esm/charts/utils/types/chart.d.ts +220 -0
  46. package/dist/esm/charts/utils/types/data.d.ts +51 -0
  47. package/dist/esm/charts/utils/types/index.d.ts +3 -0
  48. package/dist/esm/index.js +3 -0
  49. package/dist/lib/charts/Chart/utils/complementData.js +721 -0
  50. package/dist/lib/charts/Chart/utils/convertToEchartsConfig/chartsToEchartsConfig.js +105 -0
  51. package/dist/lib/charts/Chart/utils/convertToEchartsConfig/index.js +27 -0
  52. package/dist/lib/charts/Chart/utils/convertToEchartsConfig/pieChartToEchartsConfig.js +147 -0
  53. package/dist/lib/charts/Chart/utils/getOption.js +371 -0
  54. package/dist/lib/charts/Chart/utils/handleChartConfig.js +284 -0
  55. package/dist/lib/charts/Chart/utils/index.js +60 -0
  56. package/dist/lib/charts/Chart/utils/preConfig/index.js +313 -0
  57. package/dist/lib/charts/Chart/utils/preConfig/type.js +5 -0
  58. package/dist/lib/charts/PieChart/interface.js +5 -0
  59. package/dist/lib/charts/PieChart/locales/en-US.js +15 -0
  60. package/dist/lib/charts/PieChart/locales/index.js +14 -0
  61. package/dist/lib/charts/PieChart/locales/zh-CN.js +15 -0
  62. package/dist/lib/charts/PieChart/util.js +441 -0
  63. package/dist/lib/charts/SuperChart/config/bar.js +45 -0
  64. package/dist/lib/charts/SuperChart/config/index.js +243 -0
  65. package/dist/lib/charts/SuperChart/configStyle/color.js +29 -0
  66. package/dist/lib/charts/SuperChart/configStyle/dataZoom.js +19 -0
  67. package/dist/lib/charts/SuperChart/configStyle/grid.js +26 -0
  68. package/dist/lib/charts/SuperChart/configStyle/index.js +76 -0
  69. package/dist/lib/charts/SuperChart/configStyle/legend.js +74 -0
  70. package/dist/lib/charts/SuperChart/configStyle/lineStyle.js +86 -0
  71. package/dist/lib/charts/SuperChart/configStyle/title.js +22 -0
  72. package/dist/lib/charts/SuperChart/configStyle/tooltip.js +44 -0
  73. package/dist/lib/charts/SuperChart/configStyle/visualMap.js +24 -0
  74. package/dist/lib/charts/SuperChart/configStyle/xAxis.js +25 -0
  75. package/dist/lib/charts/SuperChart/configStyle/yAxis.js +62 -0
  76. package/dist/lib/charts/SuperChart/interface.js +5 -0
  77. package/dist/lib/charts/chartTheme/colorUtil.js +28 -0
  78. package/dist/lib/charts/chartTheme/darkChart.js +514 -0
  79. package/dist/lib/charts/chartTheme/defaultChart.js +498 -0
  80. package/dist/lib/charts/chartTheme/index.js +49 -0
  81. package/dist/lib/charts/chartTheme/themeColor.js +174 -0
  82. package/dist/lib/charts/index.js +60 -0
  83. package/dist/lib/charts/utils/charts/hex2Rgb.js +38 -0
  84. package/dist/lib/charts/utils/constants/env.js +12 -0
  85. package/dist/lib/charts/utils/constants/helper.js +11 -0
  86. package/dist/lib/charts/utils/constants/index.js +38 -0
  87. package/dist/lib/charts/utils/constants/table.js +23 -0
  88. package/dist/lib/charts/utils/data.js +454 -0
  89. package/dist/lib/charts/utils/index.js +60 -0
  90. package/dist/lib/charts/utils/locale.js +13 -0
  91. package/dist/lib/charts/utils/time/index.js +21 -0
  92. package/dist/lib/charts/utils/types/action.d.ts +33 -0
  93. package/dist/lib/charts/utils/types/chart.d.ts +220 -0
  94. package/dist/lib/charts/utils/types/data.d.ts +51 -0
  95. package/dist/lib/charts/utils/types/index.d.ts +3 -0
  96. package/dist/lib/index.js +25 -0
  97. package/package.json +2 -1
@@ -0,0 +1,721 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.valueToFixed = exports.unitTransformByList = exports.unitTransform = exports.transformWithConfig = exports.transformHandler = exports.mergeIntervals = exports.getTotal = exports.getNewList = exports.getIsTimestamp = exports.getFillValue = exports.getDataFromKey = exports.getCompressedValue = exports.formatterAxis = exports.fillTotalByList = exports.fillTotal = exports.fillRangeInterval = exports.fillDataWithRule = exports.extractXData = exports.extractSourceData = exports.complementPercentData = exports.complementData = exports.calculateYData = exports.calculateXForDate = exports.calculateXData = exports.autoCalculateXData = void 0;
8
+ var _lodash = require("lodash");
9
+ var _moment = _interopRequireDefault(require("moment"));
10
+ var _data = require("../../utils/data");
11
+ var _excluded = ["value", "name"],
12
+ _excluded2 = ["value", "name"],
13
+ _excluded3 = ["dataset"];
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ 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; }
16
+ 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; }
17
+ 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; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
19
+ 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); }
20
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
21
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
22
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
23
+ 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."); }
24
+ 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); }
25
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
26
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
27
+ 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; }
28
+ var intervalUnit = /*#__PURE__*/function (intervalUnit) {
29
+ intervalUnit["second"] = "s";
30
+ intervalUnit["minute"] = "m";
31
+ intervalUnit["hour"] = "h";
32
+ intervalUnit["day"] = "d";
33
+ intervalUnit["week"] = "w";
34
+ intervalUnit["month"] = "M";
35
+ intervalUnit["year"] = "y";
36
+ return intervalUnit;
37
+ }(intervalUnit || {});
38
+ var dateFormatType = /*#__PURE__*/function (dateFormatType) {
39
+ dateFormatType["second"] = "YYYY-MM-DD HH:mm:ss";
40
+ dateFormatType["minute"] = "YYYY-MM-DD HH:mm";
41
+ dateFormatType["hour"] = "YYYY-MM-DD HH";
42
+ dateFormatType["day"] = "YYYY-MM-DD";
43
+ dateFormatType["week"] = "YYYY-MM-DD";
44
+ dateFormatType["month"] = "YYYY-MM";
45
+ dateFormatType["year"] = "YYYY";
46
+ return dateFormatType;
47
+ }(dateFormatType || {});
48
+ var fillWithType = /*#__PURE__*/function (fillWithType) {
49
+ fillWithType["empty"] = "EMPTY";
50
+ fillWithType["zero"] = "ZERO";
51
+ fillWithType["line"] = "LINE";
52
+ return fillWithType;
53
+ }(fillWithType || {});
54
+ // 对图表数据根据间隔进行补齐
55
+ var getDataFromKey = exports.getDataFromKey = function getDataFromKey(list) {
56
+ var dimensions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
57
+ var timestamp = arguments.length > 2 ? arguments[2] : undefined;
58
+ var data = new Map();
59
+ if (!list || !dimensions) {
60
+ return data;
61
+ }
62
+ var xKey = dimensions.length > 0 ? dimensions[0] : "name";
63
+ list.forEach(function (item) {
64
+ data.set(timestamp ? parseInt(item[xKey]) : item[xKey], item);
65
+ });
66
+ return data;
67
+ };
68
+ var diffDateByInterval = function diffDateByInterval(start, end, interval) {
69
+ for (var key in intervalUnit) {
70
+ if (intervalUnit[key] === interval.intervalUnit) {
71
+ var diff = (0, _moment.default)(end).diff(start, interval.intervalUnit);
72
+ return (diff ? diff : 0) / interval.intervalNum;
73
+ }
74
+ }
75
+ return 0;
76
+ };
77
+ var calculateXForNum = function calculateXForNum(start, end, interval) {
78
+ var newXList = [];
79
+ var temp = start;
80
+ var intervalGap = (end - start) / interval;
81
+ for (var i = 0; i <= intervalGap; i++) {
82
+ newXList.push(temp.toString());
83
+ temp += interval;
84
+ }
85
+ return newXList;
86
+ };
87
+ var getIsTimestamp = exports.getIsTimestamp = function getIsTimestamp(timestamp) {
88
+ var regex = /^\d{13}$/;
89
+ if (regex.test(timestamp)) {
90
+ var date = new Date(timestamp * 1000);
91
+ return !isNaN(date.getTime());
92
+ }
93
+ return false;
94
+ };
95
+ var calculateXForDate = exports.calculateXForDate = function calculateXForDate(start, end, interval, isTimestamp) {
96
+ var newXList = [];
97
+ var intervalGap = diffDateByInterval(start, end, interval);
98
+ var temp = start;
99
+ for (var i = 0; i <= intervalGap; i++) {
100
+ newXList.push(temp);
101
+ for (var key in intervalUnit) {
102
+ if (intervalUnit[key] === interval.intervalUnit) {
103
+ if (isTimestamp) {
104
+ temp = (0, _moment.default)(temp).add(interval.intervalNum, interval.intervalUnit).valueOf();
105
+ } else {
106
+ temp = (0, _moment.default)(temp).add(interval.intervalNum, interval.intervalUnit).format(dateFormatType[key]);
107
+ }
108
+ }
109
+ }
110
+ }
111
+ return newXList;
112
+ };
113
+ var autoCalculateXData = exports.autoCalculateXData = function autoCalculateXData(data, dataFillConfig) {
114
+ var dimensions = (dataFillConfig === null || dataFillConfig === void 0 ? void 0 : dataFillConfig.dimensions) || ["name", "value"];
115
+ var newXData = new Set();
116
+ data === null || data === void 0 || data.forEach(function (item) {
117
+ var _item$source;
118
+ item === null || item === void 0 || (_item$source = item.source) === null || _item$source === void 0 || _item$source.forEach(function (obj) {
119
+ var xVal = obj["".concat(dimensions[0])];
120
+ newXData.add(xVal);
121
+ });
122
+ });
123
+ if (dataFillConfig !== null && dataFillConfig !== void 0 && dataFillConfig.sort) {
124
+ if (dataFillConfig.sortDataType === "time") {
125
+ //默认为升序 ascend
126
+ if (dataFillConfig.sort === "descend") {
127
+ //若为降序
128
+ return _toConsumableArray(newXData).sort(function (a, b) {
129
+ return a < b ? 1 : -1;
130
+ });
131
+ } else {
132
+ //升序
133
+ return _toConsumableArray(newXData).sort(function (a, b) {
134
+ return a > b ? 1 : -1;
135
+ });
136
+ }
137
+ } else if (dataFillConfig.sortDataType === "number") {
138
+ //默认为升序 ascend
139
+ if (dataFillConfig.sort === "descend") {
140
+ //若为降序
141
+ return _toConsumableArray(newXData).sort(function (a, b) {
142
+ return b - a;
143
+ });
144
+ } else {
145
+ //升序
146
+ return _toConsumableArray(newXData).sort(function (a, b) {
147
+ return a - b;
148
+ });
149
+ }
150
+ } else {
151
+ //string
152
+ if (dataFillConfig.sort === "descend") {
153
+ //若为降序
154
+ return _toConsumableArray(newXData).sort().reverse();
155
+ } else {
156
+ //升序
157
+ return _toConsumableArray(newXData).sort();
158
+ }
159
+ }
160
+ }
161
+ return _toConsumableArray(newXData);
162
+ };
163
+
164
+ // 补齐x轴坐标
165
+ var calculateXData = exports.calculateXData = function calculateXData(range, interval, isTimestamp) {
166
+ if (!range || !interval) {
167
+ return;
168
+ }
169
+ if (interval.length > 1) {
170
+ var newInterval = {
171
+ intervalNum: interval[0],
172
+ intervalUnit: interval[1]
173
+ };
174
+ return calculateXForDate(range[0], range[1], newInterval, isTimestamp);
175
+ } else {
176
+ return calculateXForNum(Number(range[0]), Number(range[1]), interval[0]);
177
+ }
178
+ };
179
+ var getFillLineValue = function getFillLineValue(xData, dataMap, index) {
180
+ var dimensions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
181
+ var yKey = dimensions.length > 1 ? dimensions[1] : "value";
182
+ var left = index - 1,
183
+ right = index + 1;
184
+ var leftVal = undefined,
185
+ rightVal = undefined;
186
+ while (left >= 0) {
187
+ if (dataMap.has(xData[left])) {
188
+ var _dataMap$get;
189
+ leftVal = parseFloat((_dataMap$get = dataMap.get(xData[left])) === null || _dataMap$get === void 0 ? void 0 : _dataMap$get[yKey]);
190
+ break;
191
+ }
192
+ left--;
193
+ }
194
+ while (right <= xData.length) {
195
+ if (dataMap.has(xData[right])) {
196
+ var _dataMap$get2;
197
+ rightVal = parseFloat((_dataMap$get2 = dataMap.get(xData[right])) === null || _dataMap$get2 === void 0 ? void 0 : _dataMap$get2[yKey]);
198
+ break;
199
+ }
200
+ right++;
201
+ }
202
+ if (leftVal !== undefined && rightVal !== undefined) {
203
+ var num = leftVal + (rightVal - leftVal) / (right - left) * (index - left);
204
+ return num.toFixed(2);
205
+ } else {
206
+ return "";
207
+ }
208
+ };
209
+ var getSimpleFillValue = function getSimpleFillValue(fillWith) {
210
+ switch (fillWith) {
211
+ case fillWithType.zero:
212
+ return "0";
213
+ case fillWithType.empty:
214
+ return "";
215
+ default:
216
+ return fillWith;
217
+ }
218
+ };
219
+ var getFillValue = exports.getFillValue = function getFillValue(xData, fillWith, dataMap, index) {
220
+ var dimensions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];
221
+ switch (fillWith) {
222
+ case fillWithType.line:
223
+ if (index !== 0 && index !== xData.length) {
224
+ var val = getFillLineValue(xData, dataMap, index, dimensions);
225
+ return val.toString();
226
+ } else {
227
+ return "";
228
+ }
229
+ default:
230
+ return getSimpleFillValue(fillWith);
231
+ }
232
+ };
233
+ var calculateYData = exports.calculateYData = function calculateYData(xData, dataMap, fillWith) {
234
+ var dimensions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
235
+ if (!xData) {
236
+ return;
237
+ }
238
+ var yData = [];
239
+ var yKey = dimensions && dimensions.length > 1 ? dimensions[1] : "value";
240
+ for (var i = 0; i < xData.length; i++) {
241
+ var xVal = xData[i];
242
+ if (dataMap.has(xVal)) {
243
+ var _dataMap$get3;
244
+ yData.push((_dataMap$get3 = dataMap.get(xData[i])) === null || _dataMap$get3 === void 0 ? void 0 : _dataMap$get3[yKey]);
245
+ } else {
246
+ var fillValue = getFillValue(xData, fillWith, dataMap, i, dimensions);
247
+ yData.push(fillValue);
248
+ }
249
+ }
250
+ return yData;
251
+ };
252
+ var getNewList = exports.getNewList = function getNewList(xData, dataMap, yData) {
253
+ var dimensions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ["name", "value"];
254
+ if (!xData || !yData) {
255
+ return;
256
+ }
257
+ var newList = [];
258
+
259
+ //保存dataMap中除name和value的其他属性
260
+ var newValueList = [];
261
+ var dataMapOtherProps = {};
262
+ xData.forEach(function (i) {
263
+ if (dataMap.has(i)) {
264
+ newValueList.push(dataMap.get(i));
265
+ }
266
+ });
267
+ //将对象数组的所有属性合并到对象中
268
+ var mergedObj = Object.assign.apply(Object, [{}].concat(newValueList));
269
+ var value = mergedObj.value,
270
+ name = mergedObj.name,
271
+ OtherProps = _objectWithoutProperties(mergedObj, _excluded);
272
+ dataMapOtherProps = OtherProps;
273
+ var _loop = function _loop(i) {
274
+ if (dataMap.has(xData[i])) {
275
+ newList.push(dataMap.get(xData[i]));
276
+ var _dataMap$get4 = dataMap.get(xData[i]),
277
+ _value = _dataMap$get4.value,
278
+ _name = _dataMap$get4.name,
279
+ _OtherProps = _objectWithoutProperties(_dataMap$get4, _excluded2);
280
+ dataMapOtherProps = _OtherProps;
281
+ } else {
282
+ var obj = {};
283
+ dimensions.forEach(function (item, index) {
284
+ if (index === 0) {
285
+ obj[item] = xData[i];
286
+ obj = _objectSpread(_objectSpread({}, obj), dataMapOtherProps);
287
+ } else if (index === 1) {
288
+ obj[item] = yData[i];
289
+ } else {
290
+ obj[item] = "";
291
+ }
292
+ });
293
+ newList.push(obj);
294
+ }
295
+ };
296
+ for (var i = 0; i < xData.length; i++) {
297
+ _loop(i);
298
+ }
299
+ return newList;
300
+ };
301
+ var complementData = exports.complementData = function complementData(list) {
302
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
303
+ range = _ref.range,
304
+ XData = _ref.XData,
305
+ fillWith = _ref.fillWith,
306
+ _ref$dimensions = _ref.dimensions,
307
+ dimensions = _ref$dimensions === void 0 ? ["name", "value"] : _ref$dimensions,
308
+ interval = _ref.interval,
309
+ isTimestamp = _ref.isTimestamp;
310
+ var timestamp = isTimestamp ? isTimestamp : getIsTimestamp(range === null || range === void 0 ? void 0 : range[0]);
311
+ // 生成x:y的map
312
+ var dataMap = getDataFromKey(list, dimensions, timestamp);
313
+ // 根据range和interval生成一个完整的x数据
314
+ var newXData = XData ? XData : calculateXData(range, interval, timestamp);
315
+
316
+ // 根据新的x数据,dataMap和要填充的值生成y数据
317
+ var newYData = calculateYData(newXData, dataMap, fillWith, dimensions);
318
+
319
+ // 整理为[{name: x, value: y, ...}]的形式
320
+ var newList = getNewList(newXData, dataMap, newYData, dimensions);
321
+ return {
322
+ newList: newList,
323
+ newXData: newXData,
324
+ newYData: newYData
325
+ };
326
+ };
327
+ var extractXData = exports.extractXData = function extractXData(data) {
328
+ var xKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "name";
329
+ if (!data) return;
330
+ var xData = [];
331
+ data.forEach(function (item) {
332
+ if ((0, _lodash.has)(item, xKey)) {
333
+ xData.push(item[xKey]);
334
+ }
335
+ });
336
+ return (0, _lodash.uniq)(xData);
337
+ };
338
+ var extractSourceData = exports.extractSourceData = function extractSourceData(data, xFormatter) {
339
+ var xKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "name";
340
+ if ((xFormatter === null || xFormatter === void 0 ? void 0 : xFormatter.type) === "time") {
341
+ data.forEach(function (item) {
342
+ if ((0, _data.isNumeric)(item[xKey])) {
343
+ var val = (0, _moment.default)(Number(item[xKey])).format(xFormatter === null || xFormatter === void 0 ? void 0 : xFormatter.formatter);
344
+ item.originTimestamp = item[xKey];
345
+ item[xKey] = val;
346
+ }
347
+ });
348
+ }
349
+ return data;
350
+ };
351
+
352
+ /**
353
+ * 获取被压缩掉的值
354
+ * @param dataset 图表数据集
355
+ * @param param1
356
+ * @returns
357
+ */
358
+
359
+ var getCompressedValue = exports.getCompressedValue = function getCompressedValue(data, rule) {
360
+ var _startGroup, _endGroup;
361
+ var dataset = data.dataset;
362
+ var fillGroupKey = rule.fillGroupKey,
363
+ param = rule.param,
364
+ _rule$fillField = rule.fillField,
365
+ fillField = _rule$fillField === void 0 ? ["max", "min"] : _rule$fillField;
366
+ var startGroup,
367
+ endGroup,
368
+ output = 0;
369
+ if (fillGroupKey && fillField) {
370
+ startGroup = dataset.find(function (item) {
371
+ return item.groupKey === fillGroupKey[0];
372
+ });
373
+ endGroup = dataset.find(function (item) {
374
+ return item.groupKey === fillGroupKey[1];
375
+ });
376
+ if (startGroup && startGroup[fillField[0]] && endGroup && endGroup[fillField[1]]) {
377
+ output = Math.floor(Number(endGroup[fillField[1]]) - Number(startGroup[fillField[0]]) - param);
378
+ }
379
+ }
380
+ return _objectSpread(_objectSpread({}, data), {}, {
381
+ dataset: dataset,
382
+ startGroup: startGroup,
383
+ endGroup: endGroup,
384
+ start: (_startGroup = startGroup) === null || _startGroup === void 0 ? void 0 : _startGroup[fillField[0]],
385
+ end: (_endGroup = endGroup) === null || _endGroup === void 0 ? void 0 : _endGroup[fillField[1]],
386
+ output: output
387
+ });
388
+ };
389
+ var valueToFixed = exports.valueToFixed = function valueToFixed(data, rule) {
390
+ var dataset = data.dataset;
391
+ var param = rule.param,
392
+ fillField = rule.fillField;
393
+ var toFixed = function toFixed(json, field) {
394
+ if ((0, _lodash.has)(json, field)) {
395
+ json[field] = Number(json[field]).toFixed(param);
396
+ }
397
+ };
398
+ var handleFieldValue = function handleFieldValue(json) {
399
+ return fillField.forEach(function (field) {
400
+ toFixed(json, field);
401
+ });
402
+ };
403
+ var loopHandle = function loopHandle(res) {
404
+ var list = res.source || res;
405
+ if ((0, _lodash.isArray)(list)) {
406
+ list.forEach(function (item) {
407
+ loopHandle(item);
408
+ });
409
+ }
410
+ handleFieldValue(res);
411
+ };
412
+ loopHandle(dataset);
413
+ return _objectSpread(_objectSpread({}, data), {}, {
414
+ dataset: dataset
415
+ });
416
+ };
417
+
418
+ /**
419
+ *
420
+ * @param param0 // range: ["(,80)", "[100,)"], //[起始点、结束点]
421
+ // rangeType:'interval'
422
+ // rangeSuffix: '%',
423
+ // interval: [2],
424
+ // fillWith: 'ZERO', //填充规则
425
+ * @returns
426
+ */
427
+ var fillRangeInterval = exports.fillRangeInterval = function fillRangeInterval(_ref2) {
428
+ var range = _ref2.range,
429
+ interval = _ref2.interval,
430
+ _ref2$rangeSuffix = _ref2.rangeSuffix,
431
+ rangeSuffix = _ref2$rangeSuffix === void 0 ? "" : _ref2$rangeSuffix;
432
+ var starts = (0, _data.getIntervals)(range[0]);
433
+ var ends = (0, _data.getIntervals)(range[1]);
434
+ var ranges = [range[0]];
435
+ if (starts && ends) {
436
+ var i = (0, _data.isNumeric)(starts[2]) ? Number(starts[2]) + interval[0] : Number(starts[3]);
437
+ while (i < Number(ends[2])) {
438
+ ranges.push("[".concat(i).concat(rangeSuffix, ",").concat(i + interval[0]).concat(rangeSuffix, ")"));
439
+ i += interval[0];
440
+ }
441
+ }
442
+ ranges.push(range[1]);
443
+ return ranges;
444
+ };
445
+ var fillDataWithRule = exports.fillDataWithRule = function fillDataWithRule(data, rule) {
446
+ var dataset = data.dataset;
447
+ var param = rule.param,
448
+ fillField = rule.fillField;
449
+ var valueToFill = function valueToFill(_param) {
450
+ switch (_param.rangeType) {
451
+ case "interval":
452
+ return fillRangeInterval(_param);
453
+ default:
454
+ return _param.range;
455
+ }
456
+ };
457
+ var resolvedField = valueToFill(param);
458
+ var resolvedFillValue = getSimpleFillValue(param.fillWith);
459
+ var handleFieldValue = function handleFieldValue(list) {
460
+ return resolvedField.map(function (name) {
461
+ var item = list.find(function (_json) {
462
+ return (_json === null || _json === void 0 ? void 0 : _json[fillField[0]]) === name;
463
+ });
464
+ if (item) {
465
+ return item;
466
+ }
467
+ var _res = {};
468
+ fillField.forEach(function (_key, _index) {
469
+ if (_index === 0) {
470
+ _res[_key] = name;
471
+ } else {
472
+ _res[_key] = resolvedFillValue;
473
+ }
474
+ });
475
+ return _res;
476
+ });
477
+ };
478
+ var loopHandle = function loopHandle(res) {
479
+ var _list$;
480
+ var list = res.source || res;
481
+ if ((0, _lodash.isArray)(list) && list !== null && list !== void 0 && (_list$ = list[0]) !== null && _list$ !== void 0 && _list$.source) {
482
+ list.forEach(function (item) {
483
+ loopHandle(item.source);
484
+ });
485
+ }
486
+ return handleFieldValue(res);
487
+ };
488
+ return _objectSpread(_objectSpread({}, data), {}, {
489
+ dataset: loopHandle(dataset)
490
+ });
491
+ };
492
+ var mergeIntervals = exports.mergeIntervals = function mergeIntervals(data, rule) {
493
+ var dataset = data.dataset;
494
+ var param = rule.param,
495
+ fillField = rule.fillField;
496
+ var loopHandle = function loopHandle(res) {
497
+ var _list$2;
498
+ var list = res.source || res;
499
+ if ((0, _lodash.isArray)(list) && list !== null && list !== void 0 && (_list$2 = list[0]) !== null && _list$2 !== void 0 && _list$2.source) {
500
+ list.forEach(function (item) {
501
+ loopHandle(item.source);
502
+ });
503
+ }
504
+ return (0, _data.smartMergeIntervals)(list, fillField, param);
505
+ };
506
+ return _objectSpread(_objectSpread({}, data), {}, {
507
+ dataset: loopHandle(dataset)
508
+ });
509
+ };
510
+ var getTotal = exports.getTotal = function getTotal(data) {
511
+ var fillFiedld = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "value";
512
+ var total = 0;
513
+ data === null || data === void 0 || data.forEach(function (item) {
514
+ return total += Number(item === null || item === void 0 ? void 0 : item["".concat(fillFiedld)]) ? Number(item === null || item === void 0 ? void 0 : item["".concat(fillFiedld)]) : 0;
515
+ });
516
+ return total;
517
+ };
518
+ var fillTotalByList = exports.fillTotalByList = function fillTotalByList(list, fillField) {
519
+ var total = getTotal(list, fillField);
520
+ return list.map(function (item) {
521
+ item.total = total;
522
+ return item;
523
+ });
524
+ };
525
+ var fillTotal = exports.fillTotal = function fillTotal(data, rule, type) {
526
+ var dataset = data.dataset;
527
+ var fillField = rule.fillField,
528
+ fillGroupKey = rule.fillGroupKey;
529
+ var loopHandle = function loopHandle(res) {
530
+ var _list$3;
531
+ var key = type === "pie" ? "data" : "source";
532
+ var list = res["".concat(key)] || res;
533
+ if ((0, _lodash.isArray)(list) && list !== null && list !== void 0 && (_list$3 = list[0]) !== null && _list$3 !== void 0 && _list$3["".concat(key)]) {
534
+ list.forEach(function (item) {
535
+ if (fillGroupKey && item !== null && item !== void 0 && item.groupKey && !fillGroupKey.includes(item === null || item === void 0 ? void 0 : item.groupKey)) {
536
+ return;
537
+ } else {
538
+ loopHandle(item["".concat(key)]);
539
+ }
540
+ });
541
+ }
542
+ return fillTotalByList(list, fillField);
543
+ };
544
+ return _objectSpread(_objectSpread({}, data), {}, {
545
+ dataset: loopHandle(dataset)
546
+ });
547
+ };
548
+ var unitTransformByList = exports.unitTransformByList = function unitTransformByList(list, fillField, param) {
549
+ var isShowUnit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
550
+ return list.map(function (item) {
551
+ var data = item === null || item === void 0 ? void 0 : item["".concat(fillField)];
552
+ switch (param) {
553
+ case "K":
554
+ data = (0, _data.accMod)(data, 1000) + (isShowUnit ? "K" : "");
555
+ break;
556
+ case "W":
557
+ data = (0, _data.accMod)(data, 10000) + (isShowUnit ? "W" : "");
558
+ break;
559
+ default:
560
+ break;
561
+ }
562
+ item["".concat(fillField)] = data;
563
+ return item;
564
+ });
565
+ };
566
+ var unitTransform = exports.unitTransform = function unitTransform(data, rule, type) {
567
+ var dataset = data.dataset;
568
+ var fillField = rule.fillField,
569
+ param = rule.param,
570
+ fillGroupKey = rule.fillGroupKey,
571
+ isShowUnit = rule.isShowUnit;
572
+ var loopHandle = function loopHandle(res) {
573
+ var _list$4;
574
+ var key = type === "pie" ? "data" : "source";
575
+ var list = res["".concat(key)] || res;
576
+ if ((0, _lodash.isArray)(list) && list !== null && list !== void 0 && (_list$4 = list[0]) !== null && _list$4 !== void 0 && _list$4["".concat(key)]) {
577
+ list.forEach(function (item) {
578
+ if (fillGroupKey && item !== null && item !== void 0 && item.groupKey && !fillGroupKey.includes(item === null || item === void 0 ? void 0 : item.groupKey)) {
579
+ return;
580
+ } else {
581
+ loopHandle(item["".concat(key)]);
582
+ }
583
+ });
584
+ }
585
+ return unitTransformByList(list, fillField, param, isShowUnit);
586
+ };
587
+ return _objectSpread(_objectSpread({}, data), {}, {
588
+ dataset: loopHandle(dataset)
589
+ });
590
+ };
591
+ var transformHandler = exports.transformHandler = function transformHandler(data, rule, chartType) {
592
+ var dataset = data.dataset;
593
+ var type = rule.type,
594
+ fillGroupKey = rule.fillGroupKey,
595
+ param = rule.param,
596
+ _rule$fillField2 = rule.fillField,
597
+ fillField = _rule$fillField2 === void 0 ? ["max", "min"] : _rule$fillField2;
598
+ // debugger;
599
+ var compress;
600
+ var minData;
601
+ switch (type) {
602
+ case "waterfall":
603
+ minData = dataset.find(function (item) {
604
+ return item.groupKey === fillGroupKey[0];
605
+ });
606
+ return _objectSpread(_objectSpread({}, data), {}, {
607
+ dataset: dataset.map(function (item) {
608
+ var source = item.source,
609
+ groupKey = item.groupKey;
610
+ if (fillGroupKey[1] === groupKey) {
611
+ var res = source.map(function (row, index) {
612
+ var diffValue = row.value - minData.source[index].value;
613
+ var value = param ? diffValue - (item[fillField[1]] - minData[fillField[0]]) + param : diffValue;
614
+ // debugger;
615
+ return _objectSpread(_objectSpread({}, row), {}, {
616
+ value: value
617
+ });
618
+ });
619
+ return _objectSpread(_objectSpread({}, item), {}, {
620
+ source: res
621
+ });
622
+ }
623
+ return item;
624
+ })
625
+ });
626
+ case "compress":
627
+ compress = getCompressedValue(data, rule);
628
+ return compress;
629
+ case "toFixed":
630
+ return valueToFixed(data, rule);
631
+ case "dataFill":
632
+ return fillDataWithRule(data, rule);
633
+ case "mergeIntervals":
634
+ return mergeIntervals(data, rule);
635
+ case "fillTotal":
636
+ return fillTotal(data, rule, chartType);
637
+ case "unitTransform":
638
+ return unitTransform(data, rule, chartType);
639
+ default:
640
+ return data;
641
+ }
642
+ };
643
+ var transformWithConfig = exports.transformWithConfig = function transformWithConfig(dataset, transform, type) {
644
+ return transform.reduce(function (res, rule) {
645
+ var value = transformHandler(res, rule, type);
646
+ return value;
647
+ }, {
648
+ dataset: dataset
649
+ });
650
+ };
651
+
652
+ /**
653
+ * 处理坐标选项
654
+ * @param configData 用户的图表配置
655
+ * @param axisName xAxis/yAxis
656
+ * @param dataset 图表的数据集
657
+ * @returns
658
+ */
659
+ var formatterAxis = exports.formatterAxis = function formatterAxis(configData, axisName, _ref3) {
660
+ var dataset = _ref3.dataset,
661
+ transformData = _objectWithoutProperties(_ref3, _excluded3);
662
+ var axis = configData[axisName];
663
+ if (!axis) {
664
+ return {};
665
+ }
666
+ var resolveFormatter = function resolveFormatter() {
667
+ var item = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
668
+ var formatter = item.axisLabel && item.axisLabel.formatter ? item.axisLabel.formatter : item.unit ? "{value}".concat(item.unit) : "{value}";
669
+ if (item !== null && item !== void 0 && item.createFormatter) {
670
+ formatter = item.createFormatter(_objectSpread({
671
+ dataset: dataset
672
+ }, transformData), item);
673
+ }
674
+ var newAxis = {
675
+ axisLabel: {
676
+ formatter: formatter
677
+ }
678
+ };
679
+ if (item !== null && item !== void 0 && item.labelBreak) {
680
+ item.axisLabel = _objectSpread(_objectSpread({
681
+ width: 80,
682
+ overflow: "break",
683
+ interval: 0,
684
+ hideOverlap: true
685
+ }, item === null || item === void 0 ? void 0 : item.axisLabel), {}, {
686
+ formatter: formatter
687
+ });
688
+ }
689
+ if (item.createSplitNumber) {
690
+ newAxis.splitNumber = item.createSplitNumber(_objectSpread({
691
+ dataset: dataset
692
+ }, transformData));
693
+ }
694
+ if (item.createData) {
695
+ newAxis.data = item.createData(_objectSpread({
696
+ dataset: dataset
697
+ }, transformData));
698
+ }
699
+ return (0, _lodash.merge)({}, item, newAxis);
700
+ };
701
+ if (Array.isArray(axis)) {
702
+ return axis.map(resolveFormatter);
703
+ }
704
+ return resolveFormatter(axis);
705
+ };
706
+
707
+ // 给data补齐percent: 百分比数据
708
+ var complementPercentData = exports.complementPercentData = function complementPercentData(data) {
709
+ if (data && data.length > 0) {
710
+ var total = getTotal(data);
711
+ data.forEach(function (item) {
712
+ var percent = ((item === null || item === void 0 ? void 0 : item.value) || 0) / total * 100;
713
+ if (percent.toString().includes(".")) {
714
+ item.percent = percent.toFixed(2) + "%";
715
+ } else {
716
+ item.percent = percent + "%";
717
+ }
718
+ });
719
+ }
720
+ return data;
721
+ };