| 
/* 
 | 
* 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 { __extends } from "tslib"; 
 | 
import axisDefault from './axisDefault.js'; 
 | 
import { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout.js'; 
 | 
import OrdinalMeta from '../data/OrdinalMeta.js'; 
 | 
import { AXIS_TYPES } from './axisCommonTypes.js'; 
 | 
import { each, merge } from 'zrender/lib/core/util.js'; 
 | 
/** 
 | 
 * Generate sub axis model class 
 | 
 * @param axisName 'x' 'y' 'radius' 'angle' 'parallel' ... 
 | 
 */ 
 | 
export default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) { 
 | 
  each(AXIS_TYPES, function (v, axisType) { 
 | 
    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true); 
 | 
    var AxisModel = /** @class */function (_super) { 
 | 
      __extends(AxisModel, _super); 
 | 
      function AxisModel() { 
 | 
        var _this = _super !== null && _super.apply(this, arguments) || this; 
 | 
        _this.type = axisName + 'Axis.' + axisType; 
 | 
        return _this; 
 | 
      } 
 | 
      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) { 
 | 
        var layoutMode = fetchLayoutMode(this); 
 | 
        var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; 
 | 
        var themeModel = ecModel.getTheme(); 
 | 
        merge(option, themeModel.get(axisType + 'Axis')); 
 | 
        merge(option, this.getDefaultOption()); 
 | 
        option.type = getAxisType(option); 
 | 
        if (layoutMode) { 
 | 
          mergeLayoutParam(option, inputPositionParams, layoutMode); 
 | 
        } 
 | 
      }; 
 | 
      AxisModel.prototype.optionUpdated = function () { 
 | 
        var thisOption = this.option; 
 | 
        if (thisOption.type === 'category') { 
 | 
          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this); 
 | 
        } 
 | 
      }; 
 | 
      /** 
 | 
       * Should not be called before all of 'getInitailData' finished. 
 | 
       * Because categories are collected during initializing data. 
 | 
       */ 
 | 
      AxisModel.prototype.getCategories = function (rawData) { 
 | 
        var option = this.option; 
 | 
        // FIXME 
 | 
        // warning if called before all of 'getInitailData' finished. 
 | 
        if (option.type === 'category') { 
 | 
          if (rawData) { 
 | 
            return option.data; 
 | 
          } 
 | 
          return this.__ordinalMeta.categories; 
 | 
        } 
 | 
      }; 
 | 
      AxisModel.prototype.getOrdinalMeta = function () { 
 | 
        return this.__ordinalMeta; 
 | 
      }; 
 | 
      AxisModel.type = axisName + 'Axis.' + axisType; 
 | 
      AxisModel.defaultOption = defaultOption; 
 | 
      return AxisModel; 
 | 
    }(BaseAxisModelClass); 
 | 
    registers.registerComponentModel(AxisModel); 
 | 
  }); 
 | 
  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType); 
 | 
} 
 | 
function getAxisType(option) { 
 | 
  // Default axis with data is category axis 
 | 
  return option.type || (option.data ? 'category' : 'value'); 
 | 
} 
 |