@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
103 lines • 4.86 kB
JavaScript
import { RectangleF, PointF } from "@aurigma/design-atoms-model/Math";
import { BaseTextItemHandler } from "../ItemHandlers/BaseTextItemHandler";
import { Graphics } from "../Graphics";
import Environment from "@aurigma/design-atoms-model/Utils/Environment";
var TextRenderer = /** @class */ (function () {
function TextRenderer(_staticCanvas, _activeCanvas, _textWhizz, _zoom, _offset, _viewportHandler, _selectionStyle, _rgbColorParser, _canvasFactory) {
this._staticCanvas = _staticCanvas;
this._activeCanvas = _activeCanvas;
this._textWhizz = _textWhizz;
this._zoom = _zoom;
this._offset = _offset;
this._viewportHandler = _viewportHandler;
this._selectionStyle = _selectionStyle;
this._rgbColorParser = _rgbColorParser;
this._canvasFactory = _canvasFactory;
this._workspaceWidth = null;
this._workspaceHeight = null;
}
TextRenderer.prototype.setWorkspaceSize = function (width, height) {
this._workspaceWidth = width;
this._workspaceHeight = height;
};
TextRenderer.prototype.setZoom = function (value) {
this._zoom = value;
};
Object.defineProperty(TextRenderer.prototype, "offset", {
get: function () {
return this._offset;
},
set: function (value) {
this._offset = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(TextRenderer.prototype, "_scale", {
get: function () {
return Environment.screenDpi * this._zoom / 72;
},
enumerable: true,
configurable: true
});
TextRenderer.prototype._getScaledBounds = function (bounds) {
var scale = this._scale;
var left = Math.floor(bounds.left * scale);
var top = Math.floor(bounds.top * scale);
var width = Math.ceil(bounds.width * scale);
var height = Math.ceil(bounds.height * scale);
return new RectangleF(left, top, width, height);
};
TextRenderer.prototype._getScaledBoundsWithoutRound = function (bounds) {
var scale = this._scale;
var left = bounds.left * scale;
var top = bounds.top * scale;
var width = bounds.width * scale;
var height = bounds.height * scale;
return new RectangleF(left, top, width, height);
};
TextRenderer.prototype._colorToTextWhizz = function (color) {
return new this._textWhizz.Color(this._textWhizz.ColorType.rgb, [color.b, color.g, color.r, color.alpha]);
};
TextRenderer.renderTextImage = function (handler, imageContainer, imageContainerRect, itemHandlerCtx, opacityMultiplier, increaseImageRect) {
if (imageContainer.isLoaded) {
this._drawImage(handler, imageContainer, imageContainerRect, itemHandlerCtx, opacityMultiplier, increaseImageRect);
}
else if (imageContainer.isLoading || !handler.ready) {
this._drawWaitClock(handler, itemHandlerCtx);
}
};
TextRenderer.prototype._createCanvas = function (size) {
return this._canvasFactory.createCanvas(size);
};
TextRenderer.prototype._copyCanvas = function (source, size) {
var target = this._canvasFactory.createCanvas(size);
var targetCtx = target.getContext('2d');
targetCtx.drawImage(source, 0, 0);
return target;
};
TextRenderer._drawWaitClock = function (handler, itemHandlerCtx) {
var rectangle = handler.rectangle;
handler.canvas.drawWaitClock(itemHandlerCtx, new PointF(rectangle.centerX, rectangle.centerY));
};
TextRenderer._isUpdatingAfterResize = function (handler) {
return handler instanceof BaseTextItemHandler &&
(handler.getTypeName() === "BoundedTextItemHandler" || handler.getTypeName() === "PathBoundedTextItemHandler") &&
handler.isUpdatingAfterResize;
};
TextRenderer._drawImage = function (handler, imageContainer, imageContainerRect, ctx, opacityMultiplier, increaseImageRect) {
var _a;
var canvas = handler.canvas;
var item = handler.item;
var disableSmoothing = canvas.disableSmoothing;
var scale = Environment.screenDpi * canvas.zoom / 72;
if (!this._isUpdatingAfterResize(handler)) {
var drawObject = (_a = imageContainer.canvas) !== null && _a !== void 0 ? _a : imageContainer.image;
Graphics.drawImage(ctx, drawObject, handler.drawingRectangle, scale, scale, disableSmoothing, null, item.opacity * opacityMultiplier, imageContainerRect, increaseImageRect);
}
};
TextRenderer.staticCanvasMargin = 10;
return TextRenderer;
}());
export { TextRenderer };
//# sourceMappingURL=TextRenderer.js.map