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