elsa-workflows / elsa-designer

A standards-based Workflow Designer built with StencilJS
MIT License
263 stars 91 forks source link

Built With Stencil

Elsa Workflow Designer

npm (scoped)

Elsa is a visual programming tool that allows you to implement parts or all of your application with workflows. Elsa Designer is a standalone client-side web component that you can embed in your own application.

html-based workflow designer

Installing this component

Script tag

Node Modules

In a stencil-starter app

Using this component

To use the component, add the following HTML tag:

<wf-designer-host></wf-designer-host>

Out of the box, the designer registers a default set of activities that are provided from a set of plugins. To add custom activities, you need to define them as part of a custom plugin.

Integration with other Frontend framework

Angular(2+)

  1. Add Elsa Designer pkg CDN on index.html

    <script
    type="module"
    src="https://unpkg.com/@elsa-workflows/elsa-workflow-designer@0.0.61/dist/elsa-workflow-designer/elsa-workflow-designer.esm.js"
    ></script>
    <script
    nomodule=""
    src="https://unpkg.com/@elsa-workflows/elsa-workflow-designer@0.0.61/dist/elsa-workflow-designer/elsa-workflow-designer.js"
    ></script>
  2. On app.module.ts, add CUSTOM_ELEMENTS_SCHEMA

    @NgModule({
    //whatever you have on app module goes here... 
    schemas: [CUSTOM_ELEMENTS_SCHEMA]
    })
    export class AppModule {}
  3. Add <ng-wf-designer-host></ng-wf-designer-host> to the HTML

    <wf-designer-host
    id="designerHost"
    canvas-height="300vh"
    [attr.data-activity-definitions]="activityDefinition"
    [attr.data-workflow]="workflowModel">
    </wf-designer-host>

    See full example here

Custom Activities

TODO: Describe how to register custom activity definitions using JavaScript & JSON.