255 lines
8.5 KiB
JavaScript
255 lines
8.5 KiB
JavaScript
|
|
||
|
/*
|
||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||
|
* or more contributor license agreements. See the NOTICE file
|
||
|
* distributed with this work for additional information
|
||
|
* regarding copyright ownership. The ASF licenses this file
|
||
|
* to you under the Apache License, Version 2.0 (the
|
||
|
* "License"); you may not use this file except in compliance
|
||
|
* with the License. You may obtain a copy of the License at
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing,
|
||
|
* software distributed under the License is distributed on an
|
||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
|
* KIND, either express or implied. See the License for the
|
||
|
* specific language governing permissions and limitations
|
||
|
* under the License.
|
||
|
*/
|
||
|
|
||
|
|
||
|
/**
|
||
|
* AUTO-GENERATED FILE. DO NOT MODIFY.
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||
|
* or more contributor license agreements. See the NOTICE file
|
||
|
* distributed with this work for additional information
|
||
|
* regarding copyright ownership. The ASF licenses this file
|
||
|
* to you under the Apache License, Version 2.0 (the
|
||
|
* "License"); you may not use this file except in compliance
|
||
|
* with the License. You may obtain a copy of the License at
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing,
|
||
|
* software distributed under the License is distributed on an
|
||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
|
* KIND, either express or implied. See the License for the
|
||
|
* specific language governing permissions and limitations
|
||
|
* under the License.
|
||
|
*/
|
||
|
import { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util.js';
|
||
|
import compatStyle from './helper/compatStyle.js';
|
||
|
import { normalizeToArray } from '../util/model.js';
|
||
|
import { deprecateLog, deprecateReplaceLog } from '../util/log.js';
|
||
|
function get(opt, path) {
|
||
|
var pathArr = path.split(',');
|
||
|
var obj = opt;
|
||
|
for (var i = 0; i < pathArr.length; i++) {
|
||
|
obj = obj && obj[pathArr[i]];
|
||
|
if (obj == null) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
return obj;
|
||
|
}
|
||
|
function set(opt, path, val, overwrite) {
|
||
|
var pathArr = path.split(',');
|
||
|
var obj = opt;
|
||
|
var key;
|
||
|
var i = 0;
|
||
|
for (; i < pathArr.length - 1; i++) {
|
||
|
key = pathArr[i];
|
||
|
if (obj[key] == null) {
|
||
|
obj[key] = {};
|
||
|
}
|
||
|
obj = obj[key];
|
||
|
}
|
||
|
if (overwrite || obj[pathArr[i]] == null) {
|
||
|
obj[pathArr[i]] = val;
|
||
|
}
|
||
|
}
|
||
|
function compatLayoutProperties(option) {
|
||
|
option && each(LAYOUT_PROPERTIES, function (prop) {
|
||
|
if (prop[0] in option && !(prop[1] in option)) {
|
||
|
option[prop[1]] = option[prop[0]];
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
var LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];
|
||
|
var COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];
|
||
|
var BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];
|
||
|
function compatBarItemStyle(option) {
|
||
|
var itemStyle = option && option.itemStyle;
|
||
|
if (itemStyle) {
|
||
|
for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {
|
||
|
var oldName = BAR_ITEM_STYLE_MAP[i][1];
|
||
|
var newName = BAR_ITEM_STYLE_MAP[i][0];
|
||
|
if (itemStyle[oldName] != null) {
|
||
|
itemStyle[newName] = itemStyle[oldName];
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog(oldName, newName);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
function compatPieLabel(option) {
|
||
|
if (!option) {
|
||
|
return;
|
||
|
}
|
||
|
if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');
|
||
|
}
|
||
|
option.edgeDistance = option.margin;
|
||
|
}
|
||
|
}
|
||
|
function compatSunburstState(option) {
|
||
|
if (!option) {
|
||
|
return;
|
||
|
}
|
||
|
if (option.downplay && !option.blur) {
|
||
|
option.blur = option.downplay;
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog('downplay', 'blur', 'sunburst');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
function compatGraphFocus(option) {
|
||
|
if (!option) {
|
||
|
return;
|
||
|
}
|
||
|
if (option.focusNodeAdjacency != null) {
|
||
|
option.emphasis = option.emphasis || {};
|
||
|
if (option.emphasis.focus == null) {
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \'adjacency\'}', 'graph/sankey');
|
||
|
}
|
||
|
option.emphasis.focus = 'adjacency';
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
function traverseTree(data, cb) {
|
||
|
if (data) {
|
||
|
for (var i = 0; i < data.length; i++) {
|
||
|
cb(data[i]);
|
||
|
data[i] && traverseTree(data[i].children, cb);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
export default function globalBackwardCompat(option, isTheme) {
|
||
|
compatStyle(option, isTheme);
|
||
|
// Make sure series array for model initialization.
|
||
|
option.series = normalizeToArray(option.series);
|
||
|
each(option.series, function (seriesOpt) {
|
||
|
if (!isObject(seriesOpt)) {
|
||
|
return;
|
||
|
}
|
||
|
var seriesType = seriesOpt.type;
|
||
|
if (seriesType === 'line') {
|
||
|
if (seriesOpt.clipOverflow != null) {
|
||
|
seriesOpt.clip = seriesOpt.clipOverflow;
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog('clipOverflow', 'clip', 'line');
|
||
|
}
|
||
|
}
|
||
|
} else if (seriesType === 'pie' || seriesType === 'gauge') {
|
||
|
if (seriesOpt.clockWise != null) {
|
||
|
seriesOpt.clockwise = seriesOpt.clockWise;
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog('clockWise', 'clockwise');
|
||
|
}
|
||
|
}
|
||
|
compatPieLabel(seriesOpt.label);
|
||
|
var data = seriesOpt.data;
|
||
|
if (data && !isTypedArray(data)) {
|
||
|
for (var i = 0; i < data.length; i++) {
|
||
|
compatPieLabel(data[i]);
|
||
|
}
|
||
|
}
|
||
|
if (seriesOpt.hoverOffset != null) {
|
||
|
seriesOpt.emphasis = seriesOpt.emphasis || {};
|
||
|
if (seriesOpt.emphasis.scaleSize = null) {
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');
|
||
|
}
|
||
|
seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;
|
||
|
}
|
||
|
}
|
||
|
} else if (seriesType === 'gauge') {
|
||
|
var pointerColor = get(seriesOpt, 'pointer.color');
|
||
|
pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);
|
||
|
} else if (seriesType === 'bar') {
|
||
|
compatBarItemStyle(seriesOpt);
|
||
|
compatBarItemStyle(seriesOpt.backgroundStyle);
|
||
|
compatBarItemStyle(seriesOpt.emphasis);
|
||
|
var data = seriesOpt.data;
|
||
|
if (data && !isTypedArray(data)) {
|
||
|
for (var i = 0; i < data.length; i++) {
|
||
|
if (typeof data[i] === 'object') {
|
||
|
compatBarItemStyle(data[i]);
|
||
|
compatBarItemStyle(data[i] && data[i].emphasis);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
} else if (seriesType === 'sunburst') {
|
||
|
var highlightPolicy = seriesOpt.highlightPolicy;
|
||
|
if (highlightPolicy) {
|
||
|
seriesOpt.emphasis = seriesOpt.emphasis || {};
|
||
|
if (!seriesOpt.emphasis.focus) {
|
||
|
seriesOpt.emphasis.focus = highlightPolicy;
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
compatSunburstState(seriesOpt);
|
||
|
traverseTree(seriesOpt.data, compatSunburstState);
|
||
|
} else if (seriesType === 'graph' || seriesType === 'sankey') {
|
||
|
compatGraphFocus(seriesOpt);
|
||
|
// TODO nodes, edges?
|
||
|
} else if (seriesType === 'map') {
|
||
|
if (seriesOpt.mapType && !seriesOpt.map) {
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog('mapType', 'map', 'map');
|
||
|
}
|
||
|
seriesOpt.map = seriesOpt.mapType;
|
||
|
}
|
||
|
if (seriesOpt.mapLocation) {
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateLog('`mapLocation` is not used anymore.');
|
||
|
}
|
||
|
defaults(seriesOpt, seriesOpt.mapLocation);
|
||
|
}
|
||
|
}
|
||
|
if (seriesOpt.hoverAnimation != null) {
|
||
|
seriesOpt.emphasis = seriesOpt.emphasis || {};
|
||
|
if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {
|
||
|
if (process.env.NODE_ENV !== 'production') {
|
||
|
deprecateReplaceLog('hoverAnimation', 'emphasis.scale');
|
||
|
}
|
||
|
seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;
|
||
|
}
|
||
|
}
|
||
|
compatLayoutProperties(seriesOpt);
|
||
|
});
|
||
|
// dataRange has changed to visualMap
|
||
|
if (option.dataRange) {
|
||
|
option.visualMap = option.dataRange;
|
||
|
}
|
||
|
each(COMPATITABLE_COMPONENTS, function (componentName) {
|
||
|
var options = option[componentName];
|
||
|
if (options) {
|
||
|
if (!isArray(options)) {
|
||
|
options = [options];
|
||
|
}
|
||
|
each(options, function (option) {
|
||
|
compatLayoutProperties(option);
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
}
|