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.

88 lines 3.81 kB
import * as _ from "underscore"; import { ProductParser } from "./ProductParser"; import { ModelComponent } from "@aurigma/design-atoms-model/Product/ModelComponent"; import { Color } from "@aurigma/design-atoms-model/Colors"; import { Color as ColorNew } from "@aurigma/design-atoms-model/Colors/Color"; import { Transform } from "@aurigma/design-atoms-model/Math/Transform"; import { Path, SizeF } from "@aurigma/design-atoms-model/Math"; import { SafetyLine } from "@aurigma/design-atoms-model/Product/SafetyLine"; import { Collection } from "@aurigma/design-atoms-model/Collection"; import { OverlayEffect } from "@aurigma/design-atoms-model/Product/Items/OverlayEffect"; var JsonProductSerializer = /** @class */ (function () { function JsonProductSerializer(additionalConverters) { this._additionalConverters = _.isArray(additionalConverters) ? additionalConverters : []; this.productParser = new ProductParser(additionalConverters); } JsonProductSerializer.prototype.deserialize = function (json) { var rawProduct = json; if (typeof json === "string") { rawProduct = JSON.parse(json); } if (!_.isObject(rawProduct)) { return null; } return this.productParser.parseProduct(rawProduct); }; JsonProductSerializer.prototype.serialize = function (product, forServer) { return this.serializeModelComponent(product, forServer); }; JsonProductSerializer.prototype.serializeModelComponent = function (component, forServer) { var _this = this; if (forServer == null) forServer = false; var componentReviewer = function (key, value) { if (value instanceof ModelComponent) { return value.getSimplifiedObject(); } if (value instanceof Color) { return value.getData(); } if (value instanceof ColorNew) { return value.getData(); } if (value instanceof Transform) { return { "scaleX": value.scaleX, "scaleY": value.scaleY, "translateX": value.translateX, "translateY": value.translateY, "angle": value.angle }; } if (value instanceof SafetyLine) { return { "name": value.name, "altColor": value.altColor, "color": value.color, "margin": value.margin, "stepPx": value.stepPx, "widthPx": value.widthPx, "borderRadius": value.borderRadius, "pdfBox": value.pdfBox }; } if (value instanceof SizeF) { return value.width + ", " + value.height; } if (value instanceof Path) { return value.toString(); } if (value instanceof Collection) { return value.toArray(); } if (value instanceof OverlayEffect) { return value.getSimplifiedObject(); } var converter = _.find(_this._additionalConverters, function (c) { return value instanceof c.typeCtor; }); if (converter != null) { value = _.clone(value); value["$type"] = converter.type; } return value; }; return JSON.stringify(component, componentReviewer, 2); }; return JsonProductSerializer; }()); export { JsonProductSerializer }; //# sourceMappingURL=JsonProductSerializer.js.map