UNPKG

@aurigma/design-atoms-model

Version:

Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.

334 lines 13.3 kB
import { ModelComponent } from "./ModelComponent"; import { Collection } from "../Collection"; import { RenderingType } from "./RenderingType"; import { ColorContainerVisualization, TextureContainerVisualization } from "./ContainerVisualization"; import { PrintingTechniqueConstraints } from "./Constraints/PrintingTechniqueConstraints"; import { ContainerConstraints } from "./Constraints/ContainerConstraints"; import { Format } from "./Format"; import { Dither } from "./Dither"; import { isString } from "../Utils/Utils"; export class Container extends ModelComponent { get renderingType() { return RenderingType.Normal; } constructor(initialItems, name) { super(); this.type = Container.type; this.parentComponent = null; this._locked = false; this._items = new Collection(); this._visible = true; this._region = null; this._onItemAdded = ({ item: newItem }) => { newItem.parentContainer = this; }; this._onItemRemoved = ({ item: removedItem }) => { if (removedItem.parentContainer == this) removedItem.parentContainer = null; }; this._onRegionChanged = (sender, propName) => { if (propName !== "left" && propName !== "top" && propName !== "width" && propName !== "height") return; this._propertyChanged.notify(this, "region"); }; this.renderingGroupName = undefined; this._items = new Collection(); this._items.add_itemAdded(this._onItemAdded); this._items.add_itemRemoved(this._onItemRemoved); if (initialItems != null) this.items.setRange(initialItems); if (name != null) this.name = name; } get region() { return this._region; } set region(value) { if (this._region === value) return; if (this._region != null) this._region.removePropertyChanged(this._onRegionChanged); this._region = value; this._propertyChanged.notify(this, "region"); if (this._region != null) this._region.addPropertyChanged(this._onRegionChanged); } get items() { return this._items; } get visible() { return this._visible; } set visible(value) { if (this._visible === value) return; this._visible = value; this._propertyChanged.notify(this, "visible"); } get locked() { return this._locked; } set locked(value) { if (this._locked === value) return; this._locked = value; this._propertyChanged.notify(this, "locked"); } getSimplifiedObject() { var simplified = super.getSimplifiedObject(["parentComponent", "version"]); simplified["version"] = this.version; return simplified; } generateNewIds() { this._generateNewId(); this._items.forEach(i => i.generateNewIds()); } _copy(source, destination, generateNewIds) { super._copy(source, destination, generateNewIds); destination.items.addRange(source.items.toArray().map(i => i.clone(generateNewIds))); destination.locked = source.locked; destination.visible = source.visible; destination.translationKey = source.translationKey; destination.renderingGroupName = source.renderingGroupName; destination.region = source.region != null ? source.region.clone() : null; } clone(generateNewIds = false) { const container = new Container(); this._copy(this, container, generateNewIds); return container; } } Container.type = "Container"; export class MockupContainer extends Container { constructor(initialItems, name) { super(initialItems, name); this.noPrint = false; this.noShow = false; this.size = null; this._locked = true; } _copy(source, destination, generateNewIds) { super._copy(source, destination, generateNewIds); destination.noPrint = source.noPrint; destination.noShow = source.noShow; destination.size = source.size != null ? source.size.clone() : null; } clone(generateNewIds = false) { const container = new MockupContainer(); this._copy(this, container, generateNewIds); return container; } } export class SurfaceContainer extends Container { constructor(initialItems, name) { super(initialItems, name); this.type = SurfaceContainer.type; this._locked = false; this.printingTechniqueConstraints = new PrintingTechniqueConstraints(); this.constraints = new ContainerConstraints(); } _copy(source, destination, generateNewIds) { super._copy(source, destination, generateNewIds); destination.printingTechniqueConstraints = source.printingTechniqueConstraints.clone(generateNewIds); destination.constraints = source.constraints != null ? source.constraints.clone() : null; } clone(generateNewIds = false) { const container = new SurfaceContainer(); this._copy(this, container, generateNewIds); return container; } getSimplifiedObject() { var _a, _b, _c; const result = super.getSimplifiedObject(); return Object.assign(Object.assign({}, result), { printingTechniqueConstraints: this.printingTechniqueConstraints.toJSON(), constraints: (_c = (_b = (_a = this.constraints) === null || _a === void 0 ? void 0 : _a.toJSON) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : this.constraints }); } } SurfaceContainer.type = "SurfaceContainer"; export class ColorLessContainer extends SurfaceContainer { get format() { return this._format; } set format(value) { if (this._format === value) return; this._format = value; this._propertyChanged.notify(this, "format"); } get dither() { return this._dither; } set dither(value) { if (this._dither === value) return; this._dither = value; this._propertyChanged.notify(this, "dither"); } get amount() { return this._amount; } set amount(value) { if (this._amount === value) return; this._amount = value; this._propertyChanged.notify(this, "amount"); } get renderingType() { if (this.visualization === null) return null; if (this.visualization instanceof TextureContainerVisualization) return RenderingType.Solid; if (this.visualization instanceof ColorContainerVisualization) return RenderingType.Grayscale; return null; } constructor(initialItems, name) { super(initialItems, name); this.type = ColorLessContainer.type; this._format = Format.OneBit; this._dither = Dither.Diffusion; this._amount = 0.7; this._locked = false; } _copy(source, destination, generateNewIds) { var _a, _b; super._copy(source, destination, generateNewIds); destination.outputColor = (_a = source.outputColor) === null || _a === void 0 ? void 0 : _a.clone(); destination.opaque = source.opaque; destination.dpi = source.dpi; destination.visualization = (_b = source.visualization) === null || _b === void 0 ? void 0 : _b.clone(); destination.format = source.format; destination.dither = source.dither; destination.amount = source.amount; } getSimplifiedObject() { const result = super.getSimplifiedObject(); return Object.assign(Object.assign({}, result), { outputColor: this.outputColor.getData(), opaque: this.opaque, dpi: this.dpi, visualization: this.visualization.toJSON(), format: this.format, dither: this.dither, amount: this.amount }); } clone(generateNewIds = false) { const container = new ColorLessContainer(); this._copy(this, container, generateNewIds); return container; } } ColorLessContainer.type = "ColorLessContainer"; export class LimitedColorContainer extends SurfaceContainer { get renderingType() { return RenderingType.Normal; } constructor(initialItems, name) { super(initialItems, name); this.type = LimitedColorContainer.type; this._locked = false; } _copy(source, destination, generateNewIds) { super._copy(source, destination, generateNewIds); destination.maxColorNumber = source.maxColorNumber; destination.paletteUId = source.paletteUId; } getSimplifiedObject() { const result = super.getSimplifiedObject(); return Object.assign(Object.assign({}, result), { maxColorNumber: this.maxColorNumber, paletteUId: this.paletteUId }); } clone(generateNewIds = false) { const container = new LimitedColorContainer(); this._copy(this, container, generateNewIds); return container; } } LimitedColorContainer.type = "LimitedColorContainer"; export class FullColorContainer extends SurfaceContainer { get renderingType() { return RenderingType.Normal; } constructor(initialItems, name) { super(initialItems, name); this.type = FullColorContainer.type; this._locked = false; } _copy(source, destination, generateNewIds) { super._copy(source, destination, generateNewIds); destination.colorSpace = source.colorSpace; destination.colorProfile = source.colorProfile; } getSimplifiedObject() { const result = super.getSimplifiedObject(); return Object.assign(Object.assign({}, result), { colorSpace: this.colorSpace, colorProfile: this.colorProfile }); } clone(generateNewIds = false) { const container = new FullColorContainer(); this._copy(this, container, generateNewIds); return container; } } FullColorContainer.type = "FullColorContainer"; export class SpotColorContainer extends SurfaceContainer { get renderingType() { return RenderingType.Grayscale; } constructor() { super(); this.type = SpotColorContainer.type; } _copy(source, destination, generateNewIds) { var _a; super._copy(source, destination, generateNewIds); destination.previewColor = source.previewColor; destination.outputColor = (_a = source.outputColor) === null || _a === void 0 ? void 0 : _a.clone(); } clone(generateNewIds = false) { const container = new SpotColorContainer(); this._copy(this, container, generateNewIds); return container; } } SpotColorContainer.type = "SpotColorContainer"; export class TextureContainer extends SurfaceContainer { constructor() { super(); this.type = TextureContainer.type; } get renderingType() { return RenderingType.Grayscale; } get previewTextureSource() { return this._previewTextureSource; } set previewTextureSource(previewTextureSource) { if (previewTextureSource !== this._previewTextureSource) { this._previewTextureSource = previewTextureSource; this._propertyChanged.notify(this, "previewTextureSource"); } } _copy(source, destination, generateNewIds) { var _a; super._copy(source, destination, generateNewIds); destination.previewTextureSource = source.previewTextureSource != null ? source.previewTextureSource.clone() : null; destination.previewTextureName = source.previewTextureName; destination.outputColor = (_a = source.outputColor) === null || _a === void 0 ? void 0 : _a.clone(); return destination; } clone(generateNewIds = false) { const container = new TextureContainer(); this._copy(this, container, generateNewIds); return container; } getSimplifiedObject(omitProperties) { if (!Array.isArray(omitProperties) && !isString(omitProperties)) omitProperties = []; const simplified = super.getSimplifiedObject(); simplified["previewTextureSource"] = { "id": this.previewTextureSource.id, "width": this.previewTextureSource.width, "height": this.previewTextureSource.height, "isVector": this.previewTextureSource.isVector, "pageIndex": this.previewTextureSource.pageIndex, "url": this.previewTextureSource.url, "actualSize": this.previewTextureSource.actualSize, "saveAspectRatio": this.previewTextureSource.saveAspectRatio, "origin": this.previewTextureSource.origin, }; return simplified; } } TextureContainer.type = "TextureContainer"; //# sourceMappingURL=Container.js.map