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.

215 lines 9.89 kB
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); }; import { ShapeItem, RectangleItem, EllipseItem, ImageItem, BaseTextItem, PlaceholderItem, ContentItem, GroupItem, BarcodeItem, LayoutItem } from "@aurigma/design-atoms-model/Product/Items"; import * as _ from "underscore"; import { ItemUtils } from "../Utils/ItemUtils"; import * as Utils from "@aurigma/design-atoms-model/Utils/Utils"; var VariableItemHelper = /** @class */ (function () { function VariableItemHelper(_productHandler, _canvas, _eventManager) { var _this = this; this._productHandler = _productHandler; this._canvas = _canvas; this._eventManager = _eventManager; this.maskSymbol = "%"; this._eventManager.addItemAdded(function (e) { return _this.initVariableItem(e.item); }); } VariableItemHelper.prototype.initVariableItems = function (product) { var _this = this; product.getAllItems({ ignoreMockups: false, flatGroupItems: true, excludeGroupItems: true }).forEach(function (i) { return _this.initVariableItem(i); }); }; VariableItemHelper.prototype.setVariableValues = function (items, value) { var _this = this; if (items.length === 0) return; //this._history.pause(); items.forEach(function (i) { _this.setVariableValue(i, value); }); //this._history.resume(); }; VariableItemHelper.prototype.setVariableValue = function (item, value, supressUpdate) { //this._history.pause(); if (ItemUtils.isVariableItem(item)) this._setVariableValue(item, value); if (item instanceof PlaceholderItem && !item.isEmptyContent && ItemUtils.isVariableItem(item.content)) this._setVariableValue(item.content, value); if (!supressUpdate) ItemUtils.updateItems([item], this._productHandler, this._canvas); //this._history.resume(); }; VariableItemHelper.prototype.getVariableItemDisplayName = function (name) { if (name == null) return; var mask = this.maskSymbol; var maskRegex = new RegExp("^" + mask + "|" + mask + "$", "gm"); return name.replace(maskRegex, ""); }; VariableItemHelper.prototype._isCanBeVariable = function (item) { return item.canSetIsVariable(); ; }; VariableItemHelper.prototype.getRealItemName = function (item) { if (!this._isCanBeVariable(item)) return item.name; return item.isVariable ? item.name.replace(new RegExp("^" + this.maskSymbol + "|" + this.maskSymbol + "$", "gm"), "") : item.name; }; VariableItemHelper.prototype.createNewItemName = function (item, newRealName) { if (this._isCanBeVariable(item)) return item.isVariable ? "" + this.maskSymbol + newRealName + this.maskSymbol : newRealName; else return newRealName; }; VariableItemHelper.prototype._setVariableValue = function (item, value) { if (item.isVariable === value) return; if (value) { item.name = "" + this.maskSymbol + item.name + this.maskSymbol; } else { var maskRegex = new RegExp("^" + this.maskSymbol + "|" + this.maskSymbol + "$", "gm"); item.name = item.name.replace(maskRegex, ""); } item.isVariable = value; }; VariableItemHelper.prototype.initVariableItem = function (item) { var contentItem = item instanceof PlaceholderItem && !item.isEmptyContent ? item.content : item; if (contentItem instanceof ContentItem) { var mask = this.maskSymbol; var name = contentItem.name; if (name.indexOf(mask) === 0 && name.lastIndexOf(mask) === name.length - 1) contentItem.isVariable = true; } }; VariableItemHelper.getVariablesFromItems = function (items) { var result = []; items.forEach(function (item) { var variables; if (item instanceof BaseTextItem) variables = VariableItemHelper.getVariablesFromTextItem(item); else if (item instanceof PlaceholderItem) variables = VariableItemHelper.getVariablesFromPlaceholderItem(item); else if (item instanceof BarcodeItem) variables = VariableItemHelper.getVariablesFromBarcodeItem(item); else if (item instanceof ImageItem) variables = VariableItemHelper.getVariablesFromImageItem(item); else if (item instanceof EllipseItem) variables = VariableItemHelper.getVariablesFromEllipseItem(item); else if (item instanceof RectangleItem) variables = VariableItemHelper.getVariablesFromRectangleItem(item); else if (item instanceof ShapeItem) variables = VariableItemHelper.getVariablesFromShapeItem(item); else if (item instanceof LayoutItem) variables = VariableItemHelper.getVariablesFromLayoutItem(item); else if (item instanceof GroupItem) variables = VariableItemHelper.getVariablesFromGroupItem(item); if (_.isEmpty(variables != null ? _.without(variables, null) : null)) return; variables.forEach(function (variable) { if (result.find(function (v) { return v.name == variable.name && v.type == variable.type; }) == null) result.push(variable); }); }); return result; }; VariableItemHelper.getVariablesFromLayoutItem = function (item) { var sortedItems = item.getSortedItems(); if (sortedItems != null) return this.getVariablesFromItems(sortedItems.reverse()); return this.getVariablesFromGroupItem(item); }; VariableItemHelper.getVariablesFromGroupItem = function (item) { return this.getVariablesFromItems(item.getNestedItems(true)); }; VariableItemHelper.getVariablesFromShapeItem = function (item) { return null; }; VariableItemHelper.getVariablesFromEllipseItem = function (item) { return null; }; VariableItemHelper.getVariablesFromRectangleItem = function (item) { return null; }; VariableItemHelper.getVariablesFromImageItem = function (item) { if (item.isVariable) { return [{ name: item.name, type: "Image", value: null }]; } return null; }; VariableItemHelper.getVariablesFromPlaceholderItem = function (item) { if (!item.isVariable) return null; if (item instanceof PlaceholderItem && item.isBarcodePlaceholder) { var content = item.content; return [__assign(__assign({}, this.getVariablesFromBarcodeItem(content, true)[0]), { name: item.name, type: "BarcodePlaceholder" })]; } return [{ name: item.name, type: "ImagePlaceholder", value: null }]; }; VariableItemHelper.getVariablesFromBarcodeItem = function (item, ignoreIsVariableMarker) { if (ignoreIsVariableMarker === void 0) { ignoreIsVariableMarker = false; } if (!ignoreIsVariableMarker && !item.isVariable) return null; return [{ name: item.name, type: "Barcode", barcodeFormat: item.barcodeFormat, barcodeSubType: item.barcodeSubType, value: item.barcodeContent }]; }; VariableItemHelper.getVariablesFromTextItem = function (item) { var result = []; if (VariableItemHelper.isInStringPlacehodler(item)) { item.placeholders.forEach(function (placeholder) { result.push({ name: placeholder.name, type: "InString", value: (placeholder.value != null && placeholder.value !== "") ? placeholder.value : placeholder.name }); }); return result; } var interpolationPlaceholders = VariableItemHelper.getInterpolationVariables(item); if (!_.isEmpty(interpolationPlaceholders)) return interpolationPlaceholders; if (item.isVariable) return [{ name: item.name, type: "Text", value: item.text }]; return null; }; VariableItemHelper.getInterpolationVariables = function (textItem) { var placeholders = []; if (VariableItemHelper.isInStringPlacehodler(textItem)) return placeholders; var text = Utils.isValidXml(textItem.text) ? Utils.unescapeXml(textItem.text) : textItem.text; var regExp = /\{\{(.+?)\}\}/g; var match = regExp.exec(text); while (match != null) { var variable = { name: match[1], type: "InString", value: match[1], values: [], mask: null }; placeholders.push(variable); match = regExp.exec(text); } return placeholders; }; VariableItemHelper.isInStringPlacehodler = function (item) { return item instanceof BaseTextItem && item.placeholders.length > 0; }; return VariableItemHelper; }()); export { VariableItemHelper }; //# sourceMappingURL=VariableItemHelper.js.map