Releases: process-analytics/bpmn-visualization-addons
0.9.0
⚡ This new version adds the ShapeUtil.isFlowNode method to workaround a bug in bpmn-visualization. ⚡
What's Changed
🎉 New Features
- feat: add isFlowNode in ShapeUtil by @tbouffard in #320
📝 Documentation
- docs: fix link to CODE_OF_CONDUCT in README by @tbouffard in #361
- docs: improve the release how-to by @tbouffard in #364
- docs(release): explain the usage of PR labels by @tbouffard in #365
📦 Dependency updates
- chore(deps): bump bpmn-visualization from 0.44.0 to 0.45.0 by @dependabot in #351
- chore(deps): bump bpmn-visualization from 0.45.0 to 0.46.0 by @dependabot in #386
⚙️ Other Changes
- ci: use ubuntu-24.04 by @csouchet in #357
- chore(dependabot): ignore some eslint dependencies by @tbouffard in #372
- style: apply typescript-eslint stylistic rules by @tbouffard in #417
Full Changelog: v0.8.0...v0.9.0
0.8.0
⚡ 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 git@github.com: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-addonsrepository 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-addonsby @tbouffard in #316
Full Changelog: v0.7.1...v0.8.0
0.7.1
⚡ 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/nodeby @tbouffard in #297 - chore(package): store application resources in the
libfolder by @tbouffard in #300 - chore: correctly include the
libfolder 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
⚡ 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:
CssClassesPluginmirrorsCssClassesRegistryOverlaysPluginmirrorsOverlaysRegistryStylePluginmirrorsStyleRegistry
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
- feat: introduce
StyleByNamePluginby @tbouffard in #281 - feat(demo): demonstrate the style update plugin using BPMN names by @tbouffard in #285
- feat: introduce the
StylePluginby @tbouffard in #286 - feat: introduce
CssClassesPluginby @tbouffard in #288 - feat(type): add guidance to retrieve core plugins by @tbouffard in #289
🐛 Bug Fixes
- fix: add missing
ElementsPluginexport by @tbouffard in #280
📝 Documentation
- docs: improve
BpmnElementsSearcherdocumentation by @tbouffard in #221
⚙️ Other Changes
- chore(dev): build with Node 20 by @tbouffard in #271
- refactor(demo): reorganize CSS by @tbouffard in #284
Full Changelog: v0.6.1...v0.7.0
0.6.1
⚡ 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
- feat(demo): improve zoom control buttons by @tbouffard in #186
⚙️ 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
⚡ 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
ElementsPluginby @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
CasePathResolverby @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
- style: apply
unicorn/recommendedrules by @tbouffard in #127 - chore(eslint): lint imports with
eslint-plugin-importby @tbouffard in #140 - refactor(plugin): remove wrong comment by @tbouffard in #141
- refactor(path): let
bpmn-visualizationfilters duplicates by @tbouffard in #155
Full Changelog: v0.5.0...v0.6.0
0.5.0
⚡ 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
PathResolverby @tbouffard in #119 - feat: detect message flows with
PathResolverby @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
Full Changelog: v0.4.0...v0.5.0
0.4.0
⚡ 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-visualizationby @tbouffard in #105
📦 Dependency updates
⚙️ 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
- @dependabot made their first contribution in #88
- @csouchet made their first contribution in #104
Full Changelog: v0.3.0...v0.4.0
0.3.0
⚡ 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/
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
PathResolverdemo by @tbouffard in #61 - feat: introduce plugins infrastructure and add
OverlaysPluginby @tbouffard in #62
📝 Documentation
- docs: add badges in README by @tbouffard in #57
- docs: improve package installation steps by @tbouffard in #56
- docs: add SonarCloud badge in README by @tbouffard in #69
⚙️ Other Changes
- build: develop the lib and demo with a single command by @tbouffard in #58
- refactor(demo): remove hack for
resetStyleby @tbouffard in #70
Full Changelog: v0.2.0...v0.3.0
0.2.0
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
- feat: initialize demo for
PathResolverby @tbouffard in #50 - feat: add
ShapeUtil.isBpmnArtifactby @tbouffard in #52 - feat(demo): provide guidance in the page by @tbouffard in #54
📝 Documentation
- docs: add link to the
bpmn-visualizationrepository by @tbouffard in #49
⚙️ Other Changes
- ci: fix paths in the build workflow by @tbouffard in #51
- ci: deploy demo to GitHub Pages by @tbouffard in #53
Full Changelog: v0.1.1...v0.2.0
