UNPKG

@alicloud/cloud-charts

Version:

![](https://img.shields.io/npm/v/@alicloud/cloud-charts?color=%23ff8200)

76 lines (74 loc) 3.59 kB
"use strict"; exports.__esModule = true; exports.DataStructure = void 0; exports.calcDataSize = calcDataSize; exports.checkData = checkData; /** 数据结构 */ var DataStructure = exports.DataStructure = /*#__PURE__*/function (DataStructure) { DataStructure[DataStructure["Common"] = 0] = "Common"; DataStructure[DataStructure["Tree"] = 1] = "Tree"; DataStructure[DataStructure["Origin"] = 2] = "Origin"; DataStructure[DataStructure["Graph"] = 3] = "Graph"; return DataStructure; }({}); /** 数据结构检测,true表示正确,false表示错误 */ function checkData(type, data) { if (type === DataStructure.Common) { return !data || Array.isArray(data) && (data === null || data === void 0 ? void 0 : data.every(function (item) { return (item.x || item.x === 0) && (item.y || item.y === 0); })); } else if (type === DataStructure.Tree) { return !data || !data.children || Array.isArray(data.children); } else if (type === DataStructure.Origin) { return !data || Array.isArray(data) && data.every(function (item) { return !item.data || Array.isArray(item.data); }); } else { return !data || !data.nodes || Array.isArray(data.nodes); } } /** 根据数据结构类型与数据计算数据量 */ function calcDataSize(type, data) { if (type === DataStructure.Common) { var _Array$from$length, _Array$from; // x种类个数 return (_Array$from$length = (_Array$from = Array.from(new Set(data === null || data === void 0 ? void 0 : data.map(function (item) { return item.x; })))) === null || _Array$from === void 0 ? void 0 : _Array$from.length) !== null && _Array$from$length !== void 0 ? _Array$from$length : 0; } else if (type === DataStructure.Tree) { var _data$children; // 层次遍历,取每层节点数的最大值 if (!data || !(data !== null && data !== void 0 && (_data$children = data.children) !== null && _data$children !== void 0 && _data$children.length)) { return 0; } var maxNum = 0; var queue = [data]; var _loop = function _loop() { var n = queue.length; maxNum = Math.max(maxNum, n); var newQueue = []; queue.forEach(function (node) { var _node$children; if (node !== null && node !== void 0 && (_node$children = node.children) !== null && _node$children !== void 0 && _node$children.length) { newQueue = [].concat(newQueue, node === null || node === void 0 ? void 0 : node.children); } }); queue = newQueue; }; while (queue.length) { _loop(); } return maxNum; } else if (type === DataStructure.Origin) { // data数组长度中最大值 return (data === null || data === void 0 ? void 0 : data.length) > 0 ? Math.max.apply(Math, data === null || data === void 0 ? void 0 : data.map(function (item) { var _item$data$length, _item$data; return (_item$data$length = item === null || item === void 0 ? void 0 : (_item$data = item.data) === null || _item$data === void 0 ? void 0 : _item$data.length) !== null && _item$data$length !== void 0 ? _item$data$length : 0; })) : 0; } else { var _data$nodes$length, _data$nodes; // nodes数组长度 // 图数据可能只是一个空对象,不一定有nodes字段,不加兜底会返回undefined导致数据异常和图形一起显示 return (_data$nodes$length = data === null || data === void 0 ? void 0 : (_data$nodes = data.nodes) === null || _data$nodes === void 0 ? void 0 : _data$nodes.length) !== null && _data$nodes$length !== void 0 ? _data$nodes$length : 0; } }