0.27.4 • Published 3 months ago

sequential-workflow-designer-react v0.27.4

Weekly downloads
-
License
MIT
Repository
github
Last release
3 months ago

Sequential Workflow Designer for React

Sequential Workflow Designer for React

Build Status License: MIT View this project on NPM

React wrapper for the Sequential Workflow Designer component.

🚀 Installation

Install the following packages by NPM command:

npm i sequential-workflow-designer sequential-workflow-designer-react

Add CSS files to your app:

import 'sequential-workflow-designer/css/designer.css';
import 'sequential-workflow-designer/css/designer-light.css';
import 'sequential-workflow-designer/css/designer-dark.css';

🎬 Usage

Import types:

import {
  Definition,
  ToolboxConfiguration,
  StepsConfiguration,
  ValidatorConfiguration
} from 'sequential-workflow-designer';
import {
  SequentialWorkflowDesigner,
  wrapDefinition,
  useRootEditor,
  useStepEditor
} from 'sequential-workflow-designer-react';

Create or load your definition of a workflow.

const startDefinition: Definition = { /* ... */ };

Wrap the start definition and memorize it.

const [definition, setDefinition] = useState(() => wrapDefinition(startDefinition));

Configure the designer.

const toolboxConfiguration: ToolboxConfiguration = useMemo(() => ({ /* ... */ }), []);
const stepsConfiguration: StepsConfiguration = useMemo(() => ({ /* ... */ }), []);
const validatorConfiguration: ValidatorConfiguration = useMemo(() => ({ /* ... */ }), []);

Create the root editor component:

function RootEditor() {
  const { properties, setProperty, definition, isReadonly } = useRootEditor();

  function onSpeedChanged(e) {
    setProperty('speed', e.target.value);
  }

  return (
    <>
      <h3>Speed</h3>
      <input value={properties['speed'] || ''} onChange={onSpeedChanged} />
    </>
  );
}

Create the step editor component:

function StepEditor() {
  const { type, componentType, name, setName, properties, setProperty, definition, isReadonly } = useStepEditor();

  function onNameChanged(e) {
    setName(e.target.value);
  }

  return (
    <>
      <h3>Name</h3>
      <input value={name} onChange={onNameChanged} />
    </>
  );
}

At the end attach the designer.

<SequentialWorkflowDesigner
  definition={definition}
  onDefinitionChange={setDefinition}
  stepsConfiguration={stepsConfiguration}
  validatorConfiguration={validatorConfiguration}
  toolboxConfiguration={toolboxConfiguration}
  controlBar={true}
  contextMenu={true}
  rootEditor={<RootEditor />}
  stepEditor={<StepEditor />}>
  />

You can hide any UI component.

<SequentialWorkflowDesigner
  // ...
  toolboxConfiguration={false}
  controlBar={false}
  contextMenu={false}
  rootEditor={false}
  stepEditor={false}>
  />

Check the demo project.

💡 License

This project is released under the MIT license.

0.27.2

5 months ago

0.27.1

6 months ago

0.27.0

7 months ago

0.25.0

7 months ago

0.27.4

3 months ago

0.27.3

4 months ago

0.26.1

7 months ago

0.26.0

7 months ago

0.24.8

8 months ago

0.24.7

8 months ago

0.23.0

10 months ago

0.24.5

9 months ago

0.24.4

9 months ago

0.24.3

9 months ago

0.24.2

9 months ago

0.24.1

9 months ago

0.24.0

9 months ago

0.24.6

9 months ago

0.21.4

11 months ago

0.21.3

11 months ago

0.21.2

1 year ago

0.22.1

10 months ago

0.22.0

11 months ago

0.21.1

1 year ago

0.21.0

1 year ago

0.20.0

1 year ago

0.19.4

1 year ago

0.19.3

1 year ago

0.19.2

1 year ago

0.19.1

1 year ago

0.19.0

1 year ago

0.18.5

1 year ago

0.18.4

1 year ago

0.18.3

1 year ago

0.18.2

1 year ago

0.18.1

1 year ago

0.18.0

2 years ago

0.16.10

2 years ago

0.17.0

2 years ago

0.16.3

2 years ago

0.16.4

2 years ago

0.16.5

2 years ago

0.16.6

2 years ago

0.16.7

2 years ago

0.16.8

2 years ago

0.16.9

2 years ago

0.16.1

2 years ago

0.16.2

2 years ago

0.16.0

2 years ago

0.15.4

2 years ago

0.13.6

2 years ago

0.13.7

2 years ago

0.13.8

2 years ago

0.10.3

2 years ago

0.13.0

2 years ago

0.14.0

2 years ago

0.13.1

2 years ago

0.15.0

2 years ago

0.14.1

2 years ago

0.13.2

2 years ago

0.14.2

2 years ago

0.13.3

2 years ago

0.15.2

2 years ago

0.13.4

2 years ago

0.15.3

2 years ago

0.13.5

2 years ago

0.10.0

2 years ago

0.11.0

2 years ago

0.10.1

2 years ago

0.9.0

2 years ago

0.8.1

2 years ago

0.5.4

2 years ago

0.12.0

2 years ago

0.10.2

2 years ago

0.8.0

2 years ago

0.5.3

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.7.0

2 years ago

0.6.0

2 years ago

0.5.2

2 years ago