├── .github ├── ISSUE_TEMPLATE │ ├── BUG_REPORT.md │ ├── FEATURE_REQUEST.md │ ├── TASK.md │ └── config.yml ├── dependabot.yml └── workflows │ └── CI.yml ├── .gitignore ├── CHANGELOG.md ├── README.md ├── client ├── HideModelerElements.js ├── assets │ └── bpmn-js-token-simulation │ │ ├── css │ │ ├── bpmn-js-token-simulation.css │ │ └── normalize.css │ │ └── font-awesome │ │ ├── css │ │ └── font-awesome.min.css │ │ └── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 ├── client.bundle.js ├── client.bundle.js.map └── client.js ├── docs └── screenshot.png ├── index.js ├── menu.js ├── package-lock.json ├── package.json └── webpack.config.js /.github/ISSUE_TEMPLATE/BUG_REPORT.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report a problem and help us fix it. 4 | labels: "bug" 5 | --- 6 | 7 | 8 | __Describe the Bug__ 9 | 10 | 11 | 12 | 13 | __Steps to Reproduce__ 14 | 15 | 16 | 17 | 1. do this 18 | 2. do that 19 | 3. now this happens 20 | 21 | 22 | __Expected Behavior__ 23 | 24 | 25 | 26 | 27 | __Environment__ 28 | 29 | - OS: [e.g. MacOS 10.2, Windows 10] 30 | - Plugin version: [e.g. 2.0.0] 31 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea or general improvement. 4 | labels: "enhancement" 5 | --- 6 | 7 | 8 | __Is your feature request related to a problem? Please describe.__ 9 | 10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 11 | 12 | 13 | __Describe the solution you'd like__ 14 | 15 | A clear and concise description of what you want to happen. 16 | 17 | 18 | __Describe alternatives you've considered__ 19 | 20 | A clear and concise description of any alternative solutions or features you've considered. 21 | 22 | 23 | __Additional context__ 24 | 25 | Add any other context or screenshots about the feature request here. 26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/TASK.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Task 3 | about: Describe a generic activity we should carry out. 4 | --- 5 | 6 | 7 | __What should we do?__ 8 | 9 | 10 | 11 | 12 | __Why should we do it?__ 13 | 14 | 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Ask a question 4 | url: https://forum.camunda.io/c/modeler 5 | about: Head over to our community forum to ask questions and get answers. 6 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # configure dependabot automatic dependency upgrades (PRs) 2 | # 3 | # @see https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates 4 | 5 | version: 2 6 | updates: 7 | - package-ecosystem: "npm" 8 | directory: "/" 9 | schedule: 10 | interval: "monthly" 11 | day: "monday" 12 | time: "09:00" 13 | timezone: "Europe/Berlin" 14 | reviewers: 15 | - "bpmn-io/modeling-dev" 16 | commit-message: 17 | prefix: "deps:" 18 | versioning-strategy: "increase-if-necessary" 19 | open-pull-requests-limit: 0 20 | - package-ecosystem: "npm" 21 | target-branch: "main" 22 | directory: "/" 23 | schedule: 24 | interval: "weekly" 25 | reviewers: 26 | - "bpmn-io/modeling-dev" 27 | commit-message: 28 | prefix: "deps:" 29 | versioning-strategy: "increase" 30 | open-pull-requests-limit: 2 31 | allow: 32 | - dependency-name: "bpmn-js" 33 | - dependency-name: "bpmn-js-token-simulation" 34 | - dependency-name: "camunda-modeler-plugin-helpers" 35 | -------------------------------------------------------------------------------- /.github/workflows/CI.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: [ push, pull_request ] 3 | jobs: 4 | Build: 5 | 6 | strategy: 7 | matrix: 8 | os: [ ubuntu-latest ] 9 | node-version: [ 20 ] 10 | 11 | runs-on: ${{ matrix.os }} 12 | 13 | steps: 14 | - name: Checkout 15 | uses: actions/checkout@v3 16 | - name: Use Node.js 17 | uses: actions/setup-node@v3 18 | with: 19 | node-version: ${{ matrix.node-version }} 20 | cache: 'npm' 21 | - name: Install dependencies 22 | run: npm ci 23 | - name: Build 24 | run: npm run all -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to the [camunda-modeler-token-simulation-plugin](https://github.com/camunda/camunda-modeler-token-simulation-plugin/blob/master/CHANGELOG.md) are documented here. We use [semantic versioning](http://semver.org/) for releases. 4 | 5 | ## Unreleased 6 | 7 | ___Note:__ Yet to be released changes appear here._ 8 | 9 | ## 0.22.0 10 | 11 | * `FEAT`: improve collapsed sub-process support ([#58](https://github.com/camunda/camunda-modeler-token-simulation-plugin/issues/58)) 12 | * `FEAT`: make parallel gateway join spec compliant ([#84](https://github.com/camunda/camunda-modeler-token-simulation-plugin/issues/84)) 13 | * `DEPS`: bump to `bpmn-js-token-simulation@0.38.1` 14 | 15 | ## 0.21.0 16 | 17 | * `FEAT`: support Camunda Modeler `v5.29.0` 18 | * `DEPS`: bump to `bpmn-js-token-simulation@0.36.0` 19 | 20 | ## 0.20.0 21 | 22 | * `FEAT`: support implicit start events ([bpmn-io/bpmn-js-token-simulation#144](https://github.com/bpmn-io/bpmn-js-token-simulation/issues/144)) 23 | * `DEPS`: bump to `bpmn-js-token-simulation@0.33.0` 24 | 25 | ## 0.19.0 26 | 27 | * `FEAT`: support inclusive gateways ([bpmn-io/bpmn-js-token-simulation#110](https://github.com/bpmn-io/bpmn-js-token-simulation/pull/110), [bpmn-io/bpmn-js-token-simulation#88](https://github.com/bpmn-io/bpmn-js-token-simulation/issues/88)) 28 | * `DEPS`: bump to `bpmn-js-token-simulation@0.32.0` 29 | 30 | ## 0.18.0 31 | 32 | * `DEPS`: bump to `bpmn-js-token-simulation@0.31.1` 33 | 34 | ## 0.17.0 35 | 36 | * `FEAT`: reworked the simulation log ([bpmn-io/bpmn-js-token-simulation#123](https://github.com/bpmn-io/bpmn-js-token-simulation/pull/123)) 37 | * `FIX`: don't activate token simulation when pressing `R` ([#60](https://github.com/camunda/camunda-modeler-token-simulation-plugin/issues/60)) 38 | * `CHORE`: rename project to `camunda-modeler-token-simulation-plugin` ([#47](https://github.com/camunda/camunda-modeler-token-simulation-plugin/issues/47)) 39 | * `DEPS`: bump to `bpmn-js-token-simulation@0.30.1` 40 | 41 | ## 0.15.0 42 | 43 | * `DEPS`: bump to `bpmn-js-token-simulation@0.24.0` 44 | * `DEPS`: bump to `bpmn-js@8.9.0` 45 | * `DEPS`: bump to `camunda-modeler-plugin-helpers@3.1.0` 46 | 47 | ## 0.14.0 48 | 49 | * `FEAT`: execute message flows in interaction direction 50 | * `FEAT`: support bi-directional message flows ([#42](https://github.com/bpmn-io/bpmn-js-token-simulation-plugin/issues/42)) 51 | * `FIX`: do not signal participant on un-directed message receive 52 | * `DEPS`: bump to `bpmn-js-token-simulation@0.22.0` 53 | 54 | ## 0.13.1 55 | 56 | * `FIX`: correct join after parallel gateway with destroyed scopes 57 | * `DEPS`: bump to `bpmn-js-token-simulation@0.21.2` 58 | 59 | ## 0.13.0 60 | 61 | _Uses [`bpmn-js-token-simulation@0.12+`](https://github.com/bpmn-io/bpmn-js-token-simulation/blob/master/CHANGELOG.md#0120) under the hood which is a major rework of the original token simulation tool._ 62 | 63 | * `FEAT`: support signals 64 | * `FEAT`: support message flows 65 | * `FEAT`: support escalation 66 | * `FEAT`: support BPMN 2.0 spec like event sub-processes 67 | * `FEAT`: support multiple concurrent process instances 68 | * `FEAT`: support link events 69 | * `FEAT`: color tokens to distinguish process instances 70 | * `FEAT`: add ability to filter view on a single running process instance 71 | * `FEAT`: allow triggering of boundary events on tasks 72 | * `FIX`: correct pause and play activation ([#30](https://github.com/bpmn-io/bpmn-js-token-simulation-plugin/issues/30), [#29](https://github.com/bpmn-io/bpmn-js-token-simulation-plugin/issues/29)) 73 | * `DEPS`: bump to `bpmn-js-token-simulation@0.19.3` 74 | 75 | ## 0.12.0 76 | 77 | * `FEAT`: allow switch to XML tab / diagram save when simulation is active 78 | * `FIX`: make compatible with Camunda Modeler v4.6+ 79 | 80 | ## 0.11.0 81 | 82 | * `DEPS`: bump to `bpmn-js-token-simulation@0.11.0` 83 | 84 | ## 0.10.1 85 | 86 | * `FIX`: update token simulation styles ([#18](https://github.com/bpmn-io/bpmn-js-token-simulation-plugin/issues/18)) 87 | 88 | ## 0.10.0 89 | 90 | * `CHORE`: update to [`bpmn-js-token-simulation@0.10`](https://github.com/bpmn-io/bpmn-js-token-simulation/blob/master/CHANGELOG.md#0100) 91 | 92 | ## 0.9.0 93 | 94 | * `CHORE`: support Camunda Modeler v3.x.x 95 | 96 | ## 0.8.0 97 | 98 | * `CHORE`: support Camunda Modeler v2.1.0 ([#13](https://github.com/bpmn-io/bpmn-js-token-simulation-plugin/pull/13)) 99 | * `CHORE`: update to [`bpmn-js-token-simulation@0.8`](https://github.com/bpmn-io/bpmn-js-token-simulation/blob/master/CHANGELOG.md#080) 100 | 101 | ## ... 102 | 103 | Check `git log` for earlier history. 104 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Camunda Modeler Token Simulation Plug-in 2 | 3 | [![Build Status](https://github.com/camunda/camunda-modeler-token-simulation-plugin/workflows/CI/badge.svg)](https://github.com/camunda/camunda-modeler-token-simulation-plugin/actions?query=workflow%3ACI) 4 | [![Compatible with Camunda Modeler version 5](https://img.shields.io/badge/Modeler_Version-5.0.0+-blue.svg)](#) [![Plugin Type](https://img.shields.io/badge/Plugin_Type-BPMN-orange.svg)](#) 5 | 6 | [bpmn-js-token-simulation](https://github.com/bpmn-io/bpmn-js-token-simulation) as a plugin for the [Camunda Modeler](https://camunda.org/bpmn/tool/). 7 | 8 | ![Screenshot](docs/screenshot.png) 9 | 10 | ## How to use 11 | 12 | 1. Download and copy this repository into the `plugins` directory of the Camunda Modeler 13 | 2. Start the Camunda Modeler 14 | 3. Simulate tokens in a regular BPMN tab 15 | 16 | ### Installing on macOS 17 | 18 | Open a Terminal window and run the following commands: 19 | 20 | 1. `cd ~/Library/Application\ Support/camunda-modeler` 21 | 2. `mkdir -p resources/plugins` 22 | 3. `cd resources/plugins` 23 | 4. `git clone https://github.com/camunda/camunda-modeler-token-simulation-plugin` 24 | 25 | Restart Camunda Modeler. 26 | 27 | ## Compatibility Notice 28 | 29 | 30 | | Plugin Version | Compatible With Camunda Modeler | 31 | |-|-| 32 | | 0.8.0 - 0.15.0 | 2.2 - 4.x | 33 | | 0.16.0+ | 5.0.0+ | 34 | 35 | ## Additional Resources 36 | 37 | * [List of existing plug-ins](https://github.com/camunda/camunda-modeler-plugins) 38 | * [Plugins documentation](https://github.com/camunda/camunda-modeler/tree/master/docs/plugins) 39 | * [Plugin starter project](https://github.com/camunda/camunda-modeler-plugin-example) 40 | 41 | ## Licence 42 | 43 | MIT 44 | -------------------------------------------------------------------------------- /client/HideModelerElements.js: -------------------------------------------------------------------------------- 1 | import { 2 | classes as domClasses, 3 | query as domQuery 4 | } from 'min-dom'; 5 | 6 | import { 7 | TOGGLE_MODE_EVENT 8 | } from 'bpmn-js-token-simulation/lib/util/EventHelper'; 9 | 10 | 11 | export default function HideModelerElements(eventBus, toggleMode) { 12 | var css = '.properties.hidden { display: none; } .tabs .tab.hidden { display: none; }', 13 | head = document.head, 14 | style = document.createElement('style'); 15 | 16 | style.type = 'text/css'; 17 | 18 | style.appendChild(document.createTextNode(css)); 19 | 20 | head.appendChild(style); 21 | 22 | eventBus.on('saveXML.start', 5000, function() { 23 | // disable simulation before saving 24 | if (toggleMode.active) { 25 | toggleMode.toggleMode(); 26 | } 27 | }); 28 | 29 | eventBus.on(TOGGLE_MODE_EVENT, function(context) { 30 | var active = context.active; 31 | 32 | var propertiesPanel = domQuery('.properties'); 33 | 34 | if (active) { 35 | domClasses(propertiesPanel).add('hidden'); 36 | } else { 37 | domClasses(propertiesPanel).remove('hidden'); 38 | } 39 | }); 40 | } 41 | 42 | HideModelerElements.$inject = [ 43 | 'eventBus', 44 | 'toggleMode' 45 | ]; -------------------------------------------------------------------------------- /client/assets/bpmn-js-token-simulation/css/bpmn-js-token-simulation.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --token-simulation-green-base-44: #10D070; 3 | --token-simulation-grey-base-40: #666666; 4 | --token-simulation-grey-darken-30: #212121; 5 | --token-simulation-grey-lighten-56: #909090; 6 | --token-simulation-red-base-62: #FF3D3D; 7 | --token-simulation-silver-base-97: #F8F8F8; 8 | --token-simulation-silver-darken-94: #EFEFEF; 9 | 10 | --token-simulation-white: #FFFFFF; 11 | } 12 | 13 | .bjs-breadcrumbs { 14 | /* ensure breadcrumbs don't overlap with token-simulation controls */ 15 | top: 60px; 16 | left: 50px; 17 | } 18 | 19 | .bjs-container.simulation .djs-container { 20 | box-shadow: inset 0px 0px 0px 4px var(--token-simulation-green-base-44, #10D070); 21 | } 22 | 23 | .bjs-container.simulation.paused .djs-container { 24 | box-shadow: inset 0px 0px 0px 4px var(--token-simulation-grey-base-40, #666666); 25 | } 26 | 27 | .bjs-container.simulation.warning .djs-container { 28 | box-shadow: inset 0px 0px 0px 4px var(--token-simulation-red-base-62, #FF3D3D) !important; 29 | } 30 | 31 | .bts-context-pad { 32 | cursor: pointer; 33 | background-color: var(--token-simulation-grey-lighten-56, #909090); 34 | border-radius: 2px; 35 | margin: 0; 36 | font-size: 16px; 37 | color: var(--token-simulation-grey-darken-30, #212121); 38 | opacity: 0.5; 39 | transition: all 0.1s ease-in-out; 40 | width: 30px; 41 | height: 30px; 42 | display: flex; 43 | justify-content: center; 44 | align-items: center; 45 | box-sizing: border-box; 46 | } 47 | 48 | .bts-context-pad:not(.disabled):hover { 49 | background-color: var(--token-simulation-green-base-44, #10D070); 50 | opacity: 1; 51 | color: var(--token-simulation-white, #FFFFFF); 52 | } 53 | 54 | .djs-overlays:not(.hover) .bts-context-pad:not(:hover).show-hover, 55 | .bts-context-pad:not(:hover) .show-hover, 56 | .bts-context-pad:hover .hide-hover { 57 | display: none; 58 | } 59 | 60 | .bts-context-pad.disabled { 61 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 62 | color: var(--token-simulation-grey-base-40, #666666); 63 | pointer-events: none; 64 | } 65 | 66 | .bts-context-pad.hidden { 67 | display: none; 68 | } 69 | 70 | .bts-context-pad [class^="bpmn-icon-"]:before, 71 | .bts-context-pad [class*=" bpmn-icon-"]:before { 72 | margin: 0; 73 | } 74 | 75 | .bts-token .text { 76 | font-family: 'Arial', sans-serif; 77 | } 78 | 79 | .bts-token-count-parent { 80 | white-space: nowrap; 81 | } 82 | 83 | .bts-token-count { 84 | background-color: #FAFAFA; 85 | border-radius: 100%; 86 | width: 25px; 87 | height: 25px; 88 | line-height: 25px; 89 | text-align: center; 90 | font-size: 14px; 91 | color: var(--token-simulation-grey-darken-30, #212121); 92 | user-select: none; 93 | animation: bts-jump 1s infinite; 94 | animation-timing-function: ease; 95 | position: relative; 96 | top: 0; 97 | display: inline-block; 98 | } 99 | 100 | .bts-token-count.inactive { 101 | display: none; 102 | } 103 | 104 | .bts-token-count + .bts-token-count { 105 | margin-left: -8px; 106 | } 107 | 108 | .bts-token-count.waiting { 109 | color: var(--token-simulation-white, #FFFFFF); 110 | font-family: 'Arial', sans-serif; 111 | background-color: var(--token-simulation-green-base-44, #10D070); 112 | } 113 | 114 | @keyframes bts-jump { 115 | 50% { top: 5px; } 116 | } 117 | 118 | .bts-notifications { 119 | position: absolute; 120 | bottom: 20px; 121 | left: 20px; 122 | } 123 | 124 | .bts-notifications .bts-notification { 125 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 126 | border-radius: 2px; 127 | padding: 5px 8px; 128 | font-size: 16px; 129 | color: var(--token-simulation-silver-darken-94, #EFEFEF); 130 | user-select: none; 131 | margin-top: 4px; 132 | min-width: 300px; 133 | max-width: 400px; 134 | display: flex; 135 | justify-content: center; 136 | align-items: stretch; 137 | } 138 | 139 | .bts-notifications .bts-notification.info { 140 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 141 | color: #000; 142 | } 143 | 144 | .bts-notifications .bts-notification.success { 145 | background-color: var(--token-simulation-green-base-44, #10D070); 146 | color: var(--token-simulation-white, #FFFFFF); 147 | } 148 | 149 | .bts-notifications .bts-notification.warning { 150 | background-color: var(--token-simulation-red-base-62, #FF3D3D); 151 | color: var(--token-simulation-white, #FFFFFF); 152 | } 153 | 154 | .bts-notifications .bts-notification > * { 155 | flex: initial; 156 | } 157 | 158 | .bts-notifications .bts-notification > :not(:last-child) { 159 | margin-right: 6px; 160 | } 161 | 162 | .bts-notifications .bts-notification > .bts-icon { 163 | min-width: 20px; 164 | text-align: center; 165 | } 166 | 167 | .bts-notifications .bts-notification > .bts-text { 168 | flex: 1; 169 | overflow: hidden; 170 | text-overflow: ellipsis; 171 | white-space: nowrap; 172 | } 173 | 174 | .bts-notifications .bts-notification > .bts-scope { 175 | font-family: monospace; 176 | font-size: .8em; 177 | padding: 2px 3px; 178 | border-radius: 3px; 179 | cursor: default; 180 | } 181 | 182 | .bts-notifications .bts-notification > .bts-icon [class^="bpmn-icon-"]:before, 183 | .bts-notifications .bts-notification > .bts-icon [class*=" bpmn-icon-"]:before { 184 | margin: 0; 185 | } 186 | 187 | .bjs-container.paused .bts-play-pause.active { 188 | color: var(--token-simulation-silver-darken-94, #EFEFEF); 189 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 190 | } 191 | 192 | .bts-element-notification { 193 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 194 | color: var(--token-simulation-silver-darken-94, #EFEFEF); 195 | border-radius: 2px; 196 | height: 30px; 197 | box-sizing: border-box; 198 | display: flex; 199 | justify-content: center; 200 | align-items: center; 201 | padding: 0 6px 0 6px; 202 | user-select: none; 203 | } 204 | 205 | .bts-element-notification .bts-text { 206 | margin: 0 3px 0 3px; 207 | } 208 | 209 | .bts-element-notification .bts-text { 210 | white-space: nowrap; 211 | } 212 | 213 | .bts-element-notification.success { 214 | background-color: var(--token-simulation-green-base-44, #10D070); 215 | color: var(--token-simulation-white, #FFFFFF); 216 | } 217 | 218 | .bts-element-notification.warning { 219 | background-color: var(--token-simulation-red-base-62, #FF3D3D); 220 | color: var(--token-simulation-white, #FFFFFF); 221 | } 222 | 223 | .bts-toggle-mode { 224 | cursor: pointer; 225 | position: absolute; 226 | top: 20px; 227 | left: 20px; 228 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 229 | border-radius: 2px; 230 | padding: 6px; 231 | font-size: 16px; 232 | color: var(--token-simulation-grey-darken-30, #212121); 233 | user-select: none; 234 | display: inline-flex; 235 | } 236 | 237 | .bts-toggle-mode .bts-toggle { 238 | margin-left: .25em; 239 | display: inline-flex; 240 | } 241 | 242 | .bjs-container.simulation .bts-toggle-mode, 243 | .bts-toggle-mode:hover { 244 | background-color: var(--token-simulation-green-base-44, #10D070); 245 | color: var(--token-simulation-white, #FFFFFF); 246 | } 247 | 248 | .bjs-container .djs-palette { 249 | top: 60px; 250 | } 251 | 252 | .bjs-container.simulation .djs-bendpoint, 253 | .bjs-container.simulation .djs-context-pad, 254 | .bjs-container.simulation .djs-outline, 255 | .bjs-container.simulation .djs-palette, 256 | .bjs-container.simulation .djs-resizer, 257 | .bjs-container.simulation .djs-segment-dragger { 258 | display: none !important; 259 | } 260 | 261 | .bjs-container.simulation .djs-overlay:not(.djs-overlay-bts-context-menu, .djs-overlay-bts-element-notification, .djs-overlay-bts-token-count, .djs-overlay-drilldown) { 262 | display: none !important; 263 | } 264 | 265 | .bts-palette { 266 | position: absolute; 267 | top: 60px; 268 | left: 20px; 269 | } 270 | 271 | .bts-palette.hidden { 272 | display: none; 273 | } 274 | 275 | .bts-palette .bts-entry { 276 | cursor: pointer; 277 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 278 | border-radius: 2px; 279 | padding: 6px 0; 280 | margin-bottom: 6px; 281 | font-size: 16px; 282 | color: var(--token-simulation-grey-darken-30, #212121); 283 | user-select: none; 284 | display: flex; 285 | justify-content: center; 286 | align-items: center; 287 | width: 30px; 288 | box-sizing: border-box; 289 | transition: all 0.1s ease; 290 | } 291 | 292 | .bts-palette .bts-entry:last-child { 293 | margin-bottom: 0; 294 | } 295 | 296 | .bts-palette .bts-entry:not(.disabled):hover { 297 | color: var(--token-simulation-white, #FFFFFF); 298 | background-color: var(--token-simulation-green-base-44, #10D070); 299 | } 300 | 301 | .bts-palette .bts-entry.active { 302 | color: var(--token-simulation-white, #FFFFFF); 303 | background-color: var(--token-simulation-green-base-44, #10D070); 304 | } 305 | 306 | .bts-palette .bts-entry.disabled { 307 | pointer-events: none; 308 | color: var(--token-simulation-grey-base-40, #666666); 309 | } 310 | 311 | .bts-log { 312 | position: absolute; 313 | top: 30%; 314 | right: 20px; 315 | bottom: 50px; 316 | width: 300px; 317 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 318 | border-radius: 2px; 319 | z-index: 10000; 320 | overflow: hidden; 321 | display: flex; 322 | flex-direction: column; 323 | } 324 | 325 | .bts-log.hidden { 326 | display: none; 327 | } 328 | 329 | .bts-log .bts-header { 330 | background-color: var(--token-simulation-green-base-44, #10D070); 331 | padding: 6px 8px; 332 | color: var(--token-simulation-white, #FFFFFF); 333 | height: 30px; 334 | box-sizing: border-box; 335 | font-size: 16px; 336 | flex: 0; 337 | display: flex; 338 | justify-content: space-between; 339 | } 340 | 341 | .bts-log .bts-close { 342 | background: none; 343 | border: none; 344 | cursor: pointer; 345 | color: var(--token-simulation-white, #FFFFFF); 346 | } 347 | 348 | .bts-log .bts-log-icon { 349 | cursor: pointer; 350 | } 351 | 352 | .bts-log .bts-content { 353 | overflow-y: auto; 354 | box-sizing: border-box; 355 | flex: 1; 356 | margin: 7px 3px 7px 12px; 357 | padding: 5px 9px 5px 0; 358 | } 359 | 360 | .bts-log *::-webkit-scrollbar { 361 | width: 6px; 362 | } 363 | 364 | .bts-log *::-webkit-scrollbar-thumb { 365 | border-radius: 3px; 366 | background-color: rgba(0, 0, 0, 0.2); 367 | } 368 | 369 | .bts-log *::-webkit-scrollbar-track { 370 | box-shadow: none; 371 | background: transparent; 372 | margin: 0; 373 | padding: 5px; 374 | } 375 | 376 | .bts-log .bts-entry { 377 | font-size: 16px; 378 | margin: 0 0 6px 0; 379 | padding: 6px; 380 | background: var(--token-simulation-white, #FFFFFF); 381 | border-radius: 2px; 382 | display: flex; 383 | align-items: stretch; 384 | justify-content: center; 385 | } 386 | 387 | .bts-log .bts-entry.inactive { 388 | opacity: .5; 389 | } 390 | 391 | .bts-log .bts-entry.success { 392 | background-color: var(--token-simulation-green-base-44, #10D070); 393 | color: var(--token-simulation-white, #FFFFFF); 394 | } 395 | 396 | .bts-log .bts-entry.warning { 397 | background-color: var(--token-simulation-red-base-62, #FF3D3D); 398 | color: var(--token-simulation-white, #FFFFFF); 399 | } 400 | 401 | .bts-log .bts-entry:last-child { 402 | margin: 0; 403 | } 404 | 405 | .bts-log .bts-entry > * { 406 | flex: initial; 407 | } 408 | 409 | .bts-log .bts-entry > :not(:last-child) { 410 | margin-right: 6px; 411 | } 412 | 413 | .bts-log .bts-entry > .bts-icon { 414 | min-width: 20px; 415 | text-align: center; 416 | } 417 | 418 | .bts-log .bts-entry > .bts-scope { 419 | font-family: monospace; 420 | font-size: .8em; 421 | padding: 2px 3px; 422 | border-radius: 3px; 423 | cursor: default; 424 | } 425 | 426 | .bts-log .bts-entry > .bts-text { 427 | flex: 1; 428 | overflow: hidden; 429 | text-overflow: ellipsis; 430 | white-space: nowrap; 431 | } 432 | 433 | .bts-log .bts-entry.placeholder.hidden { 434 | display: none; 435 | } 436 | 437 | .bts-scopes { 438 | position: absolute; 439 | top: 22px; 440 | left: 190px; 441 | display: flex; 442 | flex-direction: row; 443 | } 444 | 445 | .bts-scopes.hidden { 446 | display: none; 447 | } 448 | 449 | .bts-scopes .bts-scope { 450 | border-radius: 100%; 451 | width: 25px; 452 | height: 25px; 453 | font-size: 14px; 454 | line-height: 25px; 455 | text-align: center; 456 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 457 | margin-right: 10px; 458 | cursor: pointer; 459 | outline: none; 460 | } 461 | 462 | .bts-scopes .bts-scope.inactive:hover { 463 | opacity: 1 464 | } 465 | 466 | .bts-scopes .bts-scope.inactive { 467 | opacity: .25; 468 | } 469 | 470 | .bts-scopes .bts-scope.focussed { 471 | outline-offset: 2px; 472 | outline-width: 2px; 473 | outline-style: solid; 474 | } 475 | 476 | .djs-container.highlight { 477 | background-color: var(--token-simulation-silver-base-97, #F8F8F8); 478 | } 479 | 480 | .bts-set-animation-speed { 481 | position: absolute; 482 | bottom: 20px; 483 | left: 50%; 484 | transform: translate(-50%, 0); 485 | font-size: 16px; 486 | text-align: center; 487 | background-color: var(--token-simulation-silver-darken-94, #EFEFEF); 488 | border-radius: 2px; 489 | display: flex; 490 | flex-direction: row; 491 | align-items: center; 492 | padding-left: 6px; 493 | overflow: hidden; 494 | } 495 | 496 | .bts-set-animation-speed.hidden { 497 | display: none; 498 | } 499 | 500 | .bts-set-animation-speed .bts-animation-speed-buttons { 501 | display: flex; 502 | flex-direction: row; 503 | 504 | margin-left: 6px; 505 | } 506 | 507 | .bts-set-animation-speed .bts-animation-speed-button { 508 | padding: 10px 0; 509 | width: 30px; 510 | display: inline-flex; 511 | justify-content: center; 512 | border: none; 513 | } 514 | 515 | .bts-set-animation-speed .bts-animation-speed-button.active, 516 | .bts-set-animation-speed .bts-animation-speed-button:hover { 517 | background-color: var(--token-simulation-green-base-44, #10D070); 518 | color: var(--token-simulation-white, #FFFFFF); 519 | } 520 | 521 | .bts-icon { 522 | display: inline-flex; 523 | align-items: center; 524 | justify-content: center; 525 | } 526 | 527 | .bts-icon > svg { 528 | height: 1em; 529 | } -------------------------------------------------------------------------------- /client/assets/bpmn-js-token-simulation/css/normalize.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | } 4 | 5 | body, html { 6 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 7 | 8 | font-size: 12px; 9 | color: #444; 10 | 11 | height: 100%; 12 | padding: 0; 13 | margin: 0; 14 | } 15 | 16 | h1, h2, h3, h4 { 17 | font-weight: normal; 18 | } 19 | 20 | h2 { 21 | margin-top: 30px; 22 | margin-bottom: 10px; 23 | } 24 | 25 | ul { 26 | padding-left: 30px; 27 | } -------------------------------------------------------------------------------- /client/assets/bpmn-js-token-simulation/font-awesome/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} 5 | -------------------------------------------------------------------------------- /client/assets/bpmn-js-token-simulation/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camunda/camunda-modeler-token-simulation-plugin/2d3fbd8b80fe85e497264b58e69b4424ed41a329/client/assets/bpmn-js-token-simulation/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /client/assets/bpmn-js-token-simulation/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camunda/camunda-modeler-token-simulation-plugin/2d3fbd8b80fe85e497264b58e69b4424ed41a329/client/assets/bpmn-js-token-simulation/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /client/assets/bpmn-js-token-simulation/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camunda/camunda-modeler-token-simulation-plugin/2d3fbd8b80fe85e497264b58e69b4424ed41a329/client/assets/bpmn-js-token-simulation/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /client/assets/bpmn-js-token-simulation/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camunda/camunda-modeler-token-simulation-plugin/2d3fbd8b80fe85e497264b58e69b4424ed41a329/client/assets/bpmn-js-token-simulation/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /client/assets/bpmn-js-token-simulation/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camunda/camunda-modeler-token-simulation-plugin/2d3fbd8b80fe85e497264b58e69b4424ed41a329/client/assets/bpmn-js-token-simulation/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /client/client.js: -------------------------------------------------------------------------------- 1 | import { 2 | registerBpmnJSPlugin 3 | } from 'camunda-modeler-plugin-helpers'; 4 | 5 | import TokenSimulationModule from 'bpmn-js-token-simulation'; 6 | import HideModelerElements from './HideModelerElements'; 7 | 8 | const TokenSimulationPluginModule = { 9 | __init__: [ 'hideModelerElements' ], 10 | hideModelerElements: [ 'type', HideModelerElements ] 11 | }; 12 | 13 | registerBpmnJSPlugin(TokenSimulationModule); 14 | registerBpmnJSPlugin(TokenSimulationPluginModule); 15 | -------------------------------------------------------------------------------- /docs/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/camunda/camunda-modeler-token-simulation-plugin/2d3fbd8b80fe85e497264b58e69b4424ed41a329/docs/screenshot.png -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | name: 'bpmn-js Token Simulation', 5 | script: './client/client.bundle.js', 6 | style: './client/assets/bpmn-js-token-simulation/css/bpmn-js-token-simulation.css', 7 | menu: './menu.js' 8 | }; 9 | -------------------------------------------------------------------------------- /menu.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = function (electronApp, menuState) { 4 | 5 | function enabled() { 6 | return menuState.bpmn && ( 7 | 'canvasFocused' in menuState 8 | ? menuState.canvasFocused 9 | : menuState.inactiveInput 10 | ); 11 | } 12 | 13 | return [{ 14 | label: 'Toggle Token Simulation', 15 | accelerator: 't', 16 | enabled, 17 | action: function () { 18 | electronApp.emit('menu:action', 'toggleTokenSimulation'); 19 | } 20 | }, { 21 | label: 'Play/Pause Simulation', 22 | accelerator: 'Space', 23 | enabled, 24 | action: function () { 25 | electronApp.emit('menu:action', 'togglePauseTokenSimulation'); 26 | } 27 | }, { 28 | label: 'Reset Simulation', 29 | accelerator: 'r', 30 | enabled, 31 | action: function () { 32 | electronApp.emit('menu:action', 'resetTokenSimulation'); 33 | } 34 | }]; 35 | }; 36 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "camunda-modeler-token-simulation-plugin", 3 | "version": "0.22.0", 4 | "description": "BPMN Token Simulation for the Camunda Modeler", 5 | "main": "index.js", 6 | "scripts": { 7 | "all": "run-s bundle", 8 | "bundle": "webpack", 9 | "bundle:watch": "webpack -w", 10 | "prepare": "run-s bundle", 11 | "test": "echo 'no tests'" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/camunda/camunda-modeler-token-simulation-plugin" 16 | }, 17 | "keywords": [ 18 | "camunda", 19 | "modeler", 20 | "plugin" 21 | ], 22 | "engines": { 23 | "node": ">= 16" 24 | }, 25 | "author": "Philipp Fromme", 26 | "license": "MIT", 27 | "devDependencies": { 28 | "bpmn-js": "^18.6.2", 29 | "bpmn-js-token-simulation": "^0.38.1", 30 | "camunda-modeler-plugin-helpers": "^5.1.0", 31 | "copy-webpack-plugin": "^11.0.0", 32 | "min-dom": "^4.1.0", 33 | "npm-run-all": "^4.1.5", 34 | "webpack": "^5.89.0", 35 | "webpack-cli": "^5.1.4" 36 | }, 37 | "files": [ 38 | "client", 39 | "index.js", 40 | "menu.js" 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const CopyPlugin = require('copy-webpack-plugin'); 3 | 4 | module.exports = { 5 | mode: 'development', 6 | entry: './client/client.js', 7 | output: { 8 | path: path.resolve(__dirname, 'client'), 9 | filename: 'client.bundle.js' 10 | }, 11 | plugins: [ 12 | new CopyPlugin({ 13 | patterns: [ 14 | { 15 | from: 'node_modules/bpmn-js-token-simulation/assets', 16 | to: 'assets/bpmn-js-token-simulation' 17 | } 18 | ], 19 | }) 20 | ], 21 | devtool: 'cheap-module-source-map' 22 | }; --------------------------------------------------------------------------------