UNPKG

plot-plan-designer

Version:

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

85 lines (84 loc) 3.43 kB
"use strict"; 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); }, }, }); }, {})); }, {}); };