scichart
Version:
Fast WebGL JavaScript Charting Library and Framework
78 lines (77 loc) • 3.49 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.watermarkHelpers = void 0;
var Rect_1 = require("../Core/Rect");
var Size_1 = require("../types/Size");
var WatermarkPosition_1 = require("../types/WatermarkPosition");
function calcPosition(chartWidth, chartHeight, position, isRelativeToCanvas, seriesViewRectInput, viewportSizeInput) {
var seriesViewRect = seriesViewRectInput !== null && seriesViewRectInput !== void 0 ? seriesViewRectInput : Rect_1.Rect.create(0, 0, chartWidth, chartHeight);
var viewportSize = viewportSizeInput !== null && viewportSizeInput !== void 0 ? viewportSizeInput : new Size_1.Size(chartWidth, chartHeight);
var isWideScreen = chartWidth > 500;
var wmWidth = 0;
var wmHeight = 0;
var horizontalOffset = 0;
var verticalOffset = 0;
// logoWidth, logoHeight and textWidth use the same values as in cpp SCRTRenderContext::DrawWaterMark() method
if (isWideScreen) {
var logoWidth = 32;
var logoHeight = 42;
var textWidth = 124;
wmWidth = logoWidth + textWidth;
wmHeight = logoHeight;
horizontalOffset = 5;
verticalOffset = 10;
}
else {
var logoWidth = 16;
var logoHeight = 21;
var textWidth = 63;
wmWidth = logoWidth + textWidth;
wmHeight = logoHeight;
horizontalOffset = 3;
verticalOffset = 6;
}
var left = seriesViewRect.x + horizontalOffset;
var bottom = chartHeight - (seriesViewRect.top + seriesViewRect.height) + verticalOffset;
if (isRelativeToCanvas) {
switch (position) {
case WatermarkPosition_1.EWatermarkPosition.BottomRight:
left = chartWidth - wmWidth - horizontalOffset;
bottom = chartHeight - viewportSize.height + verticalOffset;
break;
case WatermarkPosition_1.EWatermarkPosition.TopLeft:
left = horizontalOffset;
bottom = chartHeight - (verticalOffset + wmHeight);
break;
case WatermarkPosition_1.EWatermarkPosition.TopRight:
left = chartWidth - wmWidth - horizontalOffset;
bottom = chartHeight - (verticalOffset + wmHeight);
break;
case WatermarkPosition_1.EWatermarkPosition.BottomLeft:
left = horizontalOffset;
bottom = chartHeight - viewportSize.height + verticalOffset;
break;
}
}
else {
switch (position) {
case WatermarkPosition_1.EWatermarkPosition.BottomRight:
left = seriesViewRect.left + seriesViewRect.width - wmWidth - horizontalOffset;
break;
case WatermarkPosition_1.EWatermarkPosition.TopLeft:
bottom = chartHeight - (seriesViewRect.top + verticalOffset + wmHeight);
break;
case WatermarkPosition_1.EWatermarkPosition.TopRight:
left = seriesViewRect.left + seriesViewRect.width - wmWidth - horizontalOffset;
bottom = chartHeight - (seriesViewRect.top + verticalOffset + wmHeight);
break;
case WatermarkPosition_1.EWatermarkPosition.BottomLeft:
default:
break;
}
}
return { left: left, bottom: bottom };
}
exports.watermarkHelpers = {
calcPosition: calcPosition
};
;