@aurigma/design-atoms
Version: 
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
196 lines • 10.3 kB
JavaScript
import { MultiCallRequest } from "./MultiCallRequest";
import { ItemHandlerImageLoaderService } from "./ItemHandlerImageLoaderService";
import * as Utils from "@aurigma/design-atoms-model/Utils/Utils";
var Service = /** @class */ (function () {
    function Service(designAtomsApiClient) {
        var _this = this;
        this._designAtomsApiClient = null;
        this._multiCallEnabled = false;
        this._nextMultiCallRequest = null;
        this._updateShapeItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
            var data = {
                canvasData: canvasData,
                itemData: itemData,
                itemHandlerData: itemHandlerData,
            };
            _this._designAtomsApiClient.sendRequest("UpdateShapeItemHandler", data, resolve, failure);
        };
        this._updateByColorData = function (canvasData, colorData, itemData, colorSettings, /* not used but required */ resolve, failure) {
            var data = {
                canvasData: canvasData,
                colorData: colorData,
            };
            _this._designAtomsApiClient.sendRequest("UpdateByColorData", data, resolve, failure);
        };
        this._updateBoundedTextItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
            var data = {
                itemData: itemData,
                canvasData: canvasData,
                itemHandlerData: itemHandlerData,
                colorSettings: colorSettings
            };
            _this._designAtomsApiClient.sendRequest("UpdateBoundedTextItemHandler", data, resolve, failure);
        };
        this._updatePlainTextItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
            var data = {
                itemData: itemData,
                canvasData: canvasData,
                itemHandlerData: itemHandlerData,
                colorSettings: colorSettings
            };
            _this._designAtomsApiClient.sendRequest("UpdatePlainTextItemHandler", data, resolve, failure);
        };
        this._designAtomsApiClient = designAtomsApiClient;
        this.imageLoaderService = new ItemHandlerImageLoaderService(Utils.urlCombine(designAtomsApiClient.backendUrl, "/api/ccviewer"));
    }
    Object.defineProperty(Service.prototype, "multiCallEnabled", {
        get: function () {
            return this._multiCallEnabled;
        },
        set: function (value) {
            this._multiCallEnabled = value;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(Service.prototype, "multiCallStarted", {
        get: function () {
            return this._nextMultiCallRequest != null && this._nextMultiCallRequest.multiCallStarted;
        },
        enumerable: true,
        configurable: true
    });
    Service.prototype.beginMultiCall = function () {
        if (!this.multiCallEnabled)
            return;
        if (!this.multiCallStarted)
            this._nextMultiCallRequest = new MultiCallRequest(this, this.imageLoaderService);
        this._nextMultiCallRequest.beginMultiCall();
    };
    Service.prototype.endMultiCall = function (requestImage) {
        if (requestImage === void 0) { requestImage = true; }
        if (!this.multiCallEnabled)
            return Promise.resolve(false);
        if (!this.multiCallStarted)
            throw new Error("ServiceProxy: beginMultiCall should be called first to start MultiCall.");
        return this._nextMultiCallRequest.endMultiCall(requestImage);
    };
    Service.prototype.UpdateImageItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, actualSize, preserveAspectRatio, url, resolve, failure) {
        var data = {
            canvasData: canvasData,
            itemHandlerData: itemHandlerData,
            itemData: itemData,
            actualSize: actualSize,
            preserveAspectRatio: preserveAspectRatio,
            url: url
        };
        this._designAtomsApiClient.sendRequest("UpdateImageItemHandler", data, resolve, failure);
    };
    Service.prototype.UpdateBarcodeItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
        var data = {
            canvasData: canvasData,
            itemHandlerData: itemHandlerData,
            itemData: itemData,
            colorSettings: colorSettings
        };
        this._designAtomsApiClient.sendRequest("UpdateBarcodeItemHandler", data, resolve, failure);
    };
    Service.prototype.UpdateBoundedTextItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
        this._callUpdateItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure, "UpdateBoundedTextItemHandler", this._updateBoundedTextItemHandler);
    };
    Service.prototype.UpdatePathBoundedTextItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
        var data = {
            itemData: itemData,
            canvasData: canvasData,
            itemHandlerData: itemHandlerData,
            colorSettings: colorSettings
        };
        this._designAtomsApiClient.sendRequest("UpdatePathBoundedTextItemHandler", data, resolve, failure);
    };
    Service.prototype.UpdatePlainTextItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, success, failure) {
        this._callUpdateItemHandler(canvasData, itemHandlerData, itemData, colorSettings, success, failure, "UpdatePlainTextItemHandler", this._updatePlainTextItemHandler);
    };
    Service.prototype.UpdateAutoScaledTextItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
        var data = {
            itemData: itemData,
            canvasData: canvasData,
            itemHandlerData: itemHandlerData,
            colorSettings: colorSettings
        };
        this._designAtomsApiClient.sendRequest("UpdateAutoScaledTextItemHandler", data, resolve, failure);
    };
    Service.prototype.UpdateArchedTextItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
        var data = {
            itemData: itemData,
            canvasData: canvasData,
            itemHandlerData: itemHandlerData,
            colorSettings: colorSettings
        };
        this._designAtomsApiClient.sendRequest("UpdateArchedTextItemHandler", data, resolve, failure);
    };
    Service.prototype.UpdateCurvedTextItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
        var data = {
            itemData: itemData,
            canvasData: canvasData,
            itemHandlerData: itemHandlerData,
            colorSettings: colorSettings
        };
        this._designAtomsApiClient.sendRequest("UpdateCurvedTextItemHandler", data, resolve, failure);
    };
    Service.prototype.UpdateByColorData = function (canvasData, colorData, success, failure) {
        this._callUpdateItemHandler(canvasData, colorData, null, null, success, failure, "UpdateByColorData", this._updateByColorData);
    };
    Service.prototype.UpdateByRectangleItemHandlerData = function (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
        this.UpdateShapeItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure);
    };
    Service.prototype.UpdateShapeItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, success, failure) {
        this._callUpdateItemHandler(canvasData, itemHandlerData, itemData, colorSettings, success, failure, "UpdateShapeItemHandler", this._updateShapeItemHandler);
    };
    Service.prototype.GetImageSize = function (imageId, pageIndex, success, failure) {
        // Multi call not implemented
        this._getImageSize(imageId, pageIndex, success, failure);
    };
    Service.prototype.getWatermarkItemsAsync = function (width, height, watermarkConfig) {
        var _this = this;
        var data = {
            width: width,
            height: height,
            watermarkConfig: watermarkConfig
        };
        return new Promise(function (resolve, reject) {
            _this._designAtomsApiClient.sendRequest("getWatermarkItems", data, function (result) {
                resolve(result);
            }, function (error, userContext, methodName) { return reject({ error: error, userContext: userContext, methodName: methodName }); });
        });
    };
    Service.prototype.getWatermarkItems = function (width, height, watermarkConfig, resolve, failure) {
        var data = {
            width: width,
            height: height,
            watermarkConfig: watermarkConfig
        };
        this._designAtomsApiClient.sendRequest("getWatermarkItems", data, resolve, failure);
    };
    Service.prototype.sendRequest = function (methodName, data, resolve, failure, returnRawResponse) {
        if (returnRawResponse === void 0) { returnRawResponse = false; }
        return this._designAtomsApiClient.sendRequest(methodName, data, resolve, failure, returnRawResponse);
    };
    Service.prototype._getImageSize = function (imageId, pageIndex, resolve, failure) {
        var data = {
            imageId: imageId,
            pageIndex: pageIndex,
        };
        this._designAtomsApiClient.sendRequest("GetImageSize", data, resolve, failure);
    };
    Service.prototype._callUpdateItemHandler = function (canvasData, itemHandlerData, itemData, colorSettings, success, failure, serverMethodName, method) {
        var data = { canvasData: canvasData, itemHandlerData: itemHandlerData, itemData: itemData, methodName: serverMethodName };
        if (this._nextMultiCallRequest != null && this._nextMultiCallRequest.multiCallStarted) {
            if (this._nextMultiCallRequest.queueForMultiCall(data, success, failure))
                return;
        }
        method(canvasData, itemHandlerData, itemData, colorSettings, success, failure);
    };
    return Service;
}());
export { Service };
//# sourceMappingURL=Service.js.map