|   | 
| /* | 
| * 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. | 
| */ | 
| /** | 
|  * Single coordinates system. | 
|  */ | 
| import SingleAxis from './SingleAxis.js'; | 
| import * as axisHelper from '../axisHelper.js'; | 
| import { getLayoutRect } from '../../util/layout.js'; | 
| import { each } from 'zrender/lib/core/util.js'; | 
| export var singleDimensions = ['single']; | 
| /** | 
|  * Create a single coordinates system. | 
|  */ | 
| var Single = /** @class */function () { | 
|   function Single(axisModel, ecModel, api) { | 
|     this.type = 'single'; | 
|     this.dimension = 'single'; | 
|     /** | 
|      * Add it just for draw tooltip. | 
|      */ | 
|     this.dimensions = singleDimensions; | 
|     this.axisPointerEnabled = true; | 
|     this.model = axisModel; | 
|     this._init(axisModel, ecModel, api); | 
|   } | 
|   /** | 
|    * Initialize single coordinate system. | 
|    */ | 
|   Single.prototype._init = function (axisModel, ecModel, api) { | 
|     var dim = this.dimension; | 
|     var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position')); | 
|     var isCategory = axis.type === 'category'; | 
|     axis.onBand = isCategory && axisModel.get('boundaryGap'); | 
|     axis.inverse = axisModel.get('inverse'); | 
|     axis.orient = axisModel.get('orient'); | 
|     axisModel.axis = axis; | 
|     axis.model = axisModel; | 
|     axis.coordinateSystem = this; | 
|     this._axis = axis; | 
|   }; | 
|   /** | 
|    * Update axis scale after data processed | 
|    */ | 
|   Single.prototype.update = function (ecModel, api) { | 
|     ecModel.eachSeries(function (seriesModel) { | 
|       if (seriesModel.coordinateSystem === this) { | 
|         var data_1 = seriesModel.getData(); | 
|         each(data_1.mapDimensionsAll(this.dimension), function (dim) { | 
|           this._axis.scale.unionExtentFromData(data_1, dim); | 
|         }, this); | 
|         axisHelper.niceScaleExtent(this._axis.scale, this._axis.model); | 
|       } | 
|     }, this); | 
|   }; | 
|   /** | 
|    * Resize the single coordinate system. | 
|    */ | 
|   Single.prototype.resize = function (axisModel, api) { | 
|     this._rect = getLayoutRect({ | 
|       left: axisModel.get('left'), | 
|       top: axisModel.get('top'), | 
|       right: axisModel.get('right'), | 
|       bottom: axisModel.get('bottom'), | 
|       width: axisModel.get('width'), | 
|       height: axisModel.get('height') | 
|     }, { | 
|       width: api.getWidth(), | 
|       height: api.getHeight() | 
|     }); | 
|     this._adjustAxis(); | 
|   }; | 
|   Single.prototype.getRect = function () { | 
|     return this._rect; | 
|   }; | 
|   Single.prototype._adjustAxis = function () { | 
|     var rect = this._rect; | 
|     var axis = this._axis; | 
|     var isHorizontal = axis.isHorizontal(); | 
|     var extent = isHorizontal ? [0, rect.width] : [0, rect.height]; | 
|     var idx = axis.inverse ? 1 : 0; | 
|     axis.setExtent(extent[idx], extent[1 - idx]); | 
|     this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y); | 
|   }; | 
|   Single.prototype._updateAxisTransform = function (axis, coordBase) { | 
|     var axisExtent = axis.getExtent(); | 
|     var extentSum = axisExtent[0] + axisExtent[1]; | 
|     var isHorizontal = axis.isHorizontal(); | 
|     axis.toGlobalCoord = isHorizontal ? function (coord) { | 
|       return coord + coordBase; | 
|     } : function (coord) { | 
|       return extentSum - coord + coordBase; | 
|     }; | 
|     axis.toLocalCoord = isHorizontal ? function (coord) { | 
|       return coord - coordBase; | 
|     } : function (coord) { | 
|       return extentSum - coord + coordBase; | 
|     }; | 
|   }; | 
|   /** | 
|    * Get axis. | 
|    */ | 
|   Single.prototype.getAxis = function () { | 
|     return this._axis; | 
|   }; | 
|   /** | 
|    * Get axis, add it just for draw tooltip. | 
|    */ | 
|   Single.prototype.getBaseAxis = function () { | 
|     return this._axis; | 
|   }; | 
|   Single.prototype.getAxes = function () { | 
|     return [this._axis]; | 
|   }; | 
|   Single.prototype.getTooltipAxes = function () { | 
|     return { | 
|       baseAxes: [this.getAxis()], | 
|       // Empty otherAxes | 
|       otherAxes: [] | 
|     }; | 
|   }; | 
|   /** | 
|    * If contain point. | 
|    */ | 
|   Single.prototype.containPoint = function (point) { | 
|     var rect = this.getRect(); | 
|     var axis = this.getAxis(); | 
|     var orient = axis.orient; | 
|     if (orient === 'horizontal') { | 
|       return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height; | 
|     } else { | 
|       return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height; | 
|     } | 
|   }; | 
|   Single.prototype.pointToData = function (point) { | 
|     var axis = this.getAxis(); | 
|     return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))]; | 
|   }; | 
|   /** | 
|    * Convert the series data to concrete point. | 
|    * Can be [val] | val | 
|    */ | 
|   Single.prototype.dataToPoint = function (val) { | 
|     var axis = this.getAxis(); | 
|     var rect = this.getRect(); | 
|     var pt = []; | 
|     var idx = axis.orient === 'horizontal' ? 0 : 1; | 
|     if (val instanceof Array) { | 
|       val = val[0]; | 
|     } | 
|     pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val)); | 
|     pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2; | 
|     return pt; | 
|   }; | 
|   Single.prototype.convertToPixel = function (ecModel, finder, value) { | 
|     var coordSys = getCoordSys(finder); | 
|     return coordSys === this ? this.dataToPoint(value) : null; | 
|   }; | 
|   Single.prototype.convertFromPixel = function (ecModel, finder, pixel) { | 
|     var coordSys = getCoordSys(finder); | 
|     return coordSys === this ? this.pointToData(pixel) : null; | 
|   }; | 
|   return Single; | 
| }(); | 
| function getCoordSys(finder) { | 
|   var seriesModel = finder.seriesModel; | 
|   var singleModel = finder.singleAxisModel; | 
|   return singleModel && singleModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem; | 
| } | 
| export default Single; |