cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
122 lines (121 loc) • 3.84 kB
JavaScript
import { __extends } from "../../../../tslib/tslib.es6.mjs";
import createSeriesDataSimply from "../helper/createSeriesDataSimply.mjs";
import { bind, curry } from "../../../../zrender/lib/core/util.mjs";
import { defaultEmphasis, makeInner } from "../../util/model.mjs";
import { getPercentSeats } from "../../util/number.mjs";
import { makeSeriesEncodeForNameBased } from "../../data/helper/sourceHelper.mjs";
import LegendVisualProvider from "../../visual/LegendVisualProvider.mjs";
import SeriesModel from "../../model/Series.mjs";
var innerData = makeInner();
var PieSeriesModel = function(_super) {
__extends(PieSeriesModel2, _super);
function PieSeriesModel2() {
return _super !== null && _super.apply(this, arguments) || this;
}
PieSeriesModel2.prototype.init = function(option) {
_super.prototype.init.apply(this, arguments);
this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));
this._defaultLabelLine(option);
};
PieSeriesModel2.prototype.mergeOption = function() {
_super.prototype.mergeOption.apply(this, arguments);
};
PieSeriesModel2.prototype.getInitialData = function() {
return createSeriesDataSimply(this, {
coordDimensions: ["value"],
encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)
});
};
PieSeriesModel2.prototype.getDataParams = function(dataIndex) {
var data = this.getData();
var dataInner = innerData(data);
var seats = dataInner.seats;
if (!seats) {
var valueList_1 = [];
data.each(data.mapDimension("value"), function(value) {
valueList_1.push(value);
});
seats = dataInner.seats = getPercentSeats(valueList_1, data.hostModel.get("percentPrecision"));
}
var params = _super.prototype.getDataParams.call(this, dataIndex);
params.percent = seats[dataIndex] || 0;
params.$vars.push("percent");
return params;
};
PieSeriesModel2.prototype._defaultLabelLine = function(option) {
defaultEmphasis(option, "labelLine", ["show"]);
var labelLineNormalOpt = option.labelLine;
var labelLineEmphasisOpt = option.emphasis.labelLine;
labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;
labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;
};
PieSeriesModel2.type = "series.pie";
PieSeriesModel2.defaultOption = {
z: 2,
legendHoverLink: true,
colorBy: "data",
center: ["50%", "50%"],
radius: [0, "75%"],
clockwise: true,
startAngle: 90,
minAngle: 0,
minShowLabelAngle: 0,
selectedOffset: 10,
percentPrecision: 2,
stillShowZeroSum: true,
left: 0,
top: 0,
right: 0,
bottom: 0,
width: null,
height: null,
label: {
rotate: 0,
show: true,
overflow: "truncate",
position: "outer",
alignTo: "none",
edgeDistance: "25%",
bleedMargin: 10,
distanceToLabelLine: 5
},
labelLine: {
show: true,
length: 15,
length2: 15,
smooth: false,
minTurnAngle: 90,
maxSurfaceAngle: 90,
lineStyle: {
width: 1,
type: "solid"
}
},
itemStyle: {
borderWidth: 1,
borderJoin: "round"
},
showEmptyCircle: true,
emptyCircleStyle: {
color: "lightgray",
opacity: 1
},
labelLayout: {
hideOverlap: true
},
emphasis: {
scale: true,
scaleSize: 5
},
avoidLabelOverlap: true,
animationType: "expansion",
animationDuration: 1e3,
animationTypeUpdate: "transition",
animationEasingUpdate: "cubicInOut",
animationDurationUpdate: 500,
animationEasing: "cubicInOut"
};
return PieSeriesModel2;
}(SeriesModel);
var PieSeriesModel$1 = PieSeriesModel;
export { PieSeriesModel$1 as default };