UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

88 lines (81 loc) 4.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }), exports.registerMarkArea = exports.CartesianMarkArea = void 0; const type_1 = require("../../interface/type"), utils_1 = require("../utils"), vrender_components_1 = require("@visactor/vrender-components"), vutils_1 = require("@visactor/vutils"), factory_1 = require("../../../core/factory"), base_mark_area_1 = require("./base-mark-area"), mark_area_1 = require("../../../theme/builtin/common/component/mark-area"); class CartesianMarkArea extends base_mark_area_1.BaseMarkArea { constructor() { super(...arguments), this.type = type_1.ComponentTypeEnum.markArea, this.name = type_1.ComponentTypeEnum.markArea, this.coordinateType = "cartesian"; } _newMarkAreaComponent(attr) { return new vrender_components_1.MarkArea(attr); } _computePointsAttr() { var _a; const spec = this._spec, data = this._markerData, startRelativeSeries = this._startRelativeSeries, endRelativeSeries = this._endRelativeSeries, relativeSeries = this._relativeSeries, {doXProcess: doXProcess, doYProcess: doYProcess, doXYProcess: doXYProcess, doCoordinatesProcess: doCoordinatesProcess} = (0, utils_1.getMarkAreaProcessInfo)(spec), isPositionLayout = (0, vutils_1.isValid)(spec.positions), autoRange = null !== (_a = spec.autoRange) && void 0 !== _a && _a; let points = [], lines = []; if (doXYProcess) { lines = (0, utils_1.xyLayout)(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange); const [start, end] = lines; start && start.length && end && end.length && (points = [ { x: start[0].x, y: end[0].y }, start[0], { x: end[0].x, y: start[0].y }, end[0] ]); } else if (doXProcess || doYProcess) { lines = (0, utils_1.xyLayout)(data, startRelativeSeries, endRelativeSeries, relativeSeries, autoRange); const [start, end] = lines; start && start.length && end && end.length && (points = [ ...start, end[1], end[0] ]); } else doCoordinatesProcess ? points = (0, utils_1.cartesianCoordinateLayout)(data, relativeSeries, autoRange, spec.coordinatesOffset) : isPositionLayout && (points = (0, utils_1.positionLayout)(spec.positions, relativeSeries, spec.regionRelative)); return { points: points }; } _computeOptions() { const spec = this._spec, {doXProcess: doXProcess, doYProcess: doYProcess, doXYProcess: doXYProcess, doCoordinatesProcess: doCoordinatesProcess} = (0, utils_1.getMarkAreaProcessInfo)(spec); let options; return doXYProcess ? options = [ this._processSpecByDims([ { dim: "x", specValue: spec.x }, { dim: "y", specValue: spec.y } ]), this._processSpecByDims([ { dim: "x", specValue: spec.x1 }, { dim: "y", specValue: spec.y1 } ]) ] : doXProcess ? options = [ this._processSpecByDims([ { dim: "x", specValue: spec.x } ]), this._processSpecByDims([ { dim: "x", specValue: spec.x1 } ]) ] : doYProcess ? options = [ this._processSpecByDims([ { dim: "y", specValue: spec.y } ]), this._processSpecByDims([ { dim: "y", specValue: spec.y1 } ]) ] : doCoordinatesProcess && (options = this._processSpecCoo(spec)), { options: options }; } } exports.CartesianMarkArea = CartesianMarkArea, CartesianMarkArea.type = type_1.ComponentTypeEnum.markArea, CartesianMarkArea.coordinateType = "cartesian", CartesianMarkArea.builtInTheme = { markArea: mark_area_1.markArea }; const registerMarkArea = () => { factory_1.Factory.registerComponent(CartesianMarkArea.type, CartesianMarkArea), (0, vrender_components_1.registerMarkAreaAnimate)(); }; exports.registerMarkArea = registerMarkArea; //# sourceMappingURL=cartesian-mark-area.js.map