@visactor/vchart
Version:
charts lib based @visactor/VGrammar
71 lines (55 loc) • 2.94 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() {
var _a, _b;
super.setAttrFromSpec(), this.setExtraAttrFromSpec();
const tickTransform = null === (_b = null === (_a = this._tickData) || void 0 === _a ? void 0 : _a[0]) || void 0 === _b ? void 0 : _b.getDataView().transformsArr.find((t => t.type === this.registerTicksTransform()));
tickTransform && (tickTransform.options = this._tickTransformOption());
}
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