UNPKG

@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
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