| 
/* 
 | 
* 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 * as zrUtil from 'zrender/lib/core/util.js'; 
 | 
import * as graphic from '../../util/graphic.js'; 
 | 
import { makeInner } from '../../util/model.js'; 
 | 
var inner = makeInner(); 
 | 
export function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) { 
 | 
  var axis = axisModel.axis; 
 | 
  if (axis.scale.isBlank()) { 
 | 
    return; 
 | 
  } 
 | 
  // TODO: TYPE 
 | 
  var splitAreaModel = axisModel.getModel('splitArea'); 
 | 
  var areaStyleModel = splitAreaModel.getModel('areaStyle'); 
 | 
  var areaColors = areaStyleModel.get('color'); 
 | 
  var gridRect = gridModel.coordinateSystem.getRect(); 
 | 
  var ticksCoords = axis.getTicksCoords({ 
 | 
    tickModel: splitAreaModel, 
 | 
    clamp: true 
 | 
  }); 
 | 
  if (!ticksCoords.length) { 
 | 
    return; 
 | 
  } 
 | 
  // For Making appropriate splitArea animation, the color and anid 
 | 
  // should be corresponding to previous one if possible. 
 | 
  var areaColorsLen = areaColors.length; 
 | 
  var lastSplitAreaColors = inner(axisView).splitAreaColors; 
 | 
  var newSplitAreaColors = zrUtil.createHashMap(); 
 | 
  var colorIndex = 0; 
 | 
  if (lastSplitAreaColors) { 
 | 
    for (var i = 0; i < ticksCoords.length; i++) { 
 | 
      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue); 
 | 
      if (cIndex != null) { 
 | 
        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen; 
 | 
        break; 
 | 
      } 
 | 
    } 
 | 
  } 
 | 
  var prev = axis.toGlobalCoord(ticksCoords[0].coord); 
 | 
  var areaStyle = areaStyleModel.getAreaStyle(); 
 | 
  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors]; 
 | 
  for (var i = 1; i < ticksCoords.length; i++) { 
 | 
    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord); 
 | 
    var x = void 0; 
 | 
    var y = void 0; 
 | 
    var width = void 0; 
 | 
    var height = void 0; 
 | 
    if (axis.isHorizontal()) { 
 | 
      x = prev; 
 | 
      y = gridRect.y; 
 | 
      width = tickCoord - x; 
 | 
      height = gridRect.height; 
 | 
      prev = x + width; 
 | 
    } else { 
 | 
      x = gridRect.x; 
 | 
      y = prev; 
 | 
      width = gridRect.width; 
 | 
      height = tickCoord - y; 
 | 
      prev = y + height; 
 | 
    } 
 | 
    var tickValue = ticksCoords[i - 1].tickValue; 
 | 
    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex); 
 | 
    axisGroup.add(new graphic.Rect({ 
 | 
      anid: tickValue != null ? 'area_' + tickValue : null, 
 | 
      shape: { 
 | 
        x: x, 
 | 
        y: y, 
 | 
        width: width, 
 | 
        height: height 
 | 
      }, 
 | 
      style: zrUtil.defaults({ 
 | 
        fill: areaColors[colorIndex] 
 | 
      }, areaStyle), 
 | 
      autoBatch: true, 
 | 
      silent: true 
 | 
    })); 
 | 
    colorIndex = (colorIndex + 1) % areaColorsLen; 
 | 
  } 
 | 
  inner(axisView).splitAreaColors = newSplitAreaColors; 
 | 
} 
 | 
export function rectCoordAxisHandleRemove(axisView) { 
 | 
  inner(axisView).splitAreaColors = null; 
 | 
} 
 |