@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
182 lines • 9.19 kB
JavaScript
import { MultiCallRequest } from "./MultiCallRequest";
import { ItemHandlerImageLoaderService } from "./ItemHandlerImageLoaderService";
import * as Utils from "@aurigma/design-atoms-model/Utils/Utils";
export class Service {
constructor(designAtomsApiClient) {
this._designAtomsApiClient = null;
this._multiCallEnabled = false;
this._nextMultiCallRequest = null;
this._updateShapeItemHandler = (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) => {
const data = {
canvasData: canvasData,
itemData: itemData,
itemHandlerData: itemHandlerData,
};
this._designAtomsApiClient.sendRequest("UpdateShapeItemHandler", data, resolve, failure);
};
this._updateByColorData = (canvasData, colorData, itemData, colorSettings, /* not used but required */ resolve, failure) => {
const data = {
canvasData: canvasData,
colorData: colorData,
};
this._designAtomsApiClient.sendRequest("UpdateByColorData", data, resolve, failure);
};
this._updateBoundedTextItemHandler = (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) => {
const data = {
itemData: itemData,
canvasData: canvasData,
itemHandlerData: itemHandlerData,
colorSettings: colorSettings
};
this._designAtomsApiClient.sendRequest("UpdateBoundedTextItemHandler", data, resolve, failure);
};
this._updatePlainTextItemHandler = (canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) => {
const 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`));
}
get multiCallEnabled() {
return this._multiCallEnabled;
}
set multiCallEnabled(value) {
this._multiCallEnabled = value;
}
get multiCallStarted() {
return this._nextMultiCallRequest != null && this._nextMultiCallRequest.multiCallStarted;
}
beginMultiCall() {
if (!this.multiCallEnabled)
return;
if (!this.multiCallStarted)
this._nextMultiCallRequest = new MultiCallRequest(this, this.imageLoaderService);
this._nextMultiCallRequest.beginMultiCall();
}
endMultiCall(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);
}
UpdateImageItemHandler(canvasData, itemHandlerData, itemData, colorSettings, actualSize, preserveAspectRatio, url, resolve, failure) {
const data = {
canvasData: canvasData,
itemHandlerData: itemHandlerData,
itemData: itemData,
actualSize: actualSize,
preserveAspectRatio: preserveAspectRatio,
url: url
};
this._designAtomsApiClient.sendRequest("UpdateImageItemHandler", data, resolve, failure);
}
UpdateBarcodeItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
const data = {
canvasData: canvasData,
itemHandlerData: itemHandlerData,
itemData: itemData,
colorSettings: colorSettings
};
this._designAtomsApiClient.sendRequest("UpdateBarcodeItemHandler", data, resolve, failure);
}
UpdateBoundedTextItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
this._callUpdateItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure, "UpdateBoundedTextItemHandler", this._updateBoundedTextItemHandler);
}
UpdatePathBoundedTextItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
const data = {
itemData: itemData,
canvasData: canvasData,
itemHandlerData: itemHandlerData,
colorSettings: colorSettings
};
this._designAtomsApiClient.sendRequest("UpdatePathBoundedTextItemHandler", data, resolve, failure);
}
UpdatePlainTextItemHandler(canvasData, itemHandlerData, itemData, colorSettings, success, failure) {
this._callUpdateItemHandler(canvasData, itemHandlerData, itemData, colorSettings, success, failure, "UpdatePlainTextItemHandler", this._updatePlainTextItemHandler);
}
UpdateAutoScaledTextItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
const data = {
itemData: itemData,
canvasData: canvasData,
itemHandlerData: itemHandlerData,
colorSettings: colorSettings
};
this._designAtomsApiClient.sendRequest("UpdateAutoScaledTextItemHandler", data, resolve, failure);
}
UpdateArchedTextItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
const data = {
itemData: itemData,
canvasData: canvasData,
itemHandlerData: itemHandlerData,
colorSettings: colorSettings
};
this._designAtomsApiClient.sendRequest("UpdateArchedTextItemHandler", data, resolve, failure);
}
UpdateCurvedTextItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
const data = {
itemData: itemData,
canvasData: canvasData,
itemHandlerData: itemHandlerData,
colorSettings: colorSettings
};
this._designAtomsApiClient.sendRequest("UpdateCurvedTextItemHandler", data, resolve, failure);
}
UpdateByColorData(canvasData, colorData, success, failure) {
this._callUpdateItemHandler(canvasData, colorData, null, null, success, failure, "UpdateByColorData", this._updateByColorData);
}
UpdateByRectangleItemHandlerData(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure) {
this.UpdateShapeItemHandler(canvasData, itemHandlerData, itemData, colorSettings, resolve, failure);
}
UpdateShapeItemHandler(canvasData, itemHandlerData, itemData, colorSettings, success, failure) {
this._callUpdateItemHandler(canvasData, itemHandlerData, itemData, colorSettings, success, failure, "UpdateShapeItemHandler", this._updateShapeItemHandler);
}
GetImageSize(imageId, pageIndex, success, failure) {
// Multi call not implemented
this._getImageSize(imageId, pageIndex, success, failure);
}
getWatermarkItemsAsync(width, height, watermarkConfig) {
const data = {
width: width,
height: height,
watermarkConfig: watermarkConfig
};
return new Promise((resolve, reject) => {
this._designAtomsApiClient.sendRequest("getWatermarkItems", data, (result) => {
resolve(result);
}, (error, userContext, methodName) => reject({ error: error, userContext: userContext, methodName: methodName }));
});
}
getWatermarkItems(width, height, watermarkConfig, resolve, failure) {
const data = {
width: width,
height: height,
watermarkConfig: watermarkConfig
};
this._designAtomsApiClient.sendRequest("getWatermarkItems", data, resolve, failure);
}
sendRequest(methodName, data, resolve, failure, returnRawResponse = false) {
return this._designAtomsApiClient.sendRequest(methodName, data, resolve, failure, returnRawResponse);
}
_getImageSize(imageId, pageIndex, resolve, failure) {
const data = {
imageId: imageId,
pageIndex: pageIndex,
};
this._designAtomsApiClient.sendRequest("GetImageSize", data, resolve, failure);
}
_callUpdateItemHandler(canvasData, itemHandlerData, itemData, colorSettings, success, failure, serverMethodName, method) {
const 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);
}
}
//# sourceMappingURL=Service.js.map