@visactor/vchart
Version:
charts lib based @visactor/VGrammar
68 lines (52 loc) • 2.61 kB
JavaScript
import { LinearScale } from "@visactor/vscale";
import { ComponentTypeEnum } from "../../interface/type";
import { PolarAxis } from "./axis";
import { LinearAxisMixin } from "../mixin/linear-axis-mixin";
import { mixin } from "@visactor/vutils";
import { Factory } from "../../../core/factory";
import { registerAxis } from "../base-axis";
import { CircleAxis, CircleAxisGrid, continuousTicks, LineAxis, LineAxisGrid } from "@visactor/vrender-components";
import { registerDataSetInstanceTransform } from "../../../data/register";
import { GridEnum, AxisEnum } from "../interface";
import { axisLinear } from "../../../theme/builtin/common/component/axis/linear-axis";
import { commonAxis } from "../../../theme/builtin/common/component/axis/common-axis";
import { axisAngle, axisRadius } from "../../../theme/builtin/common/component/axis/polar-axis";
export class PolarLinearAxis extends PolarAxis {
constructor() {
super(...arguments), this.type = ComponentTypeEnum.polarLinearAxis, this._zero = !0,
this._nice = !0, this._extend = {}, this._scale = new LinearScale;
}
setAttrFromSpec() {
super.setAttrFromSpec(), this.setExtraAttrFromSpec();
}
initScales() {
super.initScales(), this.setScaleNice();
}
computeDomain(data) {
return this.computeLinearDomain(data);
}
axisHelper() {
const helper = super.axisHelper();
return helper.setExtendDomain = this.setExtendDomain.bind(this), helper;
}
registerTicksTransform() {
const name = `${this.type}-ticks`;
return registerDataSetInstanceTransform(this._option.dataSet, name, continuousTicks),
name;
}
}
PolarLinearAxis.type = ComponentTypeEnum.polarLinearAxis, PolarLinearAxis.specKey = "axes",
PolarLinearAxis.builtInTheme = {
axis: commonAxis,
axisLinear: axisLinear,
axisAngle: axisAngle,
axisRadius: axisRadius
}, mixin(PolarLinearAxis, LinearAxisMixin);
export const registerPolarLinearAxis = () => {
Factory.registerGraphicComponent(AxisEnum.lineAxis, ((attrs, options) => new LineAxis(attrs, options))),
Factory.registerGraphicComponent(GridEnum.lineAxisGrid, ((attrs, options) => new LineAxisGrid(attrs, options))),
Factory.registerGraphicComponent(AxisEnum.circleAxis, ((attrs, options) => new CircleAxis(attrs, options))),
Factory.registerGraphicComponent(GridEnum.circleAxisGrid, ((attrs, options) => new CircleAxisGrid(attrs, options))),
registerAxis(), Factory.registerComponent(PolarLinearAxis.type, PolarLinearAxis);
};
//# sourceMappingURL=linear-axis.js.map