Skip to content

Releases: process-analytics/bpmn-visualization-addons

0.8.0

04 Oct 07:46
Compare
Choose a tag to compare

⚡ This new version renames the npm package. ⚡

List of issues: milestone 0.8.0

Breaking changes

Usage

The GitHub repository and npm package have been renamed from bv-experimental-add-ons to bpmn-visualization-addons to better reflect the library's purpose.
ℹ️ For more details on this choice, see #310.

If your application was using the package under its old name (version 0.7.1 or earlier), proceed as follows 👇 :

# first uninstall the old package
npm uninstall @process-analytics/bv-experimental-add-ons
# then install the new package
npm install @process-analytics/bpmn-visualization-addons

Then, update the imports in your application code to use the new package name as follows 👇:

- import {BpmnVisualization} from "@process-analytics/bv-experimental-add-ons";
+ import {BpmnVisualization} from "@process-analytics/bpmn-visualization-addons";

For developers of bpmn-visualization-addons

As the GitHub repository URL has changed, we strongly recommend updating any existing local clones to point to the new repository URL. You can do this by using git remote on the command line:

# using ssh
git remote set-url origin [email protected]:process-analytics/bpmn-visualization-addons.git
# using https
git remote set-url origin https://github.com/process-analytics/bpmn-visualization-addons.git

For more details, see the related GitHub documentation.

What's Changed

📝 Documentation

  • docs: use the new bpmn-visualization-addons repository name by @tbouffard in #311
  • docs: update SonarCloud badge in README by @tbouffard in #313
  • docs(StyleByNamePlugin): mention the match of several elements by @tbouffard in #314

⚙️ Other Changes

  • refactor: improve internal types based on SonarCloud feedback by @tbouffard in #315
  • refactor!: rename the package to bpmn-visualization-addons by @tbouffard in #316

Full Changelog: v0.7.1...v0.8.0

0.7.1

23 Sep 06:55
Compare
Choose a tag to compare

⚡ This new version makes the usage of bv-experimental-add-ons easier in applications built with webpack. ⚡

List of issues: milestone 0.7.1

🚀 Highlight - application built with webpack

In the past, when integrating bv-experimental-add-ons into an application built by webpack, webpack complained that certain modules could not be found, as in the following example 👇🏿 :

ERROR in ./node_modules/@process-analytics/bv-experimental-add-ons/dist/index.js 16:0-32
Module not found: Error: Can't resolve './bpmn-elements' in '/user/app/node_modules/@process-analytics/bv-experimental-add-ons/dist'
Did you mean 'bpmn-elements.js'?

This was only happening with webpack, not with other bundlers. Webpack expects imports and exports to use the js file extension, which was not the case in older versions of bv-experimental-add-ons.
In version 0.7.1, imports and exports have been updated to make webpack hapyy, so you can too 🎁.

ℹ️ For more details and a workaround for older version, see #301.

What's Changed

🐛 Bug Fixes

  • fix(demo): add CSS rules removed by mistake by @tbouffard in #290
  • fix: add missing file extension in imports of the npm package by @tbouffard in #301

📦 Dependency updates

  • chore(deps): bump bpmn-visualization from 0.43.0 to 0.44.0 by @dependabot in #296

⚙️ Other Changes

  • refactor(demo): fetch the BPMN diagrams by @tbouffard in #287
  • chore(dependabot): ignore @types/node by @tbouffard in #297
  • chore(package): store application resources in the lib folder by @tbouffard in #300
  • chore: correctly include the lib folder in the npm package by @tbouffard in #303
  • chore(test): switch from ts-jest to @swc/jest by @tbouffard in #302

Full Changelog: v0.7.0...v0.7.1

0.7.0

06 Sep 13:16
Compare
Choose a tag to compare

Exciting New Features in this Release!

Check out the full list of issues here: Milestone 0.7.0

🚀 Highlights

🎨 New Plugin: StyleByNamePlugin

In bpmn-visualization, BPMN elements are identified by their unique IDs. However, in some cases (like "Process Discovery"), only the element names are available to applications.

Previously, the BpmnElementsSearcher was introduced to retrieve an element's ID by name, allowing the use of existing bpmn-visualization APIs. With this release, the new StyleByNamePlugin simplifies things! Now, you can directly style elements using their names, mirroring the functionality of StyleRegistry.

Before:

const bpmnVisualization = new BpmnVisualization({
  container: 'bpmn-container',
});

const bpmnElementsRegistry = bpmnVisualization.bpmnElementsRegistry;
const searcher = new BpmnElementsSearcher(bpmnElementsRegistry);

// Update the style of a given element
const bpmnElementId = searcher.getElementIdByName('element-name');
bpmnElementsRegistry.updateStyle(bpmnElementId, styleUpdate);

// Updating the style of multiple elements was even more complex
const bpmnElementIds = searcher.searcher.getElementsByNames(['element-name-1', 'element-name-2'])
                                        .map(bpmnElement => bpmnElement.id);
bpmnElementsRegistry.updateStyle(bpmnElementIds, styleUpdate);

Now:

const bpmnVisualization = new BpmnVisualization({
  container: 'bpmn-container',
  plugins: [StyleByNamePlugin], // register the plugin
});

const styleByNamePlugin = bpmnVisualization.getPlugin<StyleByNamePlugin>('style');

// Update the style of a given element
styleByNamePlugin.updateStyle('element-name', styleUpdate);
// Update the style of multiple elements
styleByNamePlugin.updateStyle(['element-name-1', 'element-name-2'], styleUpdate);

✨ This streamlined approach significantly reduces complexity when working with element names!

📣 More name-based plugins are coming soon: 🎉

🛠️ Introducing Specialized Plugins

This version also introduces several new plugins, breaking down the BpmnElementsRegistry API into focused, interface-specific components:

  • CssClassesPlugin mirrors CssClassesRegistry
  • OverlaysPlugin mirrors OverlaysRegistry
  • StylePlugin mirrors StyleRegistry

These plugins hint at the future direction of bpmn-visualization, where the BpmnElementsRegistry will be split into more specialized APIs.

ℹ️ For further details, visit Issue #77

What's Changed

🎉 New Features

🐛 Bug Fixes

📝 Documentation

  • docs: improve BpmnElementsSearcher documentation by @tbouffard in #221

⚙️ Other Changes

Full Changelog: v0.6.1...v0.7.0

0.6.1

12 Jan 11:34
Compare
Choose a tag to compare

⚡ This new version includes internal changes, in particular improvements that apply to the demo. ⚡

List of issues: milestone 0.6.1

What's Changed

🎉 New Features

⚙️ Other Changes

  • chore: update the script to develop the demo by @tbouffard in #166
  • ci: add "actions" permissions to fix GH Pages deploy by @tbouffard in #194
  • ci: automate the initialization of GitHub release by @tbouffard in #198
  • refactor: simplify listener declaration in OverlayPlugin demo by @tbouffard in #201

Full Changelog: v0.6.0...v0.6.1

0.6.0

27 Oct 07:06
Compare
Choose a tag to compare

⚡ This new version improves the plugins and BpmnElementsSearcher. ⚡

List of issues: milestone 0.6.0

Highlights

Minimal version of bpmn-visualization

You must now use bpmn-visualization 0.42.0 or higher with bv-experimental-add-ons. The previous version required bpmn-visualization 0.40.0 or higher.

ℹ️ For more details, see #155.

Plugin are now configurable

The plugins can now be configured by passing options at BpmnVisualization initialization.

Previously, the plugins must be configured by calling a method. This is now easier and consistent with the rest of the library.

New ElementsPlugin plugin

This new version introduces the ElementsPlugin, which exposes the bpmn-visualization API methods that retrieve elements from the model.
This is the first step of an initiative that will provide all methods of BpmnElementsRegistry via plugins.

ℹ️ For more details, see #77

New CasePathResolver

This new class is dedicated to path resolution of a single instance/case of a process, while the existing PathResolver is for general resolution.

Given a set of elements considered as completed, it is currently able to compute the edges between the provided shapes and the shapes around the provided edges.
It is also able to consider completed and pending elements both in the input parameter and in the inferred path.

This is the first step towards the implementation of more intelligent computing in the future.

ℹ️ For more details, see #142

More options for BpmnElementsSearcher

BpmnElementsSearcher allows you to retrieve elements by providing their name.

Previously, it provided only one method, which returned the identifier of the element concerned. In many cases, the need is to retrieve the complete model object, not just its identifier. An additional call to the API was then necessary to obtain the complete object.

BpmnElementsSearcher now provides a new method that retrieves the complete element from the model. In addition, it allows you to choose how deduplication is performed if 2 or more elements match the name provided.

What's Changed

🎉 New Features

  • feat: enable diagram navigation in the "Overlays" demo by @tbouffard in #135
  • feat: introduce ElementsPlugin by @tbouffard in #139
  • feat(BpmnElementsSearcher): provide options to deduplicate elements by @tbouffard in #131
  • feat(BpmnElementsSearcher): add a new method to get all elements by name by @tbouffard in #134
  • feat: introduce CasePathResolver by @tbouffard in #142
  • feat: add a way to configure plugins by @tbouffard in #159

📝 Documentation

  • docs: present the library as less "experimental" than before by @tbouffard in #160

⚙️ Other Changes

Full Changelog: v0.5.0...v0.6.0

0.5.0

25 Sep 12:34
Compare
Choose a tag to compare

⚡ This new version improves BpmnElementsSearcher and PathResolver. ⚡

List of issues: milestone 0.5.0

Minimal version of bpmn-visualization

You must now use bpmn-visualization 0.40.0 or higher with bv-experimental-add-ons. The previous versions required bpmn-visualization 0.39.0 or higher.

What's Changed

🎉 New Features

  • feat: allow to find flows when searching by name by @tbouffard in #118
  • feat: improve the robustness of PathResolver by @tbouffard in #119
  • feat: detect message flows with PathResolver by @tbouffard in #120
  • feat: expose bpmn-visualization methods in OverlaysPlugin by @tbouffard in #123

📝 Documentation

  • docs: add emoji in "other changes" paragraph of the release notes by @tbouffard in #116

📦 Dependency updates

  • chore(deps): bump bpmn-visualization from 0.39.0 to 0.40.0 by @dependabot in #125

⚙️ Other Changes

  • chore(eslint): add ESLint configuration for Jest by @csouchet in #108

Full Changelog: v0.4.0...v0.5.0

0.4.0

05 Sep 09:55
Compare
Choose a tag to compare

⚡ This new version improves the plugin mechanism and the robustness of BPMN element utilities. ⚡

List of issues: milestone 0.4.0

Breaking changes

Minimal version of bpmn-visualization

You must now use bpmn-visualization 0.39.0 or higher with bv-experimental-add-ons. Previous versions required bpmn-visualization 0.37.0 or higher.

TypeScript usage of BpmnVisualization.getPlugin

The method now returns an instance of Plugin. In previous versions, it returned unknown.

Highlights

Simplified plugin usage for TypeScript users

Previously, you had to cast the returned value with the as keyword or with <>:

const myPlugin1 = bpmnVisualization.getPlugin('my-plugin-1') as MyCustomPlugin1;
const myPlugin2 = <MyCustomPlugin2>bpmnVisualization.getPlugin('my-plugin-2');

In the new version, you can still use the previous way, but we suggest you use the new features which provide better guidance:

const myPlugin = bpmnVisualization.getPlugin<MyPlugin>('my-plugin');

ℹ️ If you want more details, please see #106

What's Changed

🎉 New Features

  • feat: prevent multiple plugins with the same ID from loading by @tbouffard in #103
  • feat!: use generic type when getting a plugin by @csouchet in #106
  • feat: improve the robustness of BPMN elements utilities by @tbouffard in #115

📝 Documentation

  • docs: improve the release how-to by @tbouffard in #83
  • docs: improve how-to create the GH releases content by @tbouffard in #94
  • docs: describe the security policy by @tbouffard in #93
  • docs(release): mention requirement changes for bpmn-visualization by @tbouffard in #105

📦 Dependency updates

  • chore: configure Jest to let write tests in Typescript by @csouchet in #104

⚙️ Other Changes

  • chore: configure eslint and fix lint errors by @tbouffard in #84
  • chore: order npm scripts alphabetically in package.json by @tbouffard in #85
  • refactor: fix Code Smells detected by SonarCloud by @tbouffard in #86
  • chore: add dependabot configuration by @tbouffard in #87
  • chore(dev-deps): restore usage of typescript 4.5.2 in check-ts-support by @tbouffard in #90
  • chore(dependabot): do not update typescript by @tbouffard in #98
  • chore: move project to ESM by @tbouffard in #99
  • chore: add infrastructure to write JavaScript tests with jest by @tbouffard in #100
  • refactor(demo): add rel="noopener" to external links by @tbouffard in #101
  • test: add more tests for the plugins support by @tbouffard in #102
  • chore: use bpmn-visualization 0.39.0 as the minimum version required by @tbouffard in #109
  • refactor(demo): move assets to a dedicated sub-folder by @tbouffard in #110
  • test: add tests to OverlaysPlugin by @tbouffard in #107
  • test: move test files to a dedicated sub-folder by @tbouffard in #112

New Contributors

Full Changelog: v0.3.0...v0.4.0

0.3.0

22 Aug 15:19
Compare
Choose a tag to compare

⚡ Let's extend bpmn-visualization with a new plugin mechanism ⚡.

This version provides the OverlaysPlugin plugin to show you how to develop and register plugins. OverlaysPlugin lets you hide and show overlays without removing them from the view.
Have a look at the live demo ⏩ https://process-analytics.github.io/bv-experimental-add-ons/

bv-experimental-add-ons_0 3 0_demo_OverlaysPlugin

List of issues: milestone 0.3.0

What's Changed

🎉 New Features

  • feat(demo): introduce a Home page for all demos by @tbouffard in #60
  • feat(demo): better explain how to use the PathResolver demo by @tbouffard in #61
  • feat: introduce plugins infrastructure and add OverlaysPlugin by @tbouffard in #62

📝 Documentation

⚙️ Other Changes

  • build: develop the lib and demo with a single command by @tbouffard in #58
  • refactor(demo): remove hack for resetStyle by @tbouffard in #70

Full Changelog: v0.2.0...v0.3.0

0.2.0

24 Jul 09:38
Compare
Choose a tag to compare

A demo is now available to show PathResolver in action. You can see it live ⏩ https://process-analytics.github.io/bv-experimental-add-ons/

bv-experimental-add-ons_0.2.0_demo_PathResolver.mp4

List of issues: milestone 0.2.0

What's Changed

🎉 New Features

📝 Documentation

  • docs: add link to the bpmn-visualization repository by @tbouffard in #49

⚙️ Other Changes

Full Changelog: v0.1.1...v0.2.0

0.1.1

22 Jul 14:59
Compare
Choose a tag to compare

📣 This is the first version available as npm package: https://www.npmjs.com/package/@process-analytics/bv-experimental-add-ons

What's Changed

📝 Documentation

  • docs: mention "milestone" management in the release how-to by @tbouffard in #46

⚙️ Other Changes

  • chore: fix workflows used to release and publish npm package by @tbouffard in #45
  • chore(release): correctly tag when bumping the version of the package by @tbouffard in #47
  • ci: fix permissions of versions.bash by @tbouffard in #48

Full Changelog: v0.1.0...v0.1.1