cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
125 lines (124 loc) • 4 kB
JavaScript
import { __extends } from "../../../../tslib/tslib.es6.mjs";
import SeriesModel from "../../model/Series.mjs";
import Tree from "../../data/Tree.mjs";
import Model from "../../model/Model.mjs";
import { createTooltipMarkup } from "../../component/tooltip/tooltipMarkup.mjs";
import { wrapTreePathInfo } from "../helper/treeHelper.mjs";
var TreeSeriesModel = function(_super) {
__extends(TreeSeriesModel2, _super);
function TreeSeriesModel2() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.hasSymbolVisual = true;
_this.ignoreStyleOnData = true;
return _this;
}
TreeSeriesModel2.prototype.getInitialData = function(option) {
var root = {
name: option.name,
children: option.data
};
var leaves = option.leaves || {};
var leavesModel = new Model(leaves, this, this.ecModel);
var tree = Tree.createTree(root, this, beforeLink);
function beforeLink(nodeData) {
nodeData.wrapMethod("getItemModel", function(model, idx) {
var node = tree.getNodeByDataIndex(idx);
if (!(node && node.children.length && node.isExpand)) {
model.parentModel = leavesModel;
}
return model;
});
}
var treeDepth = 0;
tree.eachNode("preorder", function(node) {
if (node.depth > treeDepth) {
treeDepth = node.depth;
}
});
var expandAndCollapse = option.expandAndCollapse;
var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;
tree.root.eachNode("preorder", function(node) {
var item = node.hostTree.data.getRawDataItem(node.dataIndex);
node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;
});
return tree.data;
};
TreeSeriesModel2.prototype.getOrient = function() {
var orient = this.get("orient");
if (orient === "horizontal") {
orient = "LR";
} else if (orient === "vertical") {
orient = "TB";
}
return orient;
};
TreeSeriesModel2.prototype.setZoom = function(zoom) {
this.option.zoom = zoom;
};
TreeSeriesModel2.prototype.setCenter = function(center) {
this.option.center = center;
};
TreeSeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) {
var tree = this.getData().tree;
var realRoot = tree.root.children[0];
var node = tree.getNodeByDataIndex(dataIndex);
var value = node.getValue();
var name = node.name;
while (node && node !== realRoot) {
name = node.parentNode.name + "." + name;
node = node.parentNode;
}
return createTooltipMarkup("nameValue", {
name,
value,
noValue: isNaN(value) || value == null
});
};
TreeSeriesModel2.prototype.getDataParams = function(dataIndex) {
var params = _super.prototype.getDataParams.apply(this, arguments);
var node = this.getData().tree.getNodeByDataIndex(dataIndex);
params.treeAncestors = wrapTreePathInfo(node, this);
params.collapsed = !node.isExpand;
return params;
};
TreeSeriesModel2.type = "series.tree";
TreeSeriesModel2.layoutMode = "box";
TreeSeriesModel2.defaultOption = {
z: 2,
coordinateSystem: "view",
left: "12%",
top: "12%",
right: "12%",
bottom: "12%",
layout: "orthogonal",
edgeShape: "curve",
edgeForkPosition: "50%",
roam: false,
nodeScaleRatio: 0.4,
center: null,
zoom: 1,
orient: "LR",
symbol: "emptyCircle",
symbolSize: 7,
expandAndCollapse: true,
initialTreeDepth: 2,
lineStyle: {
color: "#ccc",
width: 1.5,
curveness: 0.5
},
itemStyle: {
color: "lightsteelblue",
borderWidth: 1.5
},
label: {
show: true
},
animationEasing: "linear",
animationDuration: 700,
animationDurationUpdate: 500
};
return TreeSeriesModel2;
}(SeriesModel);
var TreeSeriesModel$1 = TreeSeriesModel;
export { TreeSeriesModel$1 as default };