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.

51 lines 2.05 kB
import { ModelComponent } from "./ModelComponent"; import { Collection } from "../Collection"; export class SurfaceMockup extends ModelComponent { constructor(downContainers = [], upContainers = []) { super(); this.parentSurface = null; this._underContainers = new Collection(); this._overContainers = new Collection(); this._onContainerAdded = ({ item: container }) => { container.parentComponent = this; }; this.underContainers.add_itemAdded(this._onContainerAdded); this.underContainers.setRange(downContainers); this.overContainers.add_itemAdded(this._onContainerAdded); this.overContainers.setRange(upContainers); } isEmpty() { return this.underContainers .concat(this.overContainers) .all(c => c.items.empty); } get underContainers() { return this._underContainers; } get overContainers() { return this._overContainers; } get allContainers() { return this._overContainers.concat(this._underContainers); } getSimplifiedObject() { var simplified = super.getSimplifiedObject(["parentSurface", "allContainers"]); return simplified; } clone(generateNewIds = false) { const surfaceMockup = new SurfaceMockup(); this._copy(this, surfaceMockup, generateNewIds); return surfaceMockup; } generateNewIds() { this._generateNewId(); this._underContainers.forEach(i => i.generateNewIds()); this._overContainers.forEach(i => i.generateNewIds()); } _copy(source, destination, generateNewIds) { super._copy(source, destination, generateNewIds); destination.underContainers.addRange(source.underContainers.toArray().map(c => c.clone(generateNewIds))); destination.overContainers.addRange(source.overContainers.toArray().map(c => c.clone(generateNewIds))); } } //# sourceMappingURL=SurfaceMockup.js.map