@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
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);
};
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