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