UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

86 lines (84 loc) 3.66 kB
/** * DevExtreme (viz/axes/constant_line.js) * Version: 18.2.18 * Build date: Tue Oct 18 2022 * * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createConstantLine; var _type = require("../../core/utils/type"); function createConstantLine(axis, options) { var labelOptions = options.label || {}; var labelPosition = labelOptions.position || "inside"; var parsedValue = void 0; var valueIsParsed = false; axis._checkAlignmentConstantLineLabels(labelOptions); var storedCoord = void 0; return { options: options, labelOptions: labelOptions, labelPosition: labelPosition, label: null, line: null, getParsedValue: function() { if (!valueIsParsed) { parsedValue = axis._validateUnit(options.value, "E2105", "constantLine"); valueIsParsed = true; return parsedValue } return parsedValue }, draw: function() { if (!(0, _type.isDefined)(options.value) || axis._translator.getBusinessRange().isEmpty()) { return this } var canvas = axis._getCanvasStartEnd(); var parsedValue = this.getParsedValue(); this.coord = axis._getConstantLinePos(parsedValue, canvas.start, canvas.end); var group = axis._axisConstantLineGroups[labelPosition]; if (!group) { var side = axis._isHorizontal ? labelOptions.verticalAlignment : labelOptions.horizontalAlignment; group = axis._axisConstantLineGroups[side] } if (!(0, _type.isDefined)(this.coord)) { return this } this.line = axis._createConstantLine(this.coord, { stroke: options.color, "stroke-width": options.width, dashStyle: options.dashStyle }).append(axis._axisConstantLineGroups.inside); this.label = labelOptions.visible ? axis._drawConstantLineLabels(parsedValue, labelOptions, this.coord, group) : null; this.updatePosition(); return this }, removeLabel: function() { this.label && this.label.remove() }, updatePosition: function(animate) { var canvas = axis._getCanvasStartEnd(); var coord = axis._getConstantLinePos(this.getParsedValue(), canvas.start, canvas.end); if (!(0, _type.isDefined)(coord)) { return } this.coord = coord; if (animate && storedCoord) { this.label && this.label.attr(axis._getConstantLineLabelsCoords(storedCoord, this.labelOptions)); this.line && this.line.attr(axis._getConstantLineGraphicAttributes(storedCoord)); this.label && this.label.animate(axis._getConstantLineLabelsCoords(this.coord, this.labelOptions)); this.line && this.line.animate(axis._getConstantLineGraphicAttributes(this.coord)) } else { this.label && this.label.attr(axis._getConstantLineLabelsCoords(this.coord, this.labelOptions)); this.line && this.line.attr(axis._getConstantLineGraphicAttributes(this.coord)) } }, saveCoords: function() { storedCoord = this.coord } } }