scichart
Version:
Fast WebGL JavaScript Charting Library and Framework
71 lines (70 loc) • 2.44 kB
JavaScript
;
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
};