@aurigma/design-editor-iframe
Version:
Using this module you can embed Design Editor (a part of Customer's Canvas) to your page through the IFrame API.
248 lines • 9.35 kB
JavaScript
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.");
};
import { ChannelContainerType } from "./ObjectModel";
import * as Exception from "../Exception";
import { ArgumentException } from "@aurigma/design-atoms-model/Exception";
var typeFieldName = "_type";
/** @internal */
export function isEmptyMockup(mockup) {
if (mockup == null)
return true;
return (mockup.up == null && mockup.down == null);
}
function normalizeMockupName(mockup) {
if (isEmptyMockup(mockup)) {
return null;
}
if (mockup.name != null) {
return mockup.name;
}
if (mockup.up) {
if (typeof mockup.up === "string")
return mockup.up;
}
if (mockup.down) {
if (typeof mockup.down === "string")
return mockup.down;
}
throw new ArgumentException("normalizeMockupName: Invalid mockup format");
}
/** @internal */
export function prepareForServer(definition) {
var definitionClone = JSON.parse(JSON.stringify(definition));
var surfaces = definitionClone.surfaces;
if (isISurfacesFromFolder(surfaces)) {
surfaces[typeFieldName] = "SurfacesFromFolder";
definitionClone.surfaces = [surfaces];
}
else if (isISurfacesFromMultipageTemplate(surfaces)) {
surfaces[typeFieldName] = "SurfacesFromMultipageTemplate";
definitionClone.surfaces = [surfaces];
}
else {
surfaces.forEach(function (surface, i) {
var e_1, _a;
var baseSurfaceDefinition = prepareSurface(surface);
try {
for (var _b = __values(baseSurfaceDefinition.printAreas), _c = _b.next(); !_c.done; _c = _b.next()) {
var printArea = _c.value;
if (printArea.safetyLines == null && definition.defaultSafetyLines != null) {
printArea.safetyLines = definition.defaultSafetyLines;
}
if (printArea.cropMarks == null && definition.defaultCropMarks != null)
printArea.cropMarks = definition.defaultCropMarks;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
surfaces[i] = baseSurfaceDefinition;
});
}
return definitionClone;
}
/** @internal */
export function fromPrintAreas(printAreas) {
return {
surfaces: [{
printAreas: printAreas,
mockup: null
}]
};
}
/** @internal */
export function fromMockupsData(mockups) {
var e_2, _a;
var templates = [];
try {
for (var mockups_1 = __values(mockups), mockups_1_1 = mockups_1.next(); !mockups_1_1.done; mockups_1_1 = mockups_1.next()) {
var data = mockups_1_1.value;
var surface = {
// FIXME(VM): Надо избавится от костыля с сериализацией структуры в name
name: JSON.stringify({ origSurfaceId: data.surface.id }),
mockup: data.mockup,
printAreas: [],
previewMockups: data.previewMockups
};
templates.push(surface);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (mockups_1_1 && !mockups_1_1.done && (_a = mockups_1.return)) _a.call(mockups_1);
}
finally { if (e_2) throw e_2.error; }
}
return {
surfaces: templates
};
}
/** @internal */
export function fromSurface(surface) {
return fromSurfaces([surface]);
}
/** @internal */
export function fromSurfaces(surfaces) {
if (isStateSurface(surfaces)) {
var stateSurfaces = surfaces;
return [stateSurfaces.stateId];
}
return {
surfaces: surfaces
};
}
/** @internal */
export function isStateSurface(surface) {
return !Array.isArray(surface) && surface["stateId"];
}
function prepareSurface(surface) {
if (isString(surface)) {
var designFile = surface;
return prepareSurface({ designFile: designFile });
}
if (surface.containers != null) {
surface.containers.forEach(normalizeContainerDefinition);
}
if (isIPrintAreaTemplate(surface)) {
var printArea = surface;
return prepareSurface({ printAreas: [printArea] });
}
if (isISurfaceTemplate(surface) || isSurfacesFromState(surface)) {
var surfaceTemplate = isSurfacesFromState(surface) ? surface
: surface;
if (surfaceTemplate.mockup != null)
normalizeMockupTemplate(surfaceTemplate);
if (surfaceTemplate.previewMockups != null) {
surfaceTemplate.previewMockups = surfaceTemplate.previewMockups.map(prepareIMockupTemplate);
}
if (surfaceTemplate.printAreas == null)
surfaceTemplate.printAreas = [];
surfaceTemplate.printAreas.forEach(function (printArea) { return preparePrintArea(printArea); });
surfaceTemplate[typeFieldName] = isSurfacesFromState(surface) ? "SurfaceFromState" : "SurfaceTemplate";
return surfaceTemplate;
}
if (isISurfaceDefinition(surface)) {
var surfaceDefinition = surface;
if (surfaceDefinition.printAreas == null)
surfaceDefinition.printAreas = [];
if (surfaceDefinition.printAreas.length === 0)
surfaceDefinition.printAreas[0] = {
bounds: {
x: 0,
y: 0,
width: surfaceDefinition.width,
height: surfaceDefinition.height
}
};
surfaceDefinition.printAreas.forEach(function (printArea) { return preparePrintArea(printArea); });
surfaceDefinition[typeFieldName] = "SurfaceDefinition";
return surfaceDefinition;
}
throw Exception.create("Wrong surface parameter");
}
function preparePrintArea(printArea) {
if (printArea.containers != null && printArea.containers.length > 0) {
printArea.containers.forEach(normalizeContainerDefinition);
}
if (isIPrintAreaTemplate(printArea)) {
printArea[typeFieldName] = "PrintAreaTemplate";
return;
}
if (isIPrintAreaDefinition(printArea)) {
printArea[typeFieldName] = "PrintAreaDefinition";
return;
}
throw Exception.create("Wrong surface parameter");
}
function normalizeContainerDefinition(containerDefinition) {
if (containerDefinition.type == null) {
console.warn("Extra channel must have type!");
return;
}
var type = containerDefinition.type.toLowerCase();
if (type === ChannelContainerType[ChannelContainerType.SpotColor].toString().toLowerCase()) {
containerDefinition[typeFieldName] = "SpotColorContainerDefinition";
return;
}
if (type === ChannelContainerType[ChannelContainerType.Texture].toString().toLowerCase()) {
containerDefinition[typeFieldName] = "TextureContainerDefinition";
return;
}
console.warn("Extra channel type '" + containerDefinition.type + "' not supported.");
}
/** @internal */
export function normalizeMockupTemplate(surfaceTemplate) {
var mockup = surfaceTemplate.mockup;
if (mockup != null) {
surfaceTemplate.mockup = prepareIMockupTemplate(mockup);
}
if (surfaceTemplate.previewMockups != null && surfaceTemplate.previewMockups.length > 0) {
surfaceTemplate.previewMockups = surfaceTemplate.previewMockups.map(prepareIMockupTemplate);
}
}
function prepareIMockupTemplate(mockup) {
if (mockup)
mockup.name = normalizeMockupName(mockup);
return mockup;
}
function isString(arg) {
return typeof arg === "string";
}
function isIPrintAreaDefinition(arg) {
return arg.bounds != null;
}
function isIPrintAreaTemplate(arg) {
return typeof arg.designFile === "string";
}
function isISurfaceTemplate(arg) {
return Array.isArray(arg.printAreas)
&& [arg.width, arg.height].every(function (d) { return typeof d === "undefined"; });
}
function isISurfaceDefinition(arg) {
return [arg.width, arg.height].every(function (d) { return typeof d === "number"; });
}
function isISurfacesFromFolder(arg) {
return !Array.isArray(arg)
&& [arg["designFolder"], arg["mockupFolder"]].some(isString);
}
function isISurfacesFromMultipageTemplate(arg) {
return !Array.isArray(arg) && isString(arg["file"]);
}
function isSurfacesFromState(arg) {
return !Array.isArray(arg) && isString(arg["stateId"]);
}
//# sourceMappingURL=Convert.js.map