{
  "$schema": "https://ai.syncfusion.com/schema/registry-item.json",
  "name": "diagram-bpmn-editor",
  "framework": "angular",
  "type": "registry:component",
  "component": "Diagram",
  "variant": "bpmn-editor",
  "dependencies": [
    "@syncfusion/ej2-angular-diagrams"
  ],
  "description": "BPMN process editor with a diagram canvas and a symbol palette of BPMN shapes, events, and tasks.",
  "meta": {
    "essentialStudioRelease": "2026 Volume 2 (v34.1.29)",
    "license": "commercial-or-community",
    "licenseNote": "The Syncfusion package is licensed. The composition in this file is source you own and edit. See https://ai.syncfusion.com/licensing.md",
    "requiresLicenseKey": true,
    "requiresServerEndpoint": false,
    "platformIndex": "https://ai.syncfusion.com/angular/llms.txt",
    "skillPack": "syncfusion/angular-ui-components-skills",
    "docs": "https://ai.syncfusion.com/gallery/angular/diagram-bpmn-editor.md"
  },
  "files": [
    {
      "target": "src/components/diagram-bpmn-editor/bpmn-editor.component.ts",
      "content": "/**\n * BPMN Editor sample\n */\n\n// Importing needed dependencies for diagram\nimport { Component, ViewEncapsulation, ViewChild ,Inject} from '@angular/core';\nimport { DiagramComponent, MarginModel, Diagram, NodeModel, BpmnDiagrams, SnapSettingsModel,\n    BpmnLoops, SnapConstraints, SymbolPalette, BpmnShape, BpmnDataObjects, BpmnGateways, BpmnTasks,\n    BpmnTriggers, BpmnBoundary, NodeConstraints, BpmnShapeModel, ConnectorModel, BpmnGatewayModel,\n    ContextMenuSettingsModel, IDragEnterEventArgs, DiagramBeforeMenuOpenEventArgs, BpmnEvents,\n    PaletteModel, SymbolPaletteModule, DiagramModule, Segments} from '@syncfusion/ej2-angular-diagrams';\nimport { MenuEventArgs, ExpandMode } from '@syncfusion/ej2-navigations';\nSymbolPalette.Inject(BpmnDiagrams);\nDiagram.Inject(BpmnDiagrams);\n\n/**\n * Component for displaying a BPMN Editor  sample.\n * Manages the presentation and behavior of the diagram using Syncfusion's Angular Diagram component.\n */\n@Component({\n    selector: 'control-content', // Angular component selector\n    templateUrl: 'bpmn-editor.html', // HTML template file for the component\n    encapsulation: ViewEncapsulation.None, // No view encapsulation\n    standalone: true,  // Indicates it's a standalone component\n    imports: [ SymbolPaletteModule, DiagramModule]   // Importing necessary Angular modules and components\n})\n\n/**\n * Represents a diagram component of BPMN Editor .\n */\nexport class BPMNShapesDiagramComponent {\n  // Reference to the diagram component\n  @ViewChild('diagram')\n    public diagram!: DiagramComponent;\n    public expandMode: ExpandMode = 'Multiple';\n    public snapSettings: SnapSettingsModel = { constraints: SnapConstraints.None };\n\n\n    // Function to initialize a node\n    private createNode(id: string, width: number, height: number, offsetX: number, offsetY: number,\n        shape: any, annotations: any[] = [], margin: any = {}, style: any = {}, constraints: any = NodeConstraints.Default): NodeModel {\n        return {\n            id: id,\n            width: width,\n            height: height,\n            offsetX: offsetX,\n            offsetY: offsetY,\n            shape: shape,\n            annotations,\n            margin: margin,\n            style: style,\n            constraints: constraints\n        }\n    };\n    \n  //Initializes the nodes for the diagram.\n  public nodes: NodeModel[] = [    \n  \n    this.createNode('start', 40, 40, 35, 180, { type: 'Bpmn', shape: 'Event', event: { event: 'Start' } }),\n  \n    this.createNode('subProcess', 520, 250, 355, 180, { shape: 'Activity', type: 'Bpmn', activity: { activity: 'SubProcess',\n    subProcess: { type: 'Transaction', collapsed: false, processes: ['processesStart', 'service', 'compensation', \n    'error','processesTask', 'processesEnd', 'user', 'subProcessesEnd']}}},[],{},{},\n    NodeConstraints.Default | NodeConstraints.AllowDrop,\n  ),\n    \n    this.createNode('hazardEnd', 40, 40, 305, 370, { type: 'Bpmn', shape: 'Event', event: { event: 'End' } }, [\n      { id: 'label2', content: 'Hazard', verticalAlignment: 'Top', style: { fill: 'white', color: 'black' }, margin: { top: 20 } }\n    ]),\n    \n    this.createNode('cancelledEnd', 40, 40, 545, 370, { type: 'Bpmn', shape: 'Event', event: { event: 'End' } }, [\n      { id: 'cancelledEndLabel2', content: 'Cancelled', verticalAlignment: 'Top', style: { fill: 'white', color: 'black' }, margin: { top: 20 } }\n    ]),\n    \n    this.createNode('end', 40, 40, 665, 180, { type: 'Bpmn', shape: 'Event', event: { event: 'End' } }),\n    \n    this.createNode('processesStart', 30, 30, 0, 0, { type: 'Bpmn', shape: 'Event', event: { event: 'Start' } }, [], { left: 40, top: 80 }),\n    \n    this.createNode('service', 95, 70, 0, 0, {\n      type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task', task: { type: 'Service', loop: 'ParallelMultiInstance' } } },\n      [{ id: 'serviceLabel2', content: 'Book hotel', style: { color: 'white' }, offset: { x: 0.5, y: 0.5 } }],\n      { left: 110, top: 20 }, { fill: '#6FAAB0' }\n    ),\n    \n    this.createNode('compensation', 30, 30, 0, 0, { type: 'Bpmn', shape: 'Event', event: { event: 'Intermediate', trigger: 'Compensation' } }, [], { left: 170, top: 100 }),\n    \n    this.createNode('processesTask', 95, 70, 0, 0, {\n      type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task', task: { type: 'Service' } } }, \n      [{ id: 'serviceLabel2', content: 'Charge credit card', style: { color: 'white' }, offset: { x: 0.5, y: 0.6 } } ],\n      { left: 290, top: 20 }, { fill: '#F6B53F' }\n    ),\n    \n    this.createNode('error', 30, 30, 0, 0, { type: 'Bpmn', shape: 'Event', event: { event: 'Intermediate', trigger: 'Error' } }, [], { left: 350, top: 100 }),\n    \n    this.createNode('processesEnd', 30, 30, 0, 0, { type: 'Bpmn', shape: 'Event', event: { event: 'End' } },[], { left: 440, top: 80 }),\n    \n    this.createNode('user', 90, 80, 0, 0, {\n      type: 'Bpmn', shape: 'Activity', activity: { activity: 'Task', task: { type: 'User', compensation: true } } }, \n      [ { id: 'serviceLabel2', content: 'Cancel hotel reservation', style: { color: 'white' }, offset: { x: 0.5, y: 0.6 } } ], \n      { left: 30, top: 160 }, { fill: '#E94649' }\n    ),\n    \n    this.createNode('subProcessesEnd', 30, 30, 0, 0, { type: 'Bpmn', shape: 'Event', event: { event: 'End' } }, [], { left: 440, top: 210 }),\n  ];\n\n\n    // Function to create a connector\n    private createConnector(id: string, sourceID: string, targetID: string, sourcePortID = \" \", targetPortID = \"\", type: Segments = \"Orthogonal\",\n        segments: any[] = [], annotations: any[] = [], shape: any = {}, style: any = {}): ConnectorModel {\n        return {\n            id: id,\n            sourceID: sourceID,\n            targetID: targetID,\n            sourcePortID: sourcePortID,\n            targetPortID: targetPortID,\n            type: type,\n            segments: segments,\n            annotations: annotations,\n            shape: shape,\n            style: style\n        }\n    };\n    \n    //Initializes the connectors for the diagram.\n    public connectors: ConnectorModel[] = [\n    this.createConnector('connector1', 'start', 'subProcess'),\n    this.createConnector('connector2', 'subProcess', 'end', 'success'),\n    this.createConnector('connector3', 'subProcess', 'hazardEnd', 'failure',\"\", 'Orthogonal', \n      [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n      [{ id: 'connector3Label2', content: 'Booking system failure', offset: 0.50, style: { fill: 'white' }}]\n    ),\n    this.createConnector('connector4', 'subProcess', 'cancelledEnd', 'cancel',\"\", 'Orthogonal', \n      [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }]\n    ),\n    this.createConnector('connector5', 'processesStart', 'service', \"\", \"\", 'Orthogonal'),\n    this.createConnector('connector6', 'service', 'processesTask'),\n    this.createConnector('connector7', 'processesTask', 'processesEnd', \"\", \"\", 'Orthogonal'),\n    this.createConnector('connector8', 'compensation', 'user', \"\", \"\", 'Orthogonal', \n      [{ type: 'Orthogonal', length: 30, direction: 'Bottom' },{ type: 'Orthogonal', length: 80, direction: 'Left' }],\n      [],{ type: 'Bpmn', flow: 'Association', association: 'Directional'},{ strokeDashArray: '2,2'}\n    ),\n    this.createConnector('connector9', 'error', 'subProcessesEnd', \"\", \"\", 'Orthogonal', \n      [{ type: 'Orthogonal', length: 50, direction: 'Bottom' }],\n      [{ id: 'connector9Label2', content: 'Cannot charge card', offset: 0.5,\n        style: { fill: 'white', color: 'black' } } ]\n    )\n  ];\n\n    //Initializes the bpmn shapes for the symbol pallete.\n    public bpmnShapes: NodeModel[] = [\n        {\n            id: 'Start', width: 35, height: 35, shape: {\n                type: 'Bpmn', shape: 'Event',\n                event: { event: 'Start' },\n            },\n        },\n        {\n            id: 'NonInterruptingIntermediate', width: 35, height: 35, shape: {\n                type: 'Bpmn', shape: 'Event',\n                event: { event: 'NonInterruptingIntermediate' }\n            },\n        },\n        {\n            id: 'End', width: 35, height: 35, offsetX: 665, offsetY: 230, shape: {\n                type: 'Bpmn', shape: 'Event',\n                event: { event: 'End' }\n            },\n        },\n        {\n            id: 'Task', width: 35, height: 35, offsetX: 700, offsetY: 700,\n            shape: {\n                type: 'Bpmn', shape: 'Activity', activity: {\n                    activity: 'Task',\n                },\n            }\n        },\n        {\n            id: 'Transaction', width: 35, height: 35, offsetX: 300, offsetY: 100,\n            constraints: NodeConstraints.Default | NodeConstraints.AllowDrop,\n            shape: {\n                type: 'Bpmn', shape: 'Activity',\n                activity: {\n                    activity: 'SubProcess', subProcess: {\n                        type: 'Transaction', transaction: {\n                            cancel: { visible: false }, failure: { visible: false }, success: { visible: false }\n                        }\n                    }\n                }\n            }\n        }, {\n            id: 'Task_Service', width: 35, height: 35, offsetX: 700, offsetY: 700,\n            shape: {\n                type: 'Bpmn', shape: 'Activity', activity: {\n                    activity: 'Task', task: { type: 'Service' }\n                },\n            }\n        },\n        {\n            id: 'Gateway', width: 35, height: 35, offsetX: 100, offsetY: 100,\n            shape: { type: 'Bpmn', shape: 'Gateway', gateway: { type: 'Exclusive' } as BpmnGatewayModel }\n        },\n        {\n            id: 'DataObject', width: 35, height: 35, offsetX: 500, offsetY: 100,\n            shape: { type: 'Bpmn', shape: 'DataObject', dataObject: { collection: false, type: 'None' } }\n        },\n        {\n            id: 'subProcess', width: 520, height: 250, offsetX: 355, offsetY: 230,\n            constraints: NodeConstraints.Default | NodeConstraints.AllowDrop,\n            shape: {\n                shape: 'Activity', type: 'Bpmn',\n                activity: {\n                    activity: 'SubProcess', subProcess: {\n                        type: 'Transaction', collapsed: false,\n                        processes: [], transaction: {\n                            cancel: { visible: false }, failure: { visible: false }, success: { visible: false }\n                        }\n                    }\n                }\n            },\n        },\n    ];\n\n    \n    //Initializes the context menu for shapes.\n    public contextMenu: ContextMenuSettingsModel = {\n    show: true, items: [\n        {\n            text: 'Ad-Hoc', id: 'Adhoc',\n            items: [{ text: 'None', iconCss: 'e-adhocs e-bpmn-event e-bpmn-icons e-None', id: 'AdhocNone' },\n            { iconCss: 'e-adhocs e-bpmn-icons e-adhoc', text: 'Ad-Hoc', id: 'AdhocAdhoc' }]\n        }, {\n            text: 'Loop', id: 'Loop',\n            items: [{ text: 'None', iconCss: 'e-loop e-bpmn-icons e-None', id: 'LoopNone' },\n            { text: 'Standard', iconCss: 'e-loop e-bpmn-icons e-Loop', id: 'Standard' },\n            { text: 'Parallel Multi-Instance', iconCss: 'e-loop e-bpmn-icons e-ParallelMI', id: 'ParallelMultiInstance' },\n            { text: 'Sequence Multi-Instance', iconCss: 'e-loop e-bpmn-icons e-SequentialMI', id: 'SequenceMultiInstance' }]\n        }, {\n            text: 'Compensation', id: 'taskCompensation',\n            items: [{ text: 'None', iconCss: 'e-compensation e-bpmn-icons e-None', id: 'CompensationNone' },\n            { iconCss: 'e-compensation e-bpmn-icons e-Compensation', text: 'Compensation', id: 'CompensationCompensation' }]\n        }, {\n            text: 'Activity-Type', id: 'Activity-Type',\n            items: [{ text: 'Collapsed sub-process', iconCss: 'e-bpmn-icons e-SubProcess', id: 'CollapsedSubProcess' },\n            { iconCss: 'e-bpmn-icons e-Task', text: 'Expanded sub-process', id: 'ExpandedSubProcess' }]\n        }, {\n            text: 'Boundry', id: 'Boundry',\n            items: [{ text: 'Default', iconCss: 'e-boundry e-bpmn-icons e-Default', id: 'Default' },\n            { text: 'Call', iconCss: 'e-boundry e-bpmn-icons e-Call', id: 'BoundryCall' },\n            { text: 'Event', iconCss: 'e-boundry e-bpmn-icons e-Event', id: 'BoundryEvent' }]\n        }, {\n            text: 'Data Object', id: 'DataObject',\n            items: [{ text: 'None', iconCss: 'e-data e-bpmn-icons e-None', id: 'DataObjectNone' },\n            { text: 'Input', iconCss: 'e-data e-bpmn-icons e-DataInput', id: 'Input' },\n            { text: 'Output', iconCss: 'e-data e-bpmn-icons e-DataOutput', id: 'Output' }]\n        }, {\n            text: 'Collection', id: 'collection',\n            items: [{ text: 'None', iconCss: 'e-collection e-bpmn-icons e-None', id: 'collectionNone' },\n            { text: 'Collection', iconCss: 'e-collection e-bpmn-icons e-ParallelMI', id: 'Collectioncollection' }]\n        }, {\n            text: 'Call', id: 'DeftCall',\n            items: [{ text: 'None', iconCss: 'e-call e-bpmn-icons e-None', id: 'CallNone' },\n            { text: 'Call', iconCss: 'e-call e-bpmn-icons e-CallActivity', id: 'CallCall' }]\n        }, {\n            text: 'Trigger Result', id: 'TriggerResult',\n            items: [{ text: 'None', id: 'TriggerNone', iconCss: 'e-trigger e-bpmn-icons e-None' },\n            { text: 'Message', id: 'Message', iconCss: 'e-trigger e-bpmn-icons e-InMessage' },\n            { text: 'Multiple', id: 'Multiple', iconCss: 'e-trigger e-bpmn-icons e-InMultiple' },\n            { text: 'Parallel', id: 'Parallel', iconCss: 'e-trigger e-bpmn-icons e-InParallelMultiple' },\n            { text: 'Signal', id: 'Signal', iconCss: 'e-trigger e-bpmn-icons e-InSignal' },\n            { text: 'Timer', id: 'Timer', iconCss: 'e-trigger e-bpmn-icons e-InTimer' },\n            { text: 'Cancel', id: 'Cancel', iconCss: 'e-trigger e-bpmn-icons e-CancelEnd' },\n            { text: 'Escalation', id: 'Escalation', iconCss: 'e-trigger e-bpmn-icons e-InEscalation' },\n            { text: 'Error', id: 'Error', iconCss: 'e-trigger e-bpmn-icons e-InError' },\n            { text: 'Compensation', id: 'triggerCompensation', iconCss: 'e-trigger e-bpmn-icons e-InCompensation' },\n            { text: 'Terminate', id: 'Terminate', iconCss: 'e-trigger e-bpmn-icons e-TerminateEnd' },\n            { text: 'Conditional', id: 'Conditional', iconCss: 'e-trigger e-bpmn-icons e-InConditional' },\n            { text: 'Link', id: 'Link', iconCss: 'e-trigger e-bpmn-icons e-ThrowLinkin' }\n            ]\n        },\n        {\n            text: 'Event Type', id: 'EventType',\n            items: [{ text: 'Start', id: 'Start', iconCss: 'e-event e-bpmn-icons e-NoneStart', },\n            { text: 'Intermediate', id: 'Intermediate', iconCss: 'e-event e-bpmn-icons e-InterruptingNone' },\n            { text: 'NonInterruptingStart', id: 'NonInterruptingStart', iconCss: 'e-event e-bpmn-icons e-Noninterruptingstart' },\n            { text: 'ThrowingIntermediate', id: 'ThrowingIntermediate', iconCss: 'e-event e-bpmn-icons e-ThrowingIntermediate' },\n            {\n                text: 'NonInterruptingIntermediate', id: 'NonInterruptingIntermediate',\n                iconCss: 'e-event e-bpmn-icons e-NoninterruptingIntermediate'\n            },\n            { text: 'End', id: 'End', iconCss: 'e-event e-bpmn-icons e-NoneEnd' }]\n        }, {\n            text: 'Task Type', id: 'TaskType',\n            items: [\n                { text: 'None', id: 'TaskNone', iconCss: 'e-task e-bpmn-icons e-None' },\n                { text: 'Service', id: 'Service', iconCss: 'e-task e-bpmn-icons e-ServiceTask' },\n                { text: 'BusinessRule', id: 'BusinessRule', iconCss: 'e-task e-bpmn-icons e-BusinessRule' },\n                { text: 'InstantiatingReceive', id: 'InstantiatingReceive', iconCss: 'e-task e-bpmn-icons e-InstantiatingReceive' },\n                { text: 'Manual', id: 'Manual', iconCss: 'e-task e-bpmn-icons e-ManualCall' },\n                { text: 'Receive', id: 'Receive', iconCss: 'e-task e-bpmn-icons e-InMessage' },\n                { text: 'Script', id: 'Script', iconCss: 'e-task e-bpmn-icons e-ScriptCall' },\n                { text: 'Send', id: 'Send', iconCss: 'e-task e-bpmn-icons e-OutMessage' },\n                { text: 'User', id: 'User', iconCss: 'e-task e-bpmn-icons e-UserCall' },\n            ]\n        }, {\n            text: 'GateWay', id: 'GateWay',\n            iconCss: 'e-bpmn-icons e-Gateway', items: [\n                { text: 'None', id: 'GatewayNone', iconCss: 'e-gate e-bpmn-icons e-None' },\n                { text: 'Exclusive', iconCss: 'e-gate e-bpmn-icons e-ExclusiveGatewayWithMarker', id: 'Exclusive' },\n                { text: 'Inclusive', iconCss: 'e-gate e-bpmn-icons e-InclusiveGateway', id: 'Inclusive' },\n                { text: 'Parallel', iconCss: 'e-gate e-bpmn-icons e-ParallelGateway', id: 'GatewayParallel' },\n                { text: 'Complex', iconCss: 'e-gate e-bpmn-icons e-ComplexGateway', id: 'Complex' },\n                { text: 'EventBased', iconCss: 'e-gate e-bpmn-icons e-EventBasedGateway', id: 'EventBased' },\n                { text: 'ExclusiveEventBased', iconCss: 'e-gate e-bpmn-icons e-ExclusiveEventBased', id: 'ExclusiveEventBased' },\n                { text: 'ParallelEventBased', iconCss: 'e-gate e-bpmn-icons e-ParallelEventBasedGatewaytostart', id: 'ParallelEventBased' }\n            ]\n        },\n    ],\n    showCustomMenuOnly: true,\n    };\n\n\n    public diagramCreate(args: Object): void {\n        this.diagram.fitToPage();\n        paletteIconClick();\n    };\n    public symbolMargin: MarginModel = {\n        left: 15, right: 15, top: 15, bottom: 15\n    };\n\n\n    // Define the function getConnectors\n    public getConnectors(): ConnectorModel[] {\n\n        //Initializes the Connector shapes for the symbol pallete.\n        let connectorSymbols: ConnectorModel[] = [\n            {\n                id: 'Link1', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n                targetDecorator: { shape: 'Arrow', style: {strokeColor: '#757575', fill: '#757575'} }, style: { strokeWidth: 2, strokeColor: '#757575' }\n            },\n            {\n                id: 'Link2', type: 'Orthogonal', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n                targetDecorator: { shape: 'Arrow', style: {strokeColor: '#757575', fill: '#757575'} }, style: { strokeWidth: 2, strokeDashArray: '4 4', strokeColor: '#757575' }\n            },\n            {\n                id: 'Link3', type: 'Straight', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 },\n                targetDecorator: { shape: 'Arrow', style: {strokeColor: '#757575', fill: '#757575'} }, style: { strokeWidth: 2, strokeColor: '#757575' }\n            },\n            {\n                id: 'link4', sourcePoint: { x: 0, y: 0 }, targetPoint: { x: 40, y: 40 }, type: 'Orthogonal',\n                targetDecorator: { style: {strokeColor: '#757575', fill: '#757575'} },\n                shape: {\n                    type: 'Bpmn',\n                    flow: 'Association',\n                    association: 'Directional'\n                }, style: {\n                    strokeDashArray: '2,2', strokeColor: '#757575'\n                },\n            },\n        ];\n        return connectorSymbols;\n    }\n\n    //function context menu click\n    public contextMenuClick(args: MenuEventArgs): void {\n      if (this.diagram.selectedItems.nodes!.length > 0) {\n        let bpmnShape: any = this.diagram.selectedItems.nodes![0].shape as BpmnShapeModel;\n        if (args.item.iconCss) {\n          if (args.item.iconCss.indexOf('e-adhocs') > -1) {\n            bpmnShape.activity.subProcess.adhoc = args.item.id === 'AdhocNone' ? false : true;\n          }\n          if (args.item.iconCss.indexOf('e-event') > -1) {\n            bpmnShape.event.event = (args.item.id as BpmnEvents);\n          }\n          if (args.item.iconCss.indexOf('e-trigger') > -1) {\n            bpmnShape.event.trigger = (args.item.text as BpmnTriggers);\n          }\n          if (args.item.iconCss.indexOf('e-loop') > -1) {\n            let loop : string = (args.item.id === 'LoopNone' as BpmnLoops) ? 'None' : args.item.id!;\n            if (bpmnShape.activity.activity === 'Task') {\n              bpmnShape.activity.task.loop = loop as BpmnLoops;\n            }\n            if (bpmnShape.activity.activity === 'SubProcess') {\n              bpmnShape.activity.subProcess.loop = loop as BpmnLoops;\n            }\n          }\n          if (args.item.iconCss.indexOf('e-compensation') > -1) {\n            let compensation: boolean = (args.item.id === 'CompensationNone') ? false : true;\n            if (bpmnShape.activity.activity === 'Task') {\n              bpmnShape.activity.task.compensation = compensation;\n            }\n            if (bpmnShape.activity.activity === 'SubProcess') {\n              bpmnShape.activity.subProcess.compensation = compensation;\n            }\n          }\n          if (args.item.iconCss.indexOf('e-call') > -1) {\n            let compensation: boolean = (args.item.id === 'CallNone') ? false : true;\n            if (bpmnShape.activity.activity === 'Task') {\n              bpmnShape.activity.task.call = compensation;\n            }\n          }\n\n          if (args.item.iconCss.indexOf('e-boundry') > -1) {\n            let call: string = args.item.id!;\n            if (args.item.id !== 'Default') {\n              call = (args.item.id === 'BoundryEvent') ? 'Event' : 'Call';\n            }\n            bpmnShape.activity.subProcess.boundary = call as BpmnBoundary;\n          }\n          if (args.item.iconCss.indexOf('e-data') > -1) {\n            let call: string = args.item.id === 'DataObjectNone' ? 'None' : args.item.id!;\n            bpmnShape.dataObject.type = call as BpmnDataObjects;\n          }\n          if (args.item.iconCss.indexOf('e-collection') > -1) {\n            let call: boolean = (args.item.id === 'Collectioncollection') ? true : false;\n            bpmnShape.dataObject.collection = call;\n          }\n          if (args.item.iconCss.indexOf('e-task') > -1) {\n            let task: string = args.item.id === 'TaskNone' ? 'None' : args.item.id!;\n            if (bpmnShape.activity.activity === 'Task') {\n              bpmnShape.activity.task.type = task as BpmnTasks;\n            }\n          }\n          if (args.item.iconCss.indexOf('e-gate') > -1) {\n            let task: string = args.item.id!.replace('Gateway', '');\n            if (bpmnShape.shape === 'Gateway') {\n              bpmnShape.gateway.type = task as BpmnGateways;\n            }\n          }\n        }\n        if (args.item.id === 'CollapsedSubProcess' || args.item.id === 'ExpandedSubProcess') {\n          if (args.item.id === 'ExpandedSubProcess') {\n            bpmnShape.activity.activity = 'SubProcess';\n            bpmnShape.activity.subProcess.collapsed = false;\n          } else {\n            bpmnShape.activity.activity = 'SubProcess';\n            bpmnShape.activity.subProcess.collapsed = true;\n          }\n        }\n        this.diagram.dataBind();\n      }\n    }\n\n    // Define a function to handle opening the context menu\n    public contextMenuOpen(args: DiagramBeforeMenuOpenEventArgs) {\n        let hiddenId: string[] = [];\n        if (args.element.className !== 'e-menu-parent e-ul ') {\n            hiddenId = ['Adhoc', 'Loop', 'taskCompensation', 'Activity-Type', 'Boundry', 'DataObject',\n                'collection', 'DeftCall', 'TriggerResult', 'EventType', 'TaskType', 'GateWay'];\n        }\n        if (this.diagram.selectedItems.nodes!.length) {\n            for (let item of args.items) {\n                let bpmnShape: any = this.diagram.selectedItems.nodes![0].shape as BpmnShapeModel;\n                if (bpmnShape.shape !== 'DataObject' && bpmnShape.shape !== 'Gateway') {\n                    if (item.text === 'Ad-Hoc') {\n                        if (bpmnShape.activity.activity === 'SubProcess') {\n                            hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                        }\n                    }\n                    if (item.text === 'Loop' || item.text === 'Compensation' || item.text === 'Activity-Type') {\n                        if (bpmnShape.shape === 'Activity') {\n                            hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                        }\n                    }\n                    if (item.text === 'Boundry') {\n                        if (bpmnShape.activity.activity === 'SubProcess') {\n                            hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                        }\n                    }\n                }\n                if (item.text === 'Data Object') {\n                    if (bpmnShape.shape === 'DataObject') {\n                        hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                    }\n                }\n                if (item.text === 'Collection') {\n                    if (bpmnShape.shape === 'DataObject') {\n                        hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                    }\n                }\n                if (item.text === 'Call') {\n                    if (bpmnShape.shape === 'Activity' && bpmnShape.activity.activity === 'Task') {\n                        hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                    }\n                }\n                if (item.text === 'Trigger Result') {\n                    if ((bpmnShape.shape === 'Event')) {\n                        hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                    }\n                }\n                if (item.text === 'Event Type') {\n                    if ((bpmnShape.shape === 'Event')) {\n                        hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                    }\n                }\n                if (item.text === 'Task Type') {\n                    if ((bpmnShape.shape === 'Activity')\n                        && (bpmnShape.activity.activity === 'Task')) {\n                        hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                    }\n                }\n                if (item.text === 'GateWay') {\n                    if ((bpmnShape.shape === 'Gateway')) {\n                        hiddenId.splice(hiddenId.indexOf(item.id!), 1);\n                    }\n                }\n                if (args.parentItem && args.parentItem.id === 'TriggerResult' && bpmnShape.shape === 'Event') {\n\n                    if (item.text !== 'None' && (item.text === bpmnShape.event.event || item.text === bpmnShape.event.trigger)) {\n                        hiddenId.push(item.id!);\n                    }\n                    if (bpmnShape.event.event === 'Start') {\n                        if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Link') {\n                            hiddenId.push(item.id!);\n                        }\n                    }\n                    if (bpmnShape.event.event === 'NonInterruptingStart' || item.text === 'Link') {\n                        if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Compensation' ||\n                            item.text === 'Error' || item.text === 'None') {\n                            hiddenId.push(item.id!);\n                        }\n                    }\n                    if (bpmnShape.event.event === 'Intermediate') {\n                        if (item.text === 'Terminate') {\n                            hiddenId.push(item.id!);\n                        }\n                    }\n                    if (bpmnShape.event.event === 'NonInterruptingIntermediate') {\n                        if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Compensation' ||\n                            item.text === 'Error' || item.text === 'None' || item.text === 'Link') {\n                            hiddenId.push(item.id!);\n                        }\n                    }\n                    if (bpmnShape.event.event === 'ThrowingIntermediate') {\n                        if (item.text === 'Cancel' || item.text === 'Terminate' || item.text === 'Timer' || item.text === 'Error' ||\n                            item.text === 'None' || item.text === 'Pareller' || item.text === 'Conditional') {\n                            hiddenId.push(item.id!);\n                        }\n                    }\n                    if (bpmnShape.event.event === 'End') {\n                        if (item.text === 'Parallel' || item.text === 'Timer' || item.text === 'Conditional' || item.text === 'Link') {\n                            hiddenId.push(item.id!);\n                        }\n                    }\n                }\n                if (args.parentItem && args.parentItem.id === 'EventType' && bpmnShape.shape === 'Event') {\n                    if (item.text === bpmnShape.event.event) {\n                        hiddenId.push(item.id!);\n                    }\n                }\n            }\n        }\n        args.hiddenItems = hiddenId;\n    }\n\n    // Function to handle drag enter from palette to diagram\n    public dragEnter(args: IDragEnterEventArgs) {\n        let node: NodeModel = args.element as NodeModel;\n        if (node instanceof Node) {\n            let bpmnShape: any = node.shape;\n            if (!(bpmnShape.activity.subProcess!.collapsed)) {\n                bpmnShape.activity.subProcess!.transaction!.cancel!.visible = true;\n                bpmnShape.activity.subProcess!.transaction!.failure!.visible = true;\n                bpmnShape.activity.subProcess!.transaction!.success!.visible = true;\n            } else {\n                let nodeWidth: number = node.width!;\n                let nodeHeight: number = node.height!;\n                let ratio: number = 100 / node.width!;\n                node.width = 100;\n                node.height! *= ratio;\n                node.offsetX! += (node.width - nodeWidth) / 2;\n                node.offsetY! += (node.height! - nodeHeight) / 2;\n            }\n        }\n    }\n    public getSymbolDefaults(symbol: NodeModel): void {\n        symbol.style!.strokeColor = '#757575';\n      }\n\n    public palette: PaletteModel[] = [\n        { id: 'Bpmn', expanded: true, symbols: this.bpmnShapes, iconCss: 'shapes', title: 'BPMN Shapes' },\n        { id: 'Connector', expanded: true, symbols: this.getConnectors(), iconCss: 'shapes', title: 'Connectors' },\n    ];\n}\n\n"
    },
    {
      "target": "src/components/diagram-bpmn-editor/bpmn-editor.html",
      "content": "<script src=\"script/diagram-common.ts\"></script>\n<style>\n    @font-face {\n        font-family: 'e-bpmn-icons';\n        src: url(data:application/x-font-ttf;charset=utf-8;base64,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cgBvACAAUwB0AHUAZABpAG8AdwB3AHcALgBzAHkAbgBjAGYAdQBzAGkAbwBuAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8AClN1YnByb2Nlc3MMQ2FsbEFjdGl2aXR5BFNlbmQGU2NyaXB0Bk91dHB1dAZTaWduYWwPRXZlbnRTdWJQcm9jZXNzB0NvbXBsZXgFRXZlbnQGQWQtSG9jClBhcmFsbGVsTUkEQ2FsbARMaW5rCUV4Y2x1c2l2ZQRMb29wBUVycm9yCE11bHRpcGxlDEludGVybWVkaWF0ZQxCdXNpbmVzc1J1bGUEVXNlcglUZXJtaW5hdGUHTWVzc2FnZQdEZWZhdWx0BkNhbmNlbBJQYXJhbGxlbEV2ZW50QmFzZWQHU2VydmljZQpFc2NhbGF0aW9uBFRhc2sTRXhjbHVzaXZlRXZlbnRCYXNlZAxTZXF1ZW50aWFsTUkJSW5jbHVzaXZlBVN0YXJ0BVRpbWVyCkV2ZW50QmFzZWQMQ29tcGVuc2F0aW9uA0VuZAtUcmFuc2FjdGlvbgZNYW51YWwETm9uZRBQYXJhbGxlbE11bHRpcGxlC0NvbmRpdGlvbmFsCFBhcmFsbGVsG05vbmludGVycnVwdGluZ0ludGVybWVkaWF0ZRROb25pbnRlcnJ1cHRpbmdzdGFydBRJbnN0YW50aWF0aW5nUmVjZWl2ZQAAAAAA) format('truetype');\n        font-weight: normal;\n        font-style: normal;\n    }\n\n    .e-bpmn-icons {\n        font-family: 'e-bpmn-icons' !important;\n        font-size: 55px;\n        font-style: normal;\n        font-weight: normal;\n        font-variant: normal;\n        text-transform: none;\n        line-height: 1;\n        -webkit-font-smoothing: antialiased;\n        -moz-osx-font-smoothing: grayscale;\n    }\n\n    .e-Order:before {\n        content: \"\\e700\";\n    }\n\n    .e-InBOCatchMessage:before {\n        content: \"\\e701\";\n    }\n\n    .e-NoneEnd:before {\n        content: \"\\e723\";\n    }\n\n    .e-DataObjectCollection:before {\n        content: \"\\e703\";\n    }\n\n    .e-DataOutput:before {\n        content: \"\\e704\";\n    }\n\n    .e-EscalationEnd:before {\n        content: \"\\e705\";\n    }\n\n    .e-Activity:before {\n        content: \"\\e706\";\n    }\n\n    .e-EventBasedGateway:before {\n        content: \"\\e721\";\n    }\n\n    .e-CatchParallelMultiple:before {\n        content: \"\\e708\";\n    }\n\n    .e-CatchMultipleIn:before {\n        content: \"\\e709\";\n    }\n\n    .e-BoCatchCompensation:before {\n        content: \"\\e70a\";\n    }\n\n    .e-TimerIntermediate:before {\n        content: \"\\e70b\";\n    }\n\n    .e-NonInBoCatchParallelMultiple:before {\n        content: \"\\e70d\";\n    }\n\n    .e-NonInBoTimerIntermediate:before {\n        content: \"\\e70e\";\n    }\n\n    .e-ParallelEventBasedGatewaytostart:before {\n        content: \"\\e718\";\n    }\n\n    .e-NonInMultiple:before {\n        content: \"\\e710\";\n    }\n\n    .e-CompensationEnd:before {\n        content: \"\\e711\";\n    }\n\n    .e-InError:before {\n        content: \"\\e70f\";\n    }\n\n    .e-NonCatchMultipleIn:before {\n        content: \"\\e713\";\n    }\n\n    .e-InCompensation:before {\n        content: \"\\e722\";\n    }\n\n    .e-NonInEscalation:before {\n        content: \"\\e716\";\n    }\n\n    .e-ThrowMultipleIn:before {\n        content: \"\\e717\";\n    }\n\n    .e-InMessage:before {\n        content: \"\\e715\";\n    }\n\n    .e-OutMessage:before {\n        content: \"\\e702\";\n    }\n\n    .e-ScriptCall:before {\n        content: \"\\e703\";\n    }\n\n    .e-UserCall:before {\n        content: \"\\e713\";\n    }\n\n    .e-NonInThrowMessage:before {\n        content: \"\\e719\";\n    }\n\n    .e-EvBaseGateTostartProcess:before {\n        content: \"\\e71a\";\n    }\n\n    .e-InterruptingNone:before {\n        content: \"\\e71e\";\n    }\n\n    .e-ThrowingIntermediate:before {\n        content: \"\\e711\";\n    }\n\n    .e-DataOutputCollection:before {\n        content: \"\\e71c\";\n    }\n\n    .e-ThrowEscalationIn:before {\n        content: \"\\e71d\";\n    }\n\n    .e-ExclusiveGatewayWithMarker:before {\n        content: \"\\e70d\";\n    }\n\n    .e-ErrorEnd:before {\n        content: \"\\e71f\";\n    }\n\n    .e-ComplexGateway:before {\n        content: \"\\e707\";\n    }\n\n    .e-NonInParallelMultiple:before {\n        content: \"\\e721\";\n    }\n\n    .e-InSignal:before {\n        content: \"\\e705\";\n    }\n\n    .e-NonInBoCatchEscalation:before {\n        content: \"\\e723\";\n    }\n\n    .e-InclusiveGateway:before {\n        content: \"\\e71e\";\n    }\n\n    .e-MultipleEnd:before {\n        content: \"\\e725\";\n    }\n\n    .e-ThrowLinkin:before {\n        content: \"\\e70c\";\n    }\n\n    .e-ParallelGateway:before {\n        content: \"\\e729\";\n    }\n\n    .e-SignalEnd:before {\n        content: \"\\e728\";\n    }\n\n    .e-TerminateEnd:before {\n        content: \"\\e714\";\n    }\n\n    .e-BoCatchCompensationIn:before {\n        content: \"\\e72a\";\n    }\n\n    .e-InTimer:before {\n        content: \"\\e720\";\n    }\n\n    .e-ThrowCompensationIn:before {\n        content: \"\\e72c\";\n    }\n\n    .e-InConditional:before {\n        content: \"\\e728\";\n    }\n\n    .e-BoCatchCancelIn:before {\n        content: \"\\e72f\";\n    }\n\n    .e-ThrowMessage:before {\n        content: \"\\e730\";\n    }\n\n    .e-CatchLinkIn:before {\n        content: \"\\e731\";\n    }\n\n    .e-Gateway:before {\n        content: \"\\e732\";\n    }\n\n    .e-DataInputCollection:before {\n        content: \"\\e733\";\n    }\n\n    .e-NonInSignal:before {\n        content: \"\\e734\";\n    }\n\n    .e-DataInput:before {\n        content: \"\\e70c\";\n    }\n\n    .e-InMultiple:before {\n        content: \"\\e710\";\n    }\n\n    .e-InEscalation:before {\n        content: \"\\e71a\";\n    }\n\n    .e-CancelEnd:before {\n        content: \"\\e717\";\n    }\n\n    .e-DataObject:before {\n        content: \"\\e739\";\n    }\n\n    .e-NonInBOCatchMessage:before {\n        content: \"\\e73a\";\n    }\n\n    .e-ManualCall:before {\n        content: \"\\e725\";\n    }\n\n    .e-InParallelMultiple:before {\n        content: \"\\e727\";\n    }\n\n    .e-Flow:before {\n        content: \"\\e73d\";\n    }\n\n    .e-DataStore:before {\n        content: \"\\e73e\";\n    }\n\n    .e-NoneStart:before {\n        content: \"\\e71f\";\n    }\n\n    .e-ServiceTask:before {\n        content: \"\\e719\";\n    }\n\n    .e-InBoCatchEscalation:before {\n        content: \"\\e741\";\n    }\n\n    .e-NonInConditional:before {\n        content: \"\\e742\";\n    }\n\n    .e-BusinessRule:before {\n        content: \"\\e712\";\n    }\n\n    .e-NonInTimer:before {\n        content: \"\\e744\";\n    }\n\n    .e-MessageEnd:before {\n        content: \"\\e745\";\n    }\n\n    .e-None:before {\n        content: \"\\e726\";\n    }\n\n    .e-SequentialMI:before {\n        content: \"\\e71d\";\n    }\n\n    .e-ParallelMI:before {\n        content: \"\\e70a\";\n    }\n\n    .e-Loop:before {\n        content: \"\\e70e\";\n    }\n\n    .e-Compensation:before {\n        content: \"\\e722\";\n    }\n\n    .e-SubProcess:before {\n        content: \"\\e700\";\n    }\n\n    .e-Task:before {\n        content: \"\\e71b\";\n    }\n\n    .e-Call:before {\n        content: \"\\e70b\";\n    }\n\n    .e-adhoc:before {\n        content: \"\\e709\";\n    }\n\n    .e-Default:before {\n        content: \"\\e71b\";\n    }\n\n    .e-Event:before {\n        content: \"\\e708\";\n    }\n\n    .e-CallActivity:before {\n        content: \"\\e701\";\n    }\n\n    .e-ExclusiveEventBased:before {\n        content: \"\\e71c\";\n    }\n\n    .e-Noninterruptingstart:before {\n        content: \"\\e72b\";\n    }\n\n    .e-NoninterruptingIntermediate:before {\n        content: \"\\e72a\";\n    }\n\n    .e-InstantiatingReceive:before {\n        content: \"\\e72c\";\n    }\n\n    .sb-bpmn-editor {\n        border-color: rgba(0, 0, 0, 0.12);\n        border-width: 1px 1px 1px 0px;\n        border-style: solid;\n    }\n\n    @media (max-width: 550px) {\n        .sb-bpmn-editor {\n            border-width: 0px 1px 1px;\n        }\n    }\n</style>\n\n\n<div class=\"control-section\">\n    <div class=\"sb-mobile-palette-bar\">\n        <div id=\"palette-icon\" style=\"float: right;\" role=\"button\" class=\"e-ddb-icons1 e-toggle-palette\"></div>\n    </div>\n    <div id=\"palette-space\" class=\"sb-mobile-palette\">\n        <ejs-symbolpalette #symbolpalette id=\"symbolpalette\" [expandMode]=\"expandMode\" [palettes]=\"palette\" width=\"400\" height=\"471px\" [symbolHeight]=60 [symbolWidth]=60 [symbolMargin]=\"symbolMargin\" [getNodeDefaults]='getSymbolDefaults'>\n        </ejs-symbolpalette>\n    </div>\n    <div id=\"diagram-space\" class=\"sb-mobile-diagram sb-bpmn-editor\">\n        <ejs-diagram #diagram id=\"diagram\" width=\"100%\" height=\"445px\" [nodes]=\"nodes\" [connectors]=\"connectors\" [snapSettings]=\"snapSettings\" (created)=\"diagramCreate($event)\" (dragEnter)=\"dragEnter($event)\" [contextMenuSettings]=\"contextMenu\" (contextMenuOpen)=\"contextMenuOpen($event)\"\n            (contextMenuClick)=\"contextMenuClick($event)\">\n        </ejs-diagram>\n    </div>\n</div>\n"
    }
  ]
}