@aurigma/design-atoms
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
738 lines • 100 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
import { PlainTextItem, BoundedTextItem, PathBoundedTextItem, TextVerticalAlignment, OverflowStrategy, ShrinkMode, LineItem, ImageItem, ShapeItem, RectangleItem, EllipseItem, BarcodeItem, BarcodeData, BarcodeFormat, BarcodeSubType, PlaceholderItem, ResizeMode, BaseTextItem, ContentItem, FitMode, CurvedTextItem, GroupItem, ClipartItem, ImageEffect, StrokeSettings, ShadowSettings, WrappingMode, ParagraphSettings, Size, ArchedTextItem, BlendMode } from "@aurigma/design-atoms-model/Product/Items";
import * as Utils from "@aurigma/design-atoms-model/Utils/Utils";
import { ArgumentException } from "@aurigma/design-atoms-model/Exception";
import * as _ from "underscore";
import { ShapeItemHandler } from "../ItemHandlers";
import { fitSizeToSize, ISize, rectangleEquals } from "../Utils/Math";
import { Path, PointF, RectangleF, RotatedRectangleF } from "@aurigma/design-atoms-model/Math";
import { Transform } from "@aurigma/design-atoms-model/Math/Transform";
import { ItemUtils } from "../Utils/ItemUtils";
import { JsonColorParser } from "../Serialization/JsonColorParser";
import { RgbColors } from "@aurigma/design-atoms-model";
import { ListStyleSheetManagerFactory } from "@aurigma/design-atoms-text/TextEditor/Services";
import { Utils as CommonUtils } from "../Utils/Common";
import { GmXmlParser, GmXmlSerializer } from "@aurigma/design-atoms-text/Serialization";
import { ColorPalette } from "@aurigma/design-atoms-text/Serialization/Model/ColorPalette";
import { Paragraph, Span, SpanStyle } from "@aurigma/design-atoms-text/Model";
import { OriginPointType } from "@aurigma/design-atoms-interfaces";
var ItemsDataApplier = /** @class */ (function () {
function ItemsDataApplier(_productHandler, _canvas, _productThemeManager) {
var _this = this;
this._productHandler = _productHandler;
this._canvas = _canvas;
this._productThemeManager = _productThemeManager;
this._applyImagePermissions = function (imagePermissionsConf, imagePermissions) {
if (imagePermissionsConf == null)
return;
imagePermissions.allowChangeImage = Utils.applyNullableValue(imagePermissions.allowChangeImage, imagePermissionsConf.allowChangeImage);
imagePermissions.allowEditImage = Utils.applyNullableValue(imagePermissions.allowEditImage, imagePermissionsConf.allowEditImage);
imagePermissions.allowKeepOverlayColor = Utils.applyNullableValue(imagePermissions.allowKeepOverlayColor, imagePermissionsConf.allowKeepOverlayColor);
};
this._applyBarcodePermissions = function (barcodePermissionsConf, barcodePermissions) {
if (barcodePermissionsConf == null)
return;
barcodePermissions.allowChangeBarcodeType = Utils.applyNullableValue(barcodePermissions.allowChangeBarcodeType, barcodePermissionsConf.allowChangeBarcodeType);
barcodePermissions.allowChangeBarcodeContent = Utils.applyNullableValue(barcodePermissions.allowChangeBarcodeContent, barcodePermissionsConf.allowChangeBarcodeContent);
barcodePermissions.allowChangeBarcodeColor = Utils.applyNullableValue(barcodePermissions.allowChangeBarcodeColor, barcodePermissionsConf.allowChangeBarcodeColor);
};
this._updateThemeForItem = function (item) { return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this._productThemeManager.applyToItem(item, this._productThemeManager.currentProductTheme)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
}); };
this._colorParser = this._canvas.viewer.colorParser;
this._listStyleSheetManagerFactory = new ListStyleSheetManagerFactory(CommonUtils.getListSettingFromConfig(_canvas.viewerConfiguration.listSettings));
}
ItemsDataApplier.prototype.applyToItem = function (item, data, params) {
if (params === void 0) { params = null; }
return __awaiter(this, void 0, void 0, function () {
var normalizedParams, isItemUpdated, onPropertyChanged;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (data == null)
return [2 /*return*/];
normalizedParams = Object.assign({
ignorePermissions: true,
changePosition: false,
relativeToPrintArea: true
}, params || {});
isItemUpdated = false;
onPropertyChanged = function () { return isItemUpdated = true; };
item.addPropertyChanged(onPropertyChanged);
if (!(item instanceof PlaceholderItem)) return [3 /*break*/, 2];
return [4 /*yield*/, this._applyToPlaceholderItem(item, data, normalizedParams)];
case 1:
_a.sent();
return [3 /*break*/, 20];
case 2:
if (!(item instanceof ImageItem)) return [3 /*break*/, 4];
return [4 /*yield*/, this._applyToImage(item, data, normalizedParams)];
case 3:
_a.sent();
return [3 /*break*/, 20];
case 4:
if (!(item instanceof BaseTextItem)) return [3 /*break*/, 6];
return [4 /*yield*/, this._applyToText(item, data, normalizedParams)];
case 5:
_a.sent();
return [3 /*break*/, 20];
case 6:
if (!(item instanceof BarcodeItem)) return [3 /*break*/, 8];
return [4 /*yield*/, this._applyToBarcode(item, data, normalizedParams)];
case 7:
_a.sent();
return [3 /*break*/, 20];
case 8:
if (!(item instanceof EllipseItem)) return [3 /*break*/, 10];
return [4 /*yield*/, this._applyToEllipse(item, data, normalizedParams)];
case 9:
_a.sent();
return [3 /*break*/, 20];
case 10:
if (!(item instanceof RectangleItem)) return [3 /*break*/, 12];
return [4 /*yield*/, this._applyToRectangle(item, data, normalizedParams)];
case 11:
_a.sent();
return [3 /*break*/, 20];
case 12:
if (!(item instanceof ShapeItem)) return [3 /*break*/, 14];
return [4 /*yield*/, this._applyToShapeItem(item, data, normalizedParams)];
case 13:
_a.sent();
return [3 /*break*/, 20];
case 14:
if (!(item instanceof LineItem)) return [3 /*break*/, 16];
return [4 /*yield*/, this._applyToLineItem(item, data, normalizedParams)];
case 15:
_a.sent();
return [3 /*break*/, 20];
case 16:
if (!(item instanceof ClipartItem)) return [3 /*break*/, 18];
return [4 /*yield*/, this._applyToClipartItem(item, data, normalizedParams)];
case 17:
_a.sent();
return [3 /*break*/, 20];
case 18:
if (!(item instanceof GroupItem)) return [3 /*break*/, 20];
return [4 /*yield*/, this._applyToGroupItem(item, data, normalizedParams)];
case 19:
_a.sent();
_a.label = 20;
case 20:
item.removePropertyChanged(onPropertyChanged);
if (!(isItemUpdated && this._productHandler.product != null && this._productHandler.product.getAllItems().includes(item))) return [3 /*break*/, 22];
return [4 /*yield*/, this._productHandler.getHandler(item).updateAsync()];
case 21:
_a.sent();
this._canvas.redraw();
this._canvas.updateSelection();
_a.label = 22;
case 22: return [2 /*return*/, isItemUpdated];
}
});
});
};
ItemsDataApplier.prototype._applyToText = function (item, itemData, params) {
var _a;
return __awaiter(this, void 0, void 0, function () {
var settings;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
if (!(itemData != null)) return [3 /*break*/, 3];
if (itemData.textPermissions != null) {
item.textPermissions.allowChangeText = Utils.applyNullableValue(item.textPermissions.allowChangeText, itemData.textPermissions.allowChangeText);
item.textPermissions.allowChangeFont = Utils.applyNullableValue(item.textPermissions.allowChangeFont, itemData.textPermissions.allowChangeFont);
item.textPermissions.allowChangeFontSize = Utils.applyNullableValue(item.textPermissions.allowChangeFontSize, itemData.textPermissions.allowChangeFontSize);
item.textPermissions.allowChangeFontColor = Utils.applyNullableValue(item.textPermissions.allowChangeFontColor, itemData.textPermissions.allowChangeFontColor);
item.textPermissions.allowChangeTextAlignment = Utils.applyNullableValue(item.textPermissions.allowChangeTextAlignment, itemData.textPermissions.allowChangeTextAlignment);
item.textPermissions.allowChangeTextBIU = Utils.applyNullableValue(item.textPermissions.allowChangeTextBIU, itemData.textPermissions.allowChangeTextBIU);
item.textPermissions.allowChangeShadow = Utils.applyNullableValue(item.textPermissions.allowChangeShadow, itemData.textPermissions.allowChangeShadow);
item.textPermissions.allowChangeStroke = Utils.applyNullableValue(item.textPermissions.allowChangeStroke, itemData.textPermissions.allowChangeStroke);
item.textPermissions.allowTextFormatting = Utils.applyNullableValue(item.textPermissions.allowTextFormatting, itemData.textPermissions.allowTextFormatting);
item.textPermissions.allowChangeStrokeColor = (_a = itemData.textPermissions.allowChangeStrokeColor) !== null && _a !== void 0 ? _a : item.textPermissions.allowChangeStrokeColor;
}
if (item instanceof PlainTextItem || item instanceof BoundedTextItem || item instanceof PathBoundedTextItem)
item.isVertical = Utils.applyNullableValue(item.isVertical, itemData.isVertical);
if (!(item instanceof CurvedTextItem) && !(item instanceof ArchedTextItem))
item.maxLineCount = Utils.applyNullableValue(item.maxLineCount, itemData.maxLineCount);
item.maxLineLength = Utils.applyNullableValue(item.maxLineLength, itemData.maxLineLength);
if (!(item instanceof BoundedTextItem || item instanceof PathBoundedTextItem)) return [3 /*break*/, 2];
item.wrappingMargin = Utils.applyNullableValue(item.wrappingMargin, itemData.wrappingMargin);
item.characterLimit = Utils.applyNullableValue(item.characterLimit, itemData.characterLimit);
if (!(itemData.paragraphSettings != null)) return [3 /*break*/, 2];
settings = new ParagraphSettings(item.paragraphSettings);
settings.FirstLineIndent = Utils.applyNullableValue(settings.FirstLineIndent, itemData.paragraphSettings.firstLineIndent);
settings.SpaceBefore = Utils.applyNullableValue(settings.SpaceBefore, itemData.paragraphSettings.spaceBefore);
settings.SpaceAfter = Utils.applyNullableValue(settings.SpaceAfter, itemData.paragraphSettings.spaceAfter);
settings.LeftIndent = Utils.applyNullableValue(settings.LeftIndent, itemData.paragraphSettings.leftIndent);
settings.RightIndent = Utils.applyNullableValue(settings.RightIndent, itemData.paragraphSettings.rightIndent);
item.paragraphSettings = settings;
if (!params.applyPropertiesDeep) return [3 /*break*/, 2];
return [4 /*yield*/, this._removeParagraphStyleFromText(item, itemData)];
case 1:
_b.sent();
_b.label = 2;
case 2:
if (item instanceof BoundedTextItem) {
if (itemData.verticalAlignment != null) {
if (typeof itemData.verticalAlignment === "string") {
switch (itemData.verticalAlignment.toLowerCase()) {
case "top":
item.verticalAlignment = TextVerticalAlignment.Top;
break;
case "center":
item.verticalAlignment = TextVerticalAlignment.Center;
break;
case "bottom":
item.verticalAlignment = TextVerticalAlignment.Bottom;
break;
}
}
else {
item.verticalAlignment = itemData.verticalAlignment;
}
}
item.shrinkMode = Utils.applyNullableValue(item.shrinkMode, this._convertShrinkMode(itemData.textShrinkMode));
}
if (item instanceof ArchedTextItem) {
item.bend = Utils.applyNullableValue(item.bend, itemData.bend);
item.warp = Utils.applyNullableValue(item.warp, itemData.warp);
}
_b.label = 3;
case 3: return [4 /*yield*/, this._applyToBaseTextItem(item, itemData, params)];
case 4:
_b.sent();
if (item instanceof BoundedTextItem)
item.overflowStrategy = Utils.applyNullableValue(item.overflowStrategy, this._convertOverflowStrategy(itemData === null || itemData === void 0 ? void 0 : itemData.overflowStrategy));
return [2 /*return*/];
}
});
});
};
ItemsDataApplier.prototype._convertShrinkMode = function (shrinkModeString) {
if (shrinkModeString == null)
return null;
if (typeof (shrinkModeString) === "number")
return shrinkModeString;
switch (shrinkModeString) {
case "scale":
return ShrinkMode.Scale;
case "size":
return ShrinkMode.Size;
default:
throw new ArgumentException("Invalid shrink mode.");
}
};
ItemsDataApplier.prototype._convertOverflowStrategy = function (overflowStrategyString) {
if (overflowStrategyString == null)
return null;
if (typeof (overflowStrategyString) === "number")
return overflowStrategyString;
switch (overflowStrategyString) {
case "clip":
return OverflowStrategy.Clip;
case "fitToWidth":
return OverflowStrategy.FitToWidth;
case "fitToBox":
return OverflowStrategy.FitToBox;
case "expandBox":
return OverflowStrategy.ExpandBox;
default:
throw new ArgumentException("Invalid overflow strategy.");
}
};
ItemsDataApplier.prototype._applyToLineItem = function (item, itemData, params) {
return __awaiter(this, void 0, void 0, function () {
var targetContainer, targetPrintArea, center, rectangleWidth, value, newSelectionBounds, color, angle, margin, targetRec, scale, itemHandler, rect, newRectSize, itemRectCenter, diffX, diffY;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (itemData.linePermissions != null) {
item.linePermissions.allowChangeLineColor = Utils.applyNullableValue(item.linePermissions.allowChangeLineColor, itemData.linePermissions.allowChangeLineColor);
item.linePermissions.allowChangeLineWidth = Utils.applyNullableValue(item.linePermissions.allowChangeLineWidth, itemData.linePermissions.allowChangeLineWidth);
}
targetContainer = this._productHandler.userEditContainer;
targetPrintArea = this._productHandler.userEditPrintArea;
center = targetPrintArea != null ? targetPrintArea.bounds.center : new PointF(50, 50);
rectangleWidth = targetContainer != null ? this._productHandler.getPrintAreaVisualSize(targetContainer).width * 0.4 : 10;
if (params.ignorePermissions || item.linePermissions.allowChangeLineWidth) {
value = Utils.applyNullableValue(item.width, itemData.width);
if (targetContainer == null || targetContainer.region == null || !this._productHandler.suppressOutOfRegionManipulation) {
item.width = value;
}
else {
newSelectionBounds = this._calcNewGroupBounds(this._productHandler.selectedItems, value);
if (rectangleEquals(RectangleF.intersect(targetContainer.region, newSelectionBounds), newSelectionBounds))
item.width = value;
}
item.fixedWidth = Utils.applyNullableValue(item.fixedWidth, itemData.fixedWidth);
}
if (params.changePosition) {
if (itemData.point0 != null) {
item.sourcePoint0.x = Utils.applyNullableValue(item.sourcePoint0.x, itemData.point0.x);
item.sourcePoint0.y = Utils.applyNullableValue(item.sourcePoint0.y, itemData.point0.y);
}
else {
item.sourcePoint0 = new PointF(center.x - rectangleWidth / 2, center.y);
}
if (itemData.point1 != null) {
item.sourcePoint1.x = Utils.applyNullableValue(item.sourcePoint1.x, itemData.point1.x);
item.sourcePoint1.y = Utils.applyNullableValue(item.sourcePoint1.y, itemData.point1.y);
}
else {
item.sourcePoint1 = new PointF(center.x + rectangleWidth / 2, center.y);
}
}
if (itemData.color != null && (params.ignorePermissions || item.linePermissions.allowChangeLineColor)) {
color = this._colorParser.parse(itemData.color);
item.color = Utils.applyNullableValue(item.color, color);
}
if (itemData.overprintStroke != null)
item.overprintStroke = itemData.overprintStroke;
angle = this._productHandler.contentAngle;
if (angle > 0) {
item.transform.rotate(-angle);
}
margin = item.width + 0.01;
targetRec = targetContainer != null ? this._getRotatedRegion(targetContainer) : null;
if (targetRec != null) {
targetRec.width -= margin;
targetRec.height -= margin;
scale = 1;
itemHandler = this._productHandler.getHandler(item);
rect = item instanceof PlaceholderItem ? itemHandler.getBoundsIncludingFrames() : itemHandler.bounds;
if (rect.width > targetRec.width || rect.height > targetRec.height) {
newRectSize = fitSizeToSize(ISize.from(rect), ISize.from(targetRec));
newRectSize.width *= 0.9;
newRectSize.height *= 0.9;
scale = newRectSize.width / rect.width;
}
itemRectCenter = new PointF(rect.left + (rect.width / 2), rect.top + (rect.height / 2));
diffX = itemRectCenter.x - targetRec.left - (targetRec.width / 2);
diffY = itemRectCenter.y - targetRec.top - (targetRec.height / 2);
item.transform.setScaleX(scale * item.transform.scaleX);
item.transform.setScaleY(scale * item.transform.scaleY);
item.transform.setTranslateX(item.transform.translateX - diffX - ((itemHandler.getTransformedRectangle().centerX - itemRectCenter.x) * (1 - scale)));
item.transform.setTranslateY(item.transform.translateY - diffY - ((itemHandler.getTransformedRectangle().centerY - itemRectCenter.y) * (1 - scale)));
}
return [4 /*yield*/, this._applyToItem(item, itemData, params)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
ItemsDataApplier.prototype._applyToRectangle = function (item, itemData, params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this._applyToShapeItem(item, itemData, params)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
ItemsDataApplier.prototype._applyToGroupItem = function (item, itemData, params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this._applyToItem(item, itemData, params)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
ItemsDataApplier.prototype._applyToEllipse = function (item, itemData, params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this._applyToShapeItem(item, itemData, params)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
ItemsDataApplier.prototype._applyToClipartItem = function (item, itemData, params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this._applyToItem(item, itemData, params)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
ItemsDataApplier.prototype._applyToBarcode = function (item, itemData, params) {
return __awaiter(this, void 0, void 0, function () {
var barcodeData;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this._applyBarcodePermissions(itemData.barcodePermissions, item.barcodePermissions);
this._applyBarcodeOptions(item.barcodeOptions, itemData.barcodeOptions);
if (itemData.barcodeContent != null && (item.barcodePermissions.allowChangeBarcodeContent || !params.ignorePermissions) && item.barcodeData.isEmpty) {
barcodeData = new BarcodeData(itemData.barcodeContent);
if (item.barcodePermissions.allowChangeBarcodeType && !params.ignorePermissions)
barcodeData.barcodeFormat = item.barcodeFormat;
if (barcodeData.barcodeFormat === BarcodeFormat.QR_CODE &&
barcodeData.barcodeSubType === BarcodeSubType.None) {
barcodeData.barcodeSubType = BarcodeSubType.Url;
}
item.applyBarcodeData(barcodeData);
}
if (itemData.color != null && (params.ignorePermissions || item.barcodePermissions.allowChangeBarcodeColor)) {
item.color = this._colorParser.parse(itemData.color);
}
return [4 /*yield*/, this._applyToContentItem(item, itemData, params)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
;
ItemsDataApplier.prototype._applyBarcodeOptions = function (barcodeOptions, barcodeOptionsData) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
if (barcodeOptionsData == null)
return;
barcodeOptions.margin = (_a = barcodeOptionsData.margin) !== null && _a !== void 0 ? _a : barcodeOptions.margin;
barcodeOptions.pureBarcode = (_b = barcodeOptionsData.pureBarcode) !== null && _b !== void 0 ? _b : barcodeOptions.pureBarcode;
barcodeOptions.errorCorrection = (_c = barcodeOptionsData.errorCorrection) !== null && _c !== void 0 ? _c : barcodeOptions.errorCorrection;
barcodeOptions.characterSet = (_d = barcodeOptionsData.characterSet) !== null && _d !== void 0 ? _d : barcodeOptions.characterSet;
barcodeOptions.pdf417Compact = (_e = barcodeOptionsData.pdf417Compact) !== null && _e !== void 0 ? _e : barcodeOptions.pdf417Compact;
barcodeOptions.pdf417Compaction = (_f = barcodeOptionsData.pdf417Compaction) !== null && _f !== void 0 ? _f : barcodeOptions.pdf417Compaction;
if (barcodeOptionsData.pdf417Dimensions != null)
barcodeOptions.pdf417Dimensions = __assign({}, barcodeOptionsData.pdf417Dimensions);
barcodeOptions.disableEci = (_g = barcodeOptionsData.disableEci) !== null && _g !== void 0 ? _g : barcodeOptions.disableEci;
barcodeOptions.code128ForceCodesetB = (_h = barcodeOptionsData.code128ForceCodesetB) !== null && _h !== void 0 ? _h : barcodeOptions.code128ForceCodesetB;
barcodeOptions.aztecLayers = (_j = barcodeOptionsData.aztecLayers) !== null && _j !== void 0 ? _j : barcodeOptions.aztecLayers;
barcodeOptions.qrVersion = (_k = barcodeOptionsData.qrVersion) !== null && _k !== void 0 ? _k : barcodeOptions.qrVersion;
barcodeOptions.xDimension = (_l = barcodeOptionsData.xDimension) !== null && _l !== void 0 ? _l : barcodeOptions.xDimension;
barcodeOptions.databarExpandedSegments = (_m = barcodeOptionsData.databarExpandedSegments) !== null && _m !== void 0 ? _m : barcodeOptions.databarExpandedSegments;
};
ItemsDataApplier.prototype._applyToPlaceholderItem = function (item, itemData, params) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
return __awaiter(this, void 0, void 0, function () {
var cntPerms, barcodePerms, itemBarcodePerms, imagePerms, itemImagePerms, barcodeFormatFromConfig, contentItem, size, contentParams, data, contentItemHandler, placeholderItemHandler;
return __generator(this, function (_l) {
switch (_l.label) {
case 0:
if (itemData.placeholderPermissions != null) {
item.placeholderPermissions.allowEditContent = Utils.applyNullableValue(item.placeholderPermissions.allowEditContent, itemData.placeholderPermissions.allowEditContent);
item.placeholderPermissions.showSelectButton = Utils.applyNullableValue(item.placeholderPermissions.showSelectButton, itemData.placeholderPermissions.showSelectButton);
item.placeholderPermissions.showHandleButton = Utils.applyNullableValue(item.placeholderPermissions.showHandleButton, itemData.placeholderPermissions.showHandleButton);
}
if (itemData.contentFillColor) {
item.contentFillColor = this._colorParser.parse(itemData.contentFillColor);
if (item.content && item.content.type == ImageItem.type) {
if (item.content.effect === ImageEffect.Colorize) {
item.content.fillColor = this._colorParser.parse(itemData.contentFillColor);
}
}
}
cntPerms = itemData.contentPermissions;
if (cntPerms != null) {
barcodePerms = cntPerms.barcodePermissions;
if (barcodePerms != null) {
itemBarcodePerms = item.contentPermissions.barcodePermissions;
itemBarcodePerms.allowChangeBarcodeColor = (_a = barcodePerms.allowChangeBarcodeColor) !== null && _a !== void 0 ? _a : itemBarcodePerms.allowChangeBarcodeColor;
itemBarcodePerms.allowChangeBarcodeContent = (_b = barcodePerms.allowChangeBarcodeContent) !== null && _b !== void 0 ? _b : itemBarcodePerms.allowChangeBarcodeContent;
itemBarcodePerms.allowChangeBarcodeType = (_c = barcodePerms.allowChangeBarcodeType) !== null && _c !== void 0 ? _c : itemBarcodePerms.allowChangeBarcodeType;
}
imagePerms = cntPerms.imagePermissions;
if (imagePerms != null) {
itemImagePerms = item.contentPermissions.imagePermissions;
itemImagePerms.allowChangeImage = (_d = imagePerms.allowChangeImage) !== null && _d !== void 0 ? _d : itemImagePerms.allowChangeImage;
itemImagePerms.allowEditImage = (_e = imagePerms.allowEditImage) !== null && _e !== void 0 ? _e : itemImagePerms.allowEditImage;
itemImagePerms.allowKeepOverlayColor = (_f = imagePerms.allowKeepOverlayColor) !== null && _f !== void 0 ? _f : itemImagePerms.allowKeepOverlayColor;
}
}
item.violationSettings.allowImageQuality = (_h = (_g = itemData.violationSettings) === null || _g === void 0 ? void 0 : _g.allowImageQuality) !== null && _h !== void 0 ? _h : item.violationSettings.allowImageQuality;
if (itemData.contentResizeMode != null) {
switch (itemData.contentResizeMode.toLowerCase()) {
case "original":
item.contentResizeMode = ResizeMode.Original;
break;
case "fill":
item.contentResizeMode = ResizeMode.Fill;
break;
case "fit":
item.contentResizeMode = ResizeMode.Fit;
break;
}
}
item.isStubContent = Utils.applyNullableValue(item.isStubContent, itemData.isStubContent);
item.allowedSubfolder = Utils.applyNullableValue(item.allowedSubfolder, itemData.allowedSubfolder);
item.allowedTabs = Utils.applyNullableValue(item.allowedTabs, itemData.allowedTabs);
item.isVariable = Utils.applyNullableValue(item.isVariable, itemData.isVariable);
item.isCoverMode = Utils.applyNullableValue(item.isCoverMode, itemData.isCoverMode);
item.fixedStubContentSize = Utils.applyNullableValue(item.fixedStubContentSize, itemData.fixedStubContentSize);
barcodeFormatFromConfig = (_j = itemData.barcodeFormat) !== null && _j !== void 0 ? _j : (_k = itemData.barcodeContent) === null || _k === void 0 ? void 0 : _k.barcodeFormat;
item.barcodeFormat = Utils.applyNullableValue(item.barcodeFormat, barcodeFormatFromConfig);
if (item.content == null) {
contentItem = void 0;
if (itemData.contentImageUrl != null) {
contentItem = new ImageItem();
}
else if (item.isBarcodePlaceholder) {
size = ItemsDataApplier.getBarcodeRatio(item.barcodeFormat);
contentItem = new BarcodeItem(null, null, null, new RectangleF(0, 0, size.width, size.height));
}
item.content = contentItem;
}
if (!(item.content != null)) return [3 /*break*/, 5];
contentParams = _.clone(params);
contentParams.changePosition = false;
if (itemData.contentOverlayEffect != null) {
ItemUtils.applyOverlayEffect(item, itemData.contentOverlayEffect);
}
if (!(item.content instanceof ImageItem)) return [3 /*break*/, 2];
data = {
imageUrl: itemData.contentImageUrl,
imagePermissions: item.contentPermissions.imagePermissions,
overlayEffect: itemData.contentOverlayEffect
};
return [4 /*yield*/, this._applyToImage(item.content, data, contentParams)];
case 1:
_l.sent();
return [3 /*break*/, 4];
case 2:
if (!(item.content instanceof BarcodeItem)) return [3 /*break*/, 4];
return [4 /*yield*/, this._applyToBarcode(item.content, {
barcodeContent: itemData.barcodeContent || { barcodeFormat: item.barcodeFormat, barcodeValue: "" },
barcodePermissions: item.contentPermissions.barcodePermissions,
barcodeOptions: itemData.contentBarcodeOptions,
color: itemData.contentBarcodeColor
}, contentParams)];
case 3:
_l.sent();
item.barcodeFormat = item.content.barcodeFormat;
item.shapePermissions.allowChangeFillColor = true;
_l.label = 4;
case 4:
if (item.barcodeFormat == null) {
item.imageContent.allowedSubfolder = item.allowedSubfolder;
item.imageContent.allowedTabs = item.allowedTabs;
}
_l.label = 5;
case 5: return [4 /*yield*/, this._applyToShapeItem(item, itemData, params)];
case 6:
_l.sent();
if (itemData.contentImageUrl == null && item.barcodeFormat == null)
return [2 /*return*/];
contentItemHandler = this._productHandler.getHandler(item.content);
return [4 /*yield*/, contentItemHandler.waitUpdate()];
case 7:
_l.sent();
placeholderItemHandler = this._productHandler.getHandler(item);
contentItemHandler.updateRectangle(false, item.contentResizeMode, placeholderItemHandler);
return [2 /*return*/];
}
});
});
};
ItemsDataApplier.prototype._applyToImage = function (item, config, params) {
var _a, _b;
return __awaiter(this, void 0, void 0, function () {
var imageItemHandler;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
if (!(config != null)) return [3 /*break*/, 3];
this._applyImagePermissions(config.imagePermissions, item.imagePermissions);
item.violationSettings.allowImageQuality = (_b = (_a = config.violationSettings) === null || _a === void 0 ? void 0 : _a.allowImageQuality) !== null && _b !== void 0 ? _b : item.violationSettings.allowImageQuality;
if (!(config.imageUrl != null && (params.ignorePermissions || item.imagePermissions.allowChangeImage))) return [3 /*break*/, 2];
imageItemHandler = this._productHandler.getHandler(item);
imageItemHandler.canvas = this._canvas;
return [4 /*yield*/, imageItemHandler.loadImage(config.imageUrl, {
downloadToServerCache: true,
actualSize: false,
saveAspectRatio: true
})];
case 1:
_c.sent();
_c.label = 2;
case 2:
if (config.overlayEffect != undefined) {
ItemUtils.applyOverlayEffect(item, config.overlayEffect);
}
if (config.overlayColor != null) {
ItemUtils.setOverlayEffectColor(item, this._colorParser.parse(config.overlayColor));
console.warn("IImageItemData.overlayColor is deprecated. Use IImageItemData.overlayEffect instead.");
}
if (config.effect != null) {
switch (config.effect.toLowerCase()) {
case "none":
item.effect = ImageEffect.None;
break;
case "blackandwhite":
item.effect = ImageEffect.BlackAndWhite;
break;
case "grayscale":
item.effect = ImageEffect.Grayscale;
break;
case "flipvertical":
item.effect = ImageEffect.FlipVertical;
break;
case "fliphorizontal":
item.effect = ImageEffect.FlipHorizontal;
break;
case "colorize":
item.effect = ImageEffect.Colorize;
break;
case "blackandtransparent":
item.effect = ImageEffect.BlackAndTransparent;
break;
default:
console.error("Unknown image effect:", config.effect);
}
}
_c.label = 3;
case 3: return [4 /*yield*/, this._applyToContentItem(item, config, params)];
case 4: return [2 /*return*/, _c.sent()];
}
});
});
};
;
ItemsDataApplier.prototype._applyToContentItem = function (item, config, params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (config != null) {
item.isVariable = Utils.applyNullableValue(item.isVariable, config.isVariable);
item.maskOpacity = Utils.applyNullableValue(item.maskOpacity, config.maskOpacity);
}
return [4 /*yield*/, this._applyToShapeItem(item, config, params)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
ItemsDataApplier.prototype._applyToShapeItem = function (item, itemConfig, params) {
if (itemConfig === void 0) { itemConfig = null; }
var _a, _b;
return __awaiter(this, void 0, void 0, function () {
var targetContainer, value, newSelectionBounds, color;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
if (itemConfig != null) {
if (itemConfig.shapePermissions != null) {
item.shapePermissions.allowChangeBorderColor = Utils.applyNullableValue(item.shapePermissions.allowChangeBorderColor, itemConfig.shapePermissions.allowChangeBorderColor);
item.shapePermissions.allowChangeBorderWidth = Utils.applyNullableValue(item.shapePermissions.allowChangeBorderWidth, itemConfig.shapePermissions.allowChangeBorderWidth);
item.shapePermissions.allowChangeFillColor = Utils.applyNullableValue(item.shapePermissions.allowChangeFillColor, itemConfig.shapePermissions.allowChangeFillColor);
}
item.violationSettings.allowShape = (_b = (_a = itemConfig.violationSettings) === null || _a === void 0 ? void 0 : _a.allowShape) !== null && _b !== void 0 ? _b : item.violationSettings.allowShape;
if (params.ignorePermissions || item.shapePermissions.allowChangeBorderWidth) {
targetContainer = item.parentContainer != null ? item.parentContainer : this._productHandler.userEditContainer;
value = Utils.applyNullableValue(item.borderWidth, itemConfig.borderWidth);
if (targetContainer == null || targetContainer.region == null || !this._productHandler.suppressOutOfRegionManipulation) {
item.borderWidth = value;
}
else {
newSelectionBounds = this._calcNewGroupBounds(this._productHandler.selectedItems, value);
if (rectangleEquals(RectangleF.intersect(targetContainer.region, newSelectionBounds), newSelectionBounds))
item.borderWidth = value;
}
}
if (itemConfig.borderColor != null && (params.ignorePermissions || item.shapePermissions.allowChangeBorderColor)) {
item.borderColor = this._colorParser.parse(itemConfig.borderColor);
}
if (itemConfig.fillColor != null && (params.ignorePermissions || item.shapePermissions.allowChangeFillColor)) {
color = this._colorParser.parse(itemConfig.fillColor);
if (item instanceof PlaceholderItem &