plot-plan-designer
Version:
Design Editor Tools with React.js + ant.design + fabric.js
133 lines (132 loc) • 4.47 kB
JavaScript
;
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;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCanvasObject = void 0;
const fabric_1 = require("fabric");
const objects_1 = require("./objects");
const Svg_1 = __importDefault(require("./objects/Svg"));
const createCanvasObject = (objectSchema) => objectSchema;
exports.createCanvasObject = createCanvasObject;
const CanvasObject = {
group: {
create: (_a) => {
var { objects } = _a, option = __rest(_a, ["objects"]);
return new objects_1.Group(objects, option);
},
},
'i-text': {
create: (_a) => {
var { text } = _a, option = __rest(_a, ["text"]);
return new fabric_1.fabric.IText(text, option);
},
},
textbox: {
create: (_a) => {
var { text } = _a, option = __rest(_a, ["text"]);
return new fabric_1.fabric.Textbox(text, option);
},
},
triangle: {
create: (option) => new fabric_1.fabric.Triangle(option),
},
circle: {
create: (option) => new fabric_1.fabric.Circle(option),
},
rect: {
create: (option) => new fabric_1.fabric.Rect(option),
},
cube: {
create: (option) => new objects_1.Cube(option),
},
image: {
create: (_a) => {
var { element = new Image() } = _a, option = __rest(_a, ["element"]);
return new fabric_1.fabric.Image(element, Object.assign(Object.assign({}, option), { crossOrigin: 'anonymous' }));
},
},
polygon: {
create: (_a) => {
var { points } = _a, option = __rest(_a, ["points"]);
return new fabric_1.fabric.Polygon(points, Object.assign(Object.assign({}, option), { perPixelTargetFind: true }));
},
},
line: {
create: (_a) => {
var { points } = _a, option = __rest(_a, ["points"]);
return new objects_1.Line(points, option);
},
},
arrow: {
create: (_a) => {
var { points } = _a, option = __rest(_a, ["points"]);
return new objects_1.Arrow(points, option);
},
},
chart: {
create: (option) => new objects_1.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 objects_1.Element(code, option);
},
},
iframe: {
create: (_a) => {
var { src } = _a, option = __rest(_a, ["src"]);
return new objects_1.Iframe(src, option);
},
},
video: {
create: (_a) => {
var { src, file } = _a, option = __rest(_a, ["src", "file"]);
return new objects_1.Video(src || file, option);
},
},
gif: {
create: (option) => new objects_1.Gif(option),
},
node: {
create: (option) => new objects_1.Node(option),
},
link: {
create: (fromNode, fromPort, toNode, toPort, option) => new objects_1.Link(fromNode, fromPort, toNode, toPort, option),
},
curvedLink: {
create: (fromNode, fromPort, toNode, toPort, option) => new objects_1.CurvedLink(fromNode, fromPort, toNode, toPort, option),
},
orthogonalLink: {
create: (fromNode, fromPort, toNode, toPort, option) => new objects_1.OrthogonalLink(fromNode, fromPort, toNode, toPort, option),
},
svg: {
create: (option) => new Svg_1.default(option),
},
};
exports.default = CanvasObject;