cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
238 lines (237 loc) • 8.16 kB
JavaScript
import { each as each$1, isArray, isObject as isObject$1, defaults, isTypedArray, merge } from "../../../../zrender/lib/core/util.mjs";
import { TEXT_STYLE_OPTIONS } from "../../util/model.mjs";
var each = each$1;
var isObject = isObject$1;
var POSSIBLE_STYLES = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"];
function compatEC2ItemStyle(opt) {
var itemStyleOpt = opt && opt.itemStyle;
if (!itemStyleOpt) {
return;
}
for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {
var styleName = POSSIBLE_STYLES[i];
var normalItemStyleOpt = itemStyleOpt.normal;
var emphasisItemStyleOpt = itemStyleOpt.emphasis;
if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {
opt[styleName] = opt[styleName] || {};
if (!opt[styleName].normal) {
opt[styleName].normal = normalItemStyleOpt[styleName];
} else {
merge(opt[styleName].normal, normalItemStyleOpt[styleName]);
}
normalItemStyleOpt[styleName] = null;
}
if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {
opt[styleName] = opt[styleName] || {};
if (!opt[styleName].emphasis) {
opt[styleName].emphasis = emphasisItemStyleOpt[styleName];
} else {
merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);
}
emphasisItemStyleOpt[styleName] = null;
}
}
}
function convertNormalEmphasis(opt, optType, useExtend) {
if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {
var normalOpt = opt[optType].normal;
var emphasisOpt = opt[optType].emphasis;
if (normalOpt) {
if (useExtend) {
opt[optType].normal = opt[optType].emphasis = null;
defaults(opt[optType], normalOpt);
} else {
opt[optType] = normalOpt;
}
}
if (emphasisOpt) {
opt.emphasis = opt.emphasis || {};
opt.emphasis[optType] = emphasisOpt;
if (emphasisOpt.focus) {
opt.emphasis.focus = emphasisOpt.focus;
}
if (emphasisOpt.blurScope) {
opt.emphasis.blurScope = emphasisOpt.blurScope;
}
}
}
}
function removeEC3NormalStatus(opt) {
convertNormalEmphasis(opt, "itemStyle");
convertNormalEmphasis(opt, "lineStyle");
convertNormalEmphasis(opt, "areaStyle");
convertNormalEmphasis(opt, "label");
convertNormalEmphasis(opt, "labelLine");
convertNormalEmphasis(opt, "upperLabel");
convertNormalEmphasis(opt, "edgeLabel");
}
function compatTextStyle(opt, propName) {
var labelOptSingle = isObject(opt) && opt[propName];
var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;
if (textStyle) {
for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) {
var textPropName = TEXT_STYLE_OPTIONS[i];
if (textStyle.hasOwnProperty(textPropName)) {
labelOptSingle[textPropName] = textStyle[textPropName];
}
}
}
}
function compatEC3CommonStyles(opt) {
if (opt) {
removeEC3NormalStatus(opt);
compatTextStyle(opt, "label");
opt.emphasis && compatTextStyle(opt.emphasis, "label");
}
}
function processSeries(seriesOpt) {
if (!isObject(seriesOpt)) {
return;
}
compatEC2ItemStyle(seriesOpt);
removeEC3NormalStatus(seriesOpt);
compatTextStyle(seriesOpt, "label");
compatTextStyle(seriesOpt, "upperLabel");
compatTextStyle(seriesOpt, "edgeLabel");
if (seriesOpt.emphasis) {
compatTextStyle(seriesOpt.emphasis, "label");
compatTextStyle(seriesOpt.emphasis, "upperLabel");
compatTextStyle(seriesOpt.emphasis, "edgeLabel");
}
var markPoint = seriesOpt.markPoint;
if (markPoint) {
compatEC2ItemStyle(markPoint);
compatEC3CommonStyles(markPoint);
}
var markLine = seriesOpt.markLine;
if (markLine) {
compatEC2ItemStyle(markLine);
compatEC3CommonStyles(markLine);
}
var markArea = seriesOpt.markArea;
if (markArea) {
compatEC3CommonStyles(markArea);
}
var data = seriesOpt.data;
if (seriesOpt.type === "graph") {
data = data || seriesOpt.nodes;
var edgeData = seriesOpt.links || seriesOpt.edges;
if (edgeData && !isTypedArray(edgeData)) {
for (var i = 0; i < edgeData.length; i++) {
compatEC3CommonStyles(edgeData[i]);
}
}
each$1(seriesOpt.categories, function(opt) {
removeEC3NormalStatus(opt);
});
}
if (data && !isTypedArray(data)) {
for (var i = 0; i < data.length; i++) {
compatEC3CommonStyles(data[i]);
}
}
markPoint = seriesOpt.markPoint;
if (markPoint && markPoint.data) {
var mpData = markPoint.data;
for (var i = 0; i < mpData.length; i++) {
compatEC3CommonStyles(mpData[i]);
}
}
markLine = seriesOpt.markLine;
if (markLine && markLine.data) {
var mlData = markLine.data;
for (var i = 0; i < mlData.length; i++) {
if (isArray(mlData[i])) {
compatEC3CommonStyles(mlData[i][0]);
compatEC3CommonStyles(mlData[i][1]);
} else {
compatEC3CommonStyles(mlData[i]);
}
}
}
if (seriesOpt.type === "gauge") {
compatTextStyle(seriesOpt, "axisLabel");
compatTextStyle(seriesOpt, "title");
compatTextStyle(seriesOpt, "detail");
} else if (seriesOpt.type === "treemap") {
convertNormalEmphasis(seriesOpt.breadcrumb, "itemStyle");
each$1(seriesOpt.levels, function(opt) {
removeEC3NormalStatus(opt);
});
} else if (seriesOpt.type === "tree") {
removeEC3NormalStatus(seriesOpt.leaves);
}
}
function toArr(o) {
return isArray(o) ? o : o ? [o] : [];
}
function toObj(o) {
return (isArray(o) ? o[0] : o) || {};
}
function globalCompatStyle(option, isTheme) {
each(toArr(option.series), function(seriesOpt) {
isObject(seriesOpt) && processSeries(seriesOpt);
});
var axes = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"];
isTheme && axes.push("valueAxis", "categoryAxis", "logAxis", "timeAxis");
each(axes, function(axisName) {
each(toArr(option[axisName]), function(axisOpt) {
if (axisOpt) {
compatTextStyle(axisOpt, "axisLabel");
compatTextStyle(axisOpt.axisPointer, "label");
}
});
});
each(toArr(option.parallel), function(parallelOpt) {
var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;
compatTextStyle(parallelAxisDefault, "axisLabel");
compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, "label");
});
each(toArr(option.calendar), function(calendarOpt) {
convertNormalEmphasis(calendarOpt, "itemStyle");
compatTextStyle(calendarOpt, "dayLabel");
compatTextStyle(calendarOpt, "monthLabel");
compatTextStyle(calendarOpt, "yearLabel");
});
each(toArr(option.radar), function(radarOpt) {
compatTextStyle(radarOpt, "name");
if (radarOpt.name && radarOpt.axisName == null) {
radarOpt.axisName = radarOpt.name;
delete radarOpt.name;
}
if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {
radarOpt.axisNameGap = radarOpt.nameGap;
delete radarOpt.nameGap;
}
});
each(toArr(option.geo), function(geoOpt) {
if (isObject(geoOpt)) {
compatEC3CommonStyles(geoOpt);
each(toArr(geoOpt.regions), function(regionObj) {
compatEC3CommonStyles(regionObj);
});
}
});
each(toArr(option.timeline), function(timelineOpt) {
compatEC3CommonStyles(timelineOpt);
convertNormalEmphasis(timelineOpt, "label");
convertNormalEmphasis(timelineOpt, "itemStyle");
convertNormalEmphasis(timelineOpt, "controlStyle", true);
var data = timelineOpt.data;
isArray(data) && each$1(data, function(item) {
if (isObject$1(item)) {
convertNormalEmphasis(item, "label");
convertNormalEmphasis(item, "itemStyle");
}
});
});
each(toArr(option.toolbox), function(toolboxOpt) {
convertNormalEmphasis(toolboxOpt, "iconStyle");
each(toolboxOpt.feature, function(featureOpt) {
convertNormalEmphasis(featureOpt, "iconStyle");
});
});
compatTextStyle(toObj(option.axisPointer), "label");
compatTextStyle(toObj(option.tooltip).axisPointer, "label");
}
export { globalCompatStyle as default };