30 lines
734 B
TypeScript
30 lines
734 B
TypeScript
|
import deepUnref from '../../utils/deep-unref';
|
||
|
import { LayerObject } from './interfaces';
|
||
|
|
||
|
export class HousePlannerCanvasClipboard {
|
||
|
public storedObjects: LayerObject[] = [];
|
||
|
|
||
|
storeToClipboard(items: LayerObject[]) {
|
||
|
this.storedObjects = [
|
||
|
...items.map((item) => {
|
||
|
const itemCopy = {
|
||
|
...deepUnref(item),
|
||
|
visible: true,
|
||
|
name: item.name + ' Copy',
|
||
|
};
|
||
|
delete itemCopy.databaseId;
|
||
|
return itemCopy;
|
||
|
}),
|
||
|
];
|
||
|
}
|
||
|
|
||
|
getFromClipboard(newId: number, selected = true): LayerObject[] {
|
||
|
const newObjects = deepUnref(this.storedObjects);
|
||
|
return newObjects.map((item, index) => ({
|
||
|
...item,
|
||
|
id: newId + index,
|
||
|
selected,
|
||
|
}));
|
||
|
}
|
||
|
}
|