plot-plan-designer
Version:
Design Editor Tools with React.js + ant.design + fabric.js
85 lines (84 loc) • 3.43 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const icons_json_1 = __importDefault(require("../../../libs/fontawesome-5.2.0/metadata/icons.json"));
const ActionNode_1 = __importDefault(require("./action/ActionNode"));
const DataNode_1 = __importDefault(require("./data/DataNode"));
const LogicNode_1 = __importDefault(require("./logic/LogicNode"));
const TriggerNode_1 = __importDefault(require("./trigger/TriggerNode"));
const FilterNode_1 = __importDefault(require("./logic/FilterNode"));
const SwitchNode_1 = __importDefault(require("./logic/SwitchNode"));
const VirtualButtonNode_1 = __importDefault(require("./trigger/VirtualButtonNode"));
const NodeConfiguration_1 = require("../../workflow/configuration/NodeConfiguration");
const defaultOption = {
fill: 'rgba(0, 0, 0, 0.3)',
stroke: 'rgba(255, 255, 255, 0)',
borderColor: 'rgba(0, 0, 0, 1)',
borderScaleFactor: 1.5,
deletable: true,
cloneable: true,
action: {
enabled: false,
},
tooltip: {
enabled: true,
},
animation: {
type: 'none',
},
userProperty: {},
trigger: {
enabled: false,
},
};
const NODES = {
ACTION: {
create: (option, descriptor) => new ActionNode_1.default(Object.assign(Object.assign(Object.assign({}, defaultOption), option), { descriptor })),
},
DATA: {
create: (option, descriptor) => new DataNode_1.default(Object.assign(Object.assign(Object.assign({}, defaultOption), option), { descriptor })),
},
LOGIC: {
create: (option, descriptor) => {
const node = (0, NodeConfiguration_1.getNode)(descriptor.nodeClazz);
const options = Object.assign({}, defaultOption, { descriptor }, option);
switch (node) {
case 'FilterNode':
return new FilterNode_1.default(options);
case 'SwitchNode':
return new SwitchNode_1.default(options);
default:
return new LogicNode_1.default(options);
}
},
},
TRIGGER: {
create: (option, descriptor) => {
const node = (0, NodeConfiguration_1.getNode)(descriptor.nodeClazz);
const options = Object.assign({}, defaultOption, { descriptor }, option);
switch (node) {
case 'VirtualButtonNode':
return new VirtualButtonNode_1.default(options);
default:
return new TriggerNode_1.default(options);
}
},
},
};
exports.default = (descriptors) => {
return Object.keys(descriptors).reduce((prev, key) => {
return Object.assign(prev, descriptors[key].reduce((p, c) => {
return Object.assign(p, {
[(0, NodeConfiguration_1.getNode)(c.nodeClazz)]: {
create: (option) => {
const iconMetadata = icons_json_1.default[c.icon];
const icon = iconMetadata ? String.fromCodePoint(parseInt(iconMetadata.unicode, 16)) : '\uf03e';
return NODES[c.type].create(Object.assign(Object.assign({}, option), { icon }), c);
},
},
});
}, {}));
}, {});
};