| 
/* 
 | 
* 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); 
 | 
      }); 
 | 
    } 
 | 
  }); 
 | 
} 
 |