import { nanoid } from "nanoid"; import { CompArcObj } from "../../components/CompUI/basicUI/Arc"; import { CompCardObj } from "../../components/CompUI/basicUI/Container"; import { CompCurveObj } from "../../components/CompUI/basicUI/Curve"; import { CompEllipseObj } from "../../components/CompUI/basicUI/Ellipse"; import { CompGroupObj } from "../../components/CompUI/basicUI/Group"; import { CompImageObj } from "../../components/CompUI/basicUI/Image2"; import { CompLineObj } from "../../components/CompUI/basicUI/Line"; import { CompMapObj } from "../../components/CompUI/basicUI/Map"; import { CompPageObj } from "../../components/CompUI/basicUI/Page"; import { CompPolygonObj } from "../../components/CompUI/basicUI/Polygon"; import { CompPolygonNormalObj } from "../../components/CompUI/basicUI/PolygonNormal"; import { CompRectObj } from "../../components/CompUI/basicUI/Rectage"; import { CompTextObj } from "../../components/CompUI/basicUI/Text"; import { CompTriangleObj } from "../../components/CompUI/basicUI/Triangle"; import { CompVideoObj } from "../../components/CompUI/basicUI/Video"; import { CompWeb3DObj } from "../../components/CompUI/basicUI/Web3D"; import { HistoryController } from "../../controllers/ReactCtrl/history"; import { ICompKeys } from "../../typings"; import { DesignComp, DesignCompObj } from "./DesignComp"; import { CompCardListObj } from "../../components/CompUI/customUI/Cards/CardList"; import { CompCover2Obj, createCompCover2 } from "../../components/CompUI/customUI/Covers/Cover2"; const history = new HistoryController(); export function createObj( data:any, init = true) :DesignComp { const compKey = data.compKey as ICompKeys let obj :any = null; switch(compKey) { case "Container": obj = new CompCardObj(); break; case "Image": obj = new CompImageObj(); break; case "Text": obj = new CompTextObj(); break; case "Group": obj = new CompGroupObj(); break; case "Page": obj = new CompPageObj(); break; case "Video": obj = new CompVideoObj(); break; case "Web3D": obj = new CompWeb3DObj(); break; case "Rectage": obj = new CompRectObj(); break; case "Line": obj = new CompLineObj(); break; case "Arc": obj = new CompArcObj(); break; case "Ellipse": obj = new CompEllipseObj(); break; case "Triangle": obj = new CompTriangleObj(); break; case "Polygon": obj = new CompPolygonObj(); break; case "PolygonNormal": obj = new CompPolygonNormalObj(); break; case "Curve": obj = new CompCurveObj(); break; case "Map": obj = new CompMapObj(); break; case "CardList": obj = new CompCardListObj(); break; case "Cover2": obj = new CompCover2Obj(); if (!init) { obj = createCompCover2(); } break; } if (obj) { obj.compKey = compKey; obj.value.setHistory( history ); obj.layout.setHistory(history); obj.layout.background.setHistory(history); obj.layout.border.setHistory(history); obj.children.setHistory(history); if (init) obj.fromJson(data); if (compKey == "CardList") { obj.children.list = data.children.list; } return obj; } //兼容老数据 if (compKey == "Cover") { console.log( data ); debugger; } return data; } export function cloneObj(o: DesignComp ) { const data = o.toJson(); data.id = nanoid(); const obj = createObj({compKey: o.compKey}, false) obj.fromJson(data); return obj; } export {history};