UNPKG

plot-plan-designer

Version:

Design Editor Tools with React.js + ant.design + fabric.js

126 lines (125 loc) 4.04 kB
var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; import { fabric } from 'fabric'; import { Arrow, Chart, Cube, CurvedLink, Element, Gif, Group, Iframe, Line, Link, Node, OrthogonalLink, Video, } from './objects'; import Svg from './objects/Svg'; export const createCanvasObject = (objectSchema) => objectSchema; const CanvasObject = { group: { create: (_a) => { var { objects } = _a, option = __rest(_a, ["objects"]); return new Group(objects, option); }, }, 'i-text': { create: (_a) => { var { text } = _a, option = __rest(_a, ["text"]); return new fabric.IText(text, option); }, }, textbox: { create: (_a) => { var { text } = _a, option = __rest(_a, ["text"]); return new fabric.Textbox(text, option); }, }, triangle: { create: (option) => new fabric.Triangle(option), }, circle: { create: (option) => new fabric.Circle(option), }, rect: { create: (option) => new fabric.Rect(option), }, cube: { create: (option) => new Cube(option), }, image: { create: (_a) => { var { element = new Image() } = _a, option = __rest(_a, ["element"]); return new fabric.Image(element, Object.assign(Object.assign({}, option), { crossOrigin: 'anonymous' })); }, }, polygon: { create: (_a) => { var { points } = _a, option = __rest(_a, ["points"]); return new fabric.Polygon(points, Object.assign(Object.assign({}, option), { perPixelTargetFind: true })); }, }, line: { create: (_a) => { var { points } = _a, option = __rest(_a, ["points"]); return new Line(points, option); }, }, arrow: { create: (_a) => { var { points } = _a, option = __rest(_a, ["points"]); return new Arrow(points, option); }, }, chart: { create: (option) => new Chart(option.chartOption || { xAxis: {}, yAxis: {}, series: [ { type: 'line', data: [ [0, 1], [1, 2], [2, 3], [3, 4], ], }, ], }, option), }, element: { create: (_a) => { var { code } = _a, option = __rest(_a, ["code"]); return new Element(code, option); }, }, iframe: { create: (_a) => { var { src } = _a, option = __rest(_a, ["src"]); return new Iframe(src, option); }, }, video: { create: (_a) => { var { src, file } = _a, option = __rest(_a, ["src", "file"]); return new Video(src || file, option); }, }, gif: { create: (option) => new Gif(option), }, node: { create: (option) => new Node(option), }, link: { create: (fromNode, fromPort, toNode, toPort, option) => new Link(fromNode, fromPort, toNode, toPort, option), }, curvedLink: { create: (fromNode, fromPort, toNode, toPort, option) => new CurvedLink(fromNode, fromPort, toNode, toPort, option), }, orthogonalLink: { create: (fromNode, fromPort, toNode, toPort, option) => new OrthogonalLink(fromNode, fromPort, toNode, toPort, option), }, svg: { create: (option) => new Svg(option), }, }; export default CanvasObject;