import Modeler from 'bpmn-js/lib/Modeler';
|
import jnpfPaletteProvider from '../palette';
|
import jnpfRenderer from '../renderer';
|
import jnpfElementFactory from '../factory';
|
import jnpfOutline from '../outline';
|
import jnpfBusinessData from '../business';
|
import jnpfGridSnappingAutoPlaceBehavior from '../gridSnapping';
|
import jnpfAlignElementsContextPadProvider from '../alignElements';
|
import jnpfContextPad from '../contextPad';
|
import jnpfContextPadProvider from '../contextPad/provider';
|
import jnpfCustomBpmnRules from '../rule';
|
import jnpfCommandStack from '../commandStack';
|
import jnpfCustomBpmnCopyPaste from '../copyPaste';
|
import GridSnappingLayoutConnectionBehavior from '../gridSnapping/connect';
|
let flowInfo: any;
|
const modeler: any = options => [
|
{
|
__init__: [
|
'paletteProvider',
|
'bpmnRenderer',
|
'contextPadProvider',
|
'replaceMenuProvider',
|
'elementFactory',
|
'jnpfData',
|
'gridSnappingAutoPlaceBehavior',
|
'alignElementsContextPadProvider',
|
'alignElementsMenuProvider',
|
'bpmnAlignElements',
|
'outlineProvider',
|
'contextPad',
|
'bpmnRules',
|
'bpmnCopyPaste',
|
],
|
paletteProvider: ['type', jnpfPaletteProvider], // 左侧的元素 目前不用该方法
|
bpmnRenderer: ['type', jnpfRenderer, { options }], // 画布渲染
|
elementFactory: ['type', jnpfElementFactory], // 元素工厂
|
jnpfData: ['type', jnpfBusinessData], // 用于放置业务数据
|
gridSnappingAutoPlaceBehavior: ['type', jnpfGridSnappingAutoPlaceBehavior], // 自动生成元素位置 在点击coontext-pad时计算元素生成位置
|
alignElementsContextPadProvider: ['type', jnpfAlignElementsContextPadProvider], // 元素的排序等
|
outlineProvider: ['type', jnpfOutline, { options }], // 元素的外边框(用于修改边框颜色,注:线条颜色有svg获取标签再去修改颜色及箭头)
|
contextPad: ['type', jnpfContextPad], // 点击元素后的元素右侧弹窗框(显示开始节点 结束节点等)
|
contextPadProvider: ['type', jnpfContextPadProvider], // context-pad 属性
|
bpmnRules: ['type', jnpfCustomBpmnRules], // 自定义规则
|
commandStack: ['type', jnpfCommandStack], // 自定义CommandStack
|
gridSnappingLayoutConnectionBehavior: ['type', GridSnappingLayoutConnectionBehavior], // 修改连线的排序
|
bpmnCopyPaste: ['type', jnpfCustomBpmnCopyPaste], // 复制元素
|
},
|
];
|
class bpmnModeler extends Modeler {
|
constructor(options: any) {
|
flowInfo = options.flowInfo;
|
super(options);
|
}
|
}
|
|
bpmnModeler.prototype['_modules'] = [].concat(bpmnModeler.prototype['_modules'], modeler(flowInfo));
|
|
export default bpmnModeler;
|