@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,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _utils = require("./Chart/utils");
|
|
7
|
+
Object.keys(_utils).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _utils[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _utils[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _chartTheme = require("./chartTheme");
|
|
18
|
+
Object.keys(_chartTheme).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _chartTheme[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function get() {
|
|
24
|
+
return _chartTheme[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _utils2 = require("./utils");
|
|
29
|
+
Object.keys(_utils2).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _utils2[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _utils2[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _config = require("./SuperChart/config");
|
|
40
|
+
Object.keys(_config).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _config[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function get() {
|
|
46
|
+
return _config[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
var _util = require("./PieChart/util");
|
|
51
|
+
Object.keys(_util).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _util[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _util[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.hex2Rgb = hex2Rgb;
|
|
7
|
+
/**
|
|
8
|
+
* 将十六进制颜色值转换为RGB格式,并可指定透明度
|
|
9
|
+
* @param hex 十六进制颜色值,可以是三位或六位
|
|
10
|
+
* @param opacity 透明度,取值范围0-1
|
|
11
|
+
* @returns 转换后的RGB颜色值,包含透明度
|
|
12
|
+
*/
|
|
13
|
+
function hex2Rgb(hex, opacity) {
|
|
14
|
+
// 定义rgb数组
|
|
15
|
+
var rgb = [];
|
|
16
|
+
var resolvedHex = hex;
|
|
17
|
+
// 判断传入是否为#三位十六进制数
|
|
18
|
+
if (/^\#[0-9A-F]{3}$/i.test(resolvedHex)) {
|
|
19
|
+
// 把三位十六进制数转化为六位,将每个字符重复两次
|
|
20
|
+
var sixHex = resolvedHex.replace(/[0-9A-F]/gi, function (kw) {
|
|
21
|
+
return kw + kw;
|
|
22
|
+
});
|
|
23
|
+
resolvedHex = sixHex;
|
|
24
|
+
}
|
|
25
|
+
// 判断传入是否为#六位十六进制数
|
|
26
|
+
if (/^#[0-9A-F]{6}$/i.test(resolvedHex)) {
|
|
27
|
+
// 十六进制转化为十进制并存入数组
|
|
28
|
+
resolvedHex.replace(/[0-9A-F]{2}/gi, function (kw) {
|
|
29
|
+
rgb.push(parseInt('0x' + kw, 16));
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// 输出RGB格式颜色
|
|
33
|
+
return "rgb(".concat(rgb.join(','), ")").slice(0, "rgb(".concat(rgb.join(','), ")").length - 1) + ',' + opacity + ')';
|
|
34
|
+
} else {
|
|
35
|
+
// 对非六位的十六进制颜色值,直接返回并追加透明度
|
|
36
|
+
return resolvedHex.slice(0, resolvedHex.length - 1) + ',' + opacity + ')';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _env = require("./env");
|
|
7
|
+
Object.keys(_env).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _env[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _env[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _helper = require("./helper");
|
|
18
|
+
Object.keys(_helper).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _helper[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function get() {
|
|
24
|
+
return _helper[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _table = require("./table");
|
|
29
|
+
Object.keys(_table).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _table[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _table[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.OPERATIONS = void 0;
|
|
7
|
+
var OPERATIONS = exports.OPERATIONS = {
|
|
8
|
+
lookUp: {
|
|
9
|
+
name: 'lookUp',
|
|
10
|
+
action: {
|
|
11
|
+
targetName: 'catlnas'
|
|
12
|
+
},
|
|
13
|
+
// TODO 国际化
|
|
14
|
+
text: '查看详情'
|
|
15
|
+
},
|
|
16
|
+
export: {
|
|
17
|
+
name: 'export',
|
|
18
|
+
action: {
|
|
19
|
+
targetName: 'catlnas'
|
|
20
|
+
},
|
|
21
|
+
text: 'component.operation.export'
|
|
22
|
+
}
|
|
23
|
+
};
|
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.smartMergeIntervals = exports.mergeObjValueWithKey = exports.mergeIntervalsByNum = exports.mergeIntervalObj = exports.mergeIntervalList = exports.mergeInterval = exports.mergeBoundaryIntervals = exports.mapToArr = exports.isNumeric = exports.getTreeNodeTitle = exports.getRangeParams = exports.getIntervals = exports.getCompleteData = exports.getBoundaryMergeStartAndEnd = exports.getBoundaryContinuation = exports.dealTreeData = exports.accMod = exports.accAdd = void 0;
|
|
7
|
+
var _lodash = require("lodash");
|
|
8
|
+
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); }
|
|
9
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
13
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
14
|
+
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); }
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
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; }
|
|
19
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
20
|
+
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); } /* eslint-disable @typescript-eslint/no-unused-expressions */
|
|
21
|
+
// 告警/预警中心补齐数据的方法
|
|
22
|
+
var getCompleteData = exports.getCompleteData = function getCompleteData(data, key, completeArr) {
|
|
23
|
+
var groupData = (0, _lodash.groupBy)(data, key);
|
|
24
|
+
var _loop = function _loop(item) {
|
|
25
|
+
var _groupData$item;
|
|
26
|
+
if (((_groupData$item = groupData[item]) === null || _groupData$item === void 0 ? void 0 : _groupData$item.length) < (completeArr === null || completeArr === void 0 ? void 0 : completeArr.length)) {
|
|
27
|
+
groupData[item] = completeArr.map(function (l) {
|
|
28
|
+
return groupData[item].find(function (d) {
|
|
29
|
+
return d.group === l;
|
|
30
|
+
}) || {
|
|
31
|
+
name: item,
|
|
32
|
+
value: 0,
|
|
33
|
+
group: l
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
for (var item in groupData) {
|
|
39
|
+
_loop(item);
|
|
40
|
+
}
|
|
41
|
+
return (0, _lodash.flatten)((0, _lodash.values)(groupData));
|
|
42
|
+
};
|
|
43
|
+
var isNumeric = exports.isNumeric = function isNumeric(value) {
|
|
44
|
+
return /^\d+$/.test(value);
|
|
45
|
+
};
|
|
46
|
+
var dealTreeData = exports.dealTreeData = function dealTreeData(treeData) {
|
|
47
|
+
return treeData.map(function (item) {
|
|
48
|
+
return _objectSpread(_objectSpread({}, item), {}, {
|
|
49
|
+
title: item === null || item === void 0 ? void 0 : item.name,
|
|
50
|
+
key: item === null || item === void 0 ? void 0 : item.id,
|
|
51
|
+
value: item === null || item === void 0 ? void 0 : item.id,
|
|
52
|
+
children: item !== null && item !== void 0 && item.children && item !== null && item !== void 0 && item.children.length ? dealTreeData(item === null || item === void 0 ? void 0 : item.children) : []
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
var getTreeNodeTitle = exports.getTreeNodeTitle = function getTreeNodeTitle(node, nodeKey) {
|
|
57
|
+
var nodeTitle = "";
|
|
58
|
+
node.forEach(function (_ref) {
|
|
59
|
+
var children = _ref.children,
|
|
60
|
+
key = _ref.key,
|
|
61
|
+
title = _ref.title;
|
|
62
|
+
if (key === nodeKey) {
|
|
63
|
+
nodeTitle = title;
|
|
64
|
+
} else {
|
|
65
|
+
(children === null || children === void 0 ? void 0 : children.length) && getTreeNodeTitle(children, nodeKey);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
return nodeTitle;
|
|
69
|
+
};
|
|
70
|
+
var getIntervals = exports.getIntervals = function getIntervals(value) {
|
|
71
|
+
return /(\(|\[)\s*(\d+)?\D*,\s*(\d+)?\D*(\)|\])/.exec(value);
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* 将两个对象按字段相加
|
|
76
|
+
* @param obj1
|
|
77
|
+
* @param obj2
|
|
78
|
+
* @param keys
|
|
79
|
+
* @returns 合并后的对象
|
|
80
|
+
*/
|
|
81
|
+
var mergeObjValueWithKey = exports.mergeObjValueWithKey = function mergeObjValueWithKey(obj1, obj2, keys) {
|
|
82
|
+
var obj = {};
|
|
83
|
+
keys.forEach(function (key) {
|
|
84
|
+
console.log(key, obj1[key], obj2[key]);
|
|
85
|
+
obj[key] = Number(obj1[key]) + Number(obj2[key]);
|
|
86
|
+
});
|
|
87
|
+
return obj;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* 将两个连续的开闭区间合并
|
|
92
|
+
* @param inter1
|
|
93
|
+
* @param inter2
|
|
94
|
+
* @returns 合并后的区间
|
|
95
|
+
*/
|
|
96
|
+
var mergeInterval = exports.mergeInterval = function mergeInterval(inter1, inter2) {
|
|
97
|
+
var _getIntervals;
|
|
98
|
+
var end = ((_getIntervals = getIntervals(inter2)) === null || _getIntervals === void 0 ? void 0 : _getIntervals[3]) || "";
|
|
99
|
+
console.log(inter1, inter2);
|
|
100
|
+
return inter1.replace(/(\(|\[)\s*(\d+)?\D*,\s*(\d+)?\D*(\)|\])/, function () {
|
|
101
|
+
for (var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
102
|
+
arg[_key] = arguments[_key];
|
|
103
|
+
}
|
|
104
|
+
console.log(arg, end);
|
|
105
|
+
return "".concat(arg[1]).concat(arg[2] || "", ",").concat(end).concat(arg[4] || "");
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* 合并两个连续的区间对象
|
|
111
|
+
* @param obj1
|
|
112
|
+
* @param obj2
|
|
113
|
+
* @param keys
|
|
114
|
+
*/
|
|
115
|
+
var mergeIntervalObj = exports.mergeIntervalObj = function mergeIntervalObj(obj1, obj2, keys) {
|
|
116
|
+
var interval = mergeInterval(obj1[keys[0]], obj2[keys[0]]);
|
|
117
|
+
return _objectSpread(_defineProperty({}, keys[0], interval), mergeObjValueWithKey(obj1, obj2, keys.slice(1)));
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* 合并区间,不会判断连续,返回第一元素的开始,和最后元素的结束
|
|
122
|
+
* @param fields 要合并的字段列表,第一个为区间字段
|
|
123
|
+
* @param list 要合并的数组区间
|
|
124
|
+
* */
|
|
125
|
+
var mergeIntervalList = exports.mergeIntervalList = function mergeIntervalList(list, fields) {
|
|
126
|
+
return list.reduce(function (prev, cur) {
|
|
127
|
+
var v = mergeIntervalObj(prev, cur, fields);
|
|
128
|
+
console.log("mergeIntervalObj", prev, cur, v);
|
|
129
|
+
return mergeIntervalObj(prev, cur, fields);
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* 将list区间按一定的数量来合并,不足的部分不合并
|
|
135
|
+
* @param list
|
|
136
|
+
* @param fields
|
|
137
|
+
* @param num
|
|
138
|
+
* @param start
|
|
139
|
+
* @param end 合并结束的位置,end不合并
|
|
140
|
+
* @returns
|
|
141
|
+
*/
|
|
142
|
+
var mergeIntervalsByNum = exports.mergeIntervalsByNum = function mergeIntervalsByNum(list, fields) {
|
|
143
|
+
var num = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
144
|
+
var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
145
|
+
var end = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
|
|
146
|
+
var _end = end || list.length;
|
|
147
|
+
var startList = list.slice(0, start);
|
|
148
|
+
var mergeList = list.slice(start, _end);
|
|
149
|
+
var endList = list.slice(_end);
|
|
150
|
+
var _list = [];
|
|
151
|
+
for (var i = 0; i < Math.floor(mergeList.length / num); i++) {
|
|
152
|
+
var arr = mergeList.slice(num * i, num * (i + 1));
|
|
153
|
+
var mergeObj = mergeIntervalList(arr, fields);
|
|
154
|
+
// console.log('mergeObj', mergeObj, arr);
|
|
155
|
+
_list.push(mergeObj);
|
|
156
|
+
}
|
|
157
|
+
return startList.concat(_list).concat(endList);
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* 获取数组中连续小于阈值的项,包含end
|
|
161
|
+
* @param list
|
|
162
|
+
* @param threshold
|
|
163
|
+
* @returns
|
|
164
|
+
*/
|
|
165
|
+
var getBoundaryContinuation = exports.getBoundaryContinuation = function getBoundaryContinuation(list, threshold) {
|
|
166
|
+
var flag = false,
|
|
167
|
+
cur = {
|
|
168
|
+
start: 0,
|
|
169
|
+
end: 0,
|
|
170
|
+
item: []
|
|
171
|
+
};
|
|
172
|
+
var res = [];
|
|
173
|
+
for (var i = 0; i < list.length; i++) {
|
|
174
|
+
if (list[i].value <= threshold) {
|
|
175
|
+
if (!flag) {
|
|
176
|
+
cur = {
|
|
177
|
+
start: i,
|
|
178
|
+
end: i,
|
|
179
|
+
item: []
|
|
180
|
+
};
|
|
181
|
+
flag = true;
|
|
182
|
+
}
|
|
183
|
+
cur.end = i;
|
|
184
|
+
cur.item.push(list[i]);
|
|
185
|
+
if (i === list.length - 1 && cur.item.length > 1) {
|
|
186
|
+
res.push(cur);
|
|
187
|
+
}
|
|
188
|
+
} else {
|
|
189
|
+
if (flag && cur.item.length > 1) {
|
|
190
|
+
res.push(cur);
|
|
191
|
+
}
|
|
192
|
+
flag = false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
console.log("getBoundaryContinuation", list, threshold, res);
|
|
196
|
+
return res;
|
|
197
|
+
};
|
|
198
|
+
var getBoundaryMergeStartAndEnd = exports.getBoundaryMergeStartAndEnd = function getBoundaryMergeStartAndEnd(leftBoundary, rightBoundary, leastCount, lastIndex) {
|
|
199
|
+
var leftEnd = (leftBoundary === null || leftBoundary === void 0 ? void 0 : leftBoundary.end) || -1;
|
|
200
|
+
var rightStart = (rightBoundary === null || rightBoundary === void 0 ? void 0 : rightBoundary.start) || lastIndex + 1;
|
|
201
|
+
var unMergeLen = rightStart - leftEnd - 1;
|
|
202
|
+
var cantMergeNum = leastCount - unMergeLen;
|
|
203
|
+
if (cantMergeNum <= 0) {
|
|
204
|
+
return {
|
|
205
|
+
leftEnd: leftEnd,
|
|
206
|
+
rightStart: rightStart
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
var isMergeLeft = true;
|
|
210
|
+
if (leftBoundary) {
|
|
211
|
+
cantMergeNum -= 1;
|
|
212
|
+
}
|
|
213
|
+
if (rightBoundary) {
|
|
214
|
+
cantMergeNum -= 1;
|
|
215
|
+
}
|
|
216
|
+
var hasRightLeft = function hasRightLeft() {
|
|
217
|
+
return rightStart && rightStart < lastIndex;
|
|
218
|
+
};
|
|
219
|
+
while (cantMergeNum > 0 && (leftEnd > 0 || hasRightLeft())) {
|
|
220
|
+
if (leftEnd <= 0) {
|
|
221
|
+
isMergeLeft = false;
|
|
222
|
+
} else if (!hasRightLeft()) {
|
|
223
|
+
isMergeLeft = true;
|
|
224
|
+
}
|
|
225
|
+
if (leftEnd > 0 && isMergeLeft) {
|
|
226
|
+
leftEnd -= 1;
|
|
227
|
+
cantMergeNum -= 1;
|
|
228
|
+
isMergeLeft = false;
|
|
229
|
+
}
|
|
230
|
+
if (hasRightLeft() && !isMergeLeft) {
|
|
231
|
+
rightStart += 1;
|
|
232
|
+
cantMergeNum -= 1;
|
|
233
|
+
isMergeLeft = true;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return {
|
|
237
|
+
leftEnd: leftEnd,
|
|
238
|
+
rightStart: rightStart
|
|
239
|
+
};
|
|
240
|
+
};
|
|
241
|
+
var mergeBoundaryIntervals = exports.mergeBoundaryIntervals = function mergeBoundaryIntervals(list, fields) {
|
|
242
|
+
var _boundaryContinuation, _boundaryContinuation2;
|
|
243
|
+
var param = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
244
|
+
threshold: 0,
|
|
245
|
+
leastCount: 10
|
|
246
|
+
};
|
|
247
|
+
var threshold = param.threshold,
|
|
248
|
+
leastCount = param.leastCount;
|
|
249
|
+
var boundaryContinuation = getBoundaryContinuation(list, threshold);
|
|
250
|
+
console.log("boundaryContinuation", boundaryContinuation);
|
|
251
|
+
var leftBoundary = ((_boundaryContinuation = boundaryContinuation[0]) === null || _boundaryContinuation === void 0 ? void 0 : _boundaryContinuation.start) === 0 ? boundaryContinuation[0] : null;
|
|
252
|
+
var len = boundaryContinuation.length;
|
|
253
|
+
var rightBoundary = ((_boundaryContinuation2 = boundaryContinuation[len - 1]) === null || _boundaryContinuation2 === void 0 ? void 0 : _boundaryContinuation2.end) === list.length - 1 ? boundaryContinuation[len - 1] : null;
|
|
254
|
+
if (leftBoundary && leftBoundary === rightBoundary) {
|
|
255
|
+
var middle = Math.ceil(list.length / 2);
|
|
256
|
+
leftBoundary = {
|
|
257
|
+
start: 0,
|
|
258
|
+
end: middle
|
|
259
|
+
};
|
|
260
|
+
rightBoundary = {
|
|
261
|
+
start: middle + 1,
|
|
262
|
+
end: list.length - 1
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
var _getBoundaryMergeStar = getBoundaryMergeStartAndEnd(leftBoundary, rightBoundary, leastCount, list.length - 1),
|
|
266
|
+
leftEnd = _getBoundaryMergeStar.leftEnd,
|
|
267
|
+
rightStart = _getBoundaryMergeStar.rightStart;
|
|
268
|
+
var unMergedList = list.slice(leftEnd + 1, rightStart);
|
|
269
|
+
var leftMergedList = leftBoundary ? [mergeIntervalList(list.slice(0, leftEnd + 1), fields)] : [];
|
|
270
|
+
var rightMergedList = rightBoundary ? [mergeIntervalList(list.slice(rightStart, rightBoundary.end + 1), fields)] : [];
|
|
271
|
+
var rr = leftMergedList.concat(unMergedList).concat(rightMergedList);
|
|
272
|
+
console.log("mergeBoundaryIntervals", rr, leftMergedList, unMergedList, rightMergedList);
|
|
273
|
+
return leftMergedList.concat(unMergedList).concat(rightMergedList);
|
|
274
|
+
};
|
|
275
|
+
var smartMergeIntervals = exports.smartMergeIntervals = function smartMergeIntervals(list, fields) {
|
|
276
|
+
var _boundaryContinuation3, _boundaryContinuation4;
|
|
277
|
+
var param = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
278
|
+
threshold: 0,
|
|
279
|
+
ratio: 0.5,
|
|
280
|
+
leastCount: 10
|
|
281
|
+
};
|
|
282
|
+
var threshold = param.threshold,
|
|
283
|
+
ratio = param.ratio;
|
|
284
|
+
console.log("补0", list);
|
|
285
|
+
var preMergeData = mergeIntervalsByNum(list, fields, 2, 1, list.length - 1);
|
|
286
|
+
var boundaryContinuation = getBoundaryContinuation(preMergeData, threshold);
|
|
287
|
+
console.log("preMergeData", preMergeData);
|
|
288
|
+
console.log("boundaryContinuation", boundaryContinuation);
|
|
289
|
+
var leftBoundary = ((_boundaryContinuation3 = boundaryContinuation[0]) === null || _boundaryContinuation3 === void 0 ? void 0 : _boundaryContinuation3.start) === 0 ? boundaryContinuation[0] : null;
|
|
290
|
+
var len = boundaryContinuation.length;
|
|
291
|
+
var rightBoundary = boundaryContinuation[len - 1] !== leftBoundary && ((_boundaryContinuation4 = boundaryContinuation[len - 1]) === null || _boundaryContinuation4 === void 0 ? void 0 : _boundaryContinuation4.end) === preMergeData.length - 1 ? boundaryContinuation[len - 1] : null;
|
|
292
|
+
var leftBoundaryLen = leftBoundary ? leftBoundary.item.length : 0;
|
|
293
|
+
var rightBoundaryLen = rightBoundary ? rightBoundary.item.length : 0;
|
|
294
|
+
var _ratio = (leftBoundaryLen + rightBoundaryLen) / preMergeData.length;
|
|
295
|
+
console.log("ratio", ratio, leftBoundaryLen, rightBoundaryLen);
|
|
296
|
+
if (_ratio >= ratio) {
|
|
297
|
+
console.log("auto merge boundary", ratio, _ratio);
|
|
298
|
+
return mergeBoundaryIntervals(list, fields, param);
|
|
299
|
+
}
|
|
300
|
+
return preMergeData;
|
|
301
|
+
};
|
|
302
|
+
var getRangeParams = exports.getRangeParams = function getRangeParams(value) {
|
|
303
|
+
var dimension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
304
|
+
if (!value) return value;
|
|
305
|
+
var intervals = getIntervals(value);
|
|
306
|
+
if (intervals) {
|
|
307
|
+
var res = [];
|
|
308
|
+
if (isNumeric(intervals[2])) {
|
|
309
|
+
res.push({
|
|
310
|
+
type: intervals[1] === "(" ? "gt" : "ge",
|
|
311
|
+
dimension: dimension,
|
|
312
|
+
value: intervals[2]
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
if (isNumeric(intervals[3])) {
|
|
316
|
+
res.push({
|
|
317
|
+
type: intervals[4] === ")" ? "lt" : "le",
|
|
318
|
+
dimension: dimension,
|
|
319
|
+
value: intervals[3]
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
return res;
|
|
323
|
+
}
|
|
324
|
+
var step1 = value.split("<=");
|
|
325
|
+
if (step1.length === 2) {
|
|
326
|
+
return [{
|
|
327
|
+
type: "le",
|
|
328
|
+
dimension: dimension,
|
|
329
|
+
value: Number(step1[1])
|
|
330
|
+
}];
|
|
331
|
+
}
|
|
332
|
+
var step2 = value.split("<");
|
|
333
|
+
if (step2.length === 2) {
|
|
334
|
+
return [{
|
|
335
|
+
type: "lt",
|
|
336
|
+
dimension: dimension,
|
|
337
|
+
value: Number(step2[1])
|
|
338
|
+
}];
|
|
339
|
+
}
|
|
340
|
+
var step3 = value.split(">=");
|
|
341
|
+
if (step3.length === 2) {
|
|
342
|
+
return [{
|
|
343
|
+
type: "ge",
|
|
344
|
+
dimension: dimension,
|
|
345
|
+
value: Number(step3[1])
|
|
346
|
+
}];
|
|
347
|
+
}
|
|
348
|
+
var step4 = value.split(">");
|
|
349
|
+
if (step4.length === 2) {
|
|
350
|
+
return [{
|
|
351
|
+
type: "gt",
|
|
352
|
+
dimension: dimension,
|
|
353
|
+
value: Number(step4[1])
|
|
354
|
+
}];
|
|
355
|
+
}
|
|
356
|
+
var ranges = /(-?\d+)-(-?\d+)/.exec(value);
|
|
357
|
+
if (ranges) {
|
|
358
|
+
return [{
|
|
359
|
+
type: "ge",
|
|
360
|
+
dimension: dimension,
|
|
361
|
+
value: Number(ranges[1])
|
|
362
|
+
}, {
|
|
363
|
+
type: "lt",
|
|
364
|
+
dimension: dimension,
|
|
365
|
+
value: Number(ranges[2])
|
|
366
|
+
}];
|
|
367
|
+
}
|
|
368
|
+
return value;
|
|
369
|
+
};
|
|
370
|
+
/**
|
|
371
|
+
* map结构转换为数组
|
|
372
|
+
* @param map
|
|
373
|
+
* @param type
|
|
374
|
+
* @returns
|
|
375
|
+
*/
|
|
376
|
+
var mapToArr = exports.mapToArr = function mapToArr(map, type) {
|
|
377
|
+
var iterator = map.entries();
|
|
378
|
+
var result = [];
|
|
379
|
+
var _iterator = _createForOfIteratorHelper(iterator),
|
|
380
|
+
_step;
|
|
381
|
+
try {
|
|
382
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
383
|
+
var _step$value = _slicedToArray(_step.value, 2),
|
|
384
|
+
key = _step$value[0],
|
|
385
|
+
val = _step$value[1];
|
|
386
|
+
if (type === "key") result.push(key);
|
|
387
|
+
if (type === "value") result.push(val);
|
|
388
|
+
}
|
|
389
|
+
} catch (err) {
|
|
390
|
+
_iterator.e(err);
|
|
391
|
+
} finally {
|
|
392
|
+
_iterator.f();
|
|
393
|
+
}
|
|
394
|
+
return result;
|
|
395
|
+
};
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
** 加法函数,用来得到精确的加法结果
|
|
399
|
+
** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
|
|
400
|
+
** 调用:accAdd(arg1,arg2)
|
|
401
|
+
** 返回值:arg1加上arg2的精确结果
|
|
402
|
+
**/
|
|
403
|
+
var accMod = exports.accMod = function accMod(arg1, arg2) {
|
|
404
|
+
var r1, m;
|
|
405
|
+
try {
|
|
406
|
+
r1 = arg1.toString().split(".")[1].length;
|
|
407
|
+
} catch (e) {
|
|
408
|
+
r1 = 0;
|
|
409
|
+
}
|
|
410
|
+
if (!r1) {
|
|
411
|
+
return Number(arg1) / Number(arg2);
|
|
412
|
+
}
|
|
413
|
+
m = Math.pow(10, r1);
|
|
414
|
+
return Number(arg1) * m / (Number(arg2) * m);
|
|
415
|
+
};
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
** 加法函数,用来得到精确的加法结果
|
|
419
|
+
** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
|
|
420
|
+
** 调用:accAdd(arg1,arg2)
|
|
421
|
+
** 返回值:arg1加上arg2的精确结果
|
|
422
|
+
**/
|
|
423
|
+
var accAdd = exports.accAdd = function accAdd(arg1, arg2) {
|
|
424
|
+
var r1, r2, m, addParam1, addParam2;
|
|
425
|
+
try {
|
|
426
|
+
r1 = arg1.toString().split(".")[1].length;
|
|
427
|
+
} catch (e) {
|
|
428
|
+
r1 = 0;
|
|
429
|
+
}
|
|
430
|
+
try {
|
|
431
|
+
r2 = arg2.toString().split(".")[1].length;
|
|
432
|
+
} catch (e) {
|
|
433
|
+
r2 = 0;
|
|
434
|
+
}
|
|
435
|
+
if (!r1 && !r2) {
|
|
436
|
+
return Number(arg1) + Number(arg2);
|
|
437
|
+
}
|
|
438
|
+
var c = Math.abs(r1 - r2);
|
|
439
|
+
m = Math.pow(10, Math.max(r1, r2));
|
|
440
|
+
if (c > 0) {
|
|
441
|
+
var cm = Math.pow(10, c);
|
|
442
|
+
if (r1 > r2) {
|
|
443
|
+
addParam1 = Number(arg1.toString().replace(".", ""));
|
|
444
|
+
addParam2 = Number(arg2.toString().replace(".", "")) * cm;
|
|
445
|
+
} else {
|
|
446
|
+
addParam1 = Number(arg1.toString().replace(".", "")) * cm;
|
|
447
|
+
addParam2 = Number(arg2.toString().replace(".", ""));
|
|
448
|
+
}
|
|
449
|
+
} else {
|
|
450
|
+
addParam1 = Number(arg1.toString().replace(".", ""));
|
|
451
|
+
addParam2 = Number(arg2.toString().replace(".", ""));
|
|
452
|
+
}
|
|
453
|
+
return (addParam1 + addParam2) / m;
|
|
454
|
+
};
|