4 |
5 | bpmn-visualization - BPMN rendering
6 |
7 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/dev/public/library-integration.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | bpmn-visualization - Library Integration
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/dev/public/static/css/styles.css:
--------------------------------------------------------------------------------
1 | /* static/css/styles.css */
2 | @import 'tailwindcss';
3 |
4 | /* noinspection CssInvalidAtRule */
5 | @config '../../../../tailwind.config.js';
6 |
7 | /*
8 | The default border color has changed to `currentColor` in Tailwind CSS v4,
9 | so we've added these compatibility styles to make sure everything still
10 | looks the same as it did with Tailwind CSS v3.
11 |
12 | If we ever want to remove these styles, we need to add an explicit border
13 | color utility to any element that depends on these defaults.
14 | */
15 | @layer base {
16 | *,
17 | ::after,
18 | ::before,
19 | ::backdrop,
20 | ::file-selector-button {
21 | border-color: var(--color-gray-200, currentColor);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/dev/public/static/css/test-page.css:
--------------------------------------------------------------------------------
1 | .hidden {
2 | opacity: 0;
3 | }
4 |
5 | .flex-container {
6 | display: flex;
7 | justify-content: space-between;
8 | align-items: center;
9 | }
10 |
11 | .flex-container > div {
12 | top: 20px;
13 | bottom: 20px;
14 | position: absolute;
15 | }
16 |
17 | .flex-column-container {
18 | display: flex;
19 | flex-direction: column;
20 | justify-content: space-around;
21 | }
22 |
23 | #bpmn-container {
24 | left: 50px;
25 | right: 20px;
26 | border-style: solid;
27 | border-color: #B0B0B0;
28 | border-width: 1px;
29 | overflow: hidden;
30 | }
31 |
32 | button {
33 | border-radius: 4px;
34 | padding: 0;
35 | width: 28px;
36 | height: 28px;
37 | }
38 |
39 | .tooltip {
40 | visibility: hidden;
41 | width: 300px;
42 | background-color: black;
43 | color: #fff;
44 | fill: #B0B0B0;
45 | text-align: center;
46 | border-radius: 6px;
47 | padding: 5px 0;
48 | position: absolute;
49 | z-index: 1;
50 | top: -5px;
51 | left: 110%;
52 | font-family: monospace;
53 | }
54 |
55 | .info:hover .tooltip {
56 | visibility: visible;
57 | }
58 |
59 | label {
60 | font-size: 0.65em;
61 | }
62 |
--------------------------------------------------------------------------------
/dev/ts/development-bundle-index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | export * from './shared/controls';
18 | export * from './shared/main';
19 | export * from './shared/shared-helpers';
20 | export * from '../../src/bpmn-visualization';
21 | // extra code not exported by bpmn-visualization
22 | export * from '../../src/model/bpmn/internal/edge/utils';
23 |
--------------------------------------------------------------------------------
/dev/ts/pages/bpmn-rendering.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { documentReady, log, logError, startBpmnVisualization } from '../development-bundle-index';
18 |
19 | function statusFetchKO(errorMessage: string): void {
20 | logError(errorMessage);
21 | const statusElt = document.querySelector('#status-zone');
22 | statusElt.textContent = errorMessage;
23 | statusElt.className = 'status-ko';
24 | log('Status zone set with error:', errorMessage);
25 | }
26 |
27 | documentReady(() => startBpmnVisualization({ globalOptions: { container: 'bpmn-container' }, statusKoNotifier: statusFetchKO }));
28 |
--------------------------------------------------------------------------------
/dev/ts/shared/shared-helpers.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2022 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { _log } from './internal-helpers';
18 |
19 | export function documentReady(callbackFunction: () => void): void {
20 | // see if DOM is already available
21 | if (document.readyState === 'complete' || document.readyState === 'interactive') {
22 | // call on next available tick
23 | setTimeout(callbackFunction, 1);
24 | } else {
25 | document.addEventListener('DOMContentLoaded', callbackFunction);
26 | }
27 | }
28 |
29 | export function log(message?: string, ...optionalParameters: unknown[]): void {
30 | _log('[DEMO]', message, ...optionalParameters);
31 | }
32 |
33 | export { logError } from './internal-helpers';
34 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # Sources of the `bpmn-visualization` documentation
2 |
3 | If you are a user, you can see the documentation on the [__⏩ documentation site__](https://process-analytics.github.io/bpmn-visualization-js/).
4 |
5 | If you are a contributor to the code of `bpmn-visualization`, you can find the documentation in the [contributors](contributors/README.md) folder.
6 |
7 | If you want to contribute to the documentation, please first read the [documentation guidelines](contributors/documentation-guidelines.md).
8 | Then, you can modify the sources of the user documentation that are available in the [users](users/) folder.
9 |
--------------------------------------------------------------------------------
/docs/contributors/README.md:
--------------------------------------------------------------------------------
1 | # Guidelines for Contributors and Development
2 |
3 | General information are available in the [Contributing Guide](../../CONTRIBUTING.md).
4 |
5 | Here are some tips to help during development.
6 |
7 | 🔥 Remember that some add-on features are developed in the [__⏩ bpmn-visualization-addons__](https://github.com/process-analytics/bpmn-visualization-addons/) repository.
8 |
9 | ## Build and develop
10 |
11 | - Architecture: Information about the library internals are available in the [architecture folder](../users/architecture) or in HTML form in the [documentation site](https://process-analytics.github.io/bpmn-visualization-js/#_architecture_and_development).
12 | - [How to build & Code style](development.md)
13 | - [IDE configuration](ide-configuration.md)
14 |
15 | ## Contributing
16 | - [testing](testing.md)
17 | - [how to add support for BPMN elements](bpmn-support-how-to.md)
18 | - [how to submit your work](pull-request.md)
19 | - [demo page css](demo-page-css.md)
20 | - [TypeScript version](supported-typescript-version.md)
21 | - [mxGraph integration](mxgraph-integration.md)
22 | - [mxGraph version bump](mxgraph-version-bump.md)
23 |
24 | ## Misc
25 | - [Documentation guidelines](documentation-guidelines.md)
26 | - [For the maintainers](maintainers.md): in particular, how to release a new version.
27 | - Automations (CI/CD, release, etc.) are managed by [GitHub Actions](https://docs.github.com/en/actions). The related configuration in available in the [actions](../../.github/actions) and [workflows](../../.github/workflows) directories.
28 |
--------------------------------------------------------------------------------
/docs/contributors/demo-page-css.md:
--------------------------------------------------------------------------------
1 | ## CSS for Demo
2 |
3 | The project demo page (`index.html`) uses [tailwindcss](https://tailwindcss.com/docs).
4 |
5 | Vite automatically processes the CSS rules using `postcss`.
6 |
7 | Feel free to preview config files:
8 | - [postcss.config.cjs](../../postcss.config.cjs)
9 | - [tailwind.config.js](../../tailwind.config.js)
10 |
--------------------------------------------------------------------------------
/docs/contributors/documentation-guidelines.md:
--------------------------------------------------------------------------------
1 | # Documentation guidelines
2 | Below guidance should serve to write the properly distributed documentation and to avoid any duplications.
3 |
4 | Projects documentation consists of:
5 | - HTML documentation - everything under the [/docs/users](../users) folder, with AsciiDoctor sources
6 | - High level information
7 | - Contextual content
8 | - BPMN support details
9 | - Architecture overview
10 |
11 | - Markdown documentation for Developers / Integrators - all .md files in project root and under [/docs/contributors](../contributors) folder
12 | - Development guidance
13 | - How tos
14 | - Detailed usage
15 |
16 | ⚠️ _IMPORTANT TO NOTE_ \
17 | The root README file content should not be overwhelming and supposed to contain only basic information:
18 | - Project introduction
19 | - Basic usage
20 | - Links to examples and developers or html documentation for more details
21 |
22 |
23 | ## Building the HTML documentation
24 |
25 | **DISCLAIMER**:
26 | The documentation sources are in the AsciiDoctor format.
27 | Depending on the rendering engine, the display may not work completely (font-awesome icons and some links).
28 | This is the case when viewing directly on GitHub Web.
29 |
30 | - From the root folder of the repository, run
31 | ```bash
32 | npm run docs
33 | ```
34 |
35 | The documentation is accessible in the `build/docs` folder.
36 |
--------------------------------------------------------------------------------
/docs/contributors/images/bpmn-icon-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/bpmn-icon-example.png
--------------------------------------------------------------------------------
/docs/contributors/images/inkscape-result1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/inkscape-result1.png
--------------------------------------------------------------------------------
/docs/contributors/images/inkscape-result2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/inkscape-result2.png
--------------------------------------------------------------------------------
/docs/contributors/images/mxgraph-perimeter/flows.sequence.04.waypoints.03.terminal.outside.shapes.02.segments.no.intersection.with.shapes-snap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/mxgraph-perimeter/flows.sequence.04.waypoints.03.terminal.outside.shapes.02.segments.no.intersection.with.shapes-snap.png
--------------------------------------------------------------------------------
/docs/contributors/images/mxgraph-perimeter/markers-01-positioning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/mxgraph-perimeter/markers-01-positioning.png
--------------------------------------------------------------------------------
/docs/contributors/images/mxgraph-perimeter/markers-02-rendering.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/mxgraph-perimeter/markers-02-rendering.png
--------------------------------------------------------------------------------
/docs/contributors/images/mxgraph-perimeter/markers-03-projection-vs-intersection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/mxgraph-perimeter/markers-03-projection-vs-intersection.png
--------------------------------------------------------------------------------
/docs/contributors/images/mxgraph-perimeter/perimeter-no-intersection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/mxgraph-perimeter/perimeter-no-intersection.png
--------------------------------------------------------------------------------
/docs/contributors/images/release_process_part-01_release_automation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/release_process_part-01_release_automation.png
--------------------------------------------------------------------------------
/docs/contributors/images/release_process_part-02_github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/release_process_part-02_github.png
--------------------------------------------------------------------------------
/docs/contributors/images/release_process_part-10_examples_release-notes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/contributors/images/release_process_part-10_examples_release-notes.png
--------------------------------------------------------------------------------
/docs/contributors/mxgraph-version-bump.md:
--------------------------------------------------------------------------------
1 | # Tips for `mxGraph` version bump
2 |
3 | ## Minimal check list
4 |
5 | - check the [mxGraph changelog](https://github.com/jgraph/mxgraph/blob/master/ChangeLog) to see what could impact the lib
6 | - review issues list, in particular in the [BPMN Rendering Improvements milestone](https://github.com/process-analytics/bpmn-visualization-js/milestone/14) which could be impacted or fixed by the version bump
7 | - apply the version bump
8 | - review the overridden mxGraph code, generally, we extends the mxGraph objects, so search for the `extends mxgraph.mx` string
9 | - ensure we have enough visual tests to cover any regression or changes introduced
10 | - run the [performance tests](./testing.md#performance-tests) on all OS, ensure we don't see any performance regressions and save the results
11 |
12 |
13 | ### Manual tests
14 |
15 | In addition to e2e tests, it is safer to perform manual testing using BPMN diagrams from the `bpmn-visualization-examples` repository or `miwg-test-suite`.
16 |
17 | The `bpmn-visualization-examples` repository provides usage examples that can be used for such tests:
18 | - diagram load and navigation
19 | - custom behavior and css styling
20 |
21 | In the repository of `bpmn-visualization`, test pages are also available (some are not used by e2e tests).
22 |
23 |
24 | ## Resources
25 |
26 | - Examples of visual testing failures: [Pull Request #502](https://github.com/process-analytics/bpmn-visualization-js/pull/502)
27 | - Attempt to "Bump mxgraph from 4.1.0 to 4.1.1": [Pull Request #547](https://github.com/process-analytics/bpmn-visualization-js/pull/547#issuecomment-678959718)
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/users/architecture/00-index.adoc:
--------------------------------------------------------------------------------
1 | = Architecture and Development
2 | :icons: font
3 |
4 | include::architecture-overview.adoc[]
5 |
6 | include::bpmn-internal-model.adoc[]
7 |
8 | include::bpmn-parsing.adoc[]
9 |
10 | include::mxgraph-integration.adoc[]
11 |
12 | include::development.adoc[]
13 |
--------------------------------------------------------------------------------
/docs/users/architecture/architecture-overview.adoc:
--------------------------------------------------------------------------------
1 | == Architecture Overview
2 |
3 | `bpmn-visualization` consists on 3 main modules:
4 |
5 | * the *BPMN parser*: read a BPMN source (xml string) and convert it into its own <>.
6 | * the *BPMN renderer*: display the BPMN diagrams represented by the internal Model, using the https://jgraph.github.io/mxgraph/[mxGraph library]
7 | * the *interactions component*: interact with the BPMN elements (diagram navigation, add custom listeners to dynamically enrich and/or modify the model style, ...)
8 |
9 | image::images/architecture/architecture-overview.svg[]
10 |
--------------------------------------------------------------------------------
/docs/users/architecture/bpmn-internal-model.adoc:
--------------------------------------------------------------------------------
1 | [[bpmn-internal-model]]
2 | == BPMN Internal Model
3 |
4 | Our internal model is based on the https://www.omg.org/spec/BPMN/2.0.2/PDF[BPMN specification].
5 |
6 | image::images/architecture/internal-model.svg[]
7 |
--------------------------------------------------------------------------------
/docs/users/architecture/bpmn-parsing.adoc:
--------------------------------------------------------------------------------
1 | == BPMN Parsing
2 |
3 | === XML Parser
4 |
5 | To parse XML data, we use the https://github.com/NaturalIntelligence/fast-xml-parser[fast-xml-parser] library.
6 |
7 | You can see the implementation in *BpmnXmlParser.ts*.
8 |
9 | === Json Parser
10 |
11 | To parse a JSON data, we use a custom parser.
12 |
13 | You can see the implementation in *BpmnJsonParser.ts*.
14 | We have different _converters_ (in the *converter* folder where the *BpmnJsonParser* file is) in order to match the BPMN model to our internal model.
15 |
--------------------------------------------------------------------------------
/docs/users/architecture/development.adoc:
--------------------------------------------------------------------------------
1 | == Development
2 | :icons: font
3 | ifdef::env-github[]
4 | :tip-caption: :bulb:
5 | :note-caption: :information_source:
6 | :important-caption: :heavy_exclamation_mark:
7 | :caution-caption: :fire:
8 | :warning-caption: :warning:
9 | endif::[]
10 |
11 | [TIP]
12 | ====
13 | - To know how to build the project, please have a look at the https://github.com/process-analytics/bpmn-visualization-js/blob/master/CONTRIBUTING.md[contributing guide].
14 | - For any development tips, see the https://github.com/process-analytics/bpmn-visualization-js/blob/master/docs/contributors[development documentation].
15 | ====
16 |
--------------------------------------------------------------------------------
/docs/users/architecture/mxgraph-integration.adoc:
--------------------------------------------------------------------------------
1 | == mxGraph Integration
2 |
3 | The https://jgraph.github.io/mxgraph/[mxGraph] integration is in charge of rendering the BPMN diagrams, by filling the
4 | https://jgraph.github.io/mxgraph/docs/manual.html#3.1.1[mxGraph model] from the BPMN model.
5 |
6 | It also provides the Diagram Navigation support.
7 |
8 | For more details, see the https://github.com/process-analytics/bpmn-visualization-js/tree/master/docs/contributors/mxgraph-integration.md[development documentation].
9 |
--------------------------------------------------------------------------------
/docs/users/images/bpmn-diagram_navigation_C.2.0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/users/images/bpmn-diagram_navigation_C.2.0.gif
--------------------------------------------------------------------------------
/docs/users/images/bpmn-in-color-C.1.0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/users/images/bpmn-in-color-C.1.0.png
--------------------------------------------------------------------------------
/docs/users/images/bpmn-theme-custom-colors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/users/images/bpmn-theme-custom-colors.png
--------------------------------------------------------------------------------
/docs/users/images/bpmn-theme-default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/users/images/bpmn-theme-default.png
--------------------------------------------------------------------------------
/docs/users/images/custom-behavior-path-highlighting.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/users/images/custom-behavior-path-highlighting.gif
--------------------------------------------------------------------------------
/docs/users/images/custom-behavior-popovers.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/users/images/custom-behavior-popovers.gif
--------------------------------------------------------------------------------
/docs/users/images/diagram-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/users/images/diagram-example.png
--------------------------------------------------------------------------------
/docs/users/images/icons/event_boundary_cancel.svg:
--------------------------------------------------------------------------------
1 |
2 |
17 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_end_cancel.svg:
--------------------------------------------------------------------------------
1 |
2 |
17 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_end_error.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_end_terminate.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_intermediate_catch_link.svg:
--------------------------------------------------------------------------------
1 |
2 |
19 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_intermediate_catch_start_boundary_conditional.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_intermediate_catch_start_boundary_message.svg:
--------------------------------------------------------------------------------
1 |
2 |
26 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_intermediate_catch_start_boundary_signal.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_intermediate_throw_end_compensation.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_intermediate_throw_end_escalation.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_intermediate_throw_end_message.svg:
--------------------------------------------------------------------------------
1 |
2 |
26 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_intermediate_throw_end_signal.svg:
--------------------------------------------------------------------------------
1 |
2 |
7 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_intermediate_throw_link.svg:
--------------------------------------------------------------------------------
1 |
2 |
19 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_start_boundary_compensation.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_start_boundary_error.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/docs/users/images/icons/event_start_boundary_escalation.svg:
--------------------------------------------------------------------------------
1 |
2 |
18 |
--------------------------------------------------------------------------------
/docs/users/images/icons/gateway_complex.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/docs/users/images/icons/gateway_event_based.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/docs/users/images/icons/gateway_event_based_exclusive.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/docs/users/images/icons/gateway_event_based_parallel.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/docs/users/images/icons/gateway_exclusive.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/docs/users/images/icons/gateway_inclusive.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/users/images/icons/gateway_parallel.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/docs/users/images/icons/marker_expand.svg:
--------------------------------------------------------------------------------
1 |
2 |
30 |
--------------------------------------------------------------------------------
/docs/users/images/icons/marker_loop.svg:
--------------------------------------------------------------------------------
1 |
2 |
26 |
--------------------------------------------------------------------------------
/docs/users/images/icons/marker_multi_instance_parallel.svg:
--------------------------------------------------------------------------------
1 |
2 |
37 |
--------------------------------------------------------------------------------
/docs/users/images/icons/marker_multi_instance_sequential.svg:
--------------------------------------------------------------------------------
1 |
2 |
37 |
--------------------------------------------------------------------------------
/docs/users/images/icons/task_business_rule.svg:
--------------------------------------------------------------------------------
1 |
2 |
45 |
--------------------------------------------------------------------------------
/docs/users/images/icons/task_manual.svg:
--------------------------------------------------------------------------------
1 |
2 |
17 |
--------------------------------------------------------------------------------
/docs/users/images/icons/task_receive.svg:
--------------------------------------------------------------------------------
1 |
2 |
26 |
--------------------------------------------------------------------------------
/docs/users/images/icons/task_send.svg:
--------------------------------------------------------------------------------
1 |
2 |
26 |
--------------------------------------------------------------------------------
/docs/users/images/monitoring.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/users/images/monitoring.gif
--------------------------------------------------------------------------------
/docs/users/images/simple-overlay-example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/docs/users/images/simple-overlay-example.png
--------------------------------------------------------------------------------
/docs/users/index.adoc:
--------------------------------------------------------------------------------
1 | = bpmn-visualization
2 | :toc: left
3 | // see: https://asciidoctor.org/docs/user-manual/#table-of-contents-summary
4 | :toc-title: Table of Contents
5 | // how many headline levels to display in the table of contents?
6 | :toclevels: 3
7 | // https://asciidoctor.org/docs/user-manual/#sections-summary
8 | // turn numbering on or off (:sectnums!:)
9 | :sectnums:
10 | // enumerate how many section levels?
11 | :sectnumlevels: 5
12 | // show anchors when hovering over section headers
13 | :sectanchors:
14 | // render section headings as self referencing links
15 | :sectlinks:
16 | // number parts of a book
17 | :partnums:
18 | // include a link to a favicon
19 | :favicon: ./favicon.svg
20 | // enable font-awesome icons
21 | :icons: font
22 | // enable link attributes
23 | :linkattrs:
24 | // see https://docs.asciidoctor.org/asciidoc/latest/directives/include-with-leveloffset/
25 | :leveloffset: +1
26 |
27 | include::intro.adoc[]
28 |
29 | include::overview.adoc[]
30 |
31 | include::bpmn-support.adoc[]
32 |
33 | include::architecture/00-index.adoc[]
34 |
--------------------------------------------------------------------------------
/docs/users/intro.adoc:
--------------------------------------------------------------------------------
1 | `bpmn-visualization` is a TypeScript library for visualizing process execution data on https://www.omg.org/spec/BPMN/2.0.2/[BPMN] diagrams, with simplicity.
2 |
3 | Based on the customization capability, it provides a set of diagram visualization features that includes additional display options for execution data (_highlighting of some elements_, _adding customizable overlays_, and more) as well as personalized interactive capabilities (_mouse hover_, _click_, and more).
4 |
5 | We hope it will help you to create applications for process visualization and analysis 🙂
6 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Redirect to the actual dev page
6 |
7 |
8 |
Please follow this link to see the index.html development page.
9 |
10 |
11 |
--------------------------------------------------------------------------------
/postcss.config.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | const defaultPlugins = {
18 | '@tailwindcss/postcss': {},
19 | };
20 |
21 | const plugins =
22 | process.env.NODE_ENV === 'development'
23 | ? defaultPlugins
24 | : {
25 | ...defaultPlugins,
26 | cssnano: {
27 | preset: 'default',
28 | },
29 | };
30 | module.exports = { plugins };
31 |
--------------------------------------------------------------------------------
/scripts/add-license-header.mjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2023 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import fs, { readFileSync } from 'node:fs';
18 |
19 | import { computeBanner } from './shared/banner.mjs';
20 | import { getTypeFilesInformation } from './shared/types-info.mjs';
21 |
22 | const { notSupportedTSVersionsFilePath, typesFilePath } = getTypeFilesInformation();
23 | const paths = [typesFilePath, notSupportedTSVersionsFilePath];
24 | const banner = computeBanner();
25 | for (let path of paths) {
26 | const content = readFileSync(path, 'utf8');
27 | fs.writeFileSync(
28 | path,
29 | `${banner}
30 | ${content}`,
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/scripts/shared/banner.mjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2023 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { readFileSync } from 'node:fs';
18 |
19 | export const computeBanner = () => {
20 | const bannerTemplate = readFileSync('./config/license-header.js', 'utf8');
21 | return bannerTemplate.replace('<%= YEAR %>', `2020-${new Date().getFullYear()}`);
22 | };
23 |
--------------------------------------------------------------------------------
/scripts/shared/types-info.mjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2023 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import assert from 'node:assert';
18 |
19 | import packageJSON from '../../package.json' with { type: 'json' };
20 |
21 | export const getTypeFilesInformation = () => {
22 | const notSupportedTSVersionsFilePath = packageJSON.types;
23 | const supportedTSVersions = Object.keys(packageJSON.typesVersions);
24 | assert(supportedTSVersions.length === 1, 'Property "typesVersions" should have exactly one key in the "package.json" file.');
25 |
26 | const key = supportedTSVersions[0];
27 | const typesFilePath = packageJSON.typesVersions[key]['*'][0];
28 |
29 | return {
30 | supportedTSVersions: supportedTSVersions[0],
31 | typesFilePath,
32 | notSupportedTSVersionsFilePath,
33 | };
34 | };
35 |
--------------------------------------------------------------------------------
/scripts/utils/README.md:
--------------------------------------------------------------------------------
1 | # The CLI tool to generate json and/or internal model from bpmn file
2 | You should note that there is no need to copy the result from the console as it will be directly copied into system clipboard
3 |
4 | ## Building utils module
5 |
6 | Run in the root of the project:
7 |
8 | ```npm run utils:build```
9 |
10 | ## Usage
11 |
12 | Run in the root of the project to get BPMN content as:
13 |
14 | - JSON model
15 |
16 | ```node ./scripts/utils/dist/utils.mjs RELATIVE_PATH_TO_BPMN_FILE```
17 |
18 | or (the default value for the `output` argument is `json`)
19 |
20 | ```node ./scripts/utils/dist/utils.mjs --output json RELATIVE_PATH_TO_BPMN_FILE```
21 |
22 | - BpmnModel (internal model used by `bpmn-visualization`)
23 |
24 | ```node ./scripts/utils/dist/utils.mjs RELATIVE_PATH_TO_BPMN_FILE --output model```
25 |
26 | i.e:
27 |
28 | ```node ./scripts/utils/dist/utils.mjs test/fixtures/bpmn/simple-start-task-end.bpmn --output model```
29 |
--------------------------------------------------------------------------------
/scripts/utils/rollup.config.mjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | // eslint-disable-next-line import/no-unresolved
18 | import externals from 'rollup-plugin-node-externals';
19 | import typescript from 'rollup-plugin-typescript2';
20 |
21 | export default {
22 | input: 'scripts/utils/parseBpmn.ts',
23 | output: {
24 | file: 'scripts/utils/dist/utils.mjs',
25 | format: 'es',
26 | },
27 | plugins: [
28 | typescript(),
29 | externals({ devDeps: true }), // Make all Node builtins, deps, devDeps, peerDeps and optDeps external
30 | ],
31 | };
32 |
--------------------------------------------------------------------------------
/sonar-project.properties:
--------------------------------------------------------------------------------
1 | # Organization and project keys are displayed in the right sidebar of the project homepage
2 | sonar.projectKey=process-analytics_bpmn-visualization-js
3 | sonar.organization=process-analytics
4 |
5 | # This is the name and version displayed in the SonarCloud UI.
6 | sonar.projectName=bpmn-visualization
7 | sonar.projectVersion=0.46.0-post
8 |
9 | # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
10 | sonar.sources=src
11 | # The HTML page are only use internally for tests or demo. No need to analyze them.
12 | sonar.exclusions=src/model/**/*
13 | #sonar.inclusions=
14 | # Encoding of the source code. Default is default system encoding
15 | sonar.sourceEncoding=UTF-8
16 |
17 | # Path to tests
18 | sonar.tests=test
19 | sonar.test.exclusions=**/jest.config.js,**/*.png
20 | #sonar.test.inclusions=
21 |
22 | sonar.javascript.lcov.reportPaths=build/test-report/unit/lcov.info,build/test-report/integration/lcov.info,build/test-report/e2e/lcov.info
23 | sonar.testExecutionReportPaths=build/test-report/unit/sonar-report.xml,build/test-report/integration/sonar-report.xml
24 |
25 | # The job failed before the sonar analysis, if the lint check failed. So no need to configure eslint for Sonar
26 | #sonar.eslint.reportPaths=build/eslint-reporter.json
27 | sonar.typescript.tsconfigPath=tsconfig.json
28 |
29 | # Exclusions for copy-paste detection
30 | #sonar.cpd.exclusions=
31 |
--------------------------------------------------------------------------------
/src/component/helpers/dom-utils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | /**
18 | * @internal
19 | */
20 | export function htmlElement(element: string | HTMLElement): HTMLElement | null {
21 | if (element instanceof HTMLElement) {
22 | return element;
23 | }
24 | return document.querySelector(`#${element}`);
25 | }
26 |
--------------------------------------------------------------------------------
/src/component/mxgraph/overlay/shapes.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { CustomCellOverlayStyle } from './custom-overlay';
18 | import type { mxRectangle } from 'mxgraph';
19 |
20 | import { mxgraph } from '../initializer';
21 |
22 | export class OverlayBadgeShape extends mxgraph.mxText {
23 | constructor(value: string, bounds: mxRectangle, style: CustomCellOverlayStyle) {
24 | super(
25 | value,
26 | bounds,
27 | undefined,
28 | undefined,
29 | style.font.color,
30 | undefined,
31 | style.font.size,
32 | undefined,
33 | undefined,
34 | undefined,
35 | undefined,
36 | undefined,
37 | undefined,
38 | undefined,
39 | style.fill.color,
40 | style.stroke.color,
41 | );
42 | this.fillOpacity = style.fill.opacity;
43 | this.strokewidth = style.stroke.width;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/component/mxgraph/shape/render/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | // export types first, otherwise typedoc doesn't generate the subsequent doc correctly (no category and uses the file header instead of the actual TSDoc)
18 | export type * from './render-types';
19 | export { BpmnCanvas, type BpmnCanvasConfiguration } from './BpmnCanvas';
20 | export { IconPainter, IconPainterProvider, type PaintParameter } from './icon-painter';
21 |
--------------------------------------------------------------------------------
/src/component/mxgraph/shape/render/render-types.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { BpmnCanvas } from './BpmnCanvas';
18 |
19 | /**
20 | * @category BPMN Theme
21 | */
22 | export interface ShapeConfiguration extends Size {
23 | x: number;
24 | y: number;
25 | strokeWidth?: number;
26 | }
27 |
28 | /**
29 | * @category BPMN Theme
30 | */
31 | export interface IconStyleConfiguration {
32 | isFilled: boolean;
33 | fillColor: string;
34 | strokeColor: string;
35 | strokeWidth: number;
36 | margin: number;
37 | }
38 |
39 | /**
40 | * @category BPMN Theme
41 | */
42 | export interface Size {
43 | width: number;
44 | height: number;
45 | }
46 |
47 | /**
48 | * @category BPMN Theme
49 | */
50 | export interface IconConfiguration {
51 | originalSize: Size;
52 | /** If `undefined`, no scaling will be done in {@link BpmnCanvas}. */
53 | ratioFromParent?: number;
54 | styleConfig: IconStyleConfiguration;
55 | setIconOriginFunct: (canvas: BpmnCanvas) => void;
56 | }
57 |
--------------------------------------------------------------------------------
/src/component/mxgraph/shape/render/utils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { ShapeBpmnMarkerKind } from '../../../../model/bpmn/internal';
18 |
19 | const referenceOrderedMarkers = [
20 | ShapeBpmnMarkerKind.LOOP,
21 | ShapeBpmnMarkerKind.MULTI_INSTANCE_PARALLEL,
22 | ShapeBpmnMarkerKind.MULTI_INSTANCE_SEQUENTIAL,
23 | ShapeBpmnMarkerKind.COMPENSATION,
24 | ShapeBpmnMarkerKind.EXPAND,
25 | ShapeBpmnMarkerKind.ADHOC,
26 | ];
27 |
28 | /**
29 | * @internal
30 | */
31 | export function orderActivityMarkers(markers: string[]): string[] {
32 | const orderedMarkers: string[] = referenceOrderedMarkers.filter(marker => markers.includes(marker));
33 | // Put extra remaining at the end of the ordered markers, in the order they appear in the original array
34 | for (const marker of markers.filter(marker => !orderedMarkers.includes(marker))) orderedMarkers.push(marker);
35 | return orderedMarkers;
36 | }
37 |
--------------------------------------------------------------------------------
/src/component/mxgraph/style/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | export { StyleDefault } from './utils';
18 | export * from './identifiers';
19 |
--------------------------------------------------------------------------------
/src/component/parser/BpmnParser.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type BpmnJsonParser from './json/BpmnJsonParser';
18 | import type BpmnModel from '../../model/bpmn/internal/BpmnModel';
19 | import type { ParserOptions } from '../options';
20 |
21 | import { newBpmnJsonParser } from './json/BpmnJsonParser';
22 | import { ParsingMessageCollector } from './parsing-messages';
23 | import BpmnXmlParser from './xml/BpmnXmlParser';
24 |
25 | /**
26 | * @internal
27 | */
28 | class BpmnParser {
29 | constructor(
30 | readonly jsonParser: BpmnJsonParser,
31 | readonly xmlParser: BpmnXmlParser,
32 | ) {}
33 |
34 | parse(bpmnAsXml: string): BpmnModel {
35 | const json = this.xmlParser.parse(bpmnAsXml);
36 | return this.jsonParser.parse(json);
37 | }
38 | }
39 |
40 | /**
41 | * @internal
42 | */
43 | export function newBpmnParser(options?: ParserOptions): BpmnParser {
44 | return new BpmnParser(newBpmnJsonParser(new ParsingMessageCollector(options)), new BpmnXmlParser(options));
45 | }
46 |
--------------------------------------------------------------------------------
/src/component/parser/json/converter/CategoryConverter.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { ConvertedElements } from './utils';
18 | import type { TCategory } from '../../../../model/bpmn/json/baseElement/rootElement/rootElement';
19 | import type { TDefinitions } from '../../../../model/bpmn/json/bpmn20';
20 |
21 | import { ensureIsArray } from '../../../helpers/array-utils';
22 |
23 | /**
24 | * @internal
25 | */
26 | export default class CategoryConverter {
27 | constructor(private readonly convertedElements: ConvertedElements) {}
28 |
29 | deserialize(definitions: TDefinitions): void {
30 | const categoryValues = ensureIsArray(definitions.category).flatMap(category => ensureIsArray(category.categoryValue));
31 | for (const categoryValue of categoryValues) {
32 | this.convertedElements.registerCategoryValue(categoryValue.id, categoryValue.value);
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/component/parser/parsing-messages.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { ParserOptions } from '../options';
18 |
19 | export interface MessageDetails {
20 | template: string;
21 | arguments: string[];
22 | }
23 |
24 | export abstract class JsonParsingWarning {
25 | abstract getMessage(): MessageDetails;
26 | }
27 |
28 | export type ParsingMessageCollectorOptions = Pick;
29 |
30 | export class ParsingMessageCollector {
31 | constructor(private readonly options?: ParsingMessageCollectorOptions) {}
32 |
33 | warning(warning: JsonParsingWarning): void {
34 | if (this.options?.disableConsoleLog) {
35 | return;
36 | }
37 | const message = warning.getMessage();
38 | console.warn(`[bv-parser] ${message.template}`, ...message.arguments);
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/component/registry/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | // export types first, otherwise typedoc doesn't generate the subsequent doc correctly (no category and uses the file header instead of the actual TSDoc)
18 | export type * from './types';
19 | export { BpmnElementsRegistry } from './bpmn-elements-registry';
20 |
--------------------------------------------------------------------------------
/src/component/registry/overlays-registry.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2023 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { Overlay, OverlaysRegistry } from './types';
18 | import type { BpmnGraph } from '../mxgraph/BpmnGraph';
19 |
20 | import { createNewOverlaysUpdater, type OverlaysUpdater } from '../mxgraph/overlay/updater';
21 |
22 | export function createNewOverlaysRegistry(graph: BpmnGraph): OverlaysRegistry {
23 | return new OverlaysRegistryImpl(createNewOverlaysUpdater(graph));
24 | }
25 |
26 | class OverlaysRegistryImpl implements OverlaysRegistry {
27 | constructor(private readonly overlaysUpdater: OverlaysUpdater) {}
28 |
29 | addOverlays(bpmnElementId: string, overlays: Overlay | Overlay[]): void {
30 | this.overlaysUpdater.addOverlays(bpmnElementId, overlays);
31 | }
32 |
33 | removeAllOverlays(bpmnElementId: string): void {
34 | this.overlaysUpdater.removeAllOverlays(bpmnElementId);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/component/registry/style-registry.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2023 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { StyleRegistry, StyleUpdate } from './types';
18 | import type { BpmnGraph } from '../mxgraph/BpmnGraph';
19 |
20 | import { createNewStyleUpdater, type StyleUpdater } from '../mxgraph/style/style-updater';
21 |
22 | export function createNewStyleRegistry(graph: BpmnGraph): StyleRegistryImpl {
23 | return new StyleRegistryImpl(createNewStyleUpdater(graph));
24 | }
25 |
26 | export class StyleRegistryImpl implements StyleRegistry {
27 | constructor(private readonly styleUpdater: StyleUpdater) {}
28 |
29 | clearCache(): void {
30 | this.styleUpdater.clear();
31 | }
32 |
33 | updateStyle(bpmnElementIds: string | string[], styleUpdate: StyleUpdate): void {
34 | this.styleUpdater.updateStyle(bpmnElementIds, styleUpdate);
35 | }
36 |
37 | resetStyle(bpmnElementIds?: string | string[]): void {
38 | this.styleUpdater.resetStyle(bpmnElementIds);
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/component/version.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2022 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { mxClient } from './mxgraph/initializer';
18 |
19 | // WARN: this constant is automatically updated at release time by the 'manage-version-in-files.mjs' script.
20 | // So, if you modify the name of this file or this constant, please update the script accordingly.
21 | const libraryVersion = '0.46.0-post';
22 |
23 | /**
24 | * Returns the version of `bpmn-visualization` and the version of its dependencies.
25 | * @since 0.43.0
26 | */
27 | export const getVersion = (): Version => {
28 | return { lib: libraryVersion, dependencies: new Map([['mxGraph', mxClient.VERSION]]) };
29 | };
30 |
31 | /**
32 | * The version of `bpmn-visualization` and the version of its dependencies.
33 | */
34 | export interface Version {
35 | /** The `bpmn-visualization` version. */
36 | lib: string;
37 | /** The version of the `bpmn-visualization` dependencies. This may **not** list all dependencies. */
38 | dependencies: Map;
39 | }
40 |
--------------------------------------------------------------------------------
/src/model/bpmn/internal/Bounds.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | /**
18 | * @internal
19 | */
20 | export default class Bounds {
21 | constructor(
22 | readonly x: number,
23 | readonly y: number,
24 | readonly width: number,
25 | readonly height: number,
26 | ) {}
27 | }
28 |
--------------------------------------------------------------------------------
/src/model/bpmn/internal/BpmnModel.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { Edge } from './edge/edge';
18 | import type Shape from './shape/Shape';
19 |
20 | /**
21 | * @internal
22 | */
23 | export default interface BpmnModel extends Shapes {
24 | edges: Edge[];
25 | }
26 |
27 | /**
28 | * @internal
29 | */
30 | export interface Shapes {
31 | flowNodes: Shape[];
32 | lanes: Shape[];
33 | pools: Shape[];
34 | }
35 |
--------------------------------------------------------------------------------
/src/model/bpmn/internal/Label.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type Bounds from './Bounds';
18 | import type { LabelExtensions } from './types';
19 |
20 | /**
21 | * @internal
22 | */
23 | export default class Label {
24 | readonly extensions: LabelExtensions = {};
25 |
26 | constructor(
27 | readonly font?: Font,
28 | readonly bounds?: Bounds,
29 | ) {}
30 | }
31 |
32 | /**
33 | * @internal
34 | */
35 | export class Font {
36 | constructor(
37 | readonly name?: string,
38 | readonly size?: number,
39 | readonly isBold?: boolean,
40 | readonly isItalic?: boolean,
41 | readonly isUnderline?: boolean,
42 | readonly isStrikeThrough?: boolean,
43 | ) {}
44 | }
45 |
--------------------------------------------------------------------------------
/src/model/bpmn/internal/edge/edge.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { Flow } from './flows';
18 | import type Label from '../Label';
19 | import type { EdgeExtensions } from '../types';
20 |
21 | import { MessageVisibleKind } from './kinds';
22 |
23 | /**
24 | * @internal
25 | */
26 | export class Edge {
27 | readonly extensions: EdgeExtensions = {};
28 |
29 | constructor(
30 | readonly id: string,
31 | readonly bpmnElement: Flow,
32 | readonly waypoints?: Waypoint[],
33 | readonly label?: Label,
34 | readonly messageVisibleKind: MessageVisibleKind = MessageVisibleKind.NONE,
35 | ) {}
36 | }
37 |
38 | /**
39 | * @internal
40 | */
41 | export class Waypoint {
42 | constructor(
43 | readonly x: number,
44 | readonly y: number,
45 | ) {}
46 | }
47 |
--------------------------------------------------------------------------------
/src/model/bpmn/internal/edge/utils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2023 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { FlowKind } from './kinds';
18 |
19 | /** @internal */
20 | export function isFlowKind(kind: string): kind is FlowKind {
21 | return Object.values(FlowKind)
22 | .map(value => value as string)
23 | .includes(kind);
24 | }
25 |
--------------------------------------------------------------------------------
/src/model/bpmn/internal/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { FlowKind } from './edge/kinds';
18 | import type { ShapeBpmnElementKind } from './shape';
19 |
20 | export * from './shape';
21 | export * from './edge/kinds';
22 | /**
23 | * @category BPMN
24 | */
25 | export type BpmnElementKind = FlowKind | ShapeBpmnElementKind;
26 |
--------------------------------------------------------------------------------
/src/model/bpmn/internal/shape/Shape.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type ShapeBpmnElement from './ShapeBpmnElement';
18 | import type Bounds from '../Bounds';
19 | import type Label from '../Label';
20 | import type { ShapeExtensions } from '../types';
21 |
22 | /**
23 | * @internal
24 | */
25 | export default class Shape {
26 | readonly extensions: ShapeExtensions = {};
27 |
28 | constructor(
29 | readonly id: string,
30 | readonly bpmnElement: ShapeBpmnElement,
31 | readonly bounds?: Bounds,
32 | readonly label?: Label,
33 | readonly isHorizontal?: boolean,
34 | ) {}
35 | }
36 |
--------------------------------------------------------------------------------
/src/model/bpmn/internal/shape/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | export * from './kinds';
18 | export { ShapeUtil } from './utils';
19 |
--------------------------------------------------------------------------------
/src/model/bpmn/internal/types.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2023 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | /**
18 | * @internal
19 | */
20 | export type ShapeExtensions = {
21 | fillColor?: string;
22 | strokeColor?: string;
23 | };
24 |
25 | /**
26 | * @internal
27 | */
28 | export type EdgeExtensions = {
29 | strokeColor?: string;
30 | };
31 |
32 | /**
33 | * @internal
34 | */
35 | export type LabelExtensions = {
36 | color?: string;
37 | };
38 |
--------------------------------------------------------------------------------
/src/model/bpmn/json/INTERNAL.md:
--------------------------------------------------------------------------------
1 | ###Attention
2 | This JSON part of model is intended to internal use only.
3 | Your application should not use it directly.
4 |
--------------------------------------------------------------------------------
/src/model/bpmn/json/Semantic.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | // mixed="true"
18 | //
19 | export interface TDocumentation {
20 | id?: string;
21 | textFormat?: string; // default="text/plain"
22 | }
23 |
24 | export interface TExtension {
25 | documentation?: TDocumentation | TDocumentation[];
26 | definition?: string;
27 | mustUnderstand?: boolean; // default="false"
28 | }
29 |
30 | //
31 | export type TExtensionElements = object;
32 |
33 | // mixed="true"
34 | //
35 | export type TScript = object;
36 |
37 | // mixed="true"
38 | //
39 | export type TText = object;
40 |
--------------------------------------------------------------------------------
/src/model/bpmn/json/baseElement/artifact.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { TBaseElement } from './baseElement';
18 | import type { TText } from '../Semantic';
19 |
20 | // abstract="true"
21 | export type TArtifact = TBaseElement;
22 |
23 | export interface TAssociation extends TArtifact {
24 | sourceRef: string;
25 | targetRef: string;
26 | associationDirection?: tAssociationDirection; // default="None"
27 | }
28 |
29 | export interface TGroup extends TArtifact {
30 | categoryValueRef?: string;
31 | }
32 |
33 | export interface TTextAnnotation extends TArtifact {
34 | text?: string | TText;
35 | textFormat?: string; // default="text/plain"
36 | }
37 |
38 | export enum tAssociationDirection {
39 | None = 'None',
40 | One = 'One',
41 | Both = 'Both',
42 | }
43 |
--------------------------------------------------------------------------------
/src/model/bpmn/json/baseElement/expression.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { TBaseElementWithMixedContent } from './baseElement';
18 |
19 | export type TExpression = TBaseElementWithMixedContent;
20 |
21 | export interface TFormalExpression extends TExpression {
22 | language?: string;
23 | evaluatesToTypeRef?: string;
24 | }
25 |
--------------------------------------------------------------------------------
/src/model/bpmn/json/baseElement/flowElement.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { TAuditing, TBaseElement, TMonitoring } from './baseElement';
18 | import type { TExpression } from './expression';
19 |
20 | export interface TFlowElement extends TBaseElement {
21 | auditing?: TAuditing;
22 | monitoring?: TMonitoring;
23 | categoryValueRef?: string | string[];
24 | name?: string;
25 | }
26 |
27 | // abstract="true"
28 | export interface TFlowNode extends TFlowElement {
29 | incoming?: string | string[];
30 | outgoing?: string | string[];
31 | }
32 |
33 | export interface TSequenceFlow extends TFlowElement {
34 | conditionExpression?: TExpression;
35 | sourceRef: string;
36 | targetRef: string;
37 | isImmediate?: boolean;
38 | }
39 |
--------------------------------------------------------------------------------
/src/model/bpmn/json/baseElement/participant.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { TBaseElement } from './baseElement';
18 |
19 | export interface TParticipant extends TBaseElement {
20 | participantMultiplicity?: TParticipantMultiplicity;
21 | interfaceRef?: string | string[];
22 | endPointRef?: string | string[];
23 | name?: string;
24 | processRef?: string;
25 | }
26 |
27 | export interface TParticipantAssociation extends TBaseElement {
28 | innerParticipantRef: string;
29 | outerParticipantRef: string;
30 | }
31 |
32 | export interface TParticipantMultiplicity extends TBaseElement {
33 | minimum?: number; // default="0"
34 | maximum?: number; // default="1"
35 | }
36 |
--------------------------------------------------------------------------------
/src/model/bpmn/json/dc.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | export interface Font {
18 | name?: string;
19 | size?: number;
20 | isBold?: boolean;
21 | isItalic?: boolean;
22 | isUnderline?: boolean;
23 | isStrikeThrough?: boolean;
24 | }
25 |
26 | export interface Point {
27 | x: number;
28 | y: number;
29 | }
30 |
31 | export interface Bounds {
32 | x: number;
33 | y: number;
34 | width: number;
35 | height: number;
36 | }
37 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | /** @type {import('tailwindcss').Config} */
18 | const config = {
19 | content: ['./dev/public/index.html'],
20 | theme: {
21 | extend: {},
22 | },
23 | variants: {
24 | extend: {},
25 | },
26 | plugins: [],
27 | };
28 |
29 | export default config;
30 |
--------------------------------------------------------------------------------
/test/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | module.exports = {
18 | plugins: ['jest', 'jest-extended'],
19 | env: {
20 | 'jest/globals': true,
21 | },
22 | settings: {
23 | jest: {
24 | version: require('jest/package.json').version,
25 | },
26 | },
27 | extends: ['plugin:jest/recommended', 'plugin:jest/style', 'plugin:jest-extended/all'],
28 | rules: {
29 | /* The rule list: https://github.com/jest-community/eslint-plugin-jest#rules */
30 | 'jest/prefer-expect-resolves': 'warn',
31 | 'jest/prefer-spy-on': 'warn',
32 | 'jest/prefer-todo': 'warn',
33 | /* The rule didn't find the 'expect' in the called methods */
34 | 'jest/expect-expect': 'off',
35 | },
36 | };
37 |
--------------------------------------------------------------------------------
/test/bundles/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | module.exports = {
18 | extends: ['plugin:playwright/recommended'],
19 | rules: {
20 | /* This rule is for playwright-test and we are using jest-playwright */
21 | 'playwright/no-standalone-expect': 'off',
22 | },
23 | };
24 |
--------------------------------------------------------------------------------
/test/bundles/jest-playwright.config.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | module.exports = require('../config/jest-playwright.cjs').computeConfiguration({ startWebServer: false, defaultBrowsers: 'chromium,firefox,webkit' });
18 |
--------------------------------------------------------------------------------
/test/bundles/npm.package.test.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2022 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { findFiles } from '@test/shared/file-helper';
18 |
19 | describe('NPM package', () => {
20 | describe('Files in the dist directory', () => {
21 | const expectedFiles = [
22 | 'bpmn-visualization.d.ts', // Type definitions
23 | 'bpmn-visualization.esm.js', // ESM
24 | 'bpmn-visualization.js', // IIFE
25 | 'bpmn-visualization.min.js', // IIFE minified
26 | 'not-supported-ts-versions.d.ts', // Type definitions for TS versions that are not supported
27 | ];
28 |
29 | it('Files in the npm package', () => {
30 | expect(findFiles('../../dist')).toIncludeSameMembers(expectedFiles);
31 | });
32 | });
33 | });
34 |
--------------------------------------------------------------------------------
/test/bundles/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.test"
3 | }
4 |
--------------------------------------------------------------------------------
/test/config/jest.retries.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2022 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18 | // @ts-ignore use a shared js file with commonjs export
19 | // eslint-disable-next-line @typescript-eslint/no-require-imports -- use a shared js file with commonjs export
20 | import environmentUtils = require('@test/shared/environment-utils.cjs');
21 |
22 | const onCi = environmentUtils.isRunningOnCi();
23 | jest.retryTimes(onCi ? 3 : 0, { logErrorsBeforeRetry: true });
24 |
--------------------------------------------------------------------------------
/test/config/playwright.browser.logs.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import debugLogger from 'debug';
18 | import 'jest-playwright-preset';
19 |
20 | // Allow getting browser console logs
21 | // this is from https://playwright.dev/docs/api/class-page#page-event-console
22 | const browserLog = debugLogger('bv:test:browser');
23 | page.on('console', message => browserLog('<%s> %s', message.type(), message.text()));
24 |
--------------------------------------------------------------------------------
/test/e2e/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | module.exports = {
18 | extends: ['plugin:playwright/recommended'],
19 | rules: {
20 | /* This rule is for playwright-test and we are using jest-playwright */
21 | 'playwright/no-standalone-expect': 'off',
22 | },
23 | };
24 |
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-colors/enabled/elements.colors.01.no.label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-colors/enabled/elements.colors.01.no.label.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-colors/enabled/elements.colors.02.labels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-colors/enabled/elements.colors.02.labels.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-colors/ignored/elements.colors.01.no.label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-colors/ignored/elements.colors.01.no.label.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-colors/ignored/elements.colors.02.labels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-colors/ignored/elements.colors.02.labels.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.01.general.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.01.general.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.02.complex.paths.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.02.complex.paths.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.03.waypoints.01.inside.shape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.03.waypoints.01.inside.shape.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.03.waypoints.02.outside.shape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.03.waypoints.02.outside.shape.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.03.waypoints.03.none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.03.waypoints.03.none.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.04.target.edges.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.04.target.edges.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.05.target.edges.no.waypoints.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.05.target.edges.no.waypoints.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.06.defined.in.collaboration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/associations.and.annotations.06.defined.in.collaboration.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/call.activities.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/call.activities.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/events.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/events.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.all.arrows.markers.comparison.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.all.arrows.markers.comparison.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.01.icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.01.icons.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.02.labels.and.complex.paths.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.02.labels.and.complex.paths.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.03.waypoints.01.none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.03.waypoints.01.none.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.03.waypoints.02.inside.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.03.waypoints.02.inside.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.03.waypoints.03.outside.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.03.waypoints.03.outside.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.03.waypoints.04.outside.segments.no.intersection.with.shapes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.message.03.waypoints.04.outside.segments.no.intersection.with.shapes.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.01.kinds.and.complex.paths.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.01.kinds.and.complex.paths.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.02.events.from.to.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.02.events.from.to.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.03.gateways.from.to.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.03.gateways.from.to.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.01.none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.01.none.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.02.terminal.inside.shapes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.02.terminal.inside.shapes.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.03.terminal.outside.shapes.01.general.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.03.terminal.outside.shapes.01.general.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.03.terminal.outside.shapes.02.segments.no.intersection.with.shapes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.03.terminal.outside.shapes.02.segments.no.intersection.with.shapes.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.04.terminal.bonita.events.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.04.terminal.bonita.events.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.05.terminal.bonita.gateways.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.04.waypoints.05.terminal.bonita.gateways.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.05.markers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/flows.sequence.05.markers.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/gateways.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/gateways.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/group.01.in.process.with.label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/group.01.in.process.with.label.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/group.02.in.collaboration.with.label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/group.02.in.collaboration.with.label.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/group.03.several.groups.different.size.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/group.03.several.groups.different.size.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/group.04.cross.lanes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/group.04.cross.lanes.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/group.05.cross.pools.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/group.05.cross.pools.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/labels.01.general.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/labels.01.general.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/labels.02.position.and.line.breaks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/labels.02.position.and.line.breaks.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/labels.03.default.position.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/labels.03.default.position.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/labels.04.fonts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/labels.04.fonts.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/labels.05.default.position.activities.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/labels.05.default.position.activities.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/markers.01.positioning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/markers.01.positioning.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/markers.02.different.tasks.sizes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/markers.02.different.tasks.sizes.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/pools.01.labels.and.lanes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/pools.01.labels.and.lanes.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/pools.02.vertical.with.lanes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/pools.02.vertical.with.lanes.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/pools.03.black.box.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/pools.03.black.box.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/pools.04.not.displayed.with.elements.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/pools.04.not.displayed.with.elements.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/subprocess.01.with.lanes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/subprocess.01.with.lanes.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/subprocess.02.with.inner.subprocess.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/subprocess.02.with.inner.subprocess.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/subprocess.03.collapsed.with.elements.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/subprocess.03.collapsed.with.elements.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/subprocess.04.expanded.with.elements.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/subprocess.04.expanded.with.elements.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/bpmn-rendering/tasks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/bpmn-rendering/tasks.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-Participant_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-Participant_1.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-Participant_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-Participant_2.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-Participant_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-Participant_3.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-Participant_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-Participant_4.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/collapse-expand/pools-collapse-none.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/collapse-expand/subprocess-collapse-SubProcess_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/collapse-expand/subprocess-collapse-SubProcess_1.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/collapse-expand/subprocess-collapse-none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/collapse-expand/subprocess-collapse-none.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/filter/pools-filter-all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/filter/pools-filter-all.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/filter/pools-filter-none.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/filter/pools-filter-none.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/filter/pools-filter-not-displayed-with-elements.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/filter/pools-filter-not-displayed-with-elements.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/filter/pools-filter-one-with-expanded-call-activity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/filter/pools-filter-one-with-expanded-call-activity.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/filter/pools-filter-one-with-lane.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/filter/pools-filter-one-with-lane.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/filter/pools-filter-one-with-subprocess.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/filter/pools-filter-one-with-subprocess.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Center/margin-0/horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Center/margin-0/horizontal.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Center/margin-0/vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Center/margin-0/vertical.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Center/margin-0/with.outside.flows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Center/margin-0/with.outside.flows.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Center/margin-0/with.outside.labels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Center/margin-0/with.outside.labels.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Center/margin-20/with.outside.flows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Center/margin-20/with.outside.flows.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Center/margin-50/with.outside.flows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Center/margin-50/with.outside.flows.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-0/horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-0/horizontal.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-0/vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-0/vertical.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-0/with.outside.flows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-0/with.outside.flows.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-0/with.outside.labels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-0/with.outside.labels.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-20/horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-20/horizontal.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-50/horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Horizontal/margin-50/horizontal.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-HorizontalVertical/margin-0/horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-HorizontalVertical/margin-0/horizontal.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-HorizontalVertical/margin-0/vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-HorizontalVertical/margin-0/vertical.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-HorizontalVertical/margin-0/with.outside.flows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-HorizontalVertical/margin-0/with.outside.flows.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-HorizontalVertical/margin-0/with.outside.labels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-HorizontalVertical/margin-0/with.outside.labels.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-None/margin-0/horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-None/margin-0/horizontal.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-None/margin-0/vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-None/margin-0/vertical.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-None/margin-0/with.outside.flows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-None/margin-0/with.outside.flows.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-None/margin-0/with.outside.labels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-None/margin-0/with.outside.labels.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Vertical/margin-0/horizontal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Vertical/margin-0/horizontal.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Vertical/margin-0/vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Vertical/margin-0/vertical.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Vertical/margin-0/with.outside.flows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Vertical/margin-0/with.outside.flows.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Vertical/margin-0/with.outside.labels.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Vertical/margin-0/with.outside.labels.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Vertical/margin-20/vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Vertical/margin-20/vertical.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/fit/type-Vertical/margin-50/vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/fit/type-Vertical/margin-50/vertical.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/navigation/button.zoom.in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/navigation/button.zoom.in.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/navigation/button.zoom.out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/navigation/button.zoom.out.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/navigation/initial.zoom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/navigation/initial.zoom.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/navigation/mouse.panning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/navigation/mouse.panning.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/navigation/mouse.zoom.in.1.times.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/navigation/mouse.zoom.in.1.times.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/navigation/mouse.zoom.in.3.times.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/navigation/mouse.zoom.in.3.times.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/navigation/mouse.zoom.out.1.times.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/navigation/mouse.zoom.out.1.times.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/navigation/mouse.zoom.out.3.times.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/navigation/mouse.zoom.out.3.times.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/on-position-end/add.overlay.on.association.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/on-position-end/add.overlay.on.association.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/on-position-end/add.overlay.on.message.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/on-position-end/add.overlay.on.message.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/on-position-end/add.overlay.on.sequence.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/on-position-end/add.overlay.on.sequence.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/on-position-middle/add.overlay.on.association.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/on-position-middle/add.overlay.on.association.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/on-position-middle/add.overlay.on.message.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/on-position-middle/add.overlay.on.message.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/on-position-middle/add.overlay.on.sequence.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/on-position-middle/add.overlay.on.sequence.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/on-position-start/add.overlay.on.association.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/on-position-start/add.overlay.on.association.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/on-position-start/add.overlay.on.message.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/on-position-start/add.overlay.on.message.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/on-position-start/add.overlay.on.sequence.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/on-position-start/add.overlay.on.sequence.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/remove.all.overlays.of.association.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/remove.all.overlays.of.association.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/remove.all.overlays.of.message.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/remove.all.overlays.of.message.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.edge/remove.all.overlays.of.sequence.flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.edge/remove.all.overlays.of.sequence.flow.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.bottom-center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.bottom-center.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.bottom-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.bottom-left.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.bottom-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.bottom-right.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.middle-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.middle-left.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.middle-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.middle-right.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.top-center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.top-center.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.top-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.top-left.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.top-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.shape/add.overlay.on.position.top-right.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/on.shape/remove.all.overlays.of.shape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/on.shape/remove.all.overlays.of.shape.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/panning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/panning.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/with.custom.style/add.overlay.with.custom.fill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/with.custom.style/add.overlay.with.custom.fill.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/with.custom.style/add.overlay.with.custom.font.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/with.custom.style/add.overlay.with.custom.font.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/with.custom.style/add.overlay.with.custom.stroke.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/with.custom.style/add.overlay.with.custom.stroke.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/overlays/zoom.out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/overlays/zoom.out.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/style/fill.color.gradient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/style/fill.color.gradient.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/style/fill.color.opacity.group.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/style/fill.color.opacity.group.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/style/fill.color.opacity.tasks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/style/fill.color.opacity.tasks.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/style/fill.color.string.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/style/fill.color.string.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/style/font.color.opacity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/style/font.color.opacity.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/style/stroke.color.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/style/stroke.color.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/theme/container-background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/theme/container-background.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/theme/theme-brown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/theme/theme-brown.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/theme/theme-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/theme/theme-dark.png
--------------------------------------------------------------------------------
/test/e2e/__image_snapshots__/theme/theme-light-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/e2e/__image_snapshots__/theme/theme-light-blue.png
--------------------------------------------------------------------------------
/test/e2e/jest-playwright.config.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | module.exports = require('../config/jest-playwright.cjs').computeConfiguration({ defaultBrowsers: 'chromium' });
18 |
--------------------------------------------------------------------------------
/test/fixtures/bpmn/bpmn-rendering/flows.message.03.waypoints.01.none.bpmn:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/test/fixtures/bpmn/bpmn-rendering/group.02.in.collaboration.with.label.bpmn:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/test/fixtures/bpmn/bpmn-rendering/pools.03.black.box.bpmn:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/test/fixtures/bpmn/navigation/simple.2.start.events.1.task.bpmn:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/test/fixtures/bpmn/xml-parsing/special/path.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/process-analytics/bpmn-visualization-js/2e6bc5b41696040b7280a07ee6d5761a34f77979/test/fixtures/bpmn/xml-parsing/special/path.png
--------------------------------------------------------------------------------
/test/fixtures/bpmn/xml-parsing/special/text-only.txt:
--------------------------------------------------------------------------------
1 | NOT a bpmn diagram
2 |
--------------------------------------------------------------------------------
/test/fixtures/bpmn/xml-parsing/special/xml-but-not-bpmn.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Bob
4 |
5 |
6 |
--------------------------------------------------------------------------------
/test/integration/config/hide-console-warnings.js:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2022 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | jest.spyOn(console, 'warn').mockImplementation(() => {
18 | // do not display actual console outputs during tests (generated by the parsing code)
19 | });
20 |
--------------------------------------------------------------------------------
/test/integration/config/mxgraph-config.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { mxClient } from '@lib/component/mxgraph/initializer';
18 |
19 | // Force usage of ForeignObject
20 | // By default, mxGraph detects no ForeignObject support when running tests in jsdom environment
21 | mxClient.NO_FO = false;
22 |
--------------------------------------------------------------------------------
/test/integration/helpers/dom-utils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | function createDiv(id: string): HTMLDivElement {
18 | const divElement = document.createElement('div');
19 | divElement.id = id;
20 | return divElement;
21 | }
22 |
23 | export function insertBpmnContainer(bpmnContainerId: string): HTMLDivElement {
24 | const divElement = createDiv(bpmnContainerId);
25 | document.body.insertBefore(divElement, document.body.firstChild);
26 | return divElement;
27 | }
28 |
29 | export function insertBpmnContainerWithoutId(): HTMLDivElement {
30 | const divElement = document.createElement('div');
31 | document.body.insertBefore(divElement, document.body.firstChild);
32 | return divElement;
33 | }
34 |
--------------------------------------------------------------------------------
/test/integration/helpers/fit-utils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2022 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { FitType } from '@lib/component/options';
18 |
19 | export const allTestedFitTypes = [undefined, null, 'invalid', ...Object.values(FitType)];
20 |
--------------------------------------------------------------------------------
/test/integration/matchers/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | export { toBeSequenceFlow, toBeMessageFlow, toBeAssociationFlow } from './toBeEdge';
18 | export {
19 | toBeCallActivity,
20 | toBeTask,
21 | toBeServiceTask,
22 | toBeUserTask,
23 | toBeReceiveTask,
24 | toBeSendTask,
25 | toBeManualTask,
26 | toBeScriptTask,
27 | toBeBusinessRuleTask,
28 | toBeStartEvent,
29 | toBeEndEvent,
30 | toBeIntermediateThrowEvent,
31 | toBeIntermediateCatchEvent,
32 | toBeBoundaryEvent,
33 | toBeEventBasedGateway,
34 | toBeExclusiveGateway,
35 | toBeInclusiveGateway,
36 | toBeParallelGateway,
37 | toBeSubProcess,
38 | toBePool,
39 | toBeLane,
40 | toBeGroup,
41 | toBeTextAnnotation,
42 | } from './toBeShape';
43 | export { toBeCell, toBeCellWithParentAndGeometry } from './toBeCell';
44 |
--------------------------------------------------------------------------------
/test/integration/mxGraph.model.bpmn.colors.test.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2023 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { bpmnVisualization } from './helpers/model-expect';
18 |
19 | import { readFileSync } from '@test/shared/file-helper';
20 |
21 | describe('mxGraph model - BPMN colors', () => {
22 | it('Colors are ignored by default', () => {
23 | bpmnVisualization.load(readFileSync('../fixtures/bpmn/xml-parsing/bpmn-in-color/bpmn-in-color-spec-sample.bpmn'));
24 |
25 | expect('task_orange_border').toBeTask({
26 | // no colors
27 | font: {
28 | family: 'Arial',
29 | size: 8,
30 | },
31 | // not under test
32 | label: 'Orange Border',
33 | parentId: '1',
34 | verticalAlign: 'top',
35 | });
36 |
37 | expect('sequence_flow_1').toBeSequenceFlow({
38 | // no colors
39 | font: {
40 | family: 'Arial',
41 | size: 8,
42 | },
43 | // not under test
44 | label: 'Orange link',
45 | });
46 | });
47 | });
48 |
--------------------------------------------------------------------------------
/test/performance/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | module.exports = {
18 | extends: ['plugin:playwright/recommended'],
19 | rules: {
20 | /* This rule is for playwright-test and we are using jest-playwright */
21 | 'playwright/no-standalone-expect': 'off',
22 | },
23 | };
24 |
--------------------------------------------------------------------------------
/test/performance/helpers/file-utils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2022 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { getSimplePlatformName } from '@test/shared/visu/test-utils';
18 |
19 | // when running tests in IntelliJ/Webstorm, the working directory is not the project root dir
20 | const rootDirectory = process.cwd().endsWith('/test/performance') ? './data' : './test/performance/data';
21 | export const performanceDataFilePath = `${rootDirectory}/${getSimplePlatformName()}/data.js`;
22 |
--------------------------------------------------------------------------------
/test/performance/helpers/perf-utils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { Metrics } from './metrics-chromium';
18 |
19 | export interface PerformanceMetric {
20 | run: number;
21 | TaskDuration: number;
22 | ScriptDuration: number;
23 | RecalcStyleDuration: number;
24 | LayoutDuration: number;
25 | }
26 |
27 | export interface ChartData {
28 | load: PerformanceMetric[];
29 | zoom: PerformanceMetric[];
30 | }
31 |
32 | export function calculateMetrics(metricsStart: Metrics, metricsEnd: Metrics): PerformanceMetric {
33 | return {
34 | run: new Date().getMilliseconds(),
35 | LayoutDuration: metricsEnd.LayoutDuration - metricsStart.LayoutDuration,
36 | RecalcStyleDuration: metricsEnd.RecalcStyleDuration - metricsStart.RecalcStyleDuration,
37 | ScriptDuration: metricsEnd.ScriptDuration - metricsStart.ScriptDuration,
38 | TaskDuration: metricsEnd.TaskDuration - metricsStart.TaskDuration,
39 | };
40 | }
41 |
--------------------------------------------------------------------------------
/test/performance/jest-playwright.config.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | // only collect on chromium for now
18 | module.exports = module.exports = require('../config/jest-playwright').computeConfiguration({ defaultBrowsers: 'chromium' });
19 |
--------------------------------------------------------------------------------
/test/performance/jest.config.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | const { moduleNameMapper } = require('../config/ts-jest.cjs');
18 |
19 | process.env.JEST_PLAYWRIGHT_CONFIG = './test/performance/jest-playwright.config.cjs';
20 |
21 | /** @type {import('ts-jest').JestConfigWithTsJest} */
22 | module.exports = {
23 | preset: 'jest-playwright-preset',
24 | rootDir: '../..',
25 | roots: ['./test/performance'],
26 | testMatch: ['**/?(*.)+(spec|test).[t]s'],
27 | testTimeout: 200_000,
28 | transform: {
29 | '^.+\\.ts?$': [
30 | 'ts-jest',
31 | {
32 | tsconfig: '/tsconfig.test.json',
33 | },
34 | ],
35 | },
36 | moduleNameMapper,
37 | setupFiles: ['./test/config/jest.retries.ts'],
38 | setupFilesAfterEnv: ['jest-extended/all', 'expect-playwright'],
39 | };
40 |
--------------------------------------------------------------------------------
/test/performance/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.test",
3 | "compilerOptions": {
4 | "diagnostics": true,
5 | // The following configuration is required to validate the playwright types. Plawyright 1.40 introduced "Support Symbol.asyncDispose" https://github.com/microsoft/playwright/issues/27141
6 | // This is a TypeScript 5.2 feature that requires extra configuration: https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/
7 | "target": "es2022",
8 | "lib": ["es2022", "esnext.disposable", "dom", "DOM.Iterable"]
9 | },
10 | "exclude": [
11 | "../typescript-moduleResolution-bundler/**/*",
12 | "../typescript-support/**/*"
13 | ]
14 | }
15 |
--------------------------------------------------------------------------------
/test/shared/environment-utils.cjs:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2022 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | const isMacOS = () => {
18 | return process.platform.startsWith('darwin');
19 | };
20 |
21 | const isWindowsOS = () => {
22 | return process.platform.startsWith('win');
23 | };
24 |
25 | // running on GitHub Actions: https://docs.github.com/en/actions/learn-github-actions/environment-variables#default-environment-variables
26 | const isRunningOnCi = () => {
27 | return process.env.CI === 'true';
28 | };
29 |
30 | const isRunningOnCISlowOS = () => {
31 | return isRunningOnCi() && (isMacOS() || isWindowsOS());
32 | };
33 |
34 | exports.isRunningOnCISlowOS = isRunningOnCISlowOS;
35 | exports.isRunningOnCi = isRunningOnCi;
36 |
--------------------------------------------------------------------------------
/test/shared/file-helper.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { readdirSync, readFileSync as fsReadFileSync } from 'node:fs';
18 | import path from 'node:path';
19 |
20 | export function readFileSync(relativePathToSourceFile: string, encoding: BufferEncoding = 'utf8', directoryName = __dirname): string {
21 | return fsReadFileSync(path.join(directoryName, relativePathToSourceFile), { encoding });
22 | }
23 |
24 | /** Returns the files in the given directory. The function doesn't do any recursion in sub directories. */
25 | export function findFiles(relativePathToSourceDirectory: string): string[] {
26 | return readdirSync(path.join(__dirname, relativePathToSourceDirectory));
27 | }
28 |
--------------------------------------------------------------------------------
/test/shared/overlays.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type { OverlayEdgePosition, OverlayShapePosition } from '@lib/component/registry';
18 |
19 | export const overlayEdgePositionValues = ['start', 'middle', 'end'] as OverlayEdgePosition[];
20 |
21 | export const overlayShapePositionValues = [
22 | 'top-left',
23 | 'top-center',
24 | 'top-right',
25 | 'bottom-left',
26 | 'bottom-center',
27 | 'bottom-right',
28 | 'middle-left',
29 | 'middle-right',
30 | ] as OverlayShapePosition[];
31 |
--------------------------------------------------------------------------------
/test/shared/query-selectors.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { BpmnQuerySelectors } from '@lib/component/registry/query-selectors';
18 |
19 | export class BpmnQuerySelectorsForTests extends BpmnQuerySelectors {
20 | /**
21 | * This targets a SVG Group
22 | */
23 | existingElement(): string {
24 | return `svg > g > g > g[data-bpmn-id]`;
25 | }
26 |
27 | labelLastDiv(bpmnElementId: string): string {
28 | // * is for 'foreignObject'
29 | // Using 'foreignObject' do not work anymore with jest@28 (jsdom bump for 16.6 to 19)
30 | return `${this.labelSvgGroup(bpmnElementId)} > g > * > div > div > div`;
31 | }
32 |
33 | labelSvgGroup(bpmnElementId: string): string {
34 | return `svg > g > g > g[data-bpmn-id="${bpmnElementId}"].bpmn-label`;
35 | }
36 |
37 | /**
38 | * This targets a SVG Group
39 | */
40 | overlays(bpmnElementId: string): string {
41 | return `svg > g > g:nth-child(3) > g[data-bpmn-id="${bpmnElementId}"]`;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test"
3 | }
4 |
--------------------------------------------------------------------------------
/test/typescript-moduleResolution-bundler/.npmrc:
--------------------------------------------------------------------------------
1 | package-lock=false
2 |
--------------------------------------------------------------------------------
/test/typescript-moduleResolution-bundler/README.md:
--------------------------------------------------------------------------------
1 | # Validate bpmn-visualization when `moduleResolution` is set to `bundler`
2 |
3 | Relates to [missing types configuration in the package.json "exports" field](https://github.com/process-analytics/bpmn-visualization-js/pull/2972).
4 |
5 | ## Setup
6 |
7 | The `bpmn-visualization` npm package must be built first. From the repository root, run:
8 | - `npm install`
9 | - `npm pack`
10 |
11 |
12 | ## Run
13 |
14 | From the folder of this test project, run:
15 | - `npm install`
16 | - `npm test`
17 |
--------------------------------------------------------------------------------
/test/typescript-moduleResolution-bundler/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "check-typescript-module_resolution-bundler",
3 | "private": true,
4 | "scripts": {
5 | "test": "tsc --version && tsc"
6 | },
7 | "dependencies": {
8 | "bpmn-visualization": "../../"
9 | },
10 | "devDependencies": {
11 | "typescript": "5.2.2"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/test/typescript-moduleResolution-bundler/src/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2023 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | // eslint-disable-next-line import/no-unresolved -- The bpmn-visualization package may not have been built prior running eslint (it happens when running GitHub Actions)
18 | import { BpmnVisualization } from 'bpmn-visualization';
19 |
20 | const bpmnVisualization = new BpmnVisualization({ container: 'id' });
21 | bpmnVisualization.load('fake data');
22 |
--------------------------------------------------------------------------------
/test/typescript-moduleResolution-bundler/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2015",
4 | "lib": ["dom", "dom.iterable", "ES2015"],
5 | "allowJs": false,
6 | "skipLibCheck": false,
7 | "strict": true,
8 | "noEmit": true,
9 | "esModuleInterop": true,
10 | "module": "esnext",
11 | "moduleResolution": "bundler", // this configuration requires to have types declaration in the package.json "exports" field
12 | "resolveJsonModule": false,
13 | "isolatedModules": true,
14 | },
15 | }
16 |
--------------------------------------------------------------------------------
/test/typescript-support/.npmrc:
--------------------------------------------------------------------------------
1 | package-lock=false
2 |
--------------------------------------------------------------------------------
/test/typescript-support/README.md:
--------------------------------------------------------------------------------
1 | # Validate the minimal TypeScript version supported by bpmn-visualization
2 |
3 | ## Setup
4 |
5 | The `bpmn-visualization` npm package must be built first. From the repository root, run:
6 | - `npm install`
7 | - `npm pack`
8 |
9 |
10 | ## Run
11 |
12 | From the folder of this test project, run:
13 | - `npm install`
14 | - `npm test`
15 |
--------------------------------------------------------------------------------
/test/typescript-support/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "check-lowest-typescript-version",
3 | "version": "0.0.0",
4 | "private": true,
5 | "scripts": {
6 | "test": "tsc --version && tsc"
7 | },
8 | "dependencies": {
9 | "bpmn-visualization": "../../"
10 | },
11 | "devDependencies": {
12 | "typescript": "4.0.2"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test/typescript-support/src/index.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2022 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | // eslint-disable-next-line import/no-unresolved -- The bpmn-visualization package may not have been built prior running eslint (it happens when running GitHub Actions)
18 | import { BpmnVisualization } from 'bpmn-visualization';
19 |
20 | const bpmnVisualization = new BpmnVisualization({ container: 'bpmn-container' });
21 | bpmnVisualization.load(`fake BPMN content`);
22 |
--------------------------------------------------------------------------------
/test/typescript-support/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "ES2015",
4 | "target": "ES2015",
5 | "lib": [
6 | "ES2015",
7 | "DOM"
8 | ],
9 | "moduleResolution": "Node",
10 | "strict": true,
11 | "noEmit": true,
12 | // By default, all visible ”@types” packages are included in your compilation. Packages in node_modules/@types of any enclosing folder are considered visible. For example, that
13 | // means packages within ./node_modules/@types/, ../node_modules/@types/, ../../node_modules/@types/, and so on.
14 | // ../../node_modules/@types includes types used to develop bpmn-visualization. We only want to check types used by bpmn-visualization when it is included in other projects/applications.
15 | // So, we don't want development types to be part of the tests, especially because some of them may require a newer TypeScript version.
16 | "typeRoots": [],
17 | },
18 | "include": [
19 | "src/**/*"
20 | ],
21 | }
22 |
--------------------------------------------------------------------------------
/test/unit/file-helper.test.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2020 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import { findFiles } from '@test/shared/file-helper';
18 |
19 | describe('files lookup', () => {
20 | it('BPMN fixtures files', () => {
21 | const files = findFiles('../fixtures/bpmn/bpmn-rendering/');
22 | expect(files).toContain('events.bpmn');
23 | });
24 | });
25 |
--------------------------------------------------------------------------------
/test/unit/helpers/TestUtils.ts:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2021 Bonitasoft S.A.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | import type BpmnModel from '@lib/model/bpmn/internal/BpmnModel';
18 | import type Shape from '@lib/model/bpmn/internal/shape/Shape';
19 |
20 | import { ShapeBpmnElementKind, ShapeUtil } from '@lib/model/bpmn/internal';
21 |
22 | export const shapeBpmnElementKindForLabelTests = Object.values(ShapeBpmnElementKind)
23 | .filter(kind => !ShapeUtil.isPoolOrLane(kind))
24 | // group as label is managed by category
25 | .filter(kind => kind != ShapeBpmnElementKind.GROUP)
26 | // intermediate catch and boundary events require extra property no managed here
27 | .filter(kind => ![ShapeBpmnElementKind.EVENT_BOUNDARY, ShapeBpmnElementKind.EVENT_INTERMEDIATE_CATCH].includes(kind))
28 | .map(kind => [kind]);
29 |
30 | export function getEventShapes(model: BpmnModel): Shape[] {
31 | return model.flowNodes.filter(shape => ShapeUtil.isEvent(shape.bpmnElement.kind));
32 | }
33 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "declaration": false,
4 | "outDir": "./build/lib",
5 | "module": "ES2015",
6 | "target": "ES2015",
7 | "strictBindCallApply": true,
8 | "alwaysStrict": true,
9 | "strictFunctionTypes": true,
10 | "noImplicitAny": true,
11 | "noImplicitOverride": true,
12 | "noImplicitThis": true,
13 | "noUnusedLocals": true,
14 | "noUnusedParameters": true,
15 | "skipLibCheck": false,
16 | "experimentalDecorators": true,
17 | "moduleResolution": "node",
18 | "sourceMap": false,
19 | "allowSyntheticDefaultImports": true,
20 | "esModuleInterop": true,
21 | "stripInternal": true,
22 | // Vitejs requirements https://vitejs.dev/guide/features.html#typescript-compiler-options
23 | "isolatedModules": true, // https://esbuild.github.io/content-types/#isolated-modules
24 | "useDefineForClassFields": true,
25 | },
26 | "include": [
27 | "src/**/*",
28 | "dev/ts/**/*"
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/tsconfig.npm-package.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "compilerOptions": {
4 | "declaration": false,
5 | "sourceMap": false
6 | },
7 | "include": [
8 | // Ensure we only bundle production sources
9 | "src/**/*"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "compilerOptions": {
4 | "sourceMap": true,
5 | "baseUrl": ".",
6 | "paths": {
7 | // allow to import sources directly with "@lib/xx/yy" instead of using relative paths like "../../../src/xx/yy"
8 | "@lib/*": ["src/*"],
9 | "@test/shared/*": ["test/shared/*"],
10 | }
11 | },
12 | "include": [
13 | "test/**/*.ts"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/tsconfig.typedoc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "include": [
4 | "src/**/*"
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/tsconfig.utils.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "include": [
4 | "scripts/utils/**/*"
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/typedoc.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://typedoc.org/schema.json",
3 | "name": "bpmn-visualization API Documentation",
4 | "readme": "none",
5 | "out": "./build/docs/api",
6 | "excludeInternal": true,
7 | "excludeExternals": true,
8 | "excludePrivate": true,
9 | "categoryOrder": ["Initialization & Configuration", "BPMN", "Navigation","Custom Behavior", "Overlays", "BPMN Theme", "Element Style", "*"],
10 | "categorizeByGroup": false,
11 | "navigation": {
12 | "includeCategories": true
13 | }
14 | }
15 |
--------------------------------------------------------------------------------