/*
|
* 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/src/core/util';
|
import ComponentModel from '../../model/Component';
|
import { AxisModelExtendedInCreator } from '../axisModelCreator';
|
import {AxisModelCommonMixin} from '../axisModelCommonMixin';
|
import { AxisBaseOption } from '../axisCommonTypes';
|
import AngleAxis from './AngleAxis';
|
import RadiusAxis from './RadiusAxis';
|
import { AxisBaseModel } from '../AxisBaseModel';
|
import { SINGLE_REFERRING } from '../../util/model';
|
|
export interface AngleAxisOption extends AxisBaseOption {
|
mainType?: 'angleAxis';
|
/**
|
* Index of host polar component
|
*/
|
polarIndex?: number;
|
/**
|
* Id of host polar component
|
*/
|
polarId?: string;
|
|
startAngle?: number;
|
clockwise?: boolean;
|
|
splitNumber?: number;
|
|
axisLabel?: AxisBaseOption['axisLabel']
|
}
|
|
export interface RadiusAxisOption extends AxisBaseOption {
|
mainType?: 'radiusAxis';
|
/**
|
* Index of host polar component
|
*/
|
polarIndex?: number;
|
/**
|
* Id of host polar component
|
*/
|
polarId?: string;
|
}
|
|
type PolarAxisOption = AngleAxisOption | RadiusAxisOption;
|
|
class PolarAxisModel<T extends PolarAxisOption = PolarAxisOption> extends ComponentModel<T>
|
implements AxisBaseModel<T> {
|
static type = 'polarAxis';
|
|
axis: AngleAxis | RadiusAxis;
|
|
getCoordSysModel(): ComponentModel {
|
return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];
|
}
|
}
|
|
interface PolarAxisModel<T extends PolarAxisOption = PolarAxisOption>
|
extends AxisModelCommonMixin<T>, AxisModelExtendedInCreator<T> {}
|
|
zrUtil.mixin(PolarAxisModel, AxisModelCommonMixin);
|
|
export {PolarAxisModel};
|
|
export class AngleAxisModel extends PolarAxisModel<AngleAxisOption> {
|
static type = 'angleAxis';
|
type = AngleAxisModel.type;
|
axis: AngleAxis;
|
}
|
export class RadiusAxisModel extends PolarAxisModel<RadiusAxisOption> {
|
static type = 'radiusAxis';
|
type = RadiusAxisModel.type;
|
axis: RadiusAxis;
|
}
|