UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

71 lines (55 loc) 2.94 kB
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