UNPKG

scichart

Version:

Fast WebGL JavaScript Charting Library and Framework

71 lines (70 loc) 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.dataLabelHelpers = void 0; var ColumnMode_1 = require("../../../../types/ColumnMode"); /** * Returns min and max borders */ function calcXBorders(columnXMode, isXAxisFlipped, x, x1) { // Default case EColumnMode.StartEnd var min = Math.min(x, x1); var max = Math.max(x, x1); if (columnXMode === ColumnMode_1.EColumnMode.Mid || columnXMode === ColumnMode_1.EColumnMode.MidWidth) { min = x - x1 / 2; max = x + x1 / 2; } else if (columnXMode === ColumnMode_1.EColumnMode.Start) { // In RectangleDataLabelState we set x1 to columnWidth min = x; max = x + x1; } else if (columnXMode === ColumnMode_1.EColumnMode.StartWidth) { if (isXAxisFlipped) { min = x - x1; max = x; } else { min = x; max = x + x1; } } return { min: min, max: max }; } function calcYBorders(columnYMode, isYAxisFlipped, y, y1) { // Default case EColumnYMode.TopBottom var min = Math.min(y, y1); var max = Math.max(y, y1); if (columnYMode === ColumnMode_1.EColumnYMode.CenterHeight) { min = y - y1 / 2; max = y + y1 / 2; } else if (columnYMode === ColumnMode_1.EColumnYMode.TopHeight) { if (isYAxisFlipped) { min = y - y1; max = y; } else { min = y; max = y + y1; } } return { min: min, max: max }; } /** * Returns rectangle borders in pixel coordinates */ function calcRectangleBorders(columnXMode, columnYMode, isXAxisFlipped, isYAxisFlipped, x, y, x1, y1, isVerticalChart) { if (isVerticalChart) { var _a = calcXBorders(columnXMode, !isXAxisFlipped, y, y1), yMin = _a.min, yMax = _a.max; var _b = calcYBorders(columnYMode, !isYAxisFlipped, x, x1), xMin = _b.min, xMax = _b.max; return { xMin: xMin, xMax: xMax, yMin: yMin, yMax: yMax }; } else { var _c = calcXBorders(columnXMode, isXAxisFlipped, x, x1), xMin = _c.min, xMax = _c.max; var _d = calcYBorders(columnYMode, isYAxisFlipped, y, y1), yMin = _d.min, yMax = _d.max; return { xMin: xMin, xMax: xMax, yMin: yMin, yMax: yMax }; } } exports.dataLabelHelpers = { calcRectangleBorders: calcRectangleBorders };