305 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			305 lines
		
	
	
		
			8.6 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);
 | |
|       });
 | |
|     }
 | |
|   });
 | |
| } |