cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
132 lines (131 loc) • 4.11 kB
JavaScript
import { __extends } from "../../../../tslib/tslib.es6.mjs";
import { map, each, isArray } from "../../../../zrender/lib/core/util.mjs";
import SeriesModel from "../../model/Series.mjs";
import Tree from "../../data/Tree.mjs";
import { wrapTreePathInfo } from "../helper/treeHelper.mjs";
import Model from "../../model/Model.mjs";
import enableAriaDecalForTree from "../helper/enableAriaDecalForTree.mjs";
var SunburstSeriesModel = function(_super) {
__extends(SunburstSeriesModel2, _super);
function SunburstSeriesModel2() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = SunburstSeriesModel2.type;
_this.ignoreStyleOnData = true;
return _this;
}
SunburstSeriesModel2.prototype.getInitialData = function(option, ecModel) {
var root = {
name: option.name,
children: option.data
};
completeTreeValue(root);
var levelModels = this._levelModels = map(option.levels || [], function(levelDefine) {
return new Model(levelDefine, this, ecModel);
}, this);
var tree = Tree.createTree(root, this, beforeLink);
function beforeLink(nodeData) {
nodeData.wrapMethod("getItemModel", function(model, idx) {
var node = tree.getNodeByDataIndex(idx);
var levelModel = levelModels[node.depth];
levelModel && (model.parentModel = levelModel);
return model;
});
}
return tree.data;
};
SunburstSeriesModel2.prototype.optionUpdated = function() {
this.resetViewRoot();
};
SunburstSeriesModel2.prototype.getDataParams = function(dataIndex) {
var params = _super.prototype.getDataParams.apply(this, arguments);
var node = this.getData().tree.getNodeByDataIndex(dataIndex);
params.treePathInfo = wrapTreePathInfo(node, this);
return params;
};
SunburstSeriesModel2.prototype.getLevelModel = function(node) {
return this._levelModels && this._levelModels[node.depth];
};
SunburstSeriesModel2.prototype.getViewRoot = function() {
return this._viewRoot;
};
SunburstSeriesModel2.prototype.resetViewRoot = function(viewRoot) {
viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;
var root = this.getRawData().tree.root;
if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {
this._viewRoot = root;
}
};
SunburstSeriesModel2.prototype.enableAriaDecal = function() {
enableAriaDecalForTree(this);
};
SunburstSeriesModel2.type = "series.sunburst";
SunburstSeriesModel2.defaultOption = {
z: 2,
center: ["50%", "50%"],
radius: [0, "75%"],
clockwise: true,
startAngle: 90,
minAngle: 0,
stillShowZeroSum: true,
nodeClick: "rootToNode",
renderLabelForZeroData: false,
label: {
rotate: "radial",
show: true,
opacity: 1,
align: "center",
position: "inside",
distance: 5,
silent: true
},
itemStyle: {
borderWidth: 1,
borderColor: "white",
borderType: "solid",
shadowBlur: 0,
shadowColor: "rgba(0, 0, 0, 0.2)",
shadowOffsetX: 0,
shadowOffsetY: 0,
opacity: 1
},
emphasis: {
focus: "descendant"
},
blur: {
itemStyle: {
opacity: 0.2
},
label: {
opacity: 0.1
}
},
animationType: "expansion",
animationDuration: 1e3,
animationDurationUpdate: 500,
data: [],
sort: "desc"
};
return SunburstSeriesModel2;
}(SeriesModel);
function completeTreeValue(dataNode) {
var sum = 0;
each(dataNode.children, function(child) {
completeTreeValue(child);
var childValue = child.value;
isArray(childValue) && (childValue = childValue[0]);
sum += childValue;
});
var thisValue = dataNode.value;
if (isArray(thisValue)) {
thisValue = thisValue[0];
}
if (thisValue == null || isNaN(thisValue)) {
thisValue = sum;
}
if (thisValue < 0) {
thisValue = 0;
}
isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;
}
var SunburstSeriesModel$1 = SunburstSeriesModel;
export { SunburstSeriesModel$1 as default };