UNPKG

@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
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