Compare commits

...

1861 Commits

Author SHA1 Message Date
Knut Sveidqvist
2ce18ec2a8 Merge pull request #2542 from mermaid-js/2541
Fix for issue
2021-12-07 23:09:20 +01:00
Knut Sveidqvist
831110029c Merge branch 'HEAD' into 2541 2021-12-07 22:56:01 +01:00
Knut Sveidqvist
89ce930de2 Adding integration test 2021-12-07 22:55:28 +01:00
Knut Sveidqvist
f69f770043 dep fix 2021-12-07 22:09:38 +01:00
Knut Sveidqvist
a97b2cc4da #2541 Sanitizing the label string in class diagrams 2021-12-07 21:55:33 +01:00
Knut Sveidqvist
25b70d8058 Merge remote-tracking branch 'origin/develop' into develop 2021-12-07 21:48:56 +01:00
Knut Sveidqvist
bd106e4aec Merge pull request #2522 from mermaid-js/eslint-husky
setup lint-staged and husky
2021-12-07 09:36:57 +01:00
Lukas Klingsbo
b7abaf1e47 Change "Help wanted!" to "Good first issue!" shield (#2533) 2021-12-05 13:10:41 -08:00
dependabot[bot]
4fea702347 Bump webpack-dev-server from 4.5.0 to 4.6.0 (#2515)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-04 15:30:42 -08:00
Knut Sveidqvist
e6cf1f2602 Merge pull request #2389 from maiermic/feature/1893_data_flow_diagrams
Feature/1893 data flow diagrams
2021-12-01 18:48:09 +01:00
Knut Sveidqvist
9a729257f2 Merge branch 'maiermic-feature/1893_data_flow_diagrams' into develop 2021-12-01 18:14:10 +01:00
Knut Sveidqvist
492ecb1099 merge 2021-12-01 18:12:05 +01:00
Yash-Singh1
ab17af274d chore: install husky hooks on install 2021-11-30 17:08:10 -08:00
Yash-Singh1
59e0a8e1b5 Merge branch 'develop' of github.com:mermaid-js/mermaid into eslint-husky 2021-11-30 17:05:10 -08:00
Yash-Singh1
c232bee95f chore: resolve conflicts by rebuilding 2021-11-30 17:02:58 -08:00
Matthieu MOREL
837eeb6d01 test are already executed on push and pull request 2021-11-30 23:18:48 +01:00
Knut Sveidqvist
3426aa8b2a Lint fix 2021-11-30 20:41:57 +01:00
Knut Sveidqvist
3526e35012 Fix for node with wrong type 2021-11-30 20:28:51 +01:00
Knut Sveidqvist
a018789026 Merge remote-tracking branch 'origin/develop' into develop 2021-11-30 19:24:10 +01:00
Knut Sveidqvist
d9e598aa7f testcommit 2021-11-30 19:12:39 +01:00
Matthieu MOREL
27027d003b setup lint-staged and husky
Co-Authored-By: Yash Singh <saiansh2525@gmail.com>
2021-11-30 08:49:37 +01:00
dependabot[bot]
89eea0536d Bump eslint-plugin-jest from 25.2.4 to 25.3.0 (#2519)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-29 20:18:52 -08:00
dependabot[bot]
4679daafcf Bump eslint from 8.2.0 to 8.3.0 (#2518)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-29 18:02:07 -08:00
dependabot[bot]
a0c6160e55 Bump prettier from 2.4.1 to 2.5.0 (#2520)
Bumps [prettier](https://github.com/prettier/prettier) from 2.4.1 to 2.5.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.4.1...2.5.0)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-29 12:24:29 -08:00
Knut Sveidqvist
f887420818 Merge pull request #2521 from pbendersky/bug/1342-spaces-in-state-name
Changed logic to render states with spaces in names to fix regressions.
2021-11-29 17:55:56 +01:00
Pablo Bendersky
31851b2e30 Fixed eslint error 2021-11-29 13:02:38 -03:00
Pablo Bendersky
08702565f7 Changed logic to render states with spaces in names to fix regressions. 2021-11-29 11:57:59 -03:00
Knut Sveidqvist
5d99ac7d8d Merge pull request #2502 from mermaid-js/prLabelerValidator
Pr labeler config validator
2021-11-29 07:57:17 +01:00
Knut Sveidqvist
d19be0b940 Merge pull request #2501 from pbendersky/bug/1342-spaces-in-state-name
Fixes rendering of state names with spaces
2021-11-29 07:56:35 +01:00
Knut Sveidqvist
b7115b804c Merge pull request #2500 from mmorel-35/develop
Enable eslint-plugin-jest, eslint-plugin-cypress and wider scan
2021-11-29 07:55:08 +01:00
Michael Maier
28bb07d415 fix: check if node.prop is defined 2021-11-28 15:35:56 +01:00
Michael Maier
c2db1d4d44 add missing semicolon 2021-11-28 12:44:22 +01:00
Michael Maier
b6d3ac8e32 warn if unknown node property is given 2021-11-28 12:38:51 +01:00
Michael Maier
9e8c03cb49 Merge branch 'develop' into feature/1893_data_flow_diagrams 2021-11-28 12:26:39 +01:00
Michael Maier
5fff8403a8 add borders example 2021-11-28 12:24:24 +01:00
Michael Maier
86810e04bd Revert "add shape datastore (for nodes of data flow diagram)"
This reverts commit cd427ab8ba.
2021-11-28 12:17:05 +01:00
Michael Maier
ee3680eb6d update syntax of data flow diagram example 2021-11-28 12:17:04 +01:00
Michael Maier
984a5084b0 render node property borders of rect node 2021-11-28 12:13:48 +01:00
Michael Maier
853d62c8d1 add props of vertex to node 2021-11-28 12:12:39 +01:00
Michael Maier
0550e4a899 add props to vertex 2021-11-28 12:11:50 +01:00
Michael Maier
dec6b6d8b5 replace 'datastore' brackets with 'vertex with props' bracket 2021-11-28 12:09:54 +01:00
Yash-Singh1
0b1b3538bc Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2021-11-26 13:43:58 -08:00
Yash-Singh1
31c29b4c02 Merge branch 'develop' of github.com:mermaid-js/mermaid into prLabelerValidator 2021-11-25 14:31:32 -08:00
dependabot[bot]
17a23a1103 Bump webpack from 5.64.1 to 5.64.2 (#2505)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-25 13:11:34 -08:00
dependabot[bot]
6b4107b231 Bump eslint from 8.2.0 to 8.3.0 (#2506)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-25 13:10:38 -08:00
dependabot[bot]
0a50b835b1 Bump @babel/preset-env from 7.16.0 to 7.16.4 (#2504)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yash-Singh1 <saiansh2525@gmail.com>
2021-11-25 13:09:38 -08:00
Yash Singh
89ed7d9b72 Don't lock issues on close (#2503) 2021-11-25 12:48:57 -08:00
Yash Singh
6e5180bd1c fix: async highlight and escape html in docs (#2512) 2021-11-25 12:43:16 -08:00
Yash-Singh1
efcc3b7d37 Use 0.0.3 2021-11-20 18:20:05 -08:00
Yash-Singh1
8a08efdfbb Checkout repo 2021-11-20 15:48:50 -08:00
Yash Singh
a4f26f27bc Attempt to use branch name 2021-11-20 15:47:14 -08:00
Yash-Singh1
226f90dbcb Setup pr labeler config validator 2021-11-19 21:25:58 -08:00
Pablo Bendersky
7ce383078d Fixed state nodes with spaces being rendered as rectWithTitle instead of rect 2021-11-19 13:40:39 -03:00
Matthieu MOREL
d84be0d792 Enable eslint-plugin-jest, eslint-plugin-cypress and wider scan 2021-11-18 23:57:16 +01:00
dependabot[bot]
4089ee8786 Bump @babel/eslint-parser from 7.16.0 to 7.16.3 (#2488)
Bumps [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) from 7.16.0 to 7.16.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.3/eslint/babel-eslint-parser)

---
updated-dependencies:
- dependency-name: "@babel/eslint-parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-18 19:08:02 +01:00
dependabot[bot]
5487ac9542 Bump cypress from 8.7.0 to 9.0.0 (#2486)
Bumps [cypress](https://github.com/cypress-io/cypress) from 8.7.0 to 9.0.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v8.7.0...v9.0.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-18 18:58:03 +01:00
dependabot[bot]
f303909ad6 Bump webpack-dev-server from 4.4.0 to 4.5.0 (#2489)
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.4.0...v4.5.0)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-18 18:53:03 +01:00
dependabot[bot]
be412ba78c Bump concurrently from 6.3.0 to 6.4.0 (#2490)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v6.3.0...v6.4.0)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-18 18:41:13 +01:00
dependabot[bot]
a1ae00070c Bump webpack from 5.62.1 to 5.64.1 (#2498)
Bumps [webpack](https://github.com/webpack/webpack) from 5.62.1 to 5.64.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.62.1...v5.64.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-18 18:37:42 +01:00
Knut Sveidqvist
bb299685cd Merge branch 'mmorel-35-eslint-fix' into develop 2021-11-18 18:07:27 +01:00
Knut Sveidqvist
9d1f32cc0a Merge branch 'eslint-fix' of https://github.com/mmorel-35/mermaid into mmorel-35-eslint-fix 2021-11-18 18:05:15 +01:00
Knut Sveidqvist
6318eee07e Merge remote-tracking branch 'origin/develop' into develop 2021-11-18 17:44:40 +01:00
Knut Sveidqvist
bc64fc7efb Merge branch 'master' into develop 2021-11-18 17:44:17 +01:00
Knut Sveidqvist
650bcef3d1 Merge branch 'release/8.13.4' 2021-11-18 17:11:17 +01:00
Knut Sveidqvist
95df8fa128 Version 8.13.4 bundles 2021-11-18 17:10:36 +01:00
dependabot[bot]
bb62704433 Bump terser-webpack-plugin from 5.2.4 to 5.2.5 (#2491)
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 5.2.4 to 5.2.5.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v5.2.4...v5.2.5)

---
updated-dependencies:
- dependency-name: terser-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-17 15:45:40 -08:00
Knut Sveidqvist
09cc0d02f4 Version bump to 8.13.4 2021-11-17 23:12:37 +01:00
Knut Sveidqvist
98f575e098 Merge pull request #2497 from mermaid-js/2496_place
2496 Securityf fix
2021-11-17 22:53:41 +01:00
Knut Sveidqvist
72d2045104 #2496 Unbreaking state diagrams 2021-11-17 22:30:30 +01:00
Knut Sveidqvist
3feff08d42 #2496 A more delicate fix for issue 2021-11-17 21:31:52 +01:00
Knut Sveidqvist
fcbd8a5081 #2496 Fix for issue 2021-11-17 20:08:39 +01:00
MOREL Matthieu
5b8a4a0b7a fix conf table display 2021-11-15 09:58:47 +01:00
The Alchemist
00f228b959 removed duplicate 'Browser Extensions' header (#2482) 2021-11-14 12:53:15 +01:00
Yash-Singh1
e68ec31a8f Fix lint warnings 2021-11-11 10:37:50 -08:00
Yash-Singh1
d6782bced8 Merge branch 'eslint-fix' of github.com:mmorel-35/mermaid into eslint-fix 2021-11-11 10:34:06 -08:00
Yash-Singh1
2368ba4914 Merge github.com:mermaid-js/mermaid into eslint-fix 2021-11-11 10:31:08 -08:00
Knut Sveidqvist
857f6c892c Merge pull request #2449 from Yash-Singh1/develop
Use monaco-mermaid for syntax highlighting and many syntax highlighting improvements
2021-11-11 19:09:19 +01:00
Knut Sveidqvist
0db5f9fea7 Merge branch 'develop' into develop 2021-11-11 19:09:12 +01:00
Knut Sveidqvist
1fe31dac7d Merge pull request #2464 from Yash-Singh1/jsdoc
Add jsdoc
2021-11-11 19:05:21 +01:00
Knut Sveidqvist
ce675b011d Merge pull request #2470 from kahgoh/develop
Add missing code listing in sequence diagram docs
2021-11-11 18:58:42 +01:00
Knut Sveidqvist
775461407e Merge pull request #2468 from jaybuidl/patch-1
Update gantt.md
2021-11-11 18:58:24 +01:00
Knut Sveidqvist
6305455554 Merge pull request #2476 from bartek/docs/fix_editor_link
Remove references to non-existent Markdown file
2021-11-11 18:58:04 +01:00
Knut Sveidqvist
c964461cb5 Merge pull request #2478 from zephyraft/develop
Add chrome extension to integrations.md
2021-11-11 18:57:37 +01:00
zephyr
42b2e582c5 Add chrome extension to integrations.md 2021-11-11 15:40:55 +08:00
Matthieu MOREL
12f58c967e Update .eslintrc.json 2021-11-11 07:37:14 +01:00
Yash-Singh1
d140a9df8f Switch from mermaid-code -> mmd 2021-11-10 18:04:40 -08:00
Bartek Ciszkowski
53a539e84b Remove reference to non-existant Markdown file
The two links, were linking to Live-Editor.md, which did not exist at time of this commit. Instead, have the link point to the live editor.
2021-11-10 21:13:32 -04:00
Matthieu MOREL
57671b2b78 enable prettier-plugin-jsdoc 2021-11-10 08:41:52 +01:00
Matthieu MOREL
4d103c14f7 enable eslint fix and eslint-plugin-jsdoc 2021-11-09 11:01:49 +01:00
Kah Goh
6f4fb48fad Add missing code listing in sequence diagram docs 2021-11-08 21:56:22 +08:00
Jean-Baptiste Cebe
92f036222e Update gantt.md 2021-11-08 10:52:13 +00:00
dependabot[bot]
c29c8bd33c Bump eslint from 8.1.0 to 8.2.0 (#2466)
Bumps [eslint](https://github.com/eslint/eslint) from 8.1.0 to 8.2.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.1.0...v8.2.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 08:33:40 +01:00
dependabot[bot]
ec834363b4 Bump webpack from 5.61.0 to 5.62.1 (#2465)
Bumps [webpack](https://github.com/webpack/webpack) from 5.61.0 to 5.62.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.61.0...v5.62.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-08 08:21:24 +01:00
Yash-Singh1
d69c3b8856 Revert loader change 2021-11-06 19:59:17 -07:00
Yash-Singh1
0fb25ee749 Merge github.com:mermaid-js/mermaid into jsdoc 2021-11-06 19:48:34 -07:00
Yash-Singh1
d2d8c9bc8e Add jsdoc and refactor a bit of code 2021-11-06 19:36:06 -07:00
Knut Sveidqvist
829642a2cb Revert "Merge branch 'develop'"
This reverts commit 69ecb02375.
2021-11-04 21:27:11 +01:00
Knut Sveidqvist
a2e6180143 Merge branch 'master' into develop 2021-11-04 21:24:26 +01:00
Knut Sveidqvist
69ecb02375 Merge branch 'develop'
Conflicts:
	dist/mermaid.core.js
	dist/mermaid.core.js.map
	dist/mermaid.esm.min.mjs
	dist/mermaid.js
	dist/mermaid.js.map
	dist/mermaid.min.js
	dist/mermaid.min.js.map
2021-11-04 21:23:29 +01:00
Yash-Singh1
2ae442accc Support for mermaid-example 2021-11-03 15:26:59 -07:00
Knut Sveidqvist
caeeca7722 Merge pull request #2448 from efim/develop
Add GNU Emacs to integrations documentation
2021-11-03 19:49:31 +01:00
Yash-Singh1
dac542682d More code fence syntax highlighting 2021-11-01 19:43:54 -07:00
Yash-Singh1
ab3e076c91 Use theme properly and another syntax highlight change 2021-11-01 19:33:01 -07:00
Yash-Singh1
d2b7a3ec28 Add syntax highlight to some erdiagrams 2021-11-01 18:02:49 -07:00
Yash-Singh1
c015d97957 Multiple pages through async before page load 2021-11-01 18:00:39 -07:00
dependabot[bot]
4ec12ba9d5 Bump @babel/preset-env from 7.15.8 to 7.16.0 (#2451)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.15.8 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-01 09:43:23 +01:00
dependabot[bot]
2d4f31dff5 Bump @babel/eslint-parser from 7.15.8 to 7.16.0 (#2454)
Bumps [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) from 7.15.8 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/eslint/babel-eslint-parser)

---
updated-dependencies:
- dependency-name: "@babel/eslint-parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-01 09:28:12 +01:00
dependabot[bot]
95a4f96da7 Bump @babel/core from 7.15.8 to 7.16.0 (#2453)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.15.8 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-01 09:27:42 +01:00
dependabot[bot]
4f3130908f Bump webpack from 5.60.0 to 5.61.0 (#2452)
Bumps [webpack](https://github.com/webpack/webpack) from 5.60.0 to 5.61.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.60.0...v5.61.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-01 09:18:11 +01:00
dependabot[bot]
b874322f2f Bump @babel/register from 7.15.3 to 7.16.0 (#2455)
Bumps [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register) from 7.15.3 to 7.16.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.16.0/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/register"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-01 09:15:33 +01:00
Yash-Singh1
fdfb5d8270 Use the mermaid theme 2021-10-31 15:14:11 -07:00
Yash-Singh1
1b7e690ec1 Use monaco-mermaid for syntax highlighting and many syntax highlighting improvements 2021-10-31 14:45:41 -07:00
efim
5cc7ba52bb Add GNU Emacs to integrations documentation 2021-10-30 20:48:06 +03:00
dependabot[bot]
66d4d9d5b8 Bump webpack-dev-server from 4.3.1 to 4.4.0 (#2446)
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.3.1 to 4.4.0.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.3.1...v4.4.0)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-28 22:17:29 +02:00
dependabot[bot]
8579442d77 Bump cypress from 8.6.0 to 8.7.0 (#2445)
Bumps [cypress](https://github.com/cypress-io/cypress) from 8.6.0 to 8.7.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v8.6.0...v8.7.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-28 22:07:09 +02:00
Knut Sveidqvist
d23ff27e1a Merge pull request #2431 from alwinw/bug/2430_doc_typos
Corrected typos in documentation
2021-10-28 17:20:41 +02:00
Knut Sveidqvist
932fabbd42 Merge pull request #2440 from mermaid-js/chore/dependabot
chore(*) : define date and hour for dependencies updates
2021-10-28 17:20:18 +02:00
Matthieu MOREL
4d6792141d chore(*) : define date and hour for dependencies updates 2021-10-26 07:34:23 +02:00
dependabot[bot]
8930a80fdd Bump husky from 7.0.2 to 7.0.4 (#2439)
Bumps [husky](https://github.com/typicode/husky) from 7.0.2 to 7.0.4.
- [Release notes](https://github.com/typicode/husky/releases)
- [Commits](https://github.com/typicode/husky/compare/v7.0.2...v7.0.4)

---
updated-dependencies:
- dependency-name: husky
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-25 23:20:20 +02:00
dependabot[bot]
b46db461a2 Bump eslint from 8.0.1 to 8.1.0 (#2438)
Bumps [eslint](https://github.com/eslint/eslint) from 8.0.1 to 8.1.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.0.1...v8.1.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-25 23:07:09 +02:00
dependabot[bot]
0be2084b18 Bump babel-jest from 27.3.0 to 27.3.1 (#2437)
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 27.3.0 to 27.3.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v27.3.1/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-25 22:52:12 +02:00
dependabot[bot]
5f43f44db0 Bump jest from 27.3.0 to 27.3.1 (#2436)
Bumps [jest](https://github.com/facebook/jest) from 27.3.0 to 27.3.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.3.0...v27.3.1)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-25 22:41:08 +02:00
dependabot[bot]
3c996ee4a0 Bump @percy/cli from 1.0.0-beta.69 to 1.0.0-beta.70 (#2435)
Bumps [@percy/cli](https://github.com/percy/cli/tree/HEAD/packages/cli) from 1.0.0-beta.69 to 1.0.0-beta.70.
- [Release notes](https://github.com/percy/cli/releases)
- [Commits](https://github.com/percy/cli/commits/v1.0.0-beta.70/packages/cli)

---
updated-dependencies:
- dependency-name: "@percy/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-25 22:39:08 +02:00
dependabot[bot]
fa184320e9 Bump babel-loader from 8.2.2 to 8.2.3 (#2434)
Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.2.2 to 8.2.3.
- [Release notes](https://github.com/babel/babel-loader/releases)
- [Changelog](https://github.com/babel/babel-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel-loader/compare/v8.2.2...v8.2.3)

---
updated-dependencies:
- dependency-name: babel-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-25 22:38:43 +02:00
dependabot[bot]
780b3eb95a Bump webpack from 5.58.2 to 5.60.0 (#2433)
Bumps [webpack](https://github.com/webpack/webpack) from 5.58.2 to 5.60.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.58.2...v5.60.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-25 22:38:05 +02:00
AlwinW
8b35745928 Corrected typos in documentation 2021-10-23 22:57:24 +11:00
Knut Sveidqvist
f8c01acd18 Merge pull request #2427 from mermaid-js/2425_Unicode_handling_for_html_labels
#2425 Unicode handling for HTML labels
2021-10-21 19:58:19 +02:00
Ashish Jain
250c9beff9 #2425 Added new test case 2021-10-21 19:45:15 +02:00
Ashish Jain
24d18eb42a #2425 Unicode handling for HTML labels 2021-10-21 19:37:48 +02:00
Ashish Jain
d144128bf0 Merge pull request #2419 from Zer0n0mask/patch-1
Update gantt.md with milestones info
2021-10-21 18:06:19 +02:00
Ashish Jain
2a87ec2dc2 Merge pull request #2420 from Zer0n0mask/patch-2
Update entityRelationshipDiagram.md
2021-10-21 18:05:50 +02:00
Ashish Jain
d6a4047a52 Merge pull request #2423 from qdechochen/develop
feat: added includes; added excludes date background
2021-10-21 18:05:09 +02:00
Echo Chen
d63b26efc2 feat: added includes; added excludes date background 2021-10-20 18:39:35 +08:00
Tshepang Lekhonkhobe
1ba990be6e Fix typo in n00b-overview (#2418) 2021-10-19 07:06:07 +02:00
dependabot[bot]
7b5e6e95c8 Bump eslint from 8.0.0 to 8.0.1 (#2415)
Bumps [eslint](https://github.com/eslint/eslint) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.0.0...v8.0.1)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-19 07:02:40 +02:00
dependabot[bot]
3a77f91ba4 Bump jest from 27.2.5 to 27.3.0 (#2421)
Bumps [jest](https://github.com/facebook/jest) from 27.2.5 to 27.3.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.2.5...v27.3.0)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-19 07:01:52 +02:00
dependabot[bot]
84338524c5 Bump webpack-cli from 4.9.0 to 4.9.1 (#2417)
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.9.0...webpack-cli@4.9.1)

---
updated-dependencies:
- dependency-name: webpack-cli
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-19 06:35:26 +02:00
dependabot[bot]
e5966f97b3 Bump @percy/cli from 1.0.0-beta.68 to 1.0.0-beta.69 (#2416)
Bumps [@percy/cli](https://github.com/percy/cli/tree/HEAD/packages/cli) from 1.0.0-beta.68 to 1.0.0-beta.69.
- [Release notes](https://github.com/percy/cli/releases)
- [Commits](https://github.com/percy/cli/commits/v1.0.0-beta.69/packages/cli)

---
updated-dependencies:
- dependency-name: "@percy/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-19 06:33:58 +02:00
dependabot[bot]
4a0b074967 Bump babel-jest from 27.2.5 to 27.3.0 (#2414)
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 27.2.5 to 27.3.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v27.3.0/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-19 06:30:59 +02:00
dependabot[bot]
4d2d99f227 Bump webpack from 5.58.1 to 5.58.2 (#2413)
Bumps [webpack](https://github.com/webpack/webpack) from 5.58.1 to 5.58.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.58.1...v5.58.2)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-19 06:30:00 +02:00
Zer0n0mask
23d23251c7 Update entityRelationshipDiagram.md
Just a piece of code that was there but didn't appear as code but just as the resulting graph.
2021-10-18 21:39:05 -03:00
Zer0n0mask
4d477d7e96 Update gantt.md with milestones info
Included a brief explanation about the use of milestones regarding their time location and the code location of the tag with an example.
2021-10-18 21:05:52 -03:00
Knut Sveidqvist
bf378b76f4 Merge branch 'release/8.13.3' 2021-10-14 21:20:57 +02:00
Knut Sveidqvist
0d7d5ddc5f Release 8.13.3 2021-10-14 21:19:28 +02:00
Knut Sveidqvist
ebe8b8d89f Allowing & and = in links 2021-10-14 21:08:42 +02:00
Ashish Jain
4a50995906 Sequence Diagram: Removed eval from popup handling 2021-10-14 21:02:18 +02:00
Ashish Jain
bb3597614a Merge pull request #2387 from lexmin0412/docs/remove-duplicate-content
docs: remove duplicate content
2021-10-14 18:33:15 +02:00
Tshepang Lekhonkhobe
4620a7eeba adding missing word (#2409) 2021-10-14 11:53:35 +02:00
dependabot[bot]
96236187b5 Bump @babel/preset-env from 7.15.6 to 7.15.8 (#2406)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.15.6 to 7.15.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.8/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-12 06:47:15 +02:00
dependabot[bot]
d325f4b496 Bump eslint from 7.32.0 to 8.0.0 (#2405)
Bumps [eslint](https://github.com/eslint/eslint) from 7.32.0 to 8.0.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.32.0...v8.0.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-12 06:46:48 +02:00
dependabot[bot]
236fd6b231 Bump jest from 27.2.4 to 27.2.5 (#2404)
Bumps [jest](https://github.com/facebook/jest) from 27.2.4 to 27.2.5.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.2.4...v27.2.5)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 22:35:27 +02:00
dependabot[bot]
9b32e0b222 Bump webpack from 5.58.0 to 5.58.1 (#2399)
Bumps [webpack](https://github.com/webpack/webpack) from 5.58.0 to 5.58.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.58.0...v5.58.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 22:32:21 +02:00
dependabot[bot]
2c1e8a2a73 Bump babel-jest from 27.2.4 to 27.2.5 (#2403)
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 27.2.4 to 27.2.5.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v27.2.5/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 22:23:51 +02:00
dependabot[bot]
aa0e84c3c3 Bump @babel/core from 7.15.5 to 7.15.8 (#2402)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.15.5 to 7.15.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.8/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 22:23:37 +02:00
dependabot[bot]
7d876ea9f2 Bump andymckay/labeler from 1.0.3 to 1.0.4 (#2401)
Bumps [andymckay/labeler](https://github.com/andymckay/labeler) from 1.0.3 to 1.0.4.
- [Release notes](https://github.com/andymckay/labeler/releases)
- [Commits](https://github.com/andymckay/labeler/compare/1.0.3...1.0.4)

---
updated-dependencies:
- dependency-name: andymckay/labeler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 22:16:29 +02:00
dependabot[bot]
ea4a49d50e Bump webpack-cli from 4.8.0 to 4.9.0 (#2397)
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.8.0 to 4.9.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.8.0...webpack-cli@4.9.0)

---
updated-dependencies:
- dependency-name: webpack-cli
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 22:11:49 +02:00
dependabot[bot]
eb5b6966e5 Bump cypress from 8.5.0 to 8.6.0 (#2400)
Bumps [cypress](https://github.com/cypress-io/cypress) from 8.5.0 to 8.6.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v8.5.0...v8.6.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 22:11:34 +02:00
dependabot[bot]
00e716e064 Bump concurrently from 6.2.2 to 6.3.0 (#2398)
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 6.2.2 to 6.3.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v6.2.2...v6.3.0)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 22:11:19 +02:00
dependabot[bot]
cd885e952c Bump @babel/eslint-parser from 7.15.7 to 7.15.8 (#2396)
Bumps [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) from 7.15.7 to 7.15.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.8/eslint/babel-eslint-parser)

---
updated-dependencies:
- dependency-name: "@babel/eslint-parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 22:10:28 +02:00
Michael Maier
e2cd2a72aa add example of data flow diagram
See https://github.com/mermaid-js/mermaid/issues/1893
2021-10-09 16:22:17 +02:00
Michael Maier
cd427ab8ba add shape datastore (for nodes of data flow diagram)
See https://github.com/mermaid-js/mermaid/issues/1893
2021-10-09 16:21:57 +02:00
Michael Maier
cefafba062 add brackets [| and |] for datastore nodes of data flow diagrams
See https://github.com/mermaid-js/mermaid/issues/1893
2021-10-09 16:19:42 +02:00
张乐
ddcaf1850f docs: remove duplicate content 2021-10-08 10:46:01 +08:00
Ashish Jain
18ecf479b1 Sequence Diagram Popup : Work _in_progress 2021-10-07 21:52:16 +02:00
Ashish Jain
a06f6f9604 Add sanitize to properties and link in Sequence Diagram 2021-10-07 21:48:44 +02:00
Ashish Jain
35de6d4cbc Merge pull request #2386 from mermaid-js/dependabot/npm_and_yarn/develop/webpack-5.58.0
Bump webpack from 5.55.1 to 5.58.0
2021-10-07 19:48:07 +02:00
Ashish Jain
2bcd66e714 Merge pull request #2380 from mermaid-js/dependabot/npm_and_yarn/develop/webpack-dev-server-4.3.1
Bump webpack-dev-server from 4.3.0 to 4.3.1
2021-10-07 19:47:32 +02:00
dependabot[bot]
4c7ac3fdb6 Bump webpack from 5.55.1 to 5.58.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.55.1 to 5.58.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.55.1...v5.58.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-07 17:35:51 +00:00
Ashish Jain
cf3ded482f Merge pull request #2376 from Yash-Singh1/patch-1
Document two-way relations and fix relationship docs for class diagrams
2021-10-07 19:30:11 +02:00
Ashish Jain
dcca4896f0 Merge pull request #2375 from OlegAxenow/bug/2374_console_in_sanitizeText
Comment console.log in sanitizeText
2021-10-07 19:28:10 +02:00
Ashish Jain
d267f84030 Merge pull request #2372 from sidharthv96/fix/2371
Add esm build. Fixes #2371
2021-10-07 19:27:06 +02:00
Ashish Jain
b2f93b49ba Merge pull request #2373 from lexmin0412/docs/chinese-readme
docs: add Chinese README
2021-10-07 19:24:56 +02:00
Ashish Jain
1c00608b27 Merge pull request #2369 from mmorel-35/jison
group jison loader and transformer
2021-10-07 19:10:11 +02:00
dependabot[bot]
e3c1354ce0 Bump webpack-dev-server from 4.3.0 to 4.3.1
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.3.0...v4.3.1)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 20:03:27 +00:00
Yash Singh
93a1961762 Add another relation type 2021-10-03 15:11:57 -07:00
Yash Singh
c04fdd250c Document two-way relations and fix relationship docs for class diagrams 2021-10-03 15:10:15 -07:00
Oleg Aksenov
626fbe6de8 Update src/diagrams/common/common.js
Co-authored-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>
2021-10-03 18:56:37 +03:00
Oleg Aksenov
b22422f4b8 Comment console.log in sanitizeText
This is to avoid console window be flooded with 'security level' messages
2021-10-03 18:08:53 +03:00
lexmin0412
b0b85e12a6 docs: add Chinese README 2021-10-03 00:02:40 +08:00
Sidharth Vinod
b500a312b6 Add export map, use mjs extension 2021-10-01 19:19:32 +05:30
Sidharth Vinod
cac354caa9 fix: Unify build configs 2021-10-01 02:26:42 +05:30
Sidharth Vinod
1c8c635e48 Add esm build. Fixes #2371 2021-10-01 01:49:17 +05:30
Matthieu MOREL
9c48703fb1 group jison loader and transformer 2021-09-30 00:07:57 +02:00
dependabot[bot]
d040883286 Bump eslint-plugin-prettier from 3.4.1 to 4.0.0 (#2368)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.4.1 to 4.0.0.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/commits/v4.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-29 22:17:55 +02:00
dependabot[bot]
b2c059d56b Bump dompurify from 2.3.1 to 2.3.3 (#2367)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.1 to 2.3.3.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.1...2.3.3)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-29 22:16:37 +02:00
dependabot[bot]
15b9a25aa4 Bump webpack from 5.53.0 to 5.55.1 (#2366)
Bumps [webpack](https://github.com/webpack/webpack) from 5.53.0 to 5.55.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.53.0...v5.55.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-29 22:05:03 +02:00
dependabot[bot]
e01855ca9c Bump babel-jest from 27.2.1 to 27.2.4 (#2362)
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 27.2.1 to 27.2.4.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v27.2.4/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-29 21:45:42 +02:00
dependabot[bot]
618ee6d95f Bump cypress from 8.1.0 to 8.5.0 (#2365)
Bumps [cypress](https://github.com/cypress-io/cypress) from 8.1.0 to 8.5.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v8.1.0...v8.5.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-29 21:43:23 +02:00
dependabot[bot]
8f82d86e7c Bump jest from 27.2.1 to 27.2.4 (#2363)
Bumps [jest](https://github.com/facebook/jest) from 27.2.1 to 27.2.4.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.2.1...v27.2.4)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-29 21:33:21 +02:00
dependabot[bot]
b3525deeab Bump js-base64 from 3.7.1 to 3.7.2 (#2349)
Bumps [js-base64](https://github.com/dankogai/js-base64) from 3.7.1 to 3.7.2.
- [Release notes](https://github.com/dankogai/js-base64/releases)
- [Commits](https://github.com/dankogai/js-base64/compare/3.7.1...3.7.2)

---
updated-dependencies:
- dependency-name: js-base64
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-29 21:19:45 +02:00
dependabot[bot]
7d81fd3c3c Bump terser-webpack-plugin from 4.2.3 to 5.2.4 (#2364)
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 4.2.3 to 5.2.4.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v4.2.3...v5.2.4)

---
updated-dependencies:
- dependency-name: terser-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-29 21:14:15 +02:00
Knut Sveidqvist
d48af035d8 Merge pull request #2351 from mermaid-js/dependabot/npm_and_yarn/develop/webpack-dev-server-4.3.0
Bump webpack-dev-server from 4.2.1 to 4.3.0
2021-09-29 20:43:48 +02:00
dependabot[bot]
ebba764c85 Bump webpack-dev-server from 4.2.1 to 4.3.0
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.2.1 to 4.3.0.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.2.1...v4.3.0)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-29 18:43:28 +00:00
Knut Sveidqvist
a5c4d0783d Updated lockfile 2021-09-29 20:38:58 +02:00
Knut Sveidqvist
3772afb40c Merge pull request #2324 from mermaid-js/dependabot/npm_and_yarn/develop/webpack-5.53.0
Bump webpack from 4.46.0 to 5.53.0
2021-09-29 20:34:37 +02:00
Ashish Jain
19343e890e Freshly built dist files 2021-09-29 20:30:47 +02:00
Ashish Jain
5661b43168 Merge branch 'release/8.13.2' into develop 2021-09-29 20:28:38 +02:00
Ashish Jain
aa666d1829 Merge branch 'release/8.13.2' into develop 2021-09-29 20:22:57 +02:00
Knut Sveidqvist
2758d64778 Release 8.13.2 2021-09-29 20:22:45 +02:00
Ashish Jain
5d5808880f Merge branch 'release/8.13.1' into develop 2021-09-29 20:22:09 +02:00
Knut Sveidqvist
8ee3155f2a Fix for broken test 2021-09-29 20:20:44 +02:00
Ashish Jain
62cc720607 Merge pull request #2353 from anugs/patch-1
Update n00b-syntaxReference.md
2021-09-29 20:14:53 +02:00
Ashish Jain
900d7e0974 Merge pull request #2354 from mermaid-js/sidharthv96-patch-1
Update n00b-gettingStarted.md
2021-09-29 20:14:15 +02:00
Ashish Jain
7102c1205e Merge pull request #2355 from Yash-Singh1/patch-1
Fix confusing docs
2021-09-29 20:13:18 +02:00
Ashish Jain
ec05e2333a Merge pull request #2356 from mermaid-js/chore/cleanup
cleanup : remove unused files
2021-09-29 20:12:24 +02:00
Ashish Jain
8540a2757e Merge pull request #2357 from gerardnico/patch-1
Doc change: Added a full integration with mermaid for Dokuwiki
2021-09-29 20:11:23 +02:00
Ashish Jain
ce1a8d8f6a Merge pull request #2358 from lexmin0412/docs/fix-tutorials-doc
fix getting spelling errors
2021-09-29 20:10:40 +02:00
Ashish Jain
637ae09192 Merge pull request #2359 from anugs/patch-3
Update README.md
2021-09-29 20:09:57 +02:00
Ashish Jain
4f59e2d28b Merge pull request #2360 from anugs/patch-4
Update n00b-gettingStarted.md
2021-09-29 20:08:49 +02:00
Ashish Jain
cb2294d6f2 Merge branch '2292_Class_Diagram_curly_brace_space_issue' into release/8.13.2 2021-09-29 20:06:32 +02:00
Knut Sveidqvist
95e6efc218 Merge branch 'release/8.13.1' 2021-09-29 20:05:52 +02:00
Knut Sveidqvist
029042393c Release 8.13.1 2021-09-29 20:05:05 +02:00
Knut Sveidqvist
7ad509cc7a Correct handling of the note object foir state diagrams when sanitizing it 2021-09-29 19:48:27 +02:00
anugs
f6cd4547ab Update n00b-gettingStarted.md 2021-09-29 22:18:46 +05:30
Knut Sveidqvist
dd088bc603 test commit 2021-09-29 18:48:09 +02:00
Knut Sveidqvist
c5d091d445 Handling of svg labels for state diagrams 2021-09-29 18:29:39 +02:00
Ashish Jain
38ef061175 Reverting PR #2312 2021-09-29 18:22:35 +02:00
anugs
715d0aced3 Update README.md 2021-09-29 21:18:45 +05:30
Ashish Jain
55eebd9309 2292 Fix for broken class diagram on space after the '{' curly brace 2021-09-29 17:13:14 +02:00
lexmin0412
cce8821a83 fix getting spelling errors 2021-09-29 19:02:34 +08:00
Knut Sveidqvist
d45765dab5 Lint fixes + fix for unit tests 2021-09-29 09:35:14 +02:00
Nickeau
54a4aafd06 Added a full integration with mermaid for Dokuwiki 2021-09-29 09:21:06 +02:00
Knut Sveidqvist
e4e8a00acc Test fix + empty relation 2021-09-29 08:57:54 +02:00
Knut Sveidqvist
db8517a7f9 Adding xss tests 2021-09-29 08:52:12 +02:00
Knut Sveidqvist
35d8f33542 Merge branch 'master'
Conflicts:
	cypress/platform/xss7.html
2021-09-29 08:51:54 +02:00
Knut Sveidqvist
75b79e1b23 State diagram sanitization 2021-09-29 08:45:07 +02:00
Matthieu MOREL
66df007ea8 Delete .travis.yml 2021-09-29 07:43:25 +02:00
Matthieu MOREL
9da885b2f8 Delete .percy.old.yml 2021-09-29 07:43:04 +02:00
Matthieu MOREL
efa063d8d0 Delete dist_dev directory 2021-09-29 07:42:51 +02:00
Yash Singh
fcd4cc17d3 Fix confusing docs 2021-09-28 17:06:48 -07:00
Sidharth Vinod
550cf9b102 Update n00b-gettingStarted.md
Fix Spacing Bug
Update live editor links
2021-09-28 14:56:13 +05:30
anugs
69639bb61c Update n00b-syntaxReference.md 2021-09-28 12:01:20 +05:30
Knut Sveidqvist
4839e6a8b3 merge 2021-09-23 19:42:51 +02:00
Knut Sveidqvist
477c4f1c88 Merge pull request #2340 from lgasp/patch-1
Add a milestone to docs
2021-09-23 19:33:57 +02:00
Knut Sveidqvist
b62d0d974f Merge pull request #2312 from cm-wada-yusuke/bug/2160-fixed-height-useMaxWith
configureSvgSize should make height 100% when useMaxWidth is true.
2021-09-23 19:32:43 +02:00
Ashish Jain
5a433d9bf8 Fix for broken diagram in index.html 2021-09-23 19:29:24 +02:00
Knut Sveidqvist
f91920ab90 Link to new version of mermaid 2021-09-23 19:01:53 +02:00
Knut Sveidqvist
83d3b31a1a Merge branch 'release/8.13.0' 2021-09-23 18:59:51 +02:00
Knut Sveidqvist
97268b9876 Switched banner 2021-09-23 18:53:59 +02:00
Knut Sveidqvist
b2fb9f421a Merge branch 'master' of github.com:mermaid-js/mermaid 2021-09-23 18:52:57 +02:00
Knut Sveidqvist
6b0105cc3b Switch banner in README file 2021-09-23 18:52:08 +02:00
Knut Sveidqvist
0b2d0ce34f Merge branch 'release/8.13.0' into develop 2021-09-23 18:43:37 +02:00
Knut Sveidqvist
5c4ee44787 Switching book banner 2021-09-23 18:41:49 +02:00
Ashish Jain
165a10ac37 Fix for broken classDiagram-v2.spec.js test case 2021-09-23 18:36:45 +02:00
Knut Sveidqvist
b8f68325ef Version 8.13.0 2021-09-23 18:27:25 +02:00
lgasp
2f2eb67b5f Add a milestone to docs
Added:
* milestone example
* milestone section with short explanation
2021-09-21 13:29:59 +02:00
dependabot[bot]
5b1f574167 Bump webpack from 4.46.0 to 5.53.0
Bumps [webpack](https://github.com/webpack/webpack) from 4.46.0 to 5.53.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.46.0...v5.53.0)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-21 10:25:25 +02:00
dependabot[bot]
a990718b71 Bump dompurify from 2.3.1 to 2.3.3 (#2336)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.1 to 2.3.3.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.1...2.3.3)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 09:32:00 +02:00
dependabot[bot]
8670fe9a4f Bump eslint-plugin-prettier from 3.4.0 to 4.0.0 (#2339)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.4.0 to 4.0.0.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/commits/v4.0.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 07:58:55 +02:00
dependabot[bot]
2a22c3396a Bump @babel/eslint-parser from 7.15.0 to 7.15.7 (#2338)
Bumps [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) from 7.15.0 to 7.15.7.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.7/eslint/babel-eslint-parser)

---
updated-dependencies:
- dependency-name: "@babel/eslint-parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 07:58:26 +02:00
dependabot[bot]
20b139bf7f Bump babel-jest from 27.0.6 to 27.2.1 (#2337)
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 27.0.6 to 27.2.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v27.2.1/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 00:51:22 +02:00
dependabot[bot]
a838e52fea Bump start-server-and-test from 1.13.1 to 1.14.0 (#2335)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.13.1 to 1.14.0.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.13.1...v1.14.0)

---
updated-dependencies:
- dependency-name: start-server-and-test
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 00:35:26 +02:00
dependabot[bot]
918cea5291 Bump @percy/cli from 1.0.0-beta.65 to 1.0.0-beta.68 (#2334)
Bumps [@percy/cli](https://github.com/percy/cli/tree/HEAD/packages/cli) from 1.0.0-beta.65 to 1.0.0-beta.68.
- [Release notes](https://github.com/percy/cli/releases)
- [Commits](https://github.com/percy/cli/commits/v1.0.0-beta.68/packages/cli)

---
updated-dependencies:
- dependency-name: "@percy/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 00:29:16 +02:00
dependabot[bot]
b7ecf3b9dd Bump js-base64 from 3.6.1 to 3.7.1 (#2333)
Bumps [js-base64](https://github.com/dankogai/js-base64) from 3.6.1 to 3.7.1.
- [Release notes](https://github.com/dankogai/js-base64/releases)
- [Commits](https://github.com/dankogai/js-base64/compare/3.6.1...3.7.1)

---
updated-dependencies:
- dependency-name: js-base64
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 00:24:31 +02:00
dependabot[bot]
b90a5e2b0b Bump @babel/preset-env from 7.15.0 to 7.15.6 (#2332)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.15.0 to 7.15.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.6/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 00:12:06 +02:00
dependabot[bot]
1deef137a9 Bump husky from 7.0.1 to 7.0.2 (#2331)
Bumps [husky](https://github.com/typicode/husky) from 7.0.1 to 7.0.2.
- [Release notes](https://github.com/typicode/husky/releases)
- [Commits](https://github.com/typicode/husky/compare/v7.0.1...v7.0.2)

---
updated-dependencies:
- dependency-name: husky
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 00:03:47 +02:00
dependabot[bot]
8baf553a49 Bump prettier from 2.3.2 to 2.4.1 (#2330)
Bumps [prettier](https://github.com/prettier/prettier) from 2.3.2 to 2.4.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.3.2...2.4.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-21 00:00:14 +02:00
dependabot[bot]
d3afc8a245 Bump tmpl from 1.0.4 to 1.0.5 (#2327)
Bumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/daaku/nodejs-tmpl/releases)
- [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5)

---
updated-dependencies:
- dependency-name: tmpl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-20 23:53:01 +02:00
dependabot[bot]
cc4476031a Bump axios from 0.21.1 to 0.21.4 (#2328)
Bumps [axios](https://github.com/axios/axios) from 0.21.1 to 0.21.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.1...v0.21.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-20 23:50:26 +02:00
dependabot[bot]
3a2c8456d7 Bump tar from 6.1.0 to 6.1.11 (#2326)
Bumps [tar](https://github.com/npm/node-tar) from 6.1.0 to 6.1.11.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v6.1.0...v6.1.11)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-20 23:47:47 +02:00
dependabot[bot]
9cb1a566c1 Bump cypress from 8.1.0 to 8.4.1 (#2325)
Bumps [cypress](https://github.com/cypress-io/cypress) from 8.1.0 to 8.4.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v8.1.0...v8.4.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-20 23:46:14 +02:00
dependabot[bot]
d2707bbb6a Bump jest from 27.0.6 to 27.2.1 (#2329)
Bumps [jest](https://github.com/facebook/jest) from 27.0.6 to 27.2.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/compare/v27.0.6...v27.2.1)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-20 23:43:14 +02:00
dependabot[bot]
88f30a26b2 Bump @babel/core from 7.14.8 to 7.15.5 (#2295)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.14.8 to 7.15.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.15.5/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-20 23:20:44 +02:00
dependabot[bot]
61d16b682b Bump webpack-dev-server from 3.11.2 to 4.2.1 (#2323)
* Bump webpack-dev-server from 3.11.2 to 4.2.1

Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.11.2 to 4.2.1.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.11.2...v4.2.1)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>
2021-09-20 23:19:22 +02:00
Knut Sveidqvist
1c3f94c9ec Merge pull request #2276 from eajenkins/feature/2249_sequence_diagram_popup_menus
Initial implementation for Issue#2249.
2021-09-18 13:28:29 +02:00
Knut Sveidqvist
004e7e376d Merge branch 'develop' into feature/2249_sequence_diagram_popup_menus 2021-09-18 10:19:07 +02:00
Knut Sveidqvist
549011edf4 Merge pull request #2318 from mermaid-js/2315_adding_actor_shape
2315 adding actor shape
2021-09-18 10:15:10 +02:00
Knut Sveidqvist
432267c811 #2315 Fix for broken tests 2021-09-18 10:05:53 +02:00
Knut Sveidqvist
0fcabfae05 #2315 Fixing issue with padding between actors and content in sequence diagram 2021-09-18 08:26:49 +02:00
Knut Sveidqvist
9faa5acb21 #2315 Adding docs and integration tests 2021-09-18 08:03:34 +02:00
Knut Sveidqvist
9c511559ff #2315 Adding to docs and an integration test 2021-09-18 07:51:15 +02:00
Neil Cuzon
f9a4c8eb0e Update usage.md 2021-09-17 19:12:25 -07:00
Neil Cuzon
5f27987ca2 Update usage.md 2021-09-17 19:00:51 -07:00
Neil Cuzon
866ee997d9 Update usage.md 2021-09-17 18:49:47 -07:00
Neil Cuzon
c82b1cee8e Update usage.md 2021-09-17 18:39:44 -07:00
Knut Sveidqvist
6ce1c80a47 #2315 Adding the possibility to add actor figures as participants 2021-09-16 20:43:10 +02:00
Yusuke Wada
0839fadbc2 fix e2e 2021-09-15 12:47:24 +09:00
eajenkins
96977e70b3 Cleaned up remaining prettier errors. 2021-09-14 14:26:43 -07:00
Yusuke Wada
a448af2897 add spec 2021-09-14 18:41:51 +09:00
Yusuke Wada
20aaf644fa useMaxWidth should make height 100% too. 2021-09-14 18:28:15 +09:00
Neil Cuzon
0d91eee5e0 Merge pull request #2282 from new-pac/develop
Emoji front
2021-09-13 20:13:05 -07:00
Knut Sveidqvist
e01ad572a5 Merge pull request #2269 from Xstoudi/feature/field-classifier
Feature: field static classifier
2021-09-13 21:45:55 +02:00
Knut Sveidqvist
8bd830c991 Merge branch 'develop' into feature/field-classifier 2021-09-13 21:45:47 +02:00
eajenkins
85d33ecccd Added support for a new link syntax per recommendation:
link <actor>: <label> @ <link-url>

Removed documentation for class/icon definitions until we can finalize the design for this.

Fixed prettier errors.
2021-09-10 16:27:07 -07:00
Knut Sveidqvist
b6ba4b2fd8 Merge pull request #2237 from RonaldZielaznicki/2070_more_columns_for_entity_relationship_diagrams
2070: Update ER Diagram to have keys and comments.
2021-09-09 17:50:38 +02:00
Knut Sveidqvist
37c6837dc1 Merge pull request #2274 from Yash-Singh1/imageOptimize
Optimize Images
2021-09-09 17:24:19 +02:00
Knut Sveidqvist
08f2f9aef0 Merge pull request #2275 from Yash-Singh1/interpolationDocs
Document curve interpolation
2021-09-09 17:10:48 +02:00
Knut Sveidqvist
09461fd3df Merge pull request #2304 from Swaagie/patch-1
Fix live editor link
2021-09-09 17:08:19 +02:00
Knut Sveidqvist
b8996ce50b Merge pull request #2300 from mmorel-35/patch-1
chore(ci): fix andymckay/labeler configuration
2021-09-09 17:07:10 +02:00
Knut Sveidqvist
857f6ecc81 Merge pull request #2299 from mmorel-35/bug/2297_pr_labeler
chore(ci) : fix pr-labeler failure
2021-09-09 17:06:45 +02:00
Martijn Swaagman
f5963b8ea5 Fix live editor link 2021-09-09 12:17:20 +02:00
Matthieu MOREL
904849e156 chore(ci): fix andymckay/labeler configuration 2021-09-07 09:41:58 +02:00
Matthieu MOREL
b9513c80eb chore(ci) : fix pr-labeler failure
Signed-off-by: Matthieu MOREL <mmorel-35@users.noreply.github.com>
2021-09-07 09:34:25 +02:00
eajenkins
b3210ed2ef Added sanitization of the links to prevent script injection attacks. 2021-09-02 11:59:43 -07:00
Zuorong Zhang
6dbed7964b Emoji front
Make it look neater
2021-08-31 09:37:28 +08:00
E Jenkins
ce6d8576ae Merge branch 'develop' into feature/2249_sequence_diagram_popup_menus 2021-08-27 15:02:11 -07:00
eajenkins
291bec7e90 Initial implementation for Issue#2249.
Includes changes to sequence diagram code to enable popup menus and individualized styling of actors
Includes unit and e2e tests.
Includes updates to the md file for sequencediagrams.
2021-08-27 10:56:56 -07:00
Xavier Stouder
5997227997 chore: add the static field to the new renderer 2021-08-27 09:14:20 +02:00
Yash-Singh1
c73b04111e Document curve interpolation 2021-08-26 17:45:08 -07:00
Yash-Singh1
05637b1eff Optimize Images 2021-08-26 17:28:11 -07:00
Ashish Jain
48b6a32fe1 UPdated Mermaid version to 8.12.0 2021-08-26 19:43:57 +02:00
Ashish Jain
579e79575b Merge branch 'release/8.12.0' 2021-08-26 19:42:17 +02:00
Ashish Jain
296a64f465 Updated the version id 2021-08-26 19:32:05 +02:00
Ashish Jain
3ad190855b Merge pull request #2273 from mermaid-js/2272_switching_flopwchart_renderer_in_docs
#2272 Switching the renderer in the docs
2021-08-26 18:58:48 +02:00
Knut Sveidqvist
206a35ebd9 #2272 Switching the renderer in the docs 2021-08-26 18:55:47 +02:00
Ashish Jain
8acab4bba6 Merge pull request #2225 from danielsitnik/develop
add Codedoc plugin
2021-08-26 18:43:08 +02:00
Ashish Jain
abd3b18727 Merge pull request #2260 from 72636c/bug/percy_migrate_dev_dependency
Move `@percy/migrate` to devDependencies
2021-08-26 18:40:53 +02:00
Ashish Jain
f07a777194 Merge pull request #2271 from mermaid-js/2270_direction_class
2270 Adding support for direction statements in class diagrams.
2021-08-26 18:30:12 +02:00
Ashish Jain
cd60a30aeb Merge pull request #2241 from Yash-Singh1/patch-1
Add nano to integrations
2021-08-26 18:24:14 +02:00
Ashish Jain
2e02f843ad Merge pull request #2246 from reetghosh1/bug/1794_Unequal_Arrowhead_bug
Fixed Unequal Arrow Bug
2021-08-26 18:22:47 +02:00
Ashish Jain
fddc408cd9 Merge pull request #2254 from mmorel-35/patch-1
use right tag for andymckay/labeler
2021-08-26 18:20:28 +02:00
Ashish Jain
d4f0c0808a Merge pull request #2259 from Clint-Chester/develop
Markdown Diagrams Extension for Chrome Webstore
2021-08-26 18:19:40 +02:00
Ashish Jain
dbdee1f7f8 Merge pull request #2266 from jmelfi/docs/2257_Requirements_Diagram_Table_Correction
Fix to table in documentation
2021-08-26 18:10:47 +02:00
Ashish Jain
bae74bcc95 Merge pull request #2257 from mermaid-js/2256_class_switch_to_ng_renderer
Switch default renderer for class diagrams to the next generation renderer
2021-08-26 18:08:48 +02:00
Knut Sveidqvist
bc31125bc6 Updating the docs with direction statements 2021-08-26 17:27:34 +02:00
Ashish Jain
d32fb0e4c0 Fix for classDiagram-v2 support for cardinality label positioning 2021-08-26 17:18:05 +02:00
Knut Sveidqvist
0658a363cb #2270 Add support for direction statements for classDiagrams 2021-08-26 17:05:10 +02:00
Xavier Stouder
186fb03048 doc: add static field notice 2021-08-26 11:42:11 +02:00
Xavier Stouder
8db827e429 chore: fix regexp 2021-08-26 11:37:14 +02:00
Xavier Stouder
46a7039ae9 test: e2e test 2021-08-26 11:36:21 +02:00
Xavier Stouder
8a8f792d4b fix: abstract field doesnt make any sense 2021-08-26 11:00:39 +02:00
Xavier Stouder
c0c978bbdf feat: add the possibility to use classifiers on fields of class diagrams
fix #1953
2021-08-26 10:53:03 +02:00
Joseph Melfi
ff75349d95 Fix to table in documentation
Markdown broken in table at line 65. Added in necessary additions to correct documentation to make readable and easier to follow properly in the future.
2021-08-25 00:24:52 -07:00
Ryan Ling
e88c710fd3 Move @percy/migrate to devDependencies
Percy is used for internal visual testing; consumers shouldn't need to
install it. This should resolve a transitive vulnerability picked up by
security scanners on an outdated version of Lodash:

@percy/migrate@0.11.0 › @oclif/plugin-help@3.2.3 › lodash.template@4.5.0

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-23337
2021-08-21 13:04:50 +10:00
Ashish Jain
0fba1c06b4 Updated test cases for class diagram v2 2021-08-20 17:28:57 +02:00
Ashish Jain
69a9829041 Updated test cases for class diagram v2 2021-08-20 17:12:46 +02:00
Clint Chester
d68c1958b5 Markdown Diagrams Extension for Chrome Webstore
The Markdown Diagrams Extension also had an extension for Chromes so updating the documentation to include this link.
2021-08-20 18:39:47 +08:00
Ashish Jain
2434a94aae Updated test cases for class diagram v2 2021-08-19 21:27:11 +02:00
Knut Sveidqvist
b80ebb4fcb Merge branch '2256_class_switch_to_ng_renderer' of github.com:mermaid-js/mermaid into 2256_class_switch_to_ng_renderer 2021-08-19 21:16:31 +02:00
Knut Sveidqvist
fd6e59174e Fix for dark theme, class diagrams (v2) 2021-08-19 21:16:26 +02:00
Ashish Jain
54ef5b0bee Fix for classDiagram-v2 support for cardinality where HTML label is true 2021-08-19 21:15:21 +02:00
Knut Sveidqvist
b0c09a5b0f #2256 Switch default renderer for class diagrams to the next generation renderer 2021-08-19 20:11:11 +02:00
Ashish Jain
719de71de4 Fix for broken Pie Diagram for d3 v6 upgrade 2021-08-19 19:50:20 +02:00
Ashish Jain
571816fc28 Updating prettierrc 2021-08-19 19:43:01 +02:00
Ashish Jain
adcc25db8e Fix for broken cypress test 2021-08-19 19:42:13 +02:00
Ashish Jain
7c97f68ee2 Merge branch 'develop' of https://github.com/knsv/mermaid into develop 2021-08-19 19:39:15 +02:00
Ashish Jain
2dfc9a7973 Lint fixes 2021-08-19 19:37:24 +02:00
Knut Sveidqvist
c04aac4ae0 Merge pull request #2255 from mermaid-js/2253_class_diagram_v2_fixes
2253 class diagram v2 fixes
2021-08-19 19:31:29 +02:00
Ashish Jain
798a0ad783 Fix for broken Pie Diagram for d3 v6 upgrade 2021-08-19 19:04:14 +02:00
Matthieu MOREL
935cc3b098 use right tag for andymckay/labeler 2021-08-19 18:55:42 +02:00
Ashish Jain
5ef2ad5536 Fix for classDiagram-v2 support for cardinality 2021-08-19 18:48:19 +02:00
Ashish Jain
0276a67417 Fix for classDiagram-v2 support for generics using '~' & method emphasis 2021-08-19 18:00:49 +02:00
Ashish Jain
46a3d10e8a Fix for classDiagram-v2 support for generics using '~' 2021-08-19 17:51:22 +02:00
Knut Sveidqvist
d09dea7e5e Merge pull request #2224 from mmorel-35/2196_fix_e2e
2196 fix e2e
2021-08-19 16:47:47 +02:00
MOREL Matthieu
55faa3cb1a yarn build and adapt e2e tests
Co-Authored-By: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-18 16:49:00 +02:00
Reet Ghosh
d9a9eb56a7 Fixed Unequal Arrow Bug 2021-08-17 22:52:10 +05:30
Yash Singh
5237729a6d Add nano to integrations 2021-08-15 13:44:28 -07:00
Knut Sveidqvist
a251848ba1 #2240 Reversing order of calls 2021-08-15 16:57:26 +02:00
RonaldZielaznicki
3383da514a Update ER Diagram to have keys and comments.
Update ER Diagrams to have keys and comments.
2021-08-12 16:18:54 -04:00
Knut Sveidqvist
3d7091a9e2 Merge branch 'master' of github.com:mermaid-js/mermaid 2021-08-11 18:32:15 +02:00
Knut Sveidqvist
d1759228cc Updated banner 2021-08-11 18:32:12 +02:00
Knut Sveidqvist
768536b9e2 Adding banner for the book about Mermaid 2021-08-11 18:28:35 +02:00
Ashish Jain
8f0b19f427 Updated banner position for the mermaid book 2021-08-11 18:28:25 +02:00
Knut Sveidqvist
972f6a0ea9 Merge branch 'master' of github.com:mermaid-js/mermaid 2021-08-11 18:25:10 +02:00
Knut Sveidqvist
9c55dec6ba Merge branch 'master' of github.com:mermaid-js/mermaid 2021-08-11 18:23:00 +02:00
Knut Sveidqvist
06715be05f Banner for Mermaid book 2021-08-11 18:22:56 +02:00
Ashish Jain
8f8169b8e4 Added Mermaid book banners 2021-08-11 18:14:24 +02:00
Ashish Jain
313aa11528 Added Mermaid book banners 2021-08-11 17:57:49 +02:00
Knut Sveidqvist
2ccd9feae7 Merge branch 'master' into develop 2021-08-07 18:43:01 +02:00
Knut Sveidqvist
fa3735b033 Adding landing page for book 2021-08-07 18:36:19 +02:00
Daniel Sitnik
adfceaf20b add Codedoc plugin 2021-08-06 11:19:23 -03:00
Knut Sveidqvist
8af36b742e Merge branch 'master'
Conflicts:
	dist/mermaid.core.js
	dist/mermaid.core.js.map
	dist/mermaid.js
	dist/mermaid.js.map
	dist/mermaid.min.js
	dist/mermaid.min.js.map
2021-08-05 20:08:37 +02:00
Knut Sveidqvist
a670b67844 Merge branch 'release/8.11.4' 2021-08-05 19:58:47 +02:00
Knut Sveidqvist
e8fc810b8d Release build 2021-08-05 19:57:24 +02:00
Knut Sveidqvist
b6648283c2 Removed some log statements 2021-08-05 19:53:11 +02:00
Knut Sveidqvist
b29979bfd9 Fix for broken test 2021-08-05 18:58:42 +02:00
Knut Sveidqvist
7e346a56ff Lint fix 2021-08-05 18:18:18 +02:00
Knut Sveidqvist
719480cf76 Updated preview version to 7 2021-08-05 18:05:24 +02:00
Knut Sveidqvist
92f1b9c079 Beta preview version 2021-08-05 17:42:55 +02:00
Knut Sveidqvist
c0831ecef6 Using Whitelist in all places 2021-08-05 17:35:28 +02:00
Knut Sveidqvist
d3ae43c4ba Version update 2021-08-05 07:42:52 +02:00
Knut Sveidqvist
a4e01dd8e9 preview version 2021-08-05 01:15:34 +02:00
Knut Sveidqvist
88e195408c Lint fixes 2021-08-05 01:13:13 +02:00
Knut Sveidqvist
f77ae2b045 Switch preview release 2021-08-05 01:08:26 +02:00
Knut Sveidqvist
655ff2675e #2219 Excluding using a black list as well 2021-08-05 01:07:35 +02:00
Knut Sveidqvist
37fae09ce4 #2219 Validating directives agains list of legal configuration keys 2021-08-05 01:05:34 +02:00
Knut Sveidqvist
711fb7d748 #2219 UnFrezing object to not cause other downstream issues 2021-08-05 00:52:10 +02:00
Knut Sveidqvist
f8891beb0a #2219 Frezing object to protect the prototype 2021-08-05 00:40:21 +02:00
Knut Sveidqvist
61a401b119 Merge branch 'mmorel-35-2177_dependency_updates_bis' into develop 2021-08-04 20:07:03 +02:00
Knut Sveidqvist
5dd78c18da Updated mermaid bundles 2021-08-04 20:04:47 +02:00
Knut Sveidqvist
eb4ac5c103 Merge 2021-08-04 20:02:16 +02:00
Knut Sveidqvist
af7f5d0aaf Merge branch 'release/8.11.3' 2021-08-04 19:25:59 +02:00
Knut Sveidqvist
7275b215b8 Release 8.11.3 2021-08-04 19:24:50 +02:00
Knut Sveidqvist
6fa6503515 Merge branch '2219_prototype_handling' into develop 2021-08-03 20:23:13 +02:00
Knut Sveidqvist
73ff972789 #2219 Moving check earlier in the chain for better effect 2021-08-03 20:10:15 +02:00
dependabot[bot]
a51bfd6a04 Bump @babel/preset-env from 7.14.8 to 7.14.9 (#41)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.14.8 to 7.14.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.9/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-02 12:38:08 +02:00
dependabot[bot]
b8cda6616f Bump @babel/eslint-parser from 7.14.7 to 7.14.9 (#42)
Bumps [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) from 7.14.7 to 7.14.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.9/eslint/babel-eslint-parser)

---
updated-dependencies:
- dependency-name: "@babel/eslint-parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-02 12:37:55 +02:00
dependabot[bot]
1aa5388aaf Bump @percy/cli from 1.0.0-beta.61 to 1.0.0-beta.62 (#40)
Bumps [@percy/cli](https://github.com/percy/cli/tree/HEAD/packages/cli) from 1.0.0-beta.61 to 1.0.0-beta.62.
- [Release notes](https://github.com/percy/cli/releases)
- [Commits](https://github.com/percy/cli/commits/v1.0.0-beta.62/packages/cli)

---
updated-dependencies:
- dependency-name: "@percy/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-01 08:46:20 +02:00
dependabot[bot]
0dd79d4f80 Bump eslint from 7.31.0 to 7.32.0 (#39)
Bumps [eslint](https://github.com/eslint/eslint) from 7.31.0 to 7.32.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.31.0...v7.32.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-01 08:45:25 +02:00
Knut Sveidqvist
68cd425950 Merge branch 'master' into develop 2021-07-30 10:37:48 +02:00
Knut Sveidqvist
ffa83547ca Merge branch 'release/8.11.2' 2021-07-30 10:36:54 +02:00
dependabot[bot]
d48cd57198 Bump cypress from 8.0.0 to 8.1.0 (#37)
Bumps [cypress](https://github.com/cypress-io/cypress) from 8.0.0 to 8.1.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v8.0.0...v8.1.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-29 22:22:55 +02:00
dependabot[bot]
ab26c172d7 Bump @percy/cli from 1.0.0-beta.60 to 1.0.0-beta.61 (#36)
Bumps [@percy/cli](https://github.com/percy/cli/tree/HEAD/packages/cli) from 1.0.0-beta.60 to 1.0.0-beta.61.
- [Release notes](https://github.com/percy/cli/releases)
- [Commits](https://github.com/percy/cli/commits/v1.0.0-beta.61/packages/cli)

---
updated-dependencies:
- dependency-name: "@percy/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-29 22:22:31 +02:00
Matthieu MOREL
1d32307a71 use Object.entries instead of d3.entries as it is deprecated (#35) 2021-07-29 22:08:01 +02:00
Matthieu MOREL
42d8bbfce2 babel-eslint => @babel/eslint-parser and remove babel-core and webpack-bundle-analyzer and yarn-upgrade-all config
remove babel-core and webpack-bundle-analyzer and yarn-upgrade-all config
2021-07-29 21:48:46 +02:00
Knut Sveidqvist
9245b0bb8b Updated version 2021-07-29 19:34:51 +02:00
Knut Sveidqvist
fa6f453e88 Merge branch 'master' into release/8.11.2 2021-07-29 19:33:17 +02:00
Matthieu MOREL
f7295a7a79 Merge branch 'mermaid-js:develop' into 2177_dependency_updates_bis 2021-07-29 19:11:49 +02:00
Knut Sveidqvist
4c00e90436 Merge pull request #2210 from mermaid-js/2209_safety
Combining Mermaids native sanitation with DOMPurify
2021-07-29 18:25:42 +02:00
Knut Sveidqvist
7d802a71c1 Fix for tests 2021-07-29 18:11:48 +02:00
Knut Sveidqvist
69a1bb99ac #2209 Combining sanitasion approaches 2021-07-29 18:05:13 +02:00
Matthieu MOREL
b055015250 Update release-publish.yml 2021-07-29 12:06:11 +02:00
Matthieu MOREL
e325bdb16b Update release-preview-publish.yml 2021-07-29 12:06:00 +02:00
Matthieu MOREL
209ac97d15 Update release-preview-publish.yml 2021-07-29 12:05:18 +02:00
Matthieu MOREL
e64cea499f Update release-publish.yml 2021-07-29 12:04:57 +02:00
Matthieu MOREL
c621c145e9 Update release-draft.yml 2021-07-29 12:04:47 +02:00
Matthieu MOREL
6ea84a36dc Update issue-triage.yml 2021-07-29 12:04:37 +02:00
Matthieu MOREL
9914e9b1ab Update e2e.yml 2021-07-29 12:04:26 +02:00
Matthieu MOREL
5dfaed91f1 Update build.yml 2021-07-29 12:04:04 +02:00
Knut Sveidqvist
d523818339 Merge branch 'release/8.11.1' 2021-07-28 15:59:33 +02:00
Knut Sveidqvist
33e8ee6c0e Release 8.11.1 2021-07-28 15:54:24 +02:00
Knut Sveidqvist
a87d557354 Updating version 2021-07-28 11:20:09 +02:00
Knut Sveidqvist
024f7c3275 Hardcoding preview version 2021-07-28 10:20:14 +02:00
Knut Sveidqvist
f2910da513 Test commit 2021-07-28 10:14:50 +02:00
Knut Sveidqvist
b5ed5db880 Moving dom purify from devDependencies to dependencies 2021-07-28 09:57:09 +02:00
Knut Sveidqvist
fa65e73bd0 Updated node version for preview publishing 2021-07-28 09:30:55 +02:00
dependabot[bot]
f1ff7d02d1 Bump start-server-and-test from 1.13.0 to 1.13.1 (#32)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.13.0 to 1.13.1.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.13.0...v1.13.1)

---
updated-dependencies:
- dependency-name: start-server-and-test
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-27 22:09:25 +02:00
Matthieu MOREL
21afb56089 Update dependabot.yml 2021-07-23 20:30:32 +02:00
dependabot[bot]
034cdc9d02 Bump @percy/cypress from 3.1.0 to 3.1.1 (#31)
Bumps [@percy/cypress](https://github.com/percy/percy-cypress) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/percy/percy-cypress/releases)
- [Commits](https://github.com/percy/percy-cypress/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: "@percy/cypress"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-23 20:26:50 +02:00
dependabot[bot]
2008d497bb Bump start-server-and-test from 1.12.6 to 1.13.0 (#30)
Bumps [start-server-and-test](https://github.com/bahmutov/start-server-and-test) from 1.12.6 to 1.13.0.
- [Release notes](https://github.com/bahmutov/start-server-and-test/releases)
- [Commits](https://github.com/bahmutov/start-server-and-test/compare/v1.12.6...v1.13.0)

---
updated-dependencies:
- dependency-name: start-server-and-test
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-22 20:06:45 +02:00
dependabot[bot]
b71a28106c Bump @percy/cli from 1.0.0-beta.58 to 1.0.0-beta.60 (#28)
Bumps @percy/cli from 1.0.0-beta.58 to 1.0.0-beta.60.

---
updated-dependencies:
- dependency-name: "@percy/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-21 17:26:47 +02:00
dependabot[bot]
eb5147b497 Bump @babel/preset-env from 7.14.7 to 7.14.8 (#27)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.14.7 to 7.14.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.8/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-21 17:20:20 +02:00
dependabot[bot]
341c40b610 Bump @babel/core from 7.14.6 to 7.14.8 (#26)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.14.6 to 7.14.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.8/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-21 10:04:14 +02:00
dependabot[bot]
169800b209 Bump actions/setup-node from 2.2.0 to 2.3.0 (#25)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v2.2.0...v2.3.0)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-21 09:57:30 +02:00
Matthieu MOREL
bdacc5e3eb Update dependabot.yml 2021-07-20 22:17:02 +02:00
dependabot[bot]
afaf213f11 Bump @percy/migrate from 0.10.0 to 0.11.0 (#23)
Bumps @percy/migrate from 0.10.0 to 0.11.0.

---
updated-dependencies:
- dependency-name: "@percy/migrate"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-20 13:24:22 +02:00
dependabot[bot]
e4116bf5b1 Bump eslint from 7.30.0 to 7.31.0 (#24)
Bumps [eslint](https://github.com/eslint/eslint) from 7.30.0 to 7.31.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.30.0...v7.31.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-20 13:22:52 +02:00
dependabot[bot]
58c1d7dd62 Bump cypress from 7.7.0 to 8.0.0 (#21)
Bumps [cypress](https://github.com/cypress-io/cypress) from 7.7.0 to 8.0.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v7.7.0...v8.0.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-20 12:11:45 +02:00
Matthieu MOREL
56a4ca0406 Update webpack.config.e2e.js 2021-07-15 21:01:40 +02:00
Matthieu MOREL
3f991a4f1f Update webpack.config.e2e.js 2021-07-15 21:01:03 +02:00
Matthieu MOREL
056abc314c Update webpack.config.base.js 2021-07-15 21:00:39 +02:00
Matthieu MOREL
9870121f01 Update webpack.config.e2e.js 2021-07-15 20:41:04 +02:00
Matthieu MOREL
525e342f9b Update webpack.config.base.js 2021-07-15 20:39:36 +02:00
dependabot[bot]
8b267ba947 Bump webpack-cli from 3.3.12 to 4.7.2 (#6)
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 3.3.12 to 4.7.2.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/v3.3.12...webpack-cli@4.7.2)

---
updated-dependencies:
- dependency-name: webpack-cli
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-15 19:52:31 +02:00
Matthieu MOREL
843ccbc88b Update package.json 2021-07-15 19:42:40 +02:00
Matthieu MOREL
78fbe18aed Update package.json 2021-07-15 19:31:37 +02:00
Matthieu MOREL
dd83cd9f78 Update package.json 2021-07-15 19:19:19 +02:00
dependabot[bot]
0f178b9f07 Bump webpack-node-externals from 1.7.2 to 3.0.0 (#9)
Bumps [webpack-node-externals](https://github.com/liady/webpack-node-externals) from 1.7.2 to 3.0.0.
- [Release notes](https://github.com/liady/webpack-node-externals/releases)
- [Changelog](https://github.com/liady/webpack-node-externals/blob/master/CHANGELOG.md)
- [Commits](https://github.com/liady/webpack-node-externals/compare/v1.7.2...v3.0.0)

---
updated-dependencies:
- dependency-name: webpack-node-externals
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-15 19:18:00 +02:00
dependabot[bot]
381ff20820 Bump terser-webpack-plugin from 2.3.8 to 4.2.3 (#8)
Bumps [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) from 2.3.8 to 4.2.3.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/compare/v2.3.8...v4.2.3)

---
updated-dependencies:
- dependency-name: terser-webpack-plugin
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-15 19:17:47 +02:00
dependabot[bot]
559d5ee5e6 Bump cypress from 7.6.0 to 7.7.0 (#7)
Bumps [cypress](https://github.com/cypress-io/cypress) from 7.6.0 to 7.7.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v7.6.0...v7.7.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-15 19:17:34 +02:00
dependabot[bot]
ec0e476521 Bump d3 from 5.16.0 to 7.0.0 (#5)
Bumps [d3](https://github.com/d3/d3) from 5.16.0 to 7.0.0.
- [Release notes](https://github.com/d3/d3/releases)
- [Changelog](https://github.com/d3/d3/blob/main/CHANGES.md)
- [Commits](https://github.com/d3/d3/compare/v5.16.0...v7.0.0)

---
updated-dependencies:
- dependency-name: d3
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-15 19:12:38 +02:00
dependabot[bot]
3f8ff1a66c Bump actions/cache from 2.1.5 to 2.1.6 (#4)
Bumps [actions/cache](https://github.com/actions/cache) from 2.1.5 to 2.1.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.5...v2.1.6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-15 19:05:38 +02:00
dependabot[bot]
7229b6aaf1 Bump andymckay/labeler from 1.0.2 to 1.0.3 (#3)
Bumps [andymckay/labeler](https://github.com/andymckay/labeler) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/andymckay/labeler/releases)
- [Commits](https://github.com/andymckay/labeler/compare/1.0.2...1.0.3)

---
updated-dependencies:
- dependency-name: andymckay/labeler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-15 19:05:24 +02:00
dependabot[bot]
3ab447a766 Bump toolmantim/release-drafter from 5.2.0 to 5.15.0 (#2)
Bumps [toolmantim/release-drafter](https://github.com/toolmantim/release-drafter) from 5.2.0 to 5.15.0.
- [Release notes](https://github.com/toolmantim/release-drafter/releases)
- [Commits](https://github.com/toolmantim/release-drafter/compare/v5.2.0...v5.15.0)

---
updated-dependencies:
- dependency-name: toolmantim/release-drafter
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-15 19:05:07 +02:00
dependabot[bot]
0ed11dc98c Bump actions/upload-artifact from 2.2.3 to 2.2.4 (#1)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2.2.3 to 2.2.4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2.2.3...v2.2.4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-15 19:04:38 +02:00
Knut Sveidqvist
52b1b23d47 Merge pull request #2164 from mermaid-js/dependabot/github_actions/develop/actions/setup-node-2.2.0
Bump actions/setup-node from 1 to 2.2.0
2021-07-15 14:54:54 +02:00
Knut Sveidqvist
030d383d30 Merge pull request #2184 from anishkny/patch-1
docs(README): Point to live editor
2021-07-15 14:53:49 +02:00
Knut Sveidqvist
b34f7bcdd5 Merge pull request #2187 from mermaid-js/2177_dependency_updates
2177 dependency updates
2021-07-15 14:27:07 +02:00
Knut Sveidqvist
6a3991bbaa Merge branch 'develop' into 2177_dependency_updates 2021-07-15 14:26:31 +02:00
Knut Sveidqvist
5d2a9fe267 Updated documentation 2021-07-15 13:44:06 +02:00
Knut Sveidqvist
cd8620cc9d Node switch for e2e builds 2021-07-15 12:27:21 +02:00
Knut Sveidqvist
5399214ad8 Update of prettier, eslint and rules 2021-07-15 11:35:12 +02:00
Knut Sveidqvist
896c7eca57 Fix for issue with updated stylis 2021-07-15 10:58:22 +02:00
Knut Sveidqvist
c29486f515 Switching node version to version 16 2021-07-15 10:22:33 +02:00
Knut Sveidqvist
3fe1f5af60 Switchiung node version 2021-07-15 10:19:55 +02:00
Knut Sveidqvist
1034e1a301 #2177 Jets upgrade 2021-07-15 10:14:35 +02:00
Anish Karandikar
6379320b83 docs(README): Point to live editor
Perhaps it makes more sense to point directly to the live editor where a user can start playing around, instead of the repo for the live editor (which is still reachable from the editor itself).
2021-07-11 10:45:48 -07:00
Knut Sveidqvist
30de90e4f0 #2177 Updating sanitize-url, dagre, graphlib, khroma, moment-mini, stylis 2021-07-07 18:06:09 +02:00
Neil Cuzon
52a40112a2 Merge pull request #2178 from sidharthv96/updateTutorial
Update Tutorials for LiveEditor V2
2021-07-07 08:17:29 -07:00
Knut Sveidqvist
7a679dea2d #2177 Updating babel 2021-07-07 17:09:08 +02:00
Knut Sveidqvist
0eb86cb97f #2177 Updating start-server-and-test , webpack-bundle-analyzer and removing yarn-upgrade-all 2021-07-07 17:04:14 +02:00
Knut Sveidqvist
7fcb1ae9b3 #2177 Updating cypress and percy 2021-07-07 16:41:36 +02:00
Knut Sveidqvist
6715498598 #2177 Updating cypress and percy 2021-07-07 16:41:22 +02:00
Knut Sveidqvist
eaec4c9744 Merge pull request #2145 from carbeer/patch-1
Fix broken internal links in README
2021-07-07 14:05:56 +02:00
Knut Sveidqvist
fa07abd014 Merge pull request #2175 from sidharthv96/fix/entity-decode
Remove entity-decode dependency
2021-07-07 14:01:37 +02:00
Knut Sveidqvist
30a02adfe3 Merge branch 'develop' into fix/entity-decode 2021-07-07 14:01:30 +02:00
Knut Sveidqvist
ea6102e123 Merge pull request #2171 from mermaid-js/2170_dompurify
2170 dompurify
2021-07-07 13:51:14 +02:00
Sidharth Vinod
b5aaf0f990 Update Tutorails for LiveEditor V2 2021-07-07 02:11:06 +05:30
Sidharth Vinod
ed6abb6d92 Merge branch 'develop' of github.com:sidharthv96/mermaid into fix/entity-decode
* 'develop' of github.com:sidharthv96/mermaid:
  Update flowchart.md
  Added new theme user journey diagram specific theme variables
  fix typo
  2122 Blöockling javascript urls
  fix: Assign proper namespaces to foreignObject children
  Small positoining fix for parallell processes and nested composite states
  Version update in the docs
  Updated version in package.json and recompile
  Lint fix
  fix typo
  Fix for styling
  Fox fr keeping the label background in state diagrams
  Removed  unused dependency "he"
  Ensuring "minify" is only listed as a dev dependency
  Update n00b-syntaxReference.md
  Update _sidebar.md
  [docs] Update default log level value
2021-07-07 02:02:42 +05:30
Sidharth Vinod
862330a576 Fix #1603 Remove entity-decode Dependency. 2021-07-07 02:00:44 +05:30
Knut Sveidqvist
fadda49b0e More fixes with the dependencies 2021-07-05 12:46:11 +02:00
Knut Sveidqvist
db5709a033 Adding js-base64 2021-07-05 12:31:32 +02:00
Knut Sveidqvist
c447262764 Testcommit 2021-07-05 12:05:33 +02:00
Knut Sveidqvist
79e6013342 Adding dompurify 2021-07-05 11:56:06 +02:00
Knut Sveidqvist
2c00d4c116 Adding dompurify 2021-07-05 11:45:11 +02:00
Knut Sveidqvist
b468065c6b Adding dompurify 2021-07-05 11:38:24 +02:00
Knut Sveidqvist
67050e4d6d #2170 Adjusting tests 2021-07-05 11:10:26 +02:00
Knut Sveidqvist
5437ab7057 #2170 Lint fix 2021-07-05 10:27:15 +02:00
Knut Sveidqvist
2f73fd3a9d #2170 Adding dompurify 2021-07-05 10:21:11 +02:00
dependabot[bot]
27b6845b78 Bump actions/setup-node from 1 to 2.2.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 1 to 2.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v1...v2.2.0)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-30 20:08:14 +00:00
Knut Sveidqvist
1310619848 Merge branch 'master' into develop 2021-06-27 08:34:17 +02:00
Knut Sveidqvist
1d78267871 Merge branch 'release/8.11.0' 2021-06-27 07:57:35 +02:00
Knut Sveidqvist
ed0947d761 Updated test 2021-06-27 00:57:28 +02:00
Knut Sveidqvist
6564bad85e Updated test 2021-06-27 00:40:14 +02:00
Knut Sveidqvist
6b9462f606 Preventing xss manipulation using onerror with the antiscript setting. 2021-06-27 00:24:19 +02:00
Knut Sveidqvist
eef4ef54a1 Version update to 8.11.0 2021-06-25 12:27:21 +02:00
Knut Sveidqvist
9cc4f73cab Merge pull request #2151 from mermaid-js/2125_switch_state_renderer
#2125 Switching default renderer for state diagrams
2021-06-25 12:06:25 +02:00
Knut Sveidqvist
d0d87497c5 #2125 Switching default renderer for state diagrams 2021-06-25 11:08:57 +02:00
Knut Sveidqvist
09a97d339e Merge pull request #2125 from TribalNightOwl/patch-1
fix typo
2021-06-25 10:47:02 +02:00
Knut Sveidqvist
db049f9c8e Merge pull request #2119 from lishid/develop
fix: Assign proper namespaces to foreignObject children
2021-06-25 10:30:50 +02:00
Knut Sveidqvist
c1335955f4 Merge pull request #2133 from mermaid-js/2132_style_journey_diagram
FIX: Added new theme user journey diagram specific theme variables
2021-06-25 10:28:00 +02:00
Knut Sveidqvist
3a65551746 Merge pull request #2141 from bish0polis/patch-1
Update flowchart.md
2021-06-25 10:27:38 +02:00
Knut Sveidqvist
62c6b9d886 Merge pull request #2109 from fabiospampinato/no-useless-prod-deps
Removed some non-production dependencies from the list of production dependencies
2021-06-25 10:27:17 +02:00
Knut Sveidqvist
a78ccb460d Merge pull request #2083 from hydrosquall/patch-1
[docs] Update default log level value with correct datatype
2021-06-25 10:26:40 +02:00
Carolin Beer
2f5c7ea2f1 Fix broken internal links in README 2021-06-23 14:44:34 +02:00
Bishop Clark
ecede3126b Update flowchart.md
spell check
2021-06-20 20:25:56 -07:00
Ashish Jain
8b55b83256 Added new theme user journey diagram specific theme variables 2021-06-15 14:21:25 +02:00
Hugo Gayosso
ee57e60ca6 fix typo
state4ment  --> statement
2021-06-09 11:21:05 -04:00
Knut Sveidqvist
890512ccbb Merge pull request #2123 from mermaid-js/2122_javascript_urls
2122 javascript urls
2021-06-08 21:48:22 +02:00
Knut Sveidqvist
3d22fa5d24 2122 Blöockling javascript urls 2021-06-08 20:08:04 +02:00
lishid
e0652539fb fix: Assign proper namespaces to foreignObject children 2021-06-06 16:57:47 -04:00
Knut Sveidqvist
26ede9b015 Small positoining fix for parallell processes and nested composite states 2021-06-06 11:37:23 +02:00
Knut Sveidqvist
2d01c5489b Merge branch 'master' into develop 2021-06-06 08:49:03 +02:00
Knut Sveidqvist
7cdf4c7476 Version update in the docs 2021-06-06 08:44:00 +02:00
Knut Sveidqvist
5251dfaa97 Merge branch 'release/8.10.2' 2021-06-06 08:43:03 +02:00
Knut Sveidqvist
d6ce739b8a Merge remote-tracking branch 'origin/master' 2021-06-06 08:42:47 +02:00
Knut Sveidqvist
b2be90e1a0 Updated version in package.json and recompile 2021-06-05 12:24:46 +02:00
Knut Sveidqvist
e6e94ad57e Merge pull request #2115 from mermaid-js/2111_placeholder
2111 placeholder
2021-06-05 12:11:13 +02:00
Knut Sveidqvist
fc70fb7c1a Merge pull request #2113 from cm-wada-yusuke/fix/typo-api
fixed typo in `Setup.md`
2021-06-05 12:01:15 +02:00
Knut Sveidqvist
e0c3b8e269 Lint fix 2021-06-04 07:27:44 +02:00
Yusuke Wada
9861c081db fix typo 2021-06-04 13:56:11 +09:00
Knut Sveidqvist
916df3ff4f Fix for styling 2021-06-03 21:41:29 +02:00
Knut Sveidqvist
c0b65e9304 Fox fr keeping the label background in state diagrams 2021-06-03 21:27:53 +02:00
Knut Sveidqvist
aa2596b457 #2111 Handling 'false' as false 2021-06-03 20:47:24 +02:00
Fabio Spampinato
359ea05680 Removed unused dependency "he" 2021-06-03 13:23:26 +01:00
Fabio Spampinato
c77e7af126 Ensuring "minify" is only listed as a dev dependency 2021-06-03 13:22:28 +01:00
Neil Cuzon
1a444071f1 Update n00b-syntaxReference.md 2021-05-30 04:11:06 -07:00
Knut Sveidqvist
5070d992dd Merge pull request #2089 from mermaid-js/2088_themin_forks
2088 theming forks
2021-05-23 12:26:46 +02:00
Knut Sveidqvist
bf21aa8cd6 #2088 Add the possibility to theme forks and joins using theme variables 2021-05-23 10:42:07 +02:00
Knut Sveidqvist
529824e2b3 #2088 Add the possibility to theme forks and joins using theme variables 2021-05-23 08:12:32 +02:00
Knut Sveidqvist
6e6ced2cee #2088 Add the possibility to theme forks and joins using theme variables 2021-05-22 20:13:31 +02:00
Neil Cuzon
4fa4849fcd Update _sidebar.md 2021-05-20 02:59:43 -07:00
Neil Cuzon
affab5f6d3 Update _sidebar.md 2021-05-19 13:39:23 -07:00
Cameron Yick
5fb8d34a07 [docs] Update default log level value 2021-05-18 23:39:26 -04:00
Knut Sveidqvist
ff75122095 Merge pull request #2082 from mermaid-js/2050_direction_in_subgraphs
2050 direction in subgraphs
2021-05-18 22:50:12 +02:00
Knut Sveidqvist
4c92592aa1 #2050 Updating tests and adding docs 2021-05-18 22:34:24 +02:00
Knut Sveidqvist
0bbefdc48f #2050 Adjusted default value for direction in subgraphs 2021-05-18 21:36:04 +02:00
Knut Sveidqvist
09569301f1 #2050 Adding possibility to render subgrapgs in different directions 2021-05-18 21:15:06 +02:00
Knut Sveidqvist
84ad8aabec Merge pull request #2041 from beriakomal/patch-1
Changes in sentence structuring for better readability
2021-05-17 20:49:18 +02:00
Knut Sveidqvist
98c092637e Merge pull request #2068 from zag/develop
add Podlite editor
2021-05-17 20:48:32 +02:00
Knut Sveidqvist
1f86ec3d19 Merge pull request #2076 from mahimas28/develop
Fix for issue #2074 , updated version to 8.10.1
2021-05-17 20:47:20 +02:00
Knut Sveidqvist
85217fffc3 Merge pull request #2069 from jmg-duarte/patch-1
Document <<choice>> in the state diagram page
2021-05-17 20:46:09 +02:00
Knut Sveidqvist
9f9fb7d043 Merge pull request #2078 from mermaid-js/2072_cluster_positioning
2072 cluster positioning
2021-05-17 20:43:09 +02:00
Knut Sveidqvist
cea1441eeb #2072 fix for composite states 2021-05-17 18:49:53 +02:00
mahimas28
85faec73f4 Fix for issue #2074 , updated version to 8.10.1 2021-05-16 19:59:09 +05:30
Knut Sveidqvist
d1180a5c69 Fix for broken rendering test 2021-05-16 10:59:07 +02:00
Knut Sveidqvist
84941607df Fix for links between composie states 2021-05-16 10:44:34 +02:00
Knut Sveidqvist
3dc7b68d08 Test commit 2021-05-16 08:36:30 +02:00
Knut Sveidqvist
af4930e3f3 Expandingh with of subgraphs whith title 2021-05-16 08:21:28 +02:00
Knut Sveidqvist
0a4f16737a #2072 Handle width of clusters with wide titles 2021-05-15 18:52:06 +02:00
José Duarte
a4795975a7 Document <<choice>> in the state diagram page 2021-05-14 13:21:03 +01:00
Aliaksandr Zahatski
0e10160d85 add Podlite editor 2021-05-14 09:34:18 +03:00
Knut Sveidqvist
f7944e83eb Usage of 8.10.1 in the docs and fix of requirement diagram docs 2021-05-10 19:11:26 +02:00
Knut Sveidqvist
a55777c62b Merge 2021-05-10 19:05:29 +02:00
Knut Sveidqvist
ebd2cb6f25 Latest binaries 2021-05-10 19:00:52 +02:00
Knut Sveidqvist
d5a349fccc Version update 2021-05-10 18:40:26 +02:00
Knut Sveidqvist
417428acea Removed some console statememnts and updated version 2021-05-10 18:14:47 +02:00
Knut Sveidqvist
ac837a77e7 Merge branch '2057_direction_chang_composite_states' into develop 2021-05-10 07:56:38 +02:00
Knut Sveidqvist
d208f58084 SMall styling fix for choices in state diagrams 2021-05-10 07:44:28 +02:00
Knut Sveidqvist
3eb44ccb80 Merge pull request #2058 from mermaid-js/2057_direction_chang_composite_states
Make it possible to change direction for the rendering in the composite states in state diagrams
2021-05-09 16:46:26 +02:00
Knut Sveidqvist
6dcc538777 2021-05-09 16:24:36 +02:00
Knut Sveidqvist
560951d597 Updated test 2021-05-09 15:57:44 +02:00
Knut Sveidqvist
75769c46de 2021-05-09 15:42:31 +02:00
Knut Sveidqvist
d3d0df59cb 2021-05-09 15:34:02 +02:00
Knut Sveidqvist
43f6ae7ba0 Add the directive state ment for change rendering direction in composite states 2021-05-09 15:25:51 +02:00
Knut Sveidqvist
f86f027fb2 Merge pull request #2056 from mermaid-js/2055_allowing_multiple_notes_for_one_state
#2055 Allowing multiple ids for one state in state diagrams
2021-05-09 11:25:23 +02:00
Knut Sveidqvist
e3164d8d44 #2055 Fix for how ids are set to notes 2021-05-09 11:12:22 +02:00
Knut Sveidqvist
4720ede442 #2045 name change of state diagram specific theme variable 2021-05-09 10:56:39 +02:00
Knut Sveidqvist
413bdce17c Merge pull request #2051 from mermaid-js/pie_chart_themeing
#1648, #1656 Making Pie Chart more configurable
2021-05-07 19:43:44 +02:00
Ashish Jain
37136c9bef #1648, #1656 Making Pie Chart more configurable 2021-05-07 17:02:08 +02:00
Ashish Jain
fb5970d4db Merge pull request #2038 from mermaid-js/2017_std_req_diagrams
2017 std req diagrams
2021-05-07 02:49:32 +02:00
Knut Sveidqvist
2de9d491c3 #2045 Small fix for alt ackground in state diagrams 2021-05-06 22:16:31 +02:00
Knut Sveidqvist
f6b4794183 Merge pull request #2048 from mermaid-js/state-diagram-themeing
State diagram themeing
2021-05-06 21:24:10 +02:00
Knut Sveidqvist
30909bd6fe #2045 Fix for text color in state diagram v1 in dark 2021-05-06 20:43:34 +02:00
Knut Sveidqvist
2104c983e9 #2045 Fix for default value 2021-05-06 20:29:07 +02:00
Knut Sveidqvist
30faf7bfad #2045 Adjusted styling css to make use of state diagram theme variables 2021-05-06 20:26:00 +02:00
Knut Sveidqvist
785e5552ae Merge branch 'pie_chart_themeing' into state-diagram-themeing 2021-05-06 07:52:09 +02:00
Knut Sveidqvist
a1cd398e4d 2021-05-06 07:50:24 +02:00
Ashish Jain
edb06b12e9 #2043 Added PieChart theme variable support 2021-05-06 03:09:36 +02:00
Ashish Jain
1337ffe9e5 #2043 Added PieChart theme variable support 2021-05-06 01:41:24 +02:00
beriakomal
1238dc20da Changes in sentence structuring for better readability
I have made few changes in the structure of sentences for a better readability quotient.
2021-05-05 13:10:02 +05:30
Ashish Jain
5157b2eff4 #2017 Fix for theme variable border size for requirement title line 2021-05-03 16:22:54 +02:00
Ashish Jain
257ed8dc92 #2017 Added useage of theme variable requirementTextColor 2021-05-03 16:22:25 +02:00
Ashish Jain
ea12f5b2ec #2017 Fix for theme variable border size for requirement box 2021-05-03 16:21:47 +02:00
Ashish Jain
34bd9b58e8 #2017 Fix for theme variable border size for requirement box 2021-05-03 16:19:00 +02:00
Ashish Jain
83754410f3 #2017 Fix for clearing diagram data (helpful for live editor) 2021-05-03 16:17:38 +02:00
Ashish Jain
ae36704b66 #2017 Fix for missing docRef 2021-05-03 16:16:18 +02:00
Neil Cuzon
70899ffb87 Update n00b-gettingStarted.md 2021-05-02 22:55:29 -07:00
Neil Cuzon
001865f1db Add files via upload 2021-05-02 22:55:13 -07:00
Neil Cuzon
2a3c68f2c6 Delete Live-Editor-Choices.png 2021-05-02 22:54:59 -07:00
Neil Cuzon
769a7b1384 Add files via upload 2021-05-02 22:53:02 -07:00
Neil Cuzon
149abf98cf Delete Live-Editor-Choices.png 2021-05-02 22:52:52 -07:00
Neil Cuzon
e104078b3f Add files via upload 2021-05-02 22:50:22 -07:00
Neil Cuzon
b7fa328d95 Update n00b-syntaxReference.md 2021-05-02 22:46:18 -07:00
Neil Cuzon
598dbeb185 Delete Code-Preview-Config.png 2021-05-02 22:24:01 -07:00
Neil Cuzon
7c249e9f7a Update n00b-gettingStarted.md 2021-05-02 22:23:19 -07:00
Neil Cuzon
1c7710d0ab Add files via upload 2021-05-02 22:22:57 -07:00
Neil Cuzon
a67e714abc Delete Code-Preview-Config.png 2021-05-02 22:22:35 -07:00
Neil Cuzon
932d08c276 Add files via upload 2021-05-02 22:19:42 -07:00
Neil Cuzon
2c90b6157c Delete Code, Preview and Config.png 2021-05-02 22:18:53 -07:00
Neil Cuzon
4b5b7381c2 Add files via upload 2021-05-02 22:13:16 -07:00
Neil Cuzon
f67639e0a2 Add files via upload 2021-05-02 22:12:51 -07:00
Neil Cuzon
66082029a9 Update n00b-gettingStarted.md 2021-05-02 21:29:49 -07:00
Neil Cuzon
f9e8b31633 Update integrations.md 2021-05-02 21:22:16 -07:00
Neil Cuzon
257c57ccca Update n00b-syntaxReference.md 2021-05-02 15:49:22 -07:00
Neil Cuzon
7b488c8ec8 Update n00b-syntaxReference.md 2021-05-02 15:48:47 -07:00
Neil Cuzon
a46719eaba Update n00b-syntaxReference.md 2021-05-02 14:22:11 -07:00
Neil Cuzon
1bdf906617 Update n00b-syntaxReference.md 2021-05-02 14:21:51 -07:00
Neil Cuzon
97abb0e97f Update n00b-syntaxReference.md 2021-05-02 14:16:44 -07:00
Neil Cuzon
86f3153973 Update n00b-syntaxReference.md 2021-05-02 02:43:13 -07:00
Neil Cuzon
390726ac03 Update Configuration.md 2021-05-02 02:04:48 -07:00
Neil Cuzon
82b24d95d0 Update n00b-gettingStarted.md 2021-05-02 02:03:57 -07:00
Neil Cuzon
c7a2afa287 Update _sidebar.md 2021-05-02 01:57:39 -07:00
Neil Cuzon
92d70dfcf4 Update _sidebar.md 2021-05-02 01:55:27 -07:00
Neil Cuzon
cfcf72b8e0 Update Tutorials.md 2021-05-02 01:49:40 -07:00
Neil Cuzon
36226a23ab Update _sidebar.md 2021-05-02 01:43:07 -07:00
Neil Cuzon
fdba19043a Update n00b-syntaxReference.md 2021-05-02 01:24:32 -07:00
Knut Sveidqvist
c56ccb3aa4 Merge pull request #2036 from mermaid-js/2035_grow_width_with_title
State diagrams - Growing composite state width with title
2021-05-02 10:20:38 +02:00
Neil Cuzon
f7a5cda7f4 Update n00b-syntaxReference.md 2021-05-02 01:20:26 -07:00
Neil Cuzon
7c346df471 Update n00b-syntaxReference.md 2021-05-02 01:18:52 -07:00
Neil Cuzon
99f5e9fc9f Update _sidebar.md 2021-05-02 01:14:07 -07:00
Neil Cuzon
a942cb2711 Update n00b-syntaxReference.md 2021-05-02 00:59:57 -07:00
Knut Sveidqvist
aa39dcc34f #2035 Growing composite state width with title 2021-05-02 08:44:28 +02:00
Neil Cuzon
0b3881751f Update flowchart.md 2021-05-01 11:42:42 -07:00
Neil Cuzon
31e656630d Update flowchart.md 2021-05-01 11:39:50 -07:00
Knut Sveidqvist
9cce3faba5 Merge pull request #2034 from mermaid-js/2032_adding_choice_to_state_diagrams
#2032 Adding new statement to add choice shape in state diagrams
2021-05-01 18:51:13 +02:00
Knut Sveidqvist
6dc71122b8 #2032 Adding new statement to add choice shape in state diagrams 2021-05-01 18:09:42 +02:00
Neil Cuzon
073c9445ea Update n00b-gettingStarted.md 2021-05-01 02:26:41 -07:00
Neil Cuzon
5dc7c62cd4 Update n00b-gettingStarted.md 2021-04-30 15:18:06 -07:00
Knut Sveidqvist
d3f8f03a7d Merge pull request #2031 from mermaid-js/2029_option_to_configure_renderer
2029 option to configure renderer
2021-04-30 19:56:46 +02:00
Knut Sveidqvist
7a90970177 Merge pull request #2030 from mermaid-js/2026_fix_for_descriptions
2026 fix for descriptions
2021-04-30 19:56:31 +02:00
Knut Sveidqvist
b20f8668be Fix for test 2021-04-30 19:34:25 +02:00
Knut Sveidqvist
d8d624870d Adjustments 2021-04-30 19:25:45 +02:00
Knut Sveidqvist
1e6ed7be02 #2029 Adding option to configure default renderer 2021-04-30 17:27:05 +02:00
Knut Sveidqvist
973369e7f1 Lint fix 2021-04-30 17:20:53 +02:00
Knut Sveidqvist
0185d75b05 Reversal of simple fix for grap directions flips 2021-04-30 17:18:50 +02:00
Knut Sveidqvist
3e40bec98d Merge pull request #2027 from dominikmeyersap/patch-1
Update sequenceDiagram.md
2021-04-30 17:15:27 +02:00
Dominik Meyer
f96ca5dd73 Update sequenceDiagram.md 2021-04-30 13:53:02 +02:00
Knut Sveidqvist
2240333df1 #2026 Fix for descriptions of composite states 2021-04-30 13:50:21 +02:00
Knut Sveidqvist
fdac4bf2c9 Merge pull request #2025 from mermaid-js/fix_for_nested_subgraphs
Fixes for links to and from subgraphs and labels on multiple edges from the same node to the same destination
2021-04-30 10:59:25 +02:00
Knut Sveidqvist
fab98633a4 Updated test 2021-04-30 10:46:48 +02:00
Knut Sveidqvist
11f3cbdb36 #1958 Handling multiple edges from and to the same node tuple 2021-04-30 10:34:50 +02:00
Knut Sveidqvist
a3e7df0068 Merge pull request #2020 from sidharthv96/develop
Add code sample in Issue template
2021-04-30 10:06:15 +02:00
Knut Sveidqvist
4e6b9ec947 Removed debug code from label 2021-04-30 10:05:20 +02:00
Knut Sveidqvist
de8bdb96bd Final tweaks 2021-04-30 09:04:09 +02:00
Neil Cuzon
ebafb9c316 Update integrations.md 2021-04-29 23:39:35 -07:00
Neil Cuzon
f4ae9b41d6 Update integrations.md 2021-04-29 23:38:30 -07:00
Neil Cuzon
27bf4b272b Update integrations.md 2021-04-29 23:21:22 -07:00
Neil Cuzon
bb92715f02 Update integrations.md 2021-04-29 23:17:57 -07:00
Neil Cuzon
0ffa15eb21 Update integrations.md 2021-04-29 23:15:05 -07:00
Neil Cuzon
ae4a18c745 Update n00b-gettingStarted.md 2021-04-29 11:32:20 -07:00
Knut Sveidqvist
a9f14d9ffe Adding image test for failing testcase 2021-04-29 19:27:04 +02:00
Knut Sveidqvist
ce84278f10 Better track of the order of the edge and removing debug code 2021-04-29 19:24:07 +02:00
Knut Sveidqvist
8955e0a6b1 Fix for first case 2021-04-29 18:50:12 +02:00
Sidharth Vinod
9594c8d004 Add code sample in Issue template 2021-04-28 20:06:51 +05:30
Knut Sveidqvist
8a893e12f5 Merge pull request #2018 from mermaid-js/2017_std_req_diagrams
#2017 Standardization of requirement diagrams
2021-04-26 19:27:05 +02:00
Knut Sveidqvist
8f09514dd7 #2017 Standardization of requirement diagrams 2021-04-26 19:08:16 +02:00
Knut Sveidqvist
2bb4f1f875 Updated readme file 2021-04-25 14:05:42 +02:00
Knut Sveidqvist
050569b03b Using version 8.9.3 in the docs 2021-04-25 13:39:53 +02:00
Knut Sveidqvist
8b3ac57ce7 Merge branch 'release/8.9.3' 2021-04-25 13:24:35 +02:00
Knut Sveidqvist
88447f87d6 Removed test banner 2021-04-25 13:13:30 +02:00
Knut Sveidqvist
d6296e9cf0 Release bundles 2021-04-25 13:02:48 +02:00
Knut Sveidqvist
ab1a31cfb6 New version in packge.json 2021-04-25 13:00:09 +02:00
Knut Sveidqvist
45918da48e Updated tests 2021-04-25 12:27:59 +02:00
Knut Sveidqvist
cef6273dcf Updated tests 2021-04-25 12:27:51 +02:00
Knut Sveidqvist
8c57df1945 Merge pull request #1997 from Mister-Hope/develop
docs: update setup config
2021-04-25 11:07:02 +02:00
Knut Sveidqvist
6c927e8ec4 Merge pull request #1999 from bish0polis/patch-1
Update flowchart.md
2021-04-25 11:06:39 +02:00
Knut Sveidqvist
0e881faa87 Merge pull request #2006 from mermaid-js/dependabot/npm_and_yarn/develop/coveralls-3.1.0
Bump coveralls from 3.0.9 to 3.1.0
2021-04-25 11:06:14 +02:00
Knut Sveidqvist
6dbec06571 Merge pull request #2004 from mermaid-js/dependabot/github_actions/develop/andymckay/labeler-1.0.2
Bump andymckay/labeler from 1.0 to 1.0.2
2021-04-25 11:05:57 +02:00
Knut Sveidqvist
3306b01df9 Merge pull request #2005 from mermaid-js/dependabot/npm_and_yarn/develop/eslint-plugin-prettier-3.4.0
Bump eslint-plugin-prettier from 3.1.2 to 3.4.0
2021-04-25 11:05:39 +02:00
Knut Sveidqvist
598993e592 Merge pull request #2003 from mermaid-js/dependabot/github_actions/develop/Dunning-Kruger/lock-issues-v1.1
Bump Dunning-Kruger/lock-issues from v1 to v1.1
2021-04-25 11:05:24 +02:00
Knut Sveidqvist
d03ef49a3c Merge pull request #2002 from mermaid-js/dependabot/github_actions/develop/actions/upload-artifact-v2.2.3
Bump actions/upload-artifact from v1 to v2.2.3
2021-04-25 11:02:46 +02:00
Knut Sveidqvist
ea108b7733 Merge pull request #2001 from mermaid-js/dependabot/github_actions/develop/actions/checkout-v2.3.4
Update actions/checkout requirement to v2.3.4
2021-04-25 11:02:33 +02:00
Knut Sveidqvist
60bbee9eaf Merge pull request #2000 from mermaid-js/dependabot/github_actions/develop/actions/cache-v2.1.5
Bump actions/cache from v1 to v2.1.5
2021-04-25 11:02:19 +02:00
Knut Sveidqvist
1e316c75ea Merge pull request #1988 from vaceletm/vaceletm-add-tuleap-integration
Add Tuleap in the integration list
2021-04-25 10:59:36 +02:00
Knut Sveidqvist
30c07c429c Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2021-04-25 10:59:05 +02:00
Knut Sveidqvist
b69ad0a3d2 Fix for broken test 2021-04-25 10:59:01 +02:00
Knut Sveidqvist
bad2c82669 Merge pull request #1993 from aniston/patch-1
dateFormat must not have ':'
2021-04-25 10:53:28 +02:00
Knut Sveidqvist
12efdbef01 Merge pull request #1992 from mermaid-js/dependabot/npm_and_yarn/ssri-6.0.2
Bump ssri from 6.0.1 to 6.0.2
2021-04-25 10:52:24 +02:00
Knut Sveidqvist
cf6476c1fc Merge branch 'develop' into vaceletm-add-tuleap-integration 2021-04-25 10:51:08 +02:00
Knut Sveidqvist
f48cb65284 Merge pull request #1991 from SilvM/patch-1
Add joplin to integrations
2021-04-25 10:49:18 +02:00
Knut Sveidqvist
62b8f78937 Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2021-04-25 10:48:39 +02:00
Knut Sveidqvist
1b66b3c3fb Merge pull request #1982 from ahmadnassri/develop
fix: re-write id generator
2021-04-25 10:45:27 +02:00
dependabot[bot]
2075e42c6d Bump coveralls from 3.0.9 to 3.1.0
Bumps [coveralls](https://github.com/nickmerwin/node-coveralls) from 3.0.9 to 3.1.0.
- [Release notes](https://github.com/nickmerwin/node-coveralls/releases)
- [Commits](https://github.com/nickmerwin/node-coveralls/compare/3.0.9...v3.1.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-25 08:45:09 +00:00
dependabot[bot]
cda845f9a6 Bump eslint-plugin-prettier from 3.1.2 to 3.4.0
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 3.1.2 to 3.4.0.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-25 08:44:58 +00:00
Knut Sveidqvist
3edd06548c Merge pull request #1980 from laDanz/patch-1
Update development.md
2021-04-25 10:43:25 +02:00
dependabot[bot]
723976be58 Bump andymckay/labeler from 1.0 to 1.0.2
Bumps [andymckay/labeler](https://github.com/andymckay/labeler) from 1.0 to 1.0.2.
- [Release notes](https://github.com/andymckay/labeler/releases)
- [Commits](https://github.com/andymckay/labeler/compare/1.0...5c59dabdfd4dd5bd9c6e6d255b01b9d764af4414)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-25 08:43:14 +00:00
dependabot[bot]
91e1866d1a Bump Dunning-Kruger/lock-issues from v1 to v1.1
Bumps [Dunning-Kruger/lock-issues](https://github.com/Dunning-Kruger/lock-issues) from v1 to v1.1.
- [Release notes](https://github.com/Dunning-Kruger/lock-issues/releases)
- [Commits](https://github.com/Dunning-Kruger/lock-issues/compare/v1...2372e7b39b61a49bb1980dbd3544837d7d40f01d)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-25 08:43:12 +00:00
dependabot[bot]
42178d5f7b Bump actions/upload-artifact from v1 to v2.2.3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from v1 to v2.2.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v1...ee69f02b3dfdecd58bb31b4d133da38ba6fe3700)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-25 08:43:09 +00:00
dependabot[bot]
cd94bb3f5b Update actions/checkout requirement to v2.3.4
Updates the requirements on [actions/checkout](https://github.com/actions/checkout) to permit the latest version.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](5a4ac9002d)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-25 08:43:07 +00:00
dependabot[bot]
94cc7c8256 Bump actions/cache from v1 to v2.1.5
Bumps [actions/cache](https://github.com/actions/cache) from v1 to v2.1.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v1...1a9e2138d905efd099035b49d8b7a3888c653ca8)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-25 08:43:06 +00:00
Knut Sveidqvist
6ce2de6fb0 Merge pull request #1979 from mmorel-35/other/1977_dependabot
Dependabot configuration
2021-04-25 10:42:41 +02:00
Knut Sveidqvist
f7750e5f04 Style fix for topAxis and added integration test 2021-04-25 10:41:59 +02:00
Knut Sveidqvist
adab9819bd Merge pull request #1954 from nacc/gantt-top-xaxis
Gantt: add top xaxis
2021-04-25 10:16:46 +02:00
Bishop Clark
1304890441 Update flowchart.md
word 'than' confused with pronounced- and spelled-differently 'then'
2021-04-24 16:27:05 -07:00
Mr.Hope
a6dfaa0076 docs: fix a wrong value in mermaidAPI docs 2021-04-24 16:03:32 +08:00
Mr.Hope
97563c1f2a docs: update defaultConfig docs 2021-04-24 15:56:26 +08:00
Mr.Hope
68d0002d6b docs: update setup config 2021-04-24 13:13:49 +08:00
Aniston
9734bfc4a0 dateFormat must not have ':' 2021-04-21 01:29:12 +02:00
dependabot[bot]
646a76570f Bump ssri from 6.0.1 to 6.0.2
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-19 15:38:22 +00:00
SilvM
b8ef76f130 Add joplin to integrations
https://joplinapp.org/markdown/#diagrams
2021-04-19 10:11:01 +08:00
Neil Cuzon
2fd7992b0e Update Configuration.md 2021-04-17 23:06:42 -07:00
Neil Cuzon
2beedb1676 Update n00b-overview.md 2021-04-17 23:05:28 -07:00
Neil Cuzon
cd7657d4d5 Update directives.md 2021-04-17 23:05:12 -07:00
Neil Cuzon
25e2c96ecd Update Configuration.md 2021-04-17 23:02:30 -07:00
Neil Cuzon
8085179499 Update and rename Live-Editor to Configuration.md 2021-04-17 23:00:53 -07:00
Neil Cuzon
0a922752de Create Live-Editor 2021-04-17 20:26:16 -07:00
Neil Cuzon
d58a286e3b Update n00b-gettingStarted.md 2021-04-17 15:55:28 -07:00
Neil Cuzon
8666f4efbf Update n00b-gettingStarted.md 2021-04-16 23:41:27 -07:00
Neil Cuzon
0c60ee5f1d Update README.md 2021-04-16 23:36:15 -07:00
Manuel Vacelet
d75f950ac4 Add Tuleap in the integration list
Tuleap [1] open source agile development hub just added support of mermaid [2]

[1] https://tuleap.org
[2] https://www.tuleap.org/resources/release-notes/tuleap-12-7/
2021-04-16 09:21:47 +02:00
Ahmad Nassri
f78d8b3e5e fix(lint): correct lint errors 2021-04-12 16:28:14 -04:00
Ahmad Nassri
84f664de14 fix(id-generator): re-write generator to allow it to function properly after compiling in cli 2021-04-12 15:56:17 -04:00
laDanz
9eedd6c57a Update development.md
little grammar fix
2021-04-09 14:12:45 +02:00
Matthieu MOREL
7866e761cc Update dependabot.yml
For npm and github-actions
2021-04-07 23:03:18 +02:00
Matthieu MOREL
8af62c37bb Update dependabot.yml 2021-04-07 22:47:15 +02:00
Matthieu MOREL
74c109d6f1 Update pr-labeler.yml to support Dependabot 2021-04-07 20:03:48 +02:00
Matthieu MOREL
c7e05df9c0 Create dependabot.yml 2021-04-07 19:43:07 +02:00
Nishanth Aravamudan
b558d67fcd ganttRenderer: put top axis, if configured at the top 2021-04-01 15:45:36 -05:00
Nishanth Aravamudan
f78d4b13eb gantt: only display topAxis if configured or directive is set 2021-04-01 15:45:36 -05:00
Nishanth Aravamudan
120b89041b gantt: add a toplevel topAxis configuration option 2021-04-01 15:45:36 -05:00
Nishanth Aravamudan
2d0aab223c gantt: add a topAxis directive to allow per diagram configuration 2021-04-01 15:45:36 -05:00
Nishanth Aravamudan
6629061abd gantt/ganttRenderer: add top x-axis for large Gantt charts
I am leveraging a Gantt chart to generate a years-long Roadmap from text.
This is for a large team, so it is quite large. A request I get from my
stakeholders is for a top labelling axis in parallel to the current bottom
one, so that the dates are labelled no matter where we are scrolled on
the screen.
2021-04-01 15:45:36 -05:00
Nishanth Aravamudan
79b30153ba gantt/ganttRenderer: rename xAxis to bottomXAxis 2021-04-01 15:45:36 -05:00
Knut Sveidqvist
1b3971d6da Merge pull request #1967 from mermaid-js/1966_journey_padding
Journet diagrams handling of right margin
2021-04-01 08:52:26 +02:00
Neil Cuzon
0ad932acf6 Update README.md 2021-03-29 03:02:56 -07:00
Neil Cuzon
d719f44e6f Update n00b-syntaxReference.md 2021-03-29 03:01:28 -07:00
Neil Cuzon
96e89f5ce5 Update n00b-syntaxReference.md 2021-03-29 02:56:05 -07:00
Knut Sveidqvist
f86bdd648a Setting better height 2021-03-28 10:17:12 +02:00
Neil Cuzon
bce5cf9400 Update n00b-gettingStarted.md 2021-03-27 18:14:56 -07:00
Neil Cuzon
fe182a7407 Add files via upload 2021-03-27 18:03:20 -07:00
GDFaber
94471c1a1a Merge pull request #1965 from bby-bishopclark/patch-1
Update flowchart.md
2021-03-26 17:21:53 +01:00
bby-bishopclark
c714f3109a Update flowchart.md
verb tense
2021-03-26 09:18:03 -07:00
GDFaber
6cc95f2a4a Merge pull request #1964 from beaudry/patch-1
Fix formatting in the docs
2021-03-26 17:00:25 +01:00
Charles-André Beaudry
3d31c9753a Fix formatting that annoyed me 2021-03-26 11:43:18 -04:00
Knut Sveidqvist
346a6721df Merge pull request #1950 from doble-eme/patch-1
Update development.md
2021-03-24 07:37:50 +01:00
Knut Sveidqvist
d2a3f7de23 Merge pull request #1948 from bglnelissen/patch-1
Typo, unwanted period
2021-03-24 07:37:09 +01:00
Knut Sveidqvist
f47b83235a Merge pull request #1937 from Rutorai/feature/1802_notes_remain_bright
Feature/1802 notes remain bright
2021-03-24 07:36:22 +01:00
Knut Sveidqvist
2d22c3519f Merge pull request #1956 from mermaid-js/1955_text_color_from_classes
Updated selectors in order to change the text color for flowcharts vis classDef statements
2021-03-23 22:07:15 +01:00
Knut Sveidqvist
a18543862f #1995 Adding circle and ellipse 2021-03-23 21:57:15 +01:00
Knut Sveidqvist
30dfbbbd68 #1995 Adding polygons 2021-03-23 21:48:49 +01:00
Knut Sveidqvist
4339fadd50 #199 Handling path as well as rect when htmlLabels are off 2021-03-23 21:33:39 +01:00
Knut Sveidqvist
1ae074d05f #1955 Fix for non htmlLabels 2021-03-23 21:13:52 +01:00
Knut Sveidqvist
84c9dd0dad #1955 Fix for non htmlLabels 2021-03-23 20:51:16 +01:00
Knut Sveidqvist
3209986df1 #1955 Fix for tests 2021-03-23 20:10:58 +01:00
Knut Sveidqvist
87458657f8 #1955 Different selector in order to make it possible to change the text color for flowcharts vis classDef statements 2021-03-23 19:22:10 +01:00
Mario
67a6ed3fb4 Update development.md
replaced and/or with or only for clarity
2021-03-22 12:45:33 -06:00
Mario
f10e267b4c Update development.md
changed sentence to use active voice
2021-03-22 12:42:51 -06:00
Mario
22987a5747 Update development.md
Fixed typos and formatting issues, as well some grammar and consistency changes. I deleted a paragraph with repeated information, merging the contents of two very similar paragraphs into one.
2021-03-22 02:18:30 -06:00
Bastiaan Nelissen
497fe6399f Typo, unwanted period
I am new here, reading about the syntax, but I have noticed an unwanted period.
2021-03-21 21:00:47 +01:00
Knut Sveidqvist
a5cc75c1f7 Merge pull request #1943 from simon-id/patch-1
Fix typo in usage.md
2021-03-18 21:02:49 +01:00
Knut Sveidqvist
c8d4c798ee Merge pull request #1939 from dwinston/patch-1
Document role of semicolon and present alternative
2021-03-18 21:02:30 +01:00
Knut Sveidqvist
90c225e8b2 Merge pull request #1936 from Rutorai/doc/fix_link
Update links to Getting started and Overview
2021-03-18 21:01:45 +01:00
Knut Sveidqvist
b789d44fd6 Merge pull request #1935 from ahmadnassri/develop
fix: correct method calls for deterministic ids
2021-03-18 21:01:19 +01:00
Knut Sveidqvist
f26f4c30c8 Merge pull request #1934 from thilde/patch-1
Update sequenceDiagram.md
2021-03-18 20:59:46 +01:00
Knut Sveidqvist
00848fef21 Merge pull request #1933 from mermaid-js/dependabot/npm_and_yarn/elliptic-6.5.4
Bump elliptic from 6.5.3 to 6.5.4
2021-03-18 20:58:51 +01:00
Knut Sveidqvist
0dfaa13f20 Merge pull request #1931 from Renfay007/patch-1
Create Renfay.md
2021-03-18 20:58:33 +01:00
Knut Sveidqvist
94decf01dc Merge pull request #1919 from dariuswiles/patch-1
Fix typo
2021-03-18 20:57:56 +01:00
Knut Sveidqvist
c269dc822c UPdated default curve for flowcharts to basis 2021-03-15 20:57:07 +01:00
Neil Cuzon
0f50e4d895 Update n00b-overview.md 2021-03-14 23:14:13 -07:00
Neil Cuzon
9a2cb1b6d1 Update README.md 2021-03-14 23:05:34 -07:00
Simon D
31be8e7585 Fix typo in usage.md 2021-03-14 22:03:52 +01:00
Neil Cuzon
6d1e16a0a6 Update README.md 2021-03-14 01:51:42 -08:00
Neil Cuzon
540dc17303 Update n00b-gettingStarted.md 2021-03-14 01:51:36 -08:00
Neil Cuzon
a8028768bc Update README.md 2021-03-14 01:50:14 -08:00
Neil Cuzon
3872c16ed9 Update integrations.md 2021-03-14 01:43:34 -08:00
Knut Sveidqvist
4e7ecb3f30 Merge branch 'master' into develop 2021-03-13 16:45:27 +01:00
Knut Sveidqvist
b9d90339ac Merge branch 'master' of github.com:mermaid-js/mermaid 2021-03-13 16:41:23 +01:00
Neil Cuzon
5f841d98bc Update n00b-gettingStarted.md 2021-03-12 23:43:10 -08:00
Neil Cuzon
9bf5d7e6ba Update n00b-gettingStarted.md 2021-03-12 23:42:01 -08:00
Neil Cuzon
05bd2329c7 Update n00b-gettingStarted.md 2021-03-11 23:46:59 -08:00
Neil Cuzon
1a1de95ff5 Update n00b-gettingStarted.md 2021-03-11 18:09:43 -08:00
Neil Cuzon
7aaf09e92d Update development.md 2021-03-11 14:54:07 -08:00
Knut Sveidqvist
2eb9ee1507 Release build 2021-03-11 21:17:28 +01:00
Knut Sveidqvist
f2196b25f8 Merge branch 'release/8.9.2' 2021-03-11 21:14:58 +01:00
Knut Sveidqvist
0f31471b2e #1940 Fix 2021-03-11 20:57:45 +01:00
Knut Sveidqvist
4395a5f404 Added tests to trigger the xss attack (and fail initially) 2021-03-11 19:51:05 +01:00
Justin Greywolf
407996b00b Merge pull request #1907 from TreyE/better_class_name_literals
Better class name literals
2021-03-11 10:35:10 -08:00
Donny Winston
2bf866052d Document role of semicolon and present alternative
This could perhaps close #1445
2021-03-11 13:33:07 -05:00
Knut Sveidqvist
10b002889c An update to the theme natural 2021-03-11 18:34:51 +01:00
Knut Sveidqvist
b50eea26ed A theme change for neutral and new default value for curve to natural 2021-03-11 18:33:59 +01:00
Neil Cuzon
8dae33e9ba Update Setup.md 2021-03-10 20:24:36 -08:00
Neil Cuzon
ac742bf662 Update development.md 2021-03-10 20:00:14 -08:00
Neil Cuzon
f368908660 Update development.md 2021-03-10 19:53:05 -08:00
Rutorai
76da6598c6 Use of secondary background, textcolor and border for notes when using the dark theme 2021-03-10 21:25:58 +01:00
Ahmad Nassri
395bf25e1a style: correct lint errors 2021-03-10 13:50:49 -05:00
Rutorai
3a3111ab91 Update links to Getting started and Overview 2021-03-10 18:40:33 +01:00
Ahmad Nassri
ba8b49c703 fix: correct method calls for deterministic ids
Fixes #1870
2021-03-10 11:39:51 -05:00
Neil Cuzon
fa1e69c1ec Update usage.md 2021-03-09 05:48:28 -08:00
Neil Cuzon
dbc1015d18 Update usage.md 2021-03-09 02:41:45 -08:00
Tyler Hildebrandt
bb3df31c86 Update sequenceDiagram.md 2021-03-08 22:24:03 -08:00
dependabot[bot]
df9129364a Bump elliptic from 6.5.3 to 6.5.4
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-09 01:42:28 +00:00
Renfay007
38049c4bab Create Renfay.md 2021-03-07 12:33:42 +03:30
Neil Cuzon
9fafe50693 Update n00b-gettingStarted.md 2021-03-06 01:59:16 -08:00
Neil Cuzon
190dfe6706 Update Tutorials.md 2021-03-06 00:33:21 -08:00
Neil Cuzon
835508a6b2 Update Setup.md 2021-03-06 00:30:53 -08:00
Neil Cuzon
b20569a3fb Update Setup.md 2021-03-06 00:19:40 -08:00
Neil Cuzon
feb1bb4fa3 Update n00b-gettingStarted.md 2021-03-05 22:49:31 -08:00
Neil Cuzon
fecb80665b Update gantt.md 2021-03-04 18:48:26 -08:00
Neil Cuzon
23a6137624 Update n00b-overview.md 2021-03-04 04:52:42 -08:00
Neil Cuzon
a7e838e001 Update n00b-gettingStarted.md 2021-03-04 04:52:23 -08:00
Neil Cuzon
8f2b51c574 Update n00b-gettingStarted.md 2021-03-04 04:48:58 -08:00
Neil Cuzon
0b4d42eb27 Update gantt.md 2021-03-03 22:33:17 -08:00
Neil Cuzon
2e108b7875 Update n00b-gettingStarted.md 2021-03-02 16:07:34 -08:00
Neil Cuzon
1d5228b4e3 Add files via upload 2021-03-02 16:05:42 -08:00
Neil Cuzon
f9251271fb Update n00b-gettingStarted.md 2021-03-02 16:04:44 -08:00
Neil Cuzon
7472a8ebc7 Add files via upload 2021-03-02 15:53:24 -08:00
Neil Cuzon
f2a6b6c6b6 Update n00b-gettingStarted.md 2021-03-01 16:24:48 -08:00
Trey Evans
438884b866 Add class name literals, with less conflicts. 2021-03-01 14:14:23 -05:00
Knut Sveidqvist
c583386175 Merge pull request #1921 from mermaid-js/1920_curve_for_flowcharts
1920 curve for flowcharts
2021-02-28 12:48:16 +01:00
Knut Sveidqvist
749f16d875 Lint fix 2021-02-28 11:44:51 +01:00
Knut Sveidqvist
82618f0184 #1920 Making flocharts adhere to the curve configuration also changing the default configuration for grpah and flowchart 2021-02-28 11:29:56 +01:00
Knut Sveidqvist
cc1eb5dd98 Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2021-02-28 10:28:50 +01:00
Knut Sveidqvist
d66727cb35 Render test for requirement diagrams and updated showcase diagrams 2021-02-28 10:28:31 +01:00
Darius Wiles
865aeaad12 Fix typo
"and id and" to "an id and"
2021-02-27 14:19:02 -08:00
Knut Sveidqvist
0c05f998e9 Merge pull request #1915 from mermaid-js/1906_gantt_font
1906 gantt font
2021-02-27 14:05:46 +01:00
Knut Sveidqvist
4524f8413f Merge pull request #1916 from mermaid-js/1903_journey_config
1903 journey config
2021-02-27 13:56:39 +01:00
Knut Sveidqvist
903054e97a Rebuilt dist after merge conflicts 2021-02-27 13:46:54 +01:00
Knut Sveidqvist
623056fe20 Reverting unintentional config change 2021-02-27 13:24:54 +01:00
Knut Sveidqvist
f2e75e730b Merge branch '1903_journey_config' into 1906_gantt_font 2021-02-27 13:09:23 +01:00
Knut Sveidqvist
5e8b8ab3e3 Merge branch '1903_journey_config' into 1906_gantt_font 2021-02-27 13:08:35 +01:00
Knut Sveidqvist
b1d21b0e3f Merge branch 'develop' into 1906_gantt_font 2021-02-27 13:07:02 +01:00
Knut Sveidqvist
184351c932 Lint fix, removed unsued variable 2021-02-27 13:05:12 +01:00
Knut Sveidqvist
c0d0e80fe0 Merge branch 'develop' into 1903_journey_config 2021-02-27 13:03:55 +01:00
Knut Sveidqvist
0646b43144 Merge pull request #1911 from Rutorai/bug/1651_milestone_incorrect_vertical_position
The vertical position was wrongly based on index in sorted array.
2021-02-27 12:52:30 +01:00
Knut Sveidqvist
b477ffd08f Merge pull request #1913 from mermaid-js/revert-1912-patch-1
Revert "#1317 : Add state id to state diagram.  Move description below separa…"
2021-02-27 10:52:31 +01:00
Knut Sveidqvist
ef63a0661b Revert "#1317 : Add state id to state diagram. Move description below separa…" 2021-02-27 10:51:36 +01:00
Knut Sveidqvist
1293850a09 Merge pull request #1912 from hopoverflow/patch-1
#1317 : Add state id to state diagram.  Move description below separa…
2021-02-27 10:39:37 +01:00
Knut Sveidqvist
300d405621 Merge pull request #1908 from MetalBlueberry/patch-1
Fix typo on examples
2021-02-27 10:35:28 +01:00
Knut Sveidqvist
f5d1a1753d Merge pull request #1899 from kriskhaira/bug/fix-broken-github-icon-path
Fix broken image path
2021-02-27 10:35:07 +01:00
Knut Sveidqvist
bbdeec5a50 Merge branch 'master' into develop 2021-02-27 10:29:33 +01:00
Knut Sveidqvist
30b265a425 Removed configuration not used 2021-02-27 10:28:15 +01:00
Knut Sveidqvist
62e196e802 Merge pull request #1910 from JoshSharpe/feature/requirement_diagram
Feature/1909_requirement diagram
2021-02-27 10:26:22 +01:00
hopoverflow
7cc7a8f47c #1317 : Add state id to state diagram. Move description below separator.
Fix issue #1317
2021-02-26 13:16:00 -08:00
Rutorai
b9859a1e57 The vertical position was based on index in sorted array. It must be done by stored order 2021-02-26 07:58:23 +01:00
Josh Sharpe
9c6f50af41 Remove accidental change to package.json. 2021-02-25 21:43:28 -05:00
Josh Sharpe
45518580a4 Small bug fix with requirement diagram naming. 2021-02-25 21:25:38 -05:00
Victor
f6d4686898 Fix typo on examples 2021-02-25 22:11:51 +01:00
Knut Sveidqvist
021bc5f011 Making the font size being configurable and addting the ability set the section font size 2021-02-25 10:06:13 +01:00
Josh Sharpe
55251e1024 First pass at a requirement diagram. 2021-02-23 23:27:13 -05:00
Knut Sveidqvist
693de2996a #1903 Use central configuration tools 2021-02-23 20:56:01 +01:00
Kris Khaira
dabe7a3b55 Fix broken image path 2021-02-21 17:18:46 +08:00
Knut Sveidqvist
be95b93a2d Release 8.9.1 2021-02-18 21:41:01 +01:00
Knut Sveidqvist
73ce47675c Merge branch 'release/8.9.1' 2021-02-18 21:34:54 +01:00
Knut Sveidqvist
67d1368730 Built files 2021-02-18 20:56:05 +01:00
Knut Sveidqvist
d923b4df53 Merge branch 'develop' into release/8.9.1 2021-02-18 20:50:25 +01:00
Knut Sveidqvist
ba3e0c4c35 Merge pull request #1896 from mermaid-js/revert-1877-literal_class_names
Revert "Add class name literals."
2021-02-18 20:37:07 +01:00
Knut Sveidqvist
9677aaa715 Revert "Add class name literals." 2021-02-18 20:26:58 +01:00
Knut Sveidqvist
2e3b93b7f5 Merge branch '8.10.0' 2021-02-18 20:09:07 +01:00
Knut Sveidqvist
229f5b0c51 Updated rendering test 2021-02-18 19:52:50 +01:00
Knut Sveidqvist
adac0bb388 Updating version number to 8.9.1 2021-02-18 19:22:02 +01:00
Knut Sveidqvist
745f3854d4 Upadting version number 2021-02-18 19:13:30 +01:00
Knut Sveidqvist
4a594ed115 Merge pull request #1885 from zepatrik/improve-special-character-docs
Improve docs around escape characters
2021-02-18 18:57:28 +01:00
zepatrik
dc14b2f9fe Improve docs around escape characters 2021-02-09 11:01:27 +01:00
Knut Sveidqvist
1f523ee843 Merge pull request #1879 from harshilparmar/enhancement/standardized_naming
Enhancement/standardized naming
2021-02-07 10:07:59 +01:00
Harshil Parmar
0728533676 Merge branch 'develop' into enhancement/standardized_naming 2021-02-06 16:04:14 +05:30
harshilparmar
7019a1149d Change logger to log 2021-02-06 15:56:05 +05:30
Knut Sveidqvist
b4b2a5b5a6 Merge pull request #1880 from Narretz/patch-1
docs: fix broken link
2021-02-04 18:58:17 +01:00
Knut Sveidqvist
1ec21662a9 Merge pull request #1877 from TreyE/literal_class_names
Add class name literals.
2021-02-04 18:56:26 +01:00
Knut Sveidqvist
560c487d15 Merge pull request #1861 from ilmari-lauhakangas/patch-1
Bump node-sass version to 5.0.0
2021-02-04 18:53:29 +01:00
harshilparmar
edd7bc7197 remove eslint comment 2021-02-03 16:01:32 +05:30
Martin Staffa
98fbef7c24 docs: fix broken link 2021-02-02 16:42:13 +01:00
harshilparmar
8b191f038e resolve eslint issue 2021-02-02 13:02:55 +05:30
harshilparmar
eb206cb687 Standardized naming in the log functionality 2021-02-02 08:33:44 +05:30
Trey Evans
b974b3df3e Add class name literals. 2021-02-01 13:21:49 -05:00
Knut Sveidqvist
15e412bd4e Merge pull request #1875 from mermaid-js/1874_Fix_bug_where_org_conf_is_tainted
#1874 Protecting the original configuration
2021-01-28 23:00:37 +01:00
Knut Sveidqvist
f1fc0df52a Merge branch 'develop' into 1874_Fix_bug_where_org_conf_is_tainted 2021-01-28 22:48:50 +01:00
Knut Sveidqvist
c05e3f8fe1 Rename to E2E 2021-01-28 22:39:17 +01:00
Knut Sveidqvist
a0c2ffaac4 Adding cypress test from github 2021-01-28 22:36:18 +01:00
Knut Sveidqvist
68a5f36f25 Test commit 2021-01-28 21:29:40 +01:00
Knut Sveidqvist
bb42f78bef Tets commit 2021-01-28 20:57:21 +01:00
Knut Sveidqvist
562390dbb6 Test commit 2021-01-28 20:55:58 +01:00
Knut Sveidqvist
1b9d9fe12c #1874 #1865 Fix for regression issue - flowchart 2021-01-28 20:51:11 +01:00
Knut Sveidqvist
fc5693067c #1874 #1865 Fix for rgression issue 2021-01-28 07:52:17 +01:00
Knut Sveidqvist
177cd30854 #1874 Protecting the original configuration 2021-01-27 22:23:33 +01:00
Knut Sveidqvist
2e5771b9e8 Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2021-01-27 21:24:53 +01:00
GDFaber
757bc94a23 Merge pull request #1864 from renanlecaro/patch-1
Added my plugin for google docs
2021-01-25 01:39:12 +01:00
GDFaber
7d48890f76 Merge pull request #1868 from mermaid-js/bug/1620_arrow_heads_for_all_node_shapes
Fix arrow heads to be visible for all flowchart node shapes
2021-01-24 22:15:36 +01:00
Marc Faber
1514ef18ec #1620 Fix arrow heads to be visible for all flowchart node shapes 2021-01-24 21:33:15 +01:00
Knut Sveidqvist
a6cfb315f2 Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2021-01-24 08:33:03 +01:00
Knut Sveidqvist
9ec76f7ecb #1865 Additional styling fixes 2021-01-24 08:31:16 +01:00
Marc Faber
03edd00014 #1865 Making title color woitk when htmnlLabels are used (separated css rules for cluster text and span) 2021-01-23 22:36:20 +01:00
Marc Faber
0c724d1a88 fix integration tests 2021-01-23 21:48:36 +01:00
Marc Faber
bf8e7a3590 #1783 Apply styles to all types of flowchart node shapes 2021-01-23 20:17:36 +01:00
Knut Sveidqvist
7cb46ffa18 Merge branch 'master' into develop 2021-01-23 16:10:07 +01:00
Knut Sveidqvist
d9293afd35 Merge remote-tracking branch 'origin/develop' into develop 2021-01-23 16:08:54 +01:00
Knut Sveidqvist
ea9a893c24 #1865 Making title color woitk when htmnlLabels are used 2021-01-23 16:07:25 +01:00
Neil Cuzon
0619059047 Merge pull request #1863 from NeilCuzon/develop
Cleaned up various files and expanded n00b-syntax.md
2021-01-22 15:05:39 -08:00
Renan LE CARO
f8c6fd9fac Added my plugin for google docs
The plugin is free and open source at https://github.com/renanlecaro/mermaid-gdocs 
It lets you create a diagram, insert it in any google document, then edit it later.
It uses the alt description of the image to store the source of the diagram. 
It hotlinks to the latest version of mermaid, to avoid having to update it every time a new version is published
2021-01-22 12:36:46 +01:00
Neil Cuzon
1136834d63 Update README.md 2021-01-22 00:11:58 -08:00
Neil Cuzon
277915407e Update theming.md 2021-01-21 23:44:35 -08:00
Neil Cuzon
a2b2e4599d Update n00b-syntaxReference.md 2021-01-21 23:41:03 -08:00
Neil Cuzon
a9b1a6daaf Update directives.md 2021-01-21 23:29:22 -08:00
Neil Cuzon
ebf6fca040 Update _sidebar.md 2021-01-21 23:16:34 -08:00
Neil Cuzon
f9273d3692 Delete liveEditorOptions.png 2021-01-21 23:07:42 -08:00
ilmari-lauhakangas
981bfc9b39 Update yarn.lock 2021-01-21 22:57:02 +02:00
Knut Sveidqvist
e70b32e14d Added example showing async, open arrows in the docs 2021-01-21 21:28:47 +01:00
Knut Sveidqvist
9a928295fa Merge remote-tracking branch 'origin/master' 2021-01-21 21:22:14 +01:00
Knut Sveidqvist
22da3bdba7 Dev fix 2021-01-21 21:20:35 +01:00
Knut Sveidqvist
89c8b3e3dd Build fix 2021-01-21 21:18:38 +01:00
Knut Sveidqvist
c60734cc5f Update sequenceDiagram.md 2021-01-21 21:13:15 +01:00
Ashish Jain
1daa259c98 Update docs to Release 8.9.0 version 2021-01-21 21:02:05 +01:00
Ashish Jain
3c5da00230 Merge branch 'master' into develop 2021-01-21 19:34:21 +01:00
Ashish Jain
98c30799a8 Merge pull request #1857 from Eji4h/patch-1
docs: update wrong event name in Concurrency section.
2021-01-21 19:21:25 +01:00
ilmari-lauhakangas
5b605bb6db Bump node-sass version to 5.0.0
https://github.com/sass/node-sass/releases/tag/v5.0.0

The most important change:

New node-gyp version that supports building with Python 3
2021-01-21 18:41:37 +02:00
Neil Cuzon
a53518fd0e Update README.md 2021-01-21 00:37:26 -08:00
Neil Cuzon
8014116bda Update README.md 2021-01-21 00:34:18 -08:00
Neil Cuzon
466e725afd Update README.md 2021-01-20 23:44:46 -08:00
Ejiah
520a9b8b0d docs: update wrong event name in Concurrency section. 2021-01-17 04:05:59 +07:00
Knut Sveidqvist
071fd8b569 Merge pull request #1854 from mermaid-js/1528_sequence_async_arrows
#1528 Adding async arrow type in sequence diagrams
2021-01-12 21:40:02 +01:00
Knut Sveidqvist
64deea0d99 Merge pull request #1851 from jayenashar/patch-1
Fix for ER diagram docs.
2021-01-12 21:38:01 +01:00
Knut Sveidqvist
a8fd8053f4 Merge pull request #1852 from HerbCaudill/patch-1
usage.md: fix case for `securityLevel` parameter
2021-01-12 21:37:38 +01:00
Knut Sveidqvist
000b880023 Merge pull request #1853 from BastianZim/docs-new-license-year
Update license year
2021-01-12 21:37:16 +01:00
BastianZim
d42cb40ae3 Add 2021 2021-01-12 20:36:59 +01:00
Knut Sveidqvist
5d24a2b7d9 #1528 Adding async arrow type in sequence diagrams 2021-01-11 23:09:37 +01:00
Knut Sveidqvist
b2f52baa99 Adding buy me a coffe button 2021-01-11 21:55:23 +01:00
Herb Caudill
081de6bed8 usage.md: fix case for securityLevel parameter 2021-01-11 13:47:49 +01:00
Jayen Ashar
f47450846c Fix for ER diagram docs.
issue in master but not develop
2021-01-11 18:44:32 +11:00
GDFaber
2026be325f Merge pull request #1840 from coxy1989/patch-1
Update n00b-gettingStarted.md
2021-01-06 16:23:15 +01:00
Jamie Cox
f6bc3cf998 Update n00b-gettingStarted.md 2020-12-23 19:59:22 +00:00
Knut Sveidqvist
5ec30ac35c Fix for ER diagram docs. 2020-12-23 10:34:50 +01:00
Knut Sveidqvist
e08ae8ed4a Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2020-12-17 20:50:41 +01:00
Knut Sveidqvist
fc67edb44d Merge branch 'designsforhealth-develop' into develop 2020-12-17 20:49:52 +01:00
Ashish Jain
3e042f63e6 Merge pull request #1822 from ileler/develop
Fix for when the br tag is used
2020-12-17 20:49:26 +01:00
Knut Sveidqvist
aac78cef0a Updated build 2020-12-17 20:46:55 +01:00
Knut Sveidqvist
1c0b167c95 Merge branch 'develop' of https://github.com/designsforhealth/mermaid into designsforhealth-develop 2020-12-17 20:44:23 +01:00
Ashish Jain
f435152c88 Merge pull request #1812 from mmorel-35/1681_classDb_click_function_arguments
Arguments handling for classDb functions 2/2
2020-12-17 20:42:24 +01:00
Ashish Jain
4da5df9c9b Merge pull request #1823 from Yash-Singh1/patch-1
Removed 0% on pie chart
2020-12-17 20:39:48 +01:00
Ashish Jain
36589ad832 Merge branch 'develop' of https://github.com/knsv/mermaid into develop 2020-12-17 20:33:45 +01:00
Ashish Jain
032d8781dc Updated the click_security_loose test case for classDiagram and classDiagram-v2 for new callback function arg 2020-12-17 20:26:12 +01:00
Knut Sveidqvist
2ec7ef8acd Merge pull request #1829 from tenuki/patch-1
Fix issue in python sample source in Tutorials.md
2020-12-17 20:24:01 +01:00
Knut Sveidqvist
d4b1eefe70 Merge pull request #1831 from mupple/patch-1
Fix broken link to Tutorials in n00b-overview.md
2020-12-17 20:22:21 +01:00
Knut Sveidqvist
ddea5b57a5 Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2020-12-17 19:59:50 +01:00
Knut Sveidqvist
49fed04bd2 Merge branch 'mmorel-35-1681__click_function_arguments' into develop 2020-12-17 19:59:10 +01:00
Knut Sveidqvist
9c36b2bef7 Added e2e test for the new argument handling for flowcharts and graph 2020-12-17 19:58:25 +01:00
Knut Sveidqvist
7d394896e4 Merge pull request #1825 from mermaid-js/dependabot/npm_and_yarn/ini-1.3.7
Bump ini from 1.3.5 to 1.3.7
2020-12-17 18:59:52 +01:00
mupple
5a0122cec5 Fix broken link to Tutorials in n00b-overview.md 2020-12-16 10:50:07 +11:00
david weil
bdb2afb1dc Fix issue in python sample source in Tutorials.md
Updated python sample source in Tutorials to make it work. Before this change problem was:

```
C:\Users\user>python mermaid.py
Traceback (most recent call last):
  File "mermaid.py", line 3, in <module>
    graphbytes = graph.encode("ascii")
NameError: name 'graph' is not defined
```
2020-12-13 19:10:06 -03:00
Johnny Walker
0fe1fb76d1 test: add tests for sequence diagram text wrap updates 2020-12-12 02:01:40 -05:00
Johnny Walker
2a5b029ecc Merge branch 'bug/fix_note_overflow' into develop 2020-12-11 21:28:41 -05:00
ileler
8aa030539b fix e2e error 2020-12-12 09:52:39 +08:00
Johnny Walker
8ed7d12a08 build: update dist files 2020-12-11 20:43:24 -05:00
Johnny Walker
469a726285 fix: calculate text dimensions after wrapping message text 2020-12-11 20:43:12 -05:00
Johnny Walker
0103da13f0 fix: do not alter line breaks when drawing text 2020-12-11 20:43:12 -05:00
Johnny Walker
c3ce525c6c fix: exclude text with line breaks when parsing wrap setting 2020-12-11 20:43:12 -05:00
Johnny Walker
939a96b314 feat: add text wrapping examples to dev sequence diagram 2020-12-11 20:43:12 -05:00
dependabot[bot]
b0c5c24d06 Bump ini from 1.3.5 to 1.3.7
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-11 03:14:23 +00:00
Yash Singh
2b61d131dc Removed 0% on pie chart 2020-12-10 08:53:04 -08:00
Matthieu MOREL
e7db2a63b9 improve test coverage 2020-12-10 12:31:22 +01:00
Matthieu MOREL
d5d78a1018 remove space 2020-12-10 11:10:05 +01:00
Matthieu MOREL
fc3c05692f link or click must both work 2020-12-10 10:59:34 +01:00
Matthieu MOREL
1fdd037132 test link target 2020-12-10 10:57:58 +01:00
Matthieu MOREL
63b404be9f wrong index 2020-12-10 09:46:22 +01:00
Matthieu MOREL
aaf031f501 Remove space 2020-12-10 09:44:45 +01:00
ileler
a855f4bc67 Fix for when the br tag is used 2020-12-10 16:42:37 +08:00
Matthieu MOREL
85c8b2fdc3 support old syntax 2020-12-10 09:37:00 +01:00
Matthieu MOREL
b97e71e83e Support old and new syntax 2020-12-10 09:35:46 +01:00
Matthieu MOREL
44a744752f remove useless whitespace 2020-12-10 09:01:09 +01:00
Matthieu MOREL
02fec31c92 fix indentation 2020-12-10 08:57:23 +01:00
Matthieu MOREL
93f15a507b Handle old and new syntax 2020-12-10 08:50:16 +01:00
Knut Sveidqvist
7cc2daa696 Merge pull request #1801 from NitinLodha2812/patch-1
Update README.md
2020-12-09 19:55:35 +01:00
Knut Sveidqvist
46aff7aabf Merge pull request #1818 from NateChurch/patch-1
Typo in Readme.md
2020-12-09 19:18:25 +01:00
NateChurch
65a4e664e5 Typo in Readme.md
Just fixed a typo.
2020-12-09 10:41:55 -06:00
Matthieu MOREL
62768cd617 Wording : node instead of task 2020-12-08 09:56:44 +01:00
Matthieu MOREL
f03efefac5 Wording : node instead of task in Class Diagram 2020-12-08 08:44:55 +01:00
Matthieu MOREL
7f22d155f2 Update documentation 2020-12-06 22:48:01 +01:00
Matthieu MOREL
619b9f230f missing call keyword 2020-12-06 22:40:22 +01:00
Matthieu MOREL
3e8b6dd1c1 change argument from tooltip to functionArgs 2020-12-06 22:33:32 +01:00
Matthieu MOREL
0b8561711b align click on href or function syntax with other diagrams 2020-12-06 22:23:13 +01:00
Matthieu MOREL
5cb04828d2 missing brackets for callback functions in documentation 2020-12-06 21:33:53 +01:00
Matthieu MOREL
2d100197c8 rollback changes on class Diagram 2020-12-06 15:23:05 +01:00
Matthieu MOREL
4debc2dffb partial rollback on config factorization 2020-12-06 14:58:22 +01:00
Matthieu MOREL
b1bb2dce16 config factorization 2020-12-06 14:44:40 +01:00
Matthieu MOREL
1940b63237 Call setTooltip only when you need it 2020-12-06 14:37:12 +01:00
Matthieu MOREL
5ca629ec90 parenthesis are mandatory 2020-12-06 14:14:04 +01:00
Matthieu MOREL
e7852ea54e update diagrams and syntax and examples
add test for multiple arguments
2020-12-06 14:04:46 +01:00
Matthieu MOREL
40cf4dfee4 missing keywords 2020-12-06 13:49:42 +01:00
Matthieu MOREL
1a2c1252f0 update doc and integration tests 2020-12-06 13:43:42 +01:00
Matthieu MOREL
95ee87f771 add keywords href and call for urls and functions 2020-12-06 13:23:17 +01:00
Matthieu MOREL
84697eb9b0 6th rank instead of 7 2020-12-06 13:09:11 +01:00
Matthieu MOREL
884f6b3571 callback with tooltip without arguments 2020-12-06 13:02:24 +01:00
Matthieu MOREL
aa9ecde7c8 prefix with href 2020-12-06 12:53:46 +01:00
Matthieu MOREL
1ead98b999 click event or link 2020-12-06 12:51:19 +01:00
Matthieu MOREL
2a14039733 exepect ids as first parameter 2020-12-06 11:12:14 +01:00
Matthieu MOREL
568962dadf interaction test update 2020-12-06 11:03:24 +01:00
Matthieu MOREL
7126d215b0 format 2020-12-06 10:45:13 +01:00
Matthieu MOREL
027342bba0 missing closing bracket 2020-12-06 10:38:26 +01:00
Matthieu MOREL
7b953ffefb Arguments handling for flow chart functions 2020-12-06 10:27:54 +01:00
Knut Sveidqvist
d8e57d1c01 Merge branch 'master' into develop 2020-12-05 15:05:06 +01:00
Knut Sveidqvist
56f3f49f15 Merge remote-tracking branch 'origin/master' 2020-12-05 14:56:35 +01:00
Knut Sveidqvist
f8a45e4963 Merge branch 'release/8.8.4' 2020-12-05 14:51:21 +01:00
Knut Sveidqvist
740a86609f Mermaid version 8.8.4 2020-12-05 14:47:45 +01:00
Knut Sveidqvist
d6b2bcf0d2 v8.8.4 2020-12-05 14:43:29 +01:00
Knut Sveidqvist
c3209e7738 Removed a 2020-12-03 18:25:46 +01:00
Knut Sveidqvist
3b55a19119 Merge pull request #1805 from BastianZim/patch-1
Update copyright years
2020-12-03 18:24:12 +01:00
Bastian Zimmermann
8ed7d22010 Updated copyright years
Changed 2018 - 2020
2020-12-02 16:49:09 +01:00
Nitin Lodha
6542134e04 Update README.md 2020-12-01 09:38:07 +05:30
Knut Sveidqvist
96ac13cdac Merge branch 'master' into develop 2020-11-26 19:25:57 +01:00
Knut Sveidqvist
d409006a44 Merge remote-tracking branch 'origin/develop' into develop 2020-11-26 19:22:26 +01:00
Ashish Jain
ec418f98c0 #1791 Update docs for Python integration with Mermaid 2020-11-26 19:18:12 +01:00
Knut Sveidqvist
2e7452f067 Lint fix 2020-11-26 19:15:45 +01:00
Ashish Jain
ddc31870bf Merge pull request #1786 from JiChao99/patch-1
remove classDiagram duplicate options
2020-11-26 19:10:22 +01:00
Knut Sveidqvist
77d6048005 #1771 Fixed broken link 2020-11-26 19:09:39 +01:00
Knut Sveidqvist
8748e661e8 Merge pull request #1796 from kciter/bug/fix_markdown_bug
Fixed markdown error in Relationship Syntax
2020-11-26 18:59:31 +01:00
Knut Sveidqvist
a50086ddec Merge pull request #1789 from mermaid-js/dependabot/npm_and_yarn/highlight.js-9.18.5
Bump highlight.js from 9.18.1 to 9.18.5
2020-11-26 18:57:53 +01:00
Knut Sveidqvist
465fa571d2 Merge pull request #1787 from julianbei/feature/727_deterministic_svg_ids
Add different id generators
2020-11-26 18:56:58 +01:00
Lee Sun-Hyoup
d72ba16664 Fixed markdown error in Relationship Syntax 2020-11-26 14:25:22 +09:00
dependabot[bot]
efd14f4c24 Bump highlight.js from 9.18.1 to 9.18.5
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 9.18.1 to 9.18.5.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/9.18.5/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/9.18.1...9.18.5)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-25 00:41:08 +00:00
Julian Amelung
c472024921 Add test cases for utils.initIdGeneratior 2020-11-23 23:54:00 +01:00
Julian Amelung
35cd3918df Add different id generators 2020-11-23 23:05:41 +01:00
alec ji
a2a0851978 remove classDiagram duplicate options
remove classDiagram `#Multiplicity on relations` duplicate options
2020-11-21 02:42:27 +00:00
Knut Sveidqvist
b329679d2d Merge pull request #1773 from tomatoman25/bug/1759_state_notes
Changed regex for multi-line state notes
2020-11-19 17:48:53 +01:00
Knut Sveidqvist
39657e6537 Merge pull request #1784 from gwatts/patch-1
Add Doscy to list of integrations
2020-11-19 17:48:02 +01:00
Knut Sveidqvist
ee99d15df4 Merge pull request #1772 from glensc/babel-dev-dep
Move babel-eslint to devDependencies
2020-11-19 17:47:29 +01:00
Gareth Watts
813b993819 Add Doscy to list of integrations
Docsy includes support for Mermaid in the theme.
2020-11-18 21:57:12 -06:00
GDFaber
f62189b381 Merge pull request #1781 from mermaid-js/bug/1751_flowchart_subgraph_styles
Apply style settings to subgraphs in "flowchart" diagrams
2020-11-18 00:42:30 +01:00
GDFaber
dfa306c8c2 Merge pull request #1782 from mermaid-js/bug/1742_replace_console_log_with_logger_info
Narrow down console logging when flowchart subgraphs are added
2020-11-18 00:40:29 +01:00
GDFaber
df7e90f4b5 Merge pull request #1780 from manicki/bug/typo_lagom_explanation
Fixed typo in the docs
2020-11-18 00:39:54 +01:00
Marc Faber
55532c00b4 Revert updates on integration tests due to failing PR tests 2020-11-18 00:34:02 +01:00
Marc Faber
7ea18f5462 #1742 narrow down console logging when flowchart subgraphs are added 2020-11-18 00:02:10 +01:00
Marc Faber
a16bbb8046 #1751 apply style settings to subgraphs in "flowchart" diagrams 2020-11-17 23:18:11 +01:00
Leszek Manicki
1d30241871 Fixed typo in the docs 2020-11-17 20:40:16 +01:00
Marc Faber
a0e5ec1d13 Merge branch 'bug/1423_ignore_build_files_in_dist' into develop 2020-11-17 15:50:25 +01:00
Marc Faber
830620740a Unix line endings 2020-11-17 15:44:00 +01:00
GDFaber
d34e8c4336 Merge pull request #1777 from mermaid-js/bug/1423_ignore_build_files_in_dist
ignore build files in dist folder
2020-11-17 14:54:45 +01:00
Marc Faber
2370531e75 #1423 ignore build files in dist folder 2020-11-17 14:48:48 +01:00
Marc Faber
06f74a8c15 updated integration tests 2020-11-17 14:34:48 +01:00
GDFaber
e0ad5eaf5e Merge pull request #1776 from mermaid-js/bug/1767_add_sansserif_to_default_fonts
Add sans-serif to default font settings
2020-11-17 13:11:35 +01:00
Marc Faber
067f356010 #1767 Add sans-serif to default font settings 2020-11-17 11:36:34 +01:00
Neil Cuzon
555a38b819 Update mermaidAPI.js 2020-11-15 13:52:21 -08:00
Neil Cuzon
88f2ede8fe Update usage.md 2020-11-15 13:51:45 -08:00
Neil Cuzon
9b2f61d778 Update flowchart.md 2020-11-15 13:44:47 -08:00
Marc Faber
0801047fe6 added a file for graph<->flowchart comparisons to dist folder 2020-11-15 19:22:55 +01:00
Neil Cuzon
f8b8d03e15 Add files via upload 2020-11-15 07:57:22 -08:00
Neil Cuzon
f4270a0d75 Delete GitHub-Mark-32px.png 2020-11-15 07:57:08 -08:00
Neil Cuzon
0ab629e32d Add files via upload 2020-11-15 07:56:15 -08:00
Neil Cuzon
4259611726 Add files via upload 2020-11-15 07:34:36 -08:00
Neil Cuzon
24e2429fc0 Add files via upload 2020-11-15 07:34:05 -08:00
Neil Cuzon
ebf046ebc0 Delete GitHub-Mark-32px.png.png 2020-11-15 07:33:31 -08:00
Neil Cuzon
0155171c0d Add files via upload 2020-11-15 07:24:37 -08:00
Neil Cuzon
5a92b77560 Update flowchart.md 2020-11-15 07:19:13 -08:00
Marc Faber
0604b1a822 Merge branch 'forkgroup-docs/update_edit_this_page' into develop 2020-11-15 16:15:14 +01:00
Marc Faber
d54f3afe25 Merge branch 'docs/update_edit_this_page' of https://github.com/forkgroup/mermaid into forkgroup-docs/update_edit_this_page 2020-11-15 16:13:42 +01:00
Neil Cuzon
acc2392c3d Update mermaidAPI.js 2020-11-15 05:00:54 -08:00
Neil Cuzon
3044c63773 Update usage.md 2020-11-15 04:51:33 -08:00
Neil Cuzon
f963238a75 Update mermaidAPI.js 2020-11-15 03:45:20 -08:00
Neil Cuzon
46d41ba67a Update n00b-gettingStarted.md 2020-11-15 03:25:02 -08:00
Neil Cuzon
00921ce713 Add files via upload 2020-11-15 03:22:44 -08:00
Neil Cuzon
55073bd891 Add files via upload 2020-11-15 03:19:33 -08:00
Neil Cuzon
2b4ceda937 Update n00b-gettingStarted.md 2020-11-15 03:19:28 -08:00
Neil Cuzon
93ddc0b4f5 Delete liveEditorOptions.png 2020-11-15 03:14:49 -08:00
Neil Cuzon
a74fc5aac7 Delete n00b-Confluence1.png 2020-11-15 03:14:38 -08:00
Neil Cuzon
e1032498e2 Delete n00b-Confluence2.png 2020-11-15 03:14:32 -08:00
Neil Cuzon
f43e07bc68 Delete n00b-Confluence3.png 2020-11-15 03:14:25 -08:00
Neil Cuzon
e61207ab41 Delete n00b-Confluence4.png 2020-11-15 03:14:18 -08:00
Neil Cuzon
0f87b1b5da Delete n00b-liveEditor.png 2020-11-15 03:14:11 -08:00
Neil Cuzon
6032e33290 Update _sidebar.md 2020-11-15 03:07:01 -08:00
Neil Cuzon
037cba9a13 Update n00b-gettingStarted.md 2020-11-15 02:48:45 -08:00
sy-records
cb41569a5a feat: Auto generation of Edit this Page 2020-11-15 10:28:47 +08:00
sy-records
6167f5d7b4 chore: update resources links and fix typo 2020-11-15 10:27:08 +08:00
GDFaber
b50a453fe0 Merge pull request #1764 from AloisMahdal/doc_df_table
Re-align gantt chart dateFormat table with spaces
2020-11-13 23:25:34 +01:00
Anthony
52d7f02dcb Changed regex for multi-line state notes 2020-11-13 14:10:42 -05:00
Elan Ruusamäe
cce90a2bed Move babel-eslint to devDependencies
It was added to runtime dependencies with bulk commit a4bf85b1b6

refs:
- https://github.com/mermaid-js/mermaid/pull/1586
2020-11-13 13:53:10 +02:00
Alois Mahdal
973b6fc355 Re-align gantt chart dateFormat table with spaces
With tabs, the table does not render in a readable way.  This commit is
replacing tabs with spaces.
2020-11-10 11:31:14 +01:00
Neil Cuzon
331c7d1a1a Update 8.6.0_docs.md 2020-11-08 19:32:11 -08:00
Neil Cuzon
e35ee592ad Update directives.md 2020-11-08 18:59:32 -08:00
Neil Cuzon
2e646d722c Update directives.md 2020-11-08 18:58:46 -08:00
Neil Cuzon
fff29fcd69 Update Setup.md 2020-11-08 01:29:00 -08:00
Neil Cuzon
4fd8bcd7c7 Update usage.md 2020-11-07 23:42:35 -08:00
Neil Cuzon
9fd97d89c0 Update usage.md 2020-11-07 23:41:58 -08:00
Neil Cuzon
0544f96980 Update README.md 2020-11-07 21:28:33 -08:00
Neil Cuzon
4671a49fd8 Update _sidebar.md 2020-11-07 21:24:38 -08:00
Knut Sveidqvist
e3cf8b7843 Updated version oif mermaid in the docs 2020-11-05 20:09:08 +01:00
Knut Sveidqvist
997257ff79 Merge branch 'release/8.8.3'
Conflicts:
	docs/diagrams-and-syntax-and-examples/flowchart.md
	docs/flowchart.md
2020-11-05 20:08:18 +01:00
Ashish Jain
153da33311 Updating minor changes on Docs 2020-11-05 19:29:29 +01:00
Knut Sveidqvist
93f613d6af Merge branch 'release/8.8.3' of github.com:mermaid-js/mermaid into release/8.8.3 2020-11-05 19:23:41 +01:00
Knut Sveidqvist
608c0df0f7 Updated docs 2020-11-05 19:23:38 +01:00
Ashish Jain
4f568d5d19 Updating minor changes on Docs 2020-11-05 19:16:12 +01:00
Knut Sveidqvist
331c952212 Merge pull request #1757 from spopida/bug/1756_ERD_padding
Fix padding for entities with no attributes
2020-11-05 18:53:46 +01:00
Adrian Hall
879da091d3 Fix padding for entities with no attributes 2020-11-05 11:56:57 +00:00
Knut Sveidqvist
68410b9c58 Merge branch 'release/8.8.3' into develop 2020-11-04 20:33:25 +01:00
Knut Sveidqvist
7a3ecb339b Updated the docs, updated the sections and fixed some bad links 2020-11-04 20:28:10 +01:00
Knut Sveidqvist
144cba7f10 Merge pull request #1755 from loris-intergalactique/develop
Fixed spelling errors
2020-11-04 19:24:50 +01:00
Knut Sveidqvist
ee4571071d Merge pull request #1750 from spopida/feature/1531_ERD_attributes
Feature/1531 erd attributes
2020-11-04 19:24:22 +01:00
LORIS INTERGALACTIQUE
47a3ca44ba Add scss path in docs 2020-11-04 16:59:28 +01:00
LORIS INTERGALACTIQUE
0e7ad3feeb Removed an incomplete line 2020-11-04 16:56:12 +01:00
LORIS INTERGALACTIQUE
bb6ba758db Fixed spelling errors 2020-11-04 16:52:28 +01:00
Adrian Hall
1ce4805bdc Merge branch 'develop' into feature/1531_ERD_attributes 2020-11-02 09:44:56 +00:00
Adrian Hall
ecdb66f65a Merge branch 'develop' of https://github.com/mermaid-js/mermaid into develop 2020-11-02 09:42:23 +00:00
Adrian Hall
ae1880311e Support attribute definitions for entities in ERDs 2020-11-02 09:41:46 +00:00
Knut Sveidqvist
6652319283 Merge branch 'release/8.8.3' into develop 2020-11-01 11:09:40 +01:00
Knut Sveidqvist
855dec7fcd Fix for build 2020-11-01 11:08:47 +01:00
Knut Sveidqvist
e57120fa61 Version update in package.json to 8.8.3 2020-10-31 11:14:39 +01:00
Knut Sveidqvist
f955eef31e Merge branch 'spopida-bug/1710_underscore_in_entity_names' into develop 2020-10-31 11:10:53 +01:00
Knut Sveidqvist
6aaec3dc96 Merge branch 'bug/1710_underscore_in_entity_names' of https://github.com/spopida/mermaid into spopida-bug/1710_underscore_in_entity_names 2020-10-31 11:10:24 +01:00
Knut Sveidqvist
f59e5128d7 Merge pull request #1749 from levlas/bug/1748-broken-links
fix broken links in README
2020-10-31 11:06:54 +01:00
Knut Sveidqvist
29fa2dfcfb Merge pull request #1743 from lishid/patch-1
Fixed bad tertiary operator
2020-10-31 11:05:50 +01:00
Neil Cuzon
6363cb0d80 Update README.md 2020-10-30 18:14:10 -07:00
Neil Cuzon
17d9f4fb46 Update README.md 2020-10-30 18:11:35 -07:00
Neil Cuzon
2c6329310a Update README.md 2020-10-30 18:09:31 -07:00
Neil Cuzon
48089e869e Update README.md 2020-10-30 18:06:57 -07:00
Neil Cuzon
5cb735eb8f Update README.md 2020-10-30 18:02:26 -07:00
Neil Cuzon
d034e32703 Update README.md 2020-10-30 17:59:54 -07:00
Neil Cuzon
a3b8c84e39 Update README.md 2020-10-30 17:58:42 -07:00
Neil Cuzon
bf2376d504 Update README.md 2020-10-30 17:58:34 -07:00
Neil Cuzon
aba8c0356a Update README.md 2020-10-30 17:57:36 -07:00
Adrian Hall
8870ba3b65 merge from updated develop 2020-10-30 14:40:45 +00:00
Adrian Hall
26e0283fc7 Merge remote-tracking branch 'origin/bug/1710_underscore_in_entity_names' into develop 2020-10-30 13:56:22 +00:00
Adrian Hall
0c38e014d7 Support entity attributes 2020-10-30 13:45:35 +00:00
Levente Laszlo
b89f79d901 fix broken links in README 2020-10-29 20:21:21 +01:00
Neil Cuzon
56fbbef133 Update stateDiagram.md 2020-10-28 01:10:39 -07:00
Neil Cuzon
6ece2537ee Update usage.md 2020-10-28 01:10:34 -07:00
Neil Cuzon
f7b722f10f Update user-journey.md 2020-10-28 01:10:29 -07:00
Neil Cuzon
64544a6e7c Update pie.md 2020-10-28 01:09:49 -07:00
Neil Cuzon
1ef7a097a6 Update integrations.md 2020-10-28 00:44:37 -07:00
Neil Cuzon
b70297dc7a Update n00b-gettingStarted.md 2020-10-28 00:44:34 -07:00
Neil Cuzon
732b3289f0 Update n00b-overview.md 2020-10-28 00:44:31 -07:00
Neil Cuzon
bc0caa5dd6 Update n00b-syntaxReference.md 2020-10-28 00:44:29 -07:00
Neil Cuzon
f835b34f57 Update newDiagram.md 2020-10-28 00:44:27 -07:00
Neil Cuzon
3aa33bd720 Update examples.md 2020-10-28 00:40:31 -07:00
Neil Cuzon
87601fba1b Update faq.md 2020-10-28 00:40:29 -07:00
Neil Cuzon
adc900a03a Update flowchart.md 2020-10-28 00:40:25 -07:00
Neil Cuzon
de52808e9f Update gantt.md 2020-10-28 00:40:23 -07:00
Neil Cuzon
31aebca134 Update classDiagram.md 2020-10-28 00:38:21 -07:00
Neil Cuzon
9d09bdc1f3 Update development.md 2020-10-28 00:38:02 -07:00
Neil Cuzon
a9c3019433 Update entityRelationshipDiagram.md 2020-10-28 00:37:35 -07:00
Neil Cuzon
3f56830170 Update directives.md 2020-10-28 00:37:33 -07:00
Neil Cuzon
73b1953c09 Update Tutorials.md 2020-10-28 00:20:35 -07:00
Neil Cuzon
4e0fc58f60 Update Tutorials.md 2020-10-28 00:20:20 -07:00
Neil Cuzon
108f102360 Update CHANGELOG.md 2020-10-28 00:19:36 -07:00
Neil Cuzon
be73811c53 Update README.md 2020-10-28 00:18:12 -07:00
Neil Cuzon
f3fbc004f3 Update 8.6.0_docs.md 2020-10-28 00:17:17 -07:00
Neil Cuzon
be71cf5689 Update 8.6.0_docs.md 2020-10-28 00:16:40 -07:00
Neil Cuzon
bd53fce4a7 Update 8.6.0_docs.md 2020-10-28 00:15:17 -07:00
Neil Cuzon
80c72c8f83 Merge pull request #1746 from NeilCuzon/develop
Switching to Docsify and adding search
2020-10-27 00:11:03 -07:00
NeilCuzon
445daaeba2 Switching to Docsify and adding search 2020-10-25 00:30:20 -07:00
Adrian Hall
851cff4bb8 Merge branch 'develop' into bug/1710_underscore_in_entity_names 2020-10-23 10:02:50 +01:00
Adrian Hall
245e25f4b7 Allow underscores in entity names, and entities with no relationships 2020-10-23 10:00:17 +01:00
Lishid
69113a988f Update theme-base.js 2020-10-22 22:17:43 -04:00
Lishid
521bfc66f0 Update theme-base.js 2020-10-22 22:14:10 -04:00
Lishid
d473f3904a Fixed bad tertiary operator
This fixes the tertiary operator used to compute the `edgeLabelBackground` theme variable.
2020-10-22 21:55:13 -04:00
Ashish Jain
74d09b5468 Merge pull request #1741 from mermaid-js/1740_nested_subgraps_directions
1740 nested subgraps directions
2020-10-22 20:59:01 +02:00
Knut Sveidqvist
b495772118 #1740 Adding fixing another tests 2020-10-22 18:52:23 +02:00
Knut Sveidqvist
7c939860d6 #1740 Adding test 2020-10-22 18:47:32 +02:00
Knut Sveidqvist
310420fda1 2020-10-22 18:45:46 +02:00
Knut Sveidqvist
a679d2a0ed Merge pull request #1733 from AndreasVolkmann/patch-1
Update flowchart.md
2020-10-22 17:29:38 +02:00
Knut Sveidqvist
3f60107885 Merge pull request #1739 from BastianZim/develop
Updated docs
2020-10-22 17:28:22 +02:00
Knut Sveidqvist
3c2e8cb71c Merge pull request #1735 from fregante/patch-1
Replace `fregante/setup-git-token` with `setup-git-user`
2020-10-22 17:27:25 +02:00
Bastian Zimmermann
cff55e91b0 Fixed bold 2020-10-22 15:41:36 +02:00
Bastian Zimmermann
005390f54b Updated http to https 2020-10-22 15:36:52 +02:00
Bastian Zimmermann
82ce848d24 Pointed Live editor and CLI to new repo 2020-10-22 15:32:59 +02:00
Bastian Zimmermann
dfdae7f046 Added space 2020-10-22 15:00:06 +02:00
Bastian Zimmermann
7a7bad2aa3 Added link to example 2020-10-22 14:59:31 +02:00
Bastian Zimmermann
8f438744cf Added link to example 2020-10-22 14:58:58 +02:00
Bastian Zimmermann
460ccd9b34 Added link to example 2020-10-22 14:56:56 +02:00
Federico
0638d0b2d7 Replace fregante/setup-git-token with setup-git-user 2020-10-19 22:31:33 -05:00
Andreas Volkmann
4c239b7eef Update flowchart.md 2020-10-16 12:34:08 +02:00
Andreas Volkmann
ac8ddd58f0 Update flowchart.md
Fix typos
2020-10-16 12:31:05 +02:00
Neil Cuzon
b49308f0f1 Merge pull request #1703 from wontonst/patch-1
Fix broken links in gantt.md
2020-10-16 02:49:32 -07:00
Neil Cuzon
b435171aa2 Merge branch 'develop' into patch-1 2020-10-16 02:49:06 -07:00
Knut Sveidqvist
8e342e1db7 Merge pull request #1731 from mermaid-js/1724_fontawesome_edge_labels
#1724 Adding fontawesome to edge labels
2020-10-15 19:49:49 +02:00
Knut Sveidqvist
1ade6cdfa5 Merge pull request #1728 from alexislefebvre/patch-1
README: use stateDiagram-v2
2020-10-15 19:46:37 +02:00
Knut Sveidqvist
561ee5c72e Merge pull request #1729 from Eraledm/fixing-broken-diagrams
Fixed empty code examples
2020-10-15 19:44:54 +02:00
Knut Sveidqvist
143566fbf6 Merge pull request #1727 from deining/fix_links
Fixing broken links and misspellings
2020-10-15 19:43:59 +02:00
Knut Sveidqvist
5e0f2e8572 Merge branch 'develop' into fix_links 2020-10-15 19:43:49 +02:00
Knut Sveidqvist
350732d8dd Merge pull request #1705 from hwine/typo-pie.md
Fix typo in pie.md
2020-10-15 19:37:58 +02:00
Knut Sveidqvist
d8da24804f #1724 Adding fontawesome to edge labels 2020-10-15 19:29:37 +02:00
Knut Sveidqvist
15f8856f92 Merge pull request #1730 from mermaid-js/1726_graphDef_linkStyle
1726 graph def link style
2020-10-15 19:27:14 +02:00
Knut Sveidqvist
4ae61ad35a €1726 updated test 2020-10-15 19:06:38 +02:00
Knut Sveidqvist
c2c5cc45fa Merge remote-tracking branch 'refs/remotes/origin/1726_graphDef_linkStyle'
Conflicts:
	cypress/platform/knsv.html
2020-10-15 19:04:48 +02:00
Knut Sveidqvist
7404e436d2 #1726 Handling think lines 2020-10-15 19:00:35 +02:00
Knut Sveidqvist
cc1560d3e3 #1726 fix for link styling and classes for subgraph 2020-10-15 18:42:58 +02:00
Knut Sveidqvist
4812437519 2020-10-15 18:42:58 +02:00
Knut Sveidqvist
53933d934d 2020-10-15 17:45:19 +02:00
Knut Sveidqvist
f108099623 2020-10-15 17:37:16 +02:00
Manuel DeLaRe
7dd82a4a87 Fixed empty code examples 2020-10-14 13:50:44 -05:00
Alexis Lefebvre
1a91b1bd42 README: use stateDiagram-v2 2020-10-14 17:23:10 +02:00
Andreas Deininger
439399b9f1 Fixing various typos/misspellings in documentation 2020-10-14 14:41:15 +02:00
Andreas Deininger
5e95d75f44 Fixing broken links 2020-10-14 13:47:20 +02:00
Neil Cuzon
35deb4a512 Update n00b-overview.md 2020-10-09 18:49:45 -07:00
Neil Cuzon
19ac8e6e61 Update Tutorials.md 2020-10-09 02:14:01 -07:00
Neil Cuzon
68a0506a40 Update Tutorials.md 2020-10-08 18:46:02 -07:00
Knut Sveidqvist
0f9da18cbe Merge branch 'master' into develop 2020-10-08 19:48:33 +02:00
Knut Sveidqvist
acc4f31c3a Merge branch 'release/8.8.2' 2020-10-08 19:45:50 +02:00
Knut Sveidqvist
2e4d1a7b44 Release 8.8.2 2020-10-08 19:43:29 +02:00
Knut Sveidqvist
ec7628924e Version update 2020-10-08 18:52:48 +02:00
Knut Sveidqvist
4c849554da Merge pull request #1709 from mermaid-js/1704_subgraphs
1704 subgraphs
2020-10-08 18:25:43 +02:00
Knut Sveidqvist
582a045457 #1704 Test and lint 2020-10-07 20:43:52 +02:00
Knut Sveidqvist
4b2d98129e #1704 handling of subgraph data 2020-10-07 20:43:31 +02:00
Knut Sveidqvist
8ec99cb244 Merge remote-tracking branch 'origin/develop' into develop 2020-10-07 18:08:42 +02:00
Knut Sveidqvist
088dd8698e Merge branch 'release/8.8.1' into develop 2020-10-07 17:57:52 +02:00
Neil Cuzon
e9f4d2040b Update _sidebar.md 2020-10-05 19:56:32 -07:00
Neil Cuzon
6d58836301 Update _sidebar.md 2020-10-05 19:37:36 -07:00
Neil Cuzon
c81eaccfef Update newDiagram.md 2020-10-05 19:03:45 -07:00
Hal Wine
b21100cc5d Fix typo in pie.md
':' is called a "[colon](https://en.wikipedia.org/wiki/Colon_(punctuation))" (not [semi-colon](https://en.wikipedia.org/wiki/Semicolon))
2020-10-03 09:07:32 -07:00
Neil Cuzon
f6954c898d Update README.md 2020-10-01 18:53:48 -07:00
Neil Cuzon
f1cea37814 Update README.md 2020-10-01 18:53:30 -07:00
Roy Zheng
911d97c0a3 Fix broken links in gantt.md 2020-10-01 16:01:53 -07:00
Knut Sveidqvist
4dc805d25a Release 8.8.1 2020-09-30 19:23:42 +02:00
Knut Sveidqvist
c691ef1899 Removing console.logs 2020-09-30 18:47:50 +02:00
Knut Sveidqvist
04338335d0 Merge branch 'develop' into release/8.8.1 2020-09-30 18:31:08 +02:00
Knut Sveidqvist
4d9d315f10 Merge pull request #1699 from ct-martin/docs/readme-osawards
Update link to Open Source Awards
2020-09-30 18:26:47 +02:00
Christian Martin
eb3ddbcca7 Update link to Open Source Awards 2020-09-24 14:38:37 -07:00
Knut Sveidqvist
13d11633ab 8.8.1-rc1 2020-09-23 20:54:07 +02:00
Knut Sveidqvist
c4572036b3 Bumping version to 8.8.1 2020-09-23 20:50:25 +02:00
Knut Sveidqvist
f0a8eaa5be Merge pull request #1697 from mermaid-js/1676_click_support_v2
Adds support for custom cssClasses for classDiagram-v2. Also, improved test cases for classDiagram.
2020-09-23 20:41:52 +02:00
Ashish Jain
93bf8d7414 #1696 Fix for custom cssClass test cases for classDiagram 2020-09-23 20:16:06 +02:00
Knut Sveidqvist
2cbb2d7b6a Merge pull request #1695 from mermaid-js/1694_style_flowchart
#1694 Applying styles from the graph definition for flowcharts
2020-09-23 20:11:39 +02:00
Knut Sveidqvist
ce23316008 #1694 Applying styles from the graph definition for flowcharts 2020-09-23 19:51:16 +02:00
Ashish Jain
c04dac65ac #1693 Added support for custom cssClass and styling to classDiagram-v2 2020-09-23 19:27:09 +02:00
Neil Cuzon
abba5a5d75 Update newDiagram.md 2020-09-20 07:06:57 -07:00
Neil Cuzon
98b556cb1a Update development.md 2020-09-20 06:25:57 -07:00
Neil Cuzon
488afd64d7 Create newDiagram.md 2020-09-20 06:09:37 -07:00
Neil Cuzon
e2a7e60dad Update _sidebar.md 2020-09-20 06:08:19 -07:00
Knut Sveidqvist
c17778ba47 Merge pull request #1686 from irqbank/develop
Remove console messages
2020-09-20 14:31:31 +02:00
Knut Sveidqvist
753ba194fd Merge pull request #1685 from mermaid-js/1676_click_support_v2
1676 click support v2
2020-09-20 14:28:31 +02:00
Knut Sveidqvist
f856782528 #1657Fix for broken test 2020-09-20 12:31:39 +02:00
Knut Sveidqvist
c9ff70b3cc #1657 Handling class definitions for flowchart beta 2020-09-20 12:14:04 +02:00
Neil Cuzon
6311abec2d Merge pull request #1684 from DavidWittman/docs-noob-syntax-typo
Fix typo in n00b-syntaxReference.md
2020-09-19 07:15:26 -07:00
root
1461d535d4 Remove console messages 2020-09-19 00:52:45 -04:00
David Wittman
77d57b865d Fix typo in n00b-syntaxReference.md 2020-09-17 15:38:44 -05:00
Ashish Jain
57a208d271 Fix for broken Flowchart test cases 2020-09-16 22:02:11 +02:00
Ashish Jain
a26c9fca1e #1676 Fix for additonal usecases for flowchart 2020-09-16 21:53:17 +02:00
Knut Sveidqvist
c679d18888 #1676 Fix for broken tests 2020-09-16 20:33:04 +02:00
Knut Sveidqvist
2a6372cabe #1676 Handling vertices starting with a number 2020-09-16 20:09:02 +02:00
Ashish Jain
22c710ed99 #1676 Fix for broken test cases 2020-09-16 18:59:53 +02:00
Knut Sveidqvist
a14ff7820e #1676 Fix for tests 2020-09-12 13:40:25 +02:00
Knut Sveidqvist
a446b3c600 #1676 Lint fix 2020-09-12 13:35:11 +02:00
Knut Sveidqvist
c8c4554299 #1676 Adding click support and tooltip support for flowchart 2020-09-12 10:56:23 +02:00
Knut Sveidqvist
6360ed52b2 #1676 lint fix 2020-09-10 21:00:25 +02:00
Knut Sveidqvist
9d8c867de8 #1676 Adding click support to the new rendering engine and classDiagram-v2 2020-09-10 20:58:16 +02:00
Knut Sveidqvist
571b8bbd88 Merge pull request #1672 from mermaid-js/1542_take_two
1542 take two
2020-09-09 19:11:42 +02:00
Knut Sveidqvist
b795950892 #1636 Manual update due to conflicts 2020-09-09 18:56:40 +02:00
Ashish Jain
28c01f6476 Merge branch 'develop' of https://github.com/knsv/mermaid into 1542_take_two 2020-09-09 18:43:53 +02:00
Knut Sveidqvist
117988d26d Merge pull request #1664 from saowang/develop
Fixed broken links and syntax in the document
2020-09-09 18:39:18 +02:00
Knut Sveidqvist
137770dc61 Merge pull request #1668 from mermaid-js/dependabot/npm_and_yarn/http-proxy-1.18.1
Bump http-proxy from 1.18.0 to 1.18.1
2020-09-09 18:37:48 +02:00
Ashish Jain
5d57237c3b Merge pull request #1662 from mermaid-js/1660_subgraph_issues
Improved handling of nested subgraphs
2020-09-09 18:37:28 +02:00
dependabot[bot]
9635ef5f16 Bump http-proxy from 1.18.0 to 1.18.1
Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1.
- [Release notes](https://github.com/http-party/node-http-proxy/releases)
- [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-09 04:19:44 +00:00
Neil Cuzon
bbec2c54ed Adding a reference to mermaid.min.js
Forces Docs to adopt new syntax modifications, allowing graphs made in the newer syntax to be parsed and rendered in GitHub Pages.
2020-09-07 19:51:23 +02:00
Ashish Jain
c95b9ffc43 Fix for legacy class Diagram title for class bold styling 2020-09-07 13:33:08 +02:00
saowang
5336e98e18 Update mermaidAPI.js 2020-09-07 14:50:33 +08:00
saowang
1f4be42b3f Fixed broken links and syntax in the document 2020-09-07 14:02:09 +08:00
Neil Cuzon
6a1c88204a Adding a reference to mermaid.min.js
Forces Docs to adopt new syntax modifications, allowing graphs made in the newer syntax to be parsed and rendered in GitHub Pages.
2020-09-06 18:16:03 -07:00
Knut Sveidqvist
4f8e242dac 2020-09-06 22:34:13 +02:00
Knut Sveidqvist
89f616df88 Test commit 2020-09-06 09:18:09 +02:00
Knut Sveidqvist
0918b97e81 Merge branch 'release/8.8.0' 2020-09-05 09:46:24 +02:00
Knut Sveidqvist
a8b7144d62 Back to linux sed 2020-09-05 09:46:01 +02:00
Knut Sveidqvist
9bf97d9dcd Release 8.8.0 2020-09-05 09:38:56 +02:00
Knut Sveidqvist
343703c54f Setting version to 8.8.0 2020-09-05 09:16:36 +02:00
Knut Sveidqvist
2ca8bcad5c Merge pull request #1659 from mermaid-js/1602_order_neste_subgraphs
#1602 Update of handling of nested subgraphs
2020-09-02 21:10:03 +02:00
Knut Sveidqvist
9106c6ad52 #1602 Update of handling of nested subgraphs 2020-09-02 20:34:24 +02:00
Knut Sveidqvist
2a4344ace3 Merge pull request #1642 from Mogztter/issue/1490-svg-height-width
resolves #1490 consistent SVG height and width between diagrams
2020-09-02 18:11:51 +02:00
Knut Sveidqvist
a82c53dd2e Not moving the label away from assigned position 2020-08-29 16:11:42 +02:00
GDFaber
1ac3611e6e Merge pull request #1653 from khink/speling
Fix spelling: it's -> its
2020-08-28 09:56:05 +02:00
Kees Hink
c62f3c2898 Fix spelling: it's -> its
If you mean "the ... that it has", use its. If you mean "it is", use it's.
2020-08-28 09:31:09 +02:00
Ashish Jain
b244118fd9 Fix for class title label css 2020-08-27 20:43:37 +02:00
Ashish Jain
7164eaa8b1 Allow Generics support for Class Title definition 2020-08-27 20:14:26 +02:00
Ashish Jain
a20aa472d6 Fix for Edge label positioning 2020-08-27 19:59:30 +02:00
Knut Sveidqvist
1811153467 Merge pull request #1650 from saowang/develop
Update auto generated Setup.md with front matter
2020-08-27 18:52:21 +02:00
saowang
d003f9c6fd Update auto generated Setup.md with front matter 2020-08-26 01:38:51 +08:00
Guillaume Grossetie
99844b4ca3 Add e2e tests on all diagrams 2020-08-25 17:17:52 +02:00
Guillaume Grossetie
184fcab0b7 resolves #1490 consistent SVG height and width between diagrams 2020-08-25 15:46:10 +02:00
Neil Cuzon
459e07834c Update README.md 2020-08-25 04:07:55 -07:00
Neil Cuzon
c7e7f3b4c1 Update README.md 2020-08-25 04:05:41 -07:00
Neil Cuzon
78a8ae3ba2 Merge pull request #1633 from Mogztter/doc/changelog
Merge changelog and Mermaid Versions
2020-08-25 03:27:58 -07:00
GDFaber
31527e8e87 Merge pull request #1643 from Yash-Singh1/patch-1
Made Capitalization Changes
2020-08-23 23:10:54 +02:00
Yash Singh
c0008bf850 Made Capitalization Changes 2020-08-23 13:47:45 -07:00
GDFaber
3b026ff0cc Merge pull request #1641 from andrewschleifer/patch-1
fix: typo
2020-08-23 20:41:21 +02:00
GDFaber
73b5ffa3ef Merge pull request #1639 from Mogztter/patch-2
Fix image path
2020-08-23 20:40:36 +02:00
Knut Sveidqvist
55f0d0ab9f Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2020-08-23 20:02:55 +02:00
Knut Sveidqvist
0cbd002667 #1607 Using correct config when to decide about sanitizing text 2020-08-23 20:02:51 +02:00
Andrew Schleifer
5246f81dce fix: typo 2020-08-24 00:56:12 +08:00
Guillaume Grossetie
56a9b8fa94 Fix image path 2020-08-23 15:13:28 +02:00
Guillaume Grossetie
ab130900a1 Merge changelog and Mermaid versions 2020-08-23 15:08:25 +02:00
Neil Cuzon
d4b72ececc Delete _sidebar.md 2020-08-23 03:35:36 -07:00
Neil Cuzon
41b8ac32b3 Delete CHANGELOG.md 2020-08-23 03:35:22 -07:00
Neil Cuzon
7e0e4455b0 Create _sidebar.md 2020-08-23 02:47:29 -07:00
Neil Cuzon
2127c00671 Create CHANGELOG.md 2020-08-23 02:46:55 -07:00
Neil Cuzon
874fc741b5 Update README.md 2020-08-23 02:44:16 -07:00
Neil Cuzon
605241f6e1 Update _sidebar.md 2020-08-22 16:26:02 -07:00
Neil Cuzon
dac7b1c5b1 Delete Tutorials.md 2020-08-21 18:42:39 -07:00
Neil Cuzon
76cb1dc237 Delete Tutorials.md 2020-08-21 18:42:24 -07:00
Neil Cuzon
9440b09c66 Create Tutorials.md 2020-08-21 18:41:57 -07:00
Neil Cuzon
6da0ceec9d Update _sidebar.md 2020-08-21 17:13:34 -07:00
Neil Cuzon
bcb388ea9e Merge pull request #1634 from saowang/develop
Change docs theme from docsify to jekyll-rtd-theme
2020-08-21 17:11:59 -07:00
Neil Cuzon
288f1320a1 Delete _sidebar.md 2020-08-21 17:11:24 -07:00
Neil Cuzon
4aa461e317 Update _sidebar.md 2020-08-21 02:02:35 -07:00
Neil Cuzon
54674158ca Update Tutorials.md 2020-08-21 01:36:08 -07:00
Neil Cuzon
b02a884c16 Update Tutorials.md 2020-08-21 01:17:50 -07:00
Neil Cuzon
91f0f21f45 Create Tutorials.md 2020-08-21 01:16:33 -07:00
Neil Cuzon
44a0115b07 Update Tutorials.md 2020-08-21 01:15:22 -07:00
saowang
95bcd14c1d Update README.md 2020-08-21 14:30:42 +08:00
saowang
9e8c6aed4d Update documents to compatible jekyll-rtd-theme 2020-08-21 01:01:06 +08:00
saowang
f63b58edd9 Docs use remote_theme 2020-08-20 23:03:22 +08:00
saowang
ea47873db3 Add jekyll ignore files 2020-08-20 22:59:18 +08:00
saowang
a608f98ca5 Add jekyll-rtd-theme 2020-08-20 22:55:17 +08:00
Neil Cuzon
e84d0b9334 Update n00b-overview.md 2020-08-20 02:48:59 -07:00
Neil Cuzon
43b0a83b82 Update _sidebar.md 2020-08-20 02:44:09 -07:00
Neil Cuzon
4f7e0941dc Update n00b-overview.md 2020-08-20 02:44:01 -07:00
Neil Cuzon
70a2e934f9 Update n00b-overview.md 2020-08-20 02:41:11 -07:00
Neil Cuzon
14801805ac Update integrations.md 2020-08-20 02:40:24 -07:00
Neil Cuzon
54f2bb1daf Update n00b-overview.md 2020-08-20 02:39:09 -07:00
Marc Faber
75e380fe14 #1609 Fix markdown and example code in docs for state and er diagrams 2020-08-20 11:22:01 +02:00
Neil Cuzon
ec97d40242 Update Tutorials.md 2020-08-20 02:19:16 -07:00
GDFaber
7bb4f5591c Merge pull request #1631 from mermaid-js/bug/improve_docs_gantt_example
Improve gantt example in documentation
2020-08-20 00:56:27 +02:00
Marc Faber
4447366118 Improve gantt example in documentation 2020-08-20 00:38:24 +02:00
GDFaber
7140aa1015 Merge pull request #1625 from it-sec-std/patch-1
Fix comments in gantt docs
2020-08-20 00:18:36 +02:00
GDFaber
16f9b2631e Merge pull request #1629 from Mogztter/patch-2
Explain how to preview the documentation site
2020-08-20 00:14:31 +02:00
Guillaume Grossetie
a6dee9ee0c Explain how to preview the documentation site
The documentation is now powered by Docsify.
Explain how to install `docsify-cli` and how to preview the documentation site locally.
2020-08-19 23:55:53 +02:00
Ashish Jain
89b4f84b0a Update classDiagram-v2 spec test case name 2020-08-19 20:55:46 +02:00
Ashish Jain
09f4c21421 Enable html labels for classDiagram-v2 2020-08-19 20:46:24 +02:00
GDFaber
9fe10d087f Merge pull request #1628 from Lucurus/patch-1
Update usage.md
2020-08-19 20:02:01 +02:00
Lucurus
12a95dfbc6 Update usage.md
Deleted a 0
2020-08-19 19:47:55 +02:00
GDFaber
d9f82806ec Merge pull request #1627 from Lucurus/patch-1
Update usage.md
2020-08-19 18:46:17 +02:00
Ashish Jain
455cd9c696 Merge branch 'develop' of https://github.com/knsv/mermaid into 1542_take_two 2020-08-19 18:45:24 +02:00
Lucurus
f695fa736d Update usage.md
Corrected spelling of responsibility.
2020-08-19 18:34:54 +02:00
GDFaber
51f0a3f42a Merge pull request #1626 from Lucurus/patch-1
Update n00b-gettingStarted.md
2020-08-19 18:25:22 +02:00
Lucurus
b7e953bc1a Update n00b-gettingStarted.md
Changed form of verb contain in 3 b.
2020-08-19 18:14:35 +02:00
it-sec-std
8b508bda9a Update gantt.md
A comment was not marked with propriate syntax, so this example's code didn't work
2020-08-19 16:37:09 +03:00
Neil Cuzon
b69e7fbe2c Update README.md 2020-08-18 19:50:39 -07:00
GDFaber
d5062ec5ae Merge pull request #1621 from mermaid-js/bug/1609_fix_state_and_er_docs
Fix markdown and example code in docs for state and er diagrams
2020-08-18 15:58:12 +02:00
GDFaber
7143a8c806 Merge pull request #1622 from DawMatt/develop
Minor sidebar/version updates page fixes for website
2020-08-18 15:47:12 +02:00
DawMatt
b3d1c548e7 Update versionUpdates.md
Styling in the website sidebar was impacted by inconsistent heading levels and unterminated bold statements. These have been normalised to improve sidebar  display.
2020-08-18 23:22:23 +10:00
DawMatt
b28af56523 Update _sidebar.md
Removed second, broken version updates link
2020-08-18 23:03:51 +10:00
Neil Cuzon
4a08d1d954 Create Tutorials.md 2020-08-17 23:39:23 -07:00
Neil Cuzon
71d977908d Update README.md 2020-08-17 23:17:56 -07:00
Neil Cuzon
cc0da7d8c6 Update README.md 2020-08-17 23:15:35 -07:00
Marc Faber
b55d5c0e39 #1609 Fix markdown and example code in docs for state and er diagrams 2020-08-17 20:26:06 +02:00
Knut Sveidqvist
aafb65f888 Lint fixes 2020-08-17 08:45:20 +02:00
Knut Sveidqvist
12272dfb80 Merge remote-tracking branch 'origin/develop' into develop 2020-08-17 08:43:27 +02:00
Neil Cuzon
7e3848cc76 Update README.md 2020-08-16 23:07:06 -07:00
Neil Cuzon
2ca50de41b Update README.md 2020-08-16 23:04:05 -07:00
Knut Sveidqvist
9561fcea76 Merge branch 'e2e_debug' into develop 2020-08-17 07:54:25 +02:00
Neil Cuzon
b9f45577a7 Update README.md 2020-08-16 22:39:58 -07:00
Neil Cuzon
25dd806a18 Update README.md
Implementing some changes to mirror those, that were made by @Mogztter.
2020-08-16 20:36:25 -07:00
Knut Sveidqvist
6b23c71bb5 Use courier in all rendering tests 2020-08-16 21:49:36 +02:00
Knut Sveidqvist
236332d8c7 Use arial in stateDiagram rendering tests 2020-08-16 13:50:27 +02:00
Knut Sveidqvist
de72d7ba13 Use arial in stateDiagram rendering tests 2020-08-16 13:19:01 +02:00
Knut Sveidqvist
ba6d73fc17 Debug of fonts in percy renderings 2020-08-16 13:01:45 +02:00
Knut Sveidqvist
450d4b5a0a Fix for broken build 2020-08-16 09:06:25 +02:00
Knut Sveidqvist
888b1fb021 #1613 #1495 Adding support for edge length to flowchart (beta) 2020-08-16 08:45:44 +02:00
Knut Sveidqvist
958b032cea Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2020-08-16 08:34:47 +02:00
Neil Cuzon
e9060a3ad9 Merge pull request #1617 from Mogztter/patch-1
Improve README readability
2020-08-15 19:40:45 -07:00
Guillaume Grossetie
78f43b6e13 Condense about section 2020-08-15 15:10:09 +02:00
Guillaume Grossetie
bbaf7583e4 Improve readme readability
- Fix link to changelog
- Remove changelog from readme
- Use titles sparsely
- Add emojis! 🎉
2020-08-15 14:59:34 +02:00
Knut Sveidqvist
34cc115cdb Merge pull request #1615 from H3RSKO/H3RSKO-readme-typo
Updated Readme
2020-08-15 07:59:56 +02:00
Knut Sveidqvist
93c6272fe2 Merge pull request #1613 from matteodelabre/feature/1495_set_edge_length
Add support for changing the length of edges
2020-08-15 07:58:56 +02:00
H3RSKO
25402c708e Updatd Readme
Fixed Readme typo:

Changed "resposibility" to "responsibility"
2020-08-14 18:18:28 -04:00
Knut Sveidqvist
33cc635fcf Removed illegal logging 2020-08-14 07:37:29 +02:00
Knut Sveidqvist
129b3f9004 Cherry pick of config changes 2020-08-14 07:34:42 +02:00
Mattéo Delabre
01344a991d Add support for changing the length of edges
Resolves #637, resolves #1495.

The syntax for edges is extended to allow for extra
dashes/equals signs/dots (depending on the edge type). Each added
character increases the length of the edge by one rank level, as
follows:

Length            |    1   |    2    |     3    |
------------------|:------:|:-------:|:--------:|
Normal            |  `---` |  `----` |  `-----` |
Normal with arrow |  `-->` |  `--->` |  `---->` |
Thick             |  `===` |  `====` |  `=====` |
Thick with arrow  |  `==>` |  `===>` |  `====>` |
Dotted            |  `-.-` |  `-..-` |  `-...-` |
Dotted with arrow | `-.->` | `-..->` | `-...->` |

This features leverages the `minlen` property exposed by Dagre which was
not previously available when using Mermaid.
2020-08-14 00:15:26 +02:00
Ashish Jain
060ac3bb4a Adjust the class members with proper parsing 2020-08-13 21:06:33 +02:00
Ashish Jain
95677e601a Merge branch '1614_fontFamily' of https://github.com/knsv/mermaid into 1542_take_two 2020-08-13 20:39:39 +02:00
Knut Sveidqvist
a97cc62d0a Merge branch 'jgreywolf-1592-IncorrectSVGytntax' into develop 2020-08-13 20:27:56 +02:00
Knut Sveidqvist
62260aa30b Merge branch '1592-IncorrectSVGytntax' of git://github.com/jgreywolf/mermaid into jgreywolf-1592-IncorrectSVGytntax 2020-08-13 20:26:47 +02:00
Knut Sveidqvist
32457e83f0 Fix for broken build 2020-08-13 20:23:57 +02:00
Ashish Jain
2519486a02 Merge branch '1614_fontFamily' of https://github.com/knsv/mermaid into 1542_take_two 2020-08-13 20:09:13 +02:00
Ashish Jain
bec3cc437d Fix for interface rendering and positioning 2020-08-13 20:08:09 +02:00
Knut Sveidqvist
525a32f9f0 2020-08-13 20:03:42 +02:00
Ashish Jain
36f8f1902c Removing hard coding with dynamic values for cardinalities 2020-08-13 19:41:33 +02:00
Knut Sveidqvist
bde7b1a828 Html labels set to false in tests 2020-08-13 19:19:19 +02:00
Ashish Jain
9891b383e7 Adding classDiagram-v2 test cases 2020-08-13 18:52:04 +02:00
Ashish Jain
28bc87b873 Merge branch 'develop' into 1542_take_two 2020-08-13 18:27:37 +02:00
Knut Sveidqvist
9223173ef2 Merge branch 'master' into develop 2020-08-13 18:25:04 +02:00
Justin Greywolf
5e72416478 1592-SVG syntax error with links
Added xlink namespace to svg definition
2020-08-12 13:47:21 -07:00
Justin Greywolf
595e03c584 Merge pull request #27 from mermaid-js/develop
sync
2020-08-12 13:46:12 -07:00
Knut Sveidqvist
50a0c93cce Updated theming docs 2020-08-09 14:22:54 +02:00
Knut Sveidqvist
e06cf70615 Using mermaid 8.7.0 in docs 2020-08-09 14:05:10 +02:00
Knut Sveidqvist
4c38b1a776 Merge branch 'release/8.7.0' 2020-08-09 14:03:20 +02:00
Knut Sveidqvist
677c6d9f89 Release 8.7.0 2020-08-09 14:02:57 +02:00
Knut Sveidqvist
2743681392 Merge branch 'develop' into release/8.7.0 2020-08-09 13:36:09 +02:00
Knut Sveidqvist
aacf84f78a Some documentation updates 2020-08-09 07:45:37 +02:00
Justin Greywolf
b95a9bb9b4 Merge pull request #26 from mermaid-js/develop
sync
2020-08-08 12:22:25 -07:00
Knut Sveidqvist
77541102af Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2020-08-08 10:59:59 +02:00
Knut Sveidqvist
b337cf9f95 Merge pull request #1605 from jgreywolf/1594-CommentsInClassDiagramNotWorking
1594 comments in class diagram not working
2020-08-08 07:44:01 +02:00
Justin Greywolf
f914cb0248 1594-Comment in class diagrams not working
Slight modification to comment regex to ensure that all lines were being looked at, not just the first one
2020-08-07 12:08:34 -07:00
Justin Greywolf
c93828569b Merge pull request #25 from mermaid-js/develop
Merge from mermaid
2020-08-07 08:27:21 -07:00
Ashish Jain
61993a032a Initial implementation for cardinality position. 2020-08-07 14:52:42 +02:00
Knut Sveidqvist
b99c14b910 Merge pull request #1599 from jgreywolf/1181-AssignCssClass
1181 assign css class
2020-08-05 20:40:07 +02:00
Knut Sveidqvist
8aa0185cb8 Remiving dist from .gitignore
This due to downstreams libraries that depend on them. We should address this as I agree that dist should be ignored. For now I removed it.
2020-08-05 18:27:30 +02:00
Knut Sveidqvist
2a1161bff4 Merge pull request #1600 from ryenus/patch-1
update mermaid-cli repo url
2020-08-05 18:00:04 +02:00
ryenus
067b495212 update mermaid-cli repo url
new url: https://github.com/mermaid-js/mermaid-cli
2020-08-05 05:46:48 +08:00
Justin Greywolf
894369cc73 stop tracking files in dist 2020-08-04 12:08:21 -07:00
Justin Greywolf
9a86accc62 1181-Minor update to regex 2020-08-04 12:05:56 -07:00
Knut Sveidqvist
77be268a70 Merge pull request #1596 from NeilCuzon/develop
Changes to ReadMe.md, Addition of versionUpdates.md for version tracking.
2020-08-04 20:08:44 +02:00
Justin Greywolf
1f051d7a9f 1181-Css for class diagrams
Initial change for supporting custom CSS for use with classDiagrams.
updated `LABEL` regex for specificity
2020-08-03 12:47:50 -07:00
Justin Greywolf
652b6ae7d2 Update gitignore for dist folder 2020-08-03 12:47:32 -07:00
Justin Greywolf
57a5b09328 Merge pull request #24 from mermaid-js/develop
merge from mermaid-js:develop
2020-08-03 12:43:26 -07:00
Neil Cuzon
9b806f2690 Update config.js 2020-08-01 17:19:26 -07:00
Neil Cuzon
1b56a8b696 Update theming.md 2020-07-31 23:45:56 -07:00
Neil Cuzon
5a5d2c770c Update _sidebar.md 2020-07-31 22:54:47 -07:00
Neil Cuzon
a5d06bde03 Update theming.md 2020-07-31 21:22:18 -07:00
Neil Cuzon
15103ac7fb Update theming.md 2020-07-31 21:20:55 -07:00
Neil Cuzon
439e735d4b Update README.md 2020-07-31 21:20:28 -07:00
Neil Cuzon
7f5df308ad Update README.md 2020-07-31 21:20:26 -07:00
Neil Cuzon
2f97baadc6 Update README.md 2020-07-31 21:16:33 -07:00
Neil Cuzon
c2863156cd Update versionUpdates.md 2020-07-31 21:12:31 -07:00
Neil Cuzon
75762d64c6 Update theming.md 2020-07-31 21:10:43 -07:00
Neil Cuzon
8209cffcd0 Update versionUpdates.md 2020-07-31 21:10:04 -07:00
Neil Cuzon
70976460ff Update _sidebar.md 2020-07-31 20:59:27 -07:00
Neil Cuzon
954155b090 Update theming.md 2020-07-31 20:52:06 -07:00
Neil Cuzon
5265bc20f1 Update theming.md 2020-07-31 20:49:35 -07:00
Neil Cuzon
af60a4d407 Update README.md 2020-07-31 19:54:46 -07:00
Neil Cuzon
c9a6dc4fab Update README.md 2020-07-31 19:14:07 -07:00
Neil Cuzon
9c647dc57a Update README.md 2020-07-31 17:00:57 -07:00
Knut Sveidqvist
52e688df9b Version bump 2020-07-31 17:07:50 +02:00
Knut Sveidqvist
87f12c7d5a Updated with a small example of a custom theme 2020-07-31 16:04:12 +02:00
Knut Sveidqvist
e9e9b13df0 Added themeVariable references and som adjustments in base theme calculations. 2020-07-31 15:05:51 +02:00
Neil Cuzon
7ee9c4fb30 Update n00b-overview.md 2020-07-31 00:56:32 -07:00
Neil Cuzon
e43fd0c48a Update README.md 2020-07-31 00:55:21 -07:00
Neil Cuzon
27bed22fee Update README.md 2020-07-31 00:55:01 -07:00
Neil Cuzon
aae69fa599 Update README.md 2020-07-31 00:38:03 -07:00
Neil Cuzon
8abe138150 Update versionUpdates.md 2020-07-30 23:46:13 -07:00
Neil Cuzon
dccb23bb80 Update theming.md 2020-07-30 13:50:39 -07:00
Neil Cuzon
5e4bf0f019 Update config.js 2020-07-30 13:32:15 -07:00
Knut Sveidqvist
f87c56af5c Merge pull request #1593 from mermaid-js/1590_theme_finalizations
1590 theme finalizations
2020-07-30 19:57:33 +02:00
Knut Sveidqvist
5565aab488 #1590 Theme base tweaked for custom theming 2020-07-30 19:18:18 +02:00
Knut Sveidqvist
dbe6b9dacb #1590 Themes tweaked 2020-07-30 15:28:46 +02:00
Knut Sveidqvist
dd866718b9 Removed console statements 2020-07-30 10:16:29 +02:00
Knut Sveidqvist
116c616561 Merge pull request #1591 from mermaid-js/dependabot/npm_and_yarn/elliptic-6.5.3
Bump elliptic from 6.5.2 to 6.5.3
2020-07-30 10:01:33 +02:00
dependabot[bot]
084e3df8f7 Bump elliptic from 6.5.2 to 6.5.3
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-30 07:50:31 +00:00
Knut Sveidqvist
36e421eb5f Merge pull request #1586 from mermaid-js/1542_take_two
1542 take two
2020-07-30 08:58:56 +02:00
Knut Sveidqvist
a5b01c3f6f #1542 Adding gantt to showcases 2020-07-30 08:34:41 +02:00
Knut Sveidqvist
f1836c281c #1542 Fix for secirity config 2020-07-30 08:20:27 +02:00
Neil Cuzon
292289d16d Update README.md 2020-07-29 23:06:16 -07:00
GDFaber
4e3bdf0925 Merge pull request #1587 from GDFaber/documentation/fix_flowchart_style_example
Flowchart documentation: Fix code example for styling nodes
2020-07-30 01:31:28 +02:00
Marc Faber
b17475f013 #1366 Flowchart documentation: Fix code example for styling nodes 2020-07-30 01:18:58 +02:00
Knut Sveidqvist
ecea0f90d4 #1542 Handling of config 2020-07-29 22:19:23 +02:00
Knut Sveidqvist
a4bf85b1b6 #1542 Making sure config and directives works for overriding theme variables using initialize call or directives + tests 2020-07-29 18:38:59 +02:00
Knut Sveidqvist
d215d31349 Merge pull request #1585 from GDFaber/feature/1460_add_link_target_to_flowchart_click
Add link target option to flowchart click
2020-07-29 15:13:35 +02:00
Neil Cuzon
e4e24399d9 Update theming.md 2020-07-28 19:10:14 -07:00
Neil Cuzon
8f9d132ed6 Update theming.md 2020-07-28 19:06:34 -07:00
Neil Cuzon
e651511c35 Update theming.md 2020-07-28 19:01:01 -07:00
Neil Cuzon
2ecda17618 Update theming.md 2020-07-28 18:56:17 -07:00
Neil Cuzon
db03b5b102 Update theming.md 2020-07-28 18:28:52 -07:00
Neil Cuzon
9fd9a7bc10 Update 8.6.0_docs.md 2020-07-28 16:42:08 -07:00
Justin Greywolf
eda9faf956 Merge pull request #23 from mermaid-js/develop
bring up to date
2020-07-28 09:44:50 -07:00
Knut Sveidqvist
cf70678188 Merge branch 'develop' into feature/1460_add_link_target_to_flowchart_click 2020-07-28 13:21:31 +02:00
Knut Sveidqvist
b23988c947 Merge pull request #1582 from cmmoran/develop
Directive support for many diagrams, config bugfix
2020-07-28 13:17:35 +02:00
chris moran
06f6e75d5a Class diagram parsing
Fixed a class diagram parsing issue
2020-07-28 07:00:04 -04:00
chris moran
c9854b35e2 Fixed flowchart parsing (broken tests - grammar changes were not 100% correct) 2020-07-28 05:48:26 -04:00
Marc Faber
71e4ada39a Trigger tests once more 2020-07-28 11:09:54 +02:00
Marc Faber
d04d8c3a1d #1460 Add link target option to flowchart click 2020-07-28 10:49:54 +02:00
chris moran
283faf7a2f Fixes
GraphObjects.md: [ and ] should be escaped in text (they're links otherwise)
flow.jison: fixed a parsing issue when the direction is omitted (defaults to 'TB')
stateRenderer-v2: was silently failing due to a try/catch in the parse function. (intentional?) removed to show errorHandler
mermaidAPI: removed unnecessary call to updateRendererConfigs since reinitialize does this
2020-07-28 04:45:22 -04:00
chris moran
0299ff0a79 Added directive support to state diagrams
Fixed an issue with markerUnits: (default is 'strokeWidth' not 0
2020-07-27 19:44:45 -04:00
chris moran
4ee65822aa Merge remote-tracking branch 'carlosblanco/feature/1228-support-dashes-in-actor-names-in-sequence-diagrams' into develop 2020-07-27 15:05:57 -04:00
chris moran
e7ca6c16ff Tweaked PIE (got rid of some parsing conflicts) 2020-07-27 14:15:38 -04:00
chris moran
771bf78576 Fixed parsers to use the correct type name in close_directive
Added directive support to pie
(Refactored pie parsing to be a bit more clear)
Added more unit tests to pie
2020-07-27 13:24:23 -04:00
chris moran
b9fa2f4125 Added directive parsing to gannt
Ensured tests pass
2020-07-27 10:16:41 -04:00
chris moran
e5b22684cd Fixed a parser warning in classDiagram
Fixed a regression bug I introduced in theme.spec.js
2020-07-27 09:57:04 -04:00
chris moran
43d37ab1cf Fixed a new config issue
Diagrams now properly reset to siteConfig when there are multiple diagrams on a single page
2020-07-27 08:54:45 -04:00
chris moran
1fc142a59f Fixed a regression with classDiagram supporting comments 2020-07-27 07:38:12 -04:00
chris moran
c4ad95760a Fixed a regression in sequence diagram parsing.
Added the parser as the first argument to parseDirective to support custom directive handling (for now delegated within mermaidAPI but should probably discriminate based on type for delegation)
2020-07-27 06:50:54 -04:00
Knut Sveidqvist
f0ed170b04 #1542 Setting up base theme for custom theming 2020-07-27 11:51:20 +02:00
chris moran
38d4b5be1a Fixed an issue with flowchart rendering. Remember to render html, securityLevel='loose' must be set by the siteConfig. The default securityLevel as of now is 'strict'. This causes html to be url encoded. 2020-07-27 05:33:41 -04:00
Knut Sveidqvist
5a7d770a58 #1542 Setting up base theme for custom theming 2020-07-27 10:01:34 +02:00
chris moran
c8f652aaa8 Merge branch 'mermaid-js-develop' into develop 2020-07-27 03:23:04 -04:00
Neil Cuzon
336793b2a1 Update versionUpdates.md 2020-07-26 23:28:51 -07:00
Neil Cuzon
c29ea2e679 Update README.md 2020-07-26 23:28:24 -07:00
Neil Cuzon
3b6f05800d Update README.md 2020-07-26 23:04:11 -07:00
Neil Cuzon
dda824856a Update usage.md 2020-07-26 22:20:52 -07:00
Neil Cuzon
474ab586f8 Merge pull request #1 from NeilCuzon/release/8.6.0
Release/8.6.0
2020-07-26 21:18:16 -07:00
Neil Cuzon
6bef35d8ef Merge branch 'develop' into release/8.6.0 2020-07-26 21:17:52 -07:00
Neil Cuzon
ad12660019 Update versionUpdates.md 2020-07-26 21:15:13 -07:00
Neil Cuzon
016da1d37d Create versionUpdates.md 2020-07-26 21:13:54 -07:00
Knut Sveidqvist
4e12f959fc Updated after 8.6.4 merge 2020-07-26 22:38:55 +02:00
Knut Sveidqvist
1c06e9d683 Merge remote-tracking branch 'origin/develop' into develop 2020-07-26 22:37:15 +02:00
Knut Sveidqvist
01d7a33230 Merge branch 'master' into develop 2020-07-26 22:37:10 +02:00
Knut Sveidqvist
d92f5621aa Updated mermaid versio in docs 2020-07-26 22:34:15 +02:00
Knut Sveidqvist
8fdc61e227 Merge branch 'release/8.6.4' 2020-07-26 22:30:30 +02:00
Knut Sveidqvist
9825b161ff latest build (8.6.4) 2020-07-26 22:30:09 +02:00
chris moran
108a50f3bb Merge branch 'mermaid-js-develop' into develop 2020-07-26 08:59:22 -04:00
Knut Sveidqvist
95b7e4f9ad Theme tweaks 2020-07-26 14:09:48 +02:00
Knut Sveidqvist
a526386fbb Merge pull request #1579 from NeilCuzon/release/8.6.0
Release/8.6.0
2020-07-26 13:37:39 +02:00
Knut Sveidqvist
3fb3453166 dark theme fixes 2020-07-26 12:13:06 +02:00
Knut Sveidqvist
8dd0fe3c40 Adding showcases 2020-07-26 11:50:36 +02:00
Knut Sveidqvist
b1f0797a1f Updated test 2020-07-26 08:20:45 +02:00
Knut Sveidqvist
416e355495 Build 2020-07-26 08:05:32 +02:00
Knut Sveidqvist
62acc18e7d Merge of cherry pick 2020-07-26 08:03:56 +02:00
Knut Sveidqvist
06d80032fe #1578 Fetching updated configuration before use 2020-07-26 08:00:43 +02:00
Knut Sveidqvist
4e795c81f4 Merge branch 'release/8.6.3' into develop 2020-07-26 07:23:05 +02:00
Neil Cuzon
718ba719ca Update Setup.md 2020-07-25 21:36:15 -07:00
Neil Cuzon
a5ed3ca446 Update 8.6.0_docs.md 2020-07-25 21:36:12 -07:00
Neil Cuzon
3a93c50e38 Update usage.md 2020-07-25 19:14:06 -07:00
Neil Cuzon
654f673def Update usage.md 2020-07-25 19:08:11 -07:00
Neil Cuzon
1111382b53 Update usage.md 2020-07-25 19:04:11 -07:00
Neil Cuzon
1e605cdf0f Update n00b-gettingStarted.md 2020-07-25 18:15:37 -07:00
Neil Cuzon
2c27f422d9 Update n00b-gettingStarted.md 2020-07-25 09:52:11 -07:00
Neil Cuzon
f53a2f1b94 Update Setup.md 2020-07-25 09:52:03 -07:00
Neil Cuzon
4fb40a6af7 Update usage.md 2020-07-24 22:51:27 -07:00
Neil Cuzon
6f6f5738fa Update usage.md 2020-07-24 22:51:13 -07:00
Neil Cuzon
40aacbf279 Update n00b-gettingStarted.md 2020-07-24 12:30:06 -07:00
Knut Sveidqvist
9ea3bfb7c7 Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2020-07-24 19:14:46 +02:00
Knut Sveidqvist
dc2d52fc09 testing the label width in percy 2020-07-24 19:14:42 +02:00
Knut Sveidqvist
7dcebd51ab Merge pull request #1571 from abhijeet-pathak/bug/1569_document_link_broken
Fixed the path to 8.6.0_docs.md
2020-07-24 13:01:51 +02:00
Neil Cuzon
9ef5769f93 Update usage.md 2020-07-23 23:29:36 -07:00
Knut Sveidqvist
d12b197ec9 Version bump 2020-07-24 08:28:14 +02:00
Knut Sveidqvist
c5b55fa476 Some small interim changes, adding theming.doc 2020-07-24 08:25:57 +02:00
Neil Cuzon
355fcced55 Update usage.md 2020-07-23 23:04:39 -07:00
Neil Cuzon
701fb1378e Update usage.md 2020-07-23 22:36:16 -07:00
Carlos Blanco
b120c34177 Support dashes in actor names in sequence diagrams 2020-07-23 20:15:52 -06:00
Neil Cuzon
c23caf899f Update examples.md 2020-07-23 18:39:43 -07:00
Neil Cuzon
52c30e588c Update 8.6.0_docs.md 2020-07-23 18:33:11 -07:00
Abhijeet Pathak
9da8f4d35b Fixed the path to 8.6.0_docs.md 2020-07-23 19:49:01 +05:30
chris moran
1b89189efa re-add classDiagram as a theme type (in addition to class and classDiagram-v2 for class diagrams) 2020-07-23 06:03:04 -04:00
chris moran
e53c5097f9 Merge branch 'mermaid-js-develop' into develop 2020-07-23 05:59:40 -04:00
chris moran
cb675300b1 Directive support added to journey
Fixed an issue in journey svgDraw.drawText expected an attribute (textMargin) but did not receive one and raised an error: <tspan> attribute x: Expected length, "NaN".
Added parseDirective to journeyDb
2020-07-23 05:58:15 -04:00
Neil Cuzon
c6a1f42c44 Update usage.md 2020-07-23 00:15:44 -07:00
Knut Sveidqvist
dbda90b15b Fix if theme inclusion for classDiagrams 2020-07-23 07:50:22 +02:00
Neil Cuzon
29a04d9d83 Update n00b-gettingStarted.md 2020-07-22 21:31:49 -07:00
Neil Cuzon
0a6dc68d13 Update n00b-gettingStarted.md 2020-07-22 21:28:48 -07:00
Neil Cuzon
a1a85d08af Update n00b-gettingStarted.md 2020-07-22 21:28:02 -07:00
Chris Moran
601eec7da5 Merge pull request #1568 from cmmoran/develop
Refactor Theme to Config Module
2020-07-22 21:02:41 -04:00
chris moran
a54f3c8c7f Refactor
Moved theme variables to the config module
2020-07-22 16:46:41 -04:00
chris moran
17478491e9 Merge branch 'mermaid-js-develop' into develop 2020-07-22 16:33:46 -04:00
Knut Sveidqvist
245cf6d2e0 Merge pull request #1567 from mermaid-js/feature/Issue-1465_Class_migration
Feature/issue 1465 class migration
2020-07-22 21:35:01 +02:00
Ashish Jain
71af9741cc Correct positioning for class title 2020-07-22 21:25:01 +02:00
chris moran
0503b64205 Merge branch 'mermaid-js-develop' into develop 2020-07-22 14:55:02 -04:00
Ashish Jain
c9d4cac3ff Merge branch 'develop' into feature/Issue-1465_Class_migration 2020-07-22 19:33:20 +02:00
Ashish Jain
a2932a0393 Merge branch 'master' into develop 2020-07-22 19:30:55 +02:00
Ashish Jain
6917303e1b Enabled styles.js for classDiagram-v2 2020-07-22 19:25:26 +02:00
Knut Sveidqvist
f685363574 Relase 8.6.2 2020-07-22 19:22:02 +02:00
Ashish Jain
03c19ccae9 Migrated style css from scss file to styles.js 2020-07-22 19:10:28 +02:00
Knut Sveidqvist
7313b4b649 Merge pull request #1566 from mermaid-js/1552_fix_broken_cardinality_class_diagram
#1552 Fix for broken cardinality support for class diagrams
2020-07-22 19:07:25 +02:00
Ashish Jain
ff439369da Updated variable name to cnf 2020-07-22 18:27:25 +02:00
Ashish Jain
24e470a099 Merge branch 'develop' into feature/Issue-1465_Class_migration 2020-07-22 18:23:47 +02:00
Ashish Jain
8e72ddde32 #1552 Update current.html for cardinality test 2020-07-22 18:20:31 +02:00
Ashish Jain
07a7ea1f23 #1552 Fix for broken cardinality support for class diagrams 2020-07-22 17:35:01 +02:00
Neil Cuzon
3c854d4af9 Update _sidebar.md 2020-07-21 16:29:45 -07:00
Neil Cuzon
7f3f011104 Update n00b-gettingStarted.md 2020-07-21 16:29:41 -07:00
Neil Cuzon
a5cfae4b33 Update integrations.md 2020-07-21 16:20:17 -07:00
Ashish Jain
516649a508 Adjusting initial classDiagram shape rendering 2020-07-21 15:27:02 +02:00
Ashish Jain
abe23250c4 Adjusting initial classDiagram shape rendering 2020-07-21 15:25:16 +02:00
Knut Sveidqvist
0f575907c7 Merge pull request #1560 from NeilCuzon/release/8.6.0
Edited Release/8.6.0
2020-07-21 12:56:38 +02:00
Knut Sveidqvist
835a3f6149 Merge pull request #1563 from mermaid-js/bug/1562_arrowheads_in_edges_to_cluster
Bug/1562 arrowheads in edges to cluster
2020-07-21 12:55:40 +02:00
Knut Sveidqvist
b93ef22687 #1562 Fix for test 2020-07-21 12:31:05 +02:00
Knut Sveidqvist
bfd927d395 Merge pull request #1561 from mermaid-js/bug/1532_edge_issue
#Beta flowchart: issues with edges to some types of nodes
2020-07-21 12:12:06 +02:00
Knut Sveidqvist
cb79302867 #1562 Updated handling of pointsarray when the point is already in the array 2020-07-21 12:01:08 +02:00
Knut Sveidqvist
211d6f4005 2020-07-21 11:15:42 +02:00
Neil Cuzon
ddee6d2b6a Update config.js 2020-07-20 20:07:57 -07:00
Neil Cuzon
575c34467f Merge branch 'develop' into release/8.6.0 2020-07-20 20:01:32 -07:00
Neil Cuzon
dc8c27b1f9 Update faq.md 2020-07-20 12:09:49 -07:00
Neil Cuzon
4639ec87d2 Update faq.md 2020-07-20 12:09:38 -07:00
Neil Cuzon
50079670f9 Update user-journey.md 2020-07-20 12:09:02 -07:00
Neil Cuzon
ae12e65712 Update usage.md 2020-07-20 12:00:45 -07:00
Neil Cuzon
2f9be335cb Update n00b-syntaxReference.md 2020-07-20 11:58:36 -07:00
Neil Cuzon
9e59d927f2 Update n00b-overview.md 2020-07-20 11:51:23 -07:00
Neil Cuzon
ced3e5fec8 Update n00b-overview.md 2020-07-20 11:48:15 -07:00
Neil Cuzon
50eb523d8e Update n00b-syntaxReference.md 2020-07-20 11:45:13 -07:00
Neil Cuzon
d6baf1b32a Update n00b-syntaxReference.md 2020-07-20 11:39:59 -07:00
Neil Cuzon
60b8dfaa2d Update n00b-syntaxReference.md 2020-07-20 11:39:39 -07:00
Neil Cuzon
815f398ada Update n00b-syntaxReference.md 2020-07-20 11:39:23 -07:00
Neil Cuzon
56ed31ed6f Update n00b-syntaxReference.md 2020-07-20 11:34:05 -07:00
Neil Cuzon
3213fbff8b Update breakingChanges.md 2020-07-20 09:35:46 -07:00
Neil Cuzon
4bca9c63da Update classDiagram.md 2020-07-20 09:35:12 -07:00
Neil Cuzon
01fe70a29a Update development.md 2020-07-20 09:34:37 -07:00
Neil Cuzon
e43804d950 Update README.md 2020-07-20 09:31:51 -07:00
Neil Cuzon
17206fc538 Update CHANGELOG.md 2020-07-20 09:31:01 -07:00
Neil Cuzon
8cda6ede84 Update 8.6.0_docs.md 2020-07-20 09:30:05 -07:00
Knut Sveidqvist
a6ec038189 Merge pull request #1558 from mermaid-js/less_theme_variables
More theming tweaks
2020-07-20 17:37:18 +02:00
Knut Sveidqvist
ffaf6c14e4 #154 trweaking some more, state diagram composit backgrounds 2020-07-20 17:10:59 +02:00
Knut Sveidqvist
3a6915c0b6 #154 lint fixes 2020-07-20 15:24:12 +02:00
Knut Sveidqvist
93a8c83a68 #1542 Alignment between themes 2020-07-20 15:15:03 +02:00
Knut Sveidqvist
1302addcdd #1542 Base theme for simple custom themeing 2020-07-20 14:13:05 +02:00
Knut Sveidqvist
490cbd3f0d Merge pull request #1557 from cmmoran/develop
Render tweak - each diagram should reset the config to siteConfig upon rendering
2020-07-20 11:01:29 +02:00
Knut Sveidqvist
631355d788 Merge pull request #1556 from mermaid-js/less_theme_variables
Tweaks of the new styling engine and tweaks of theams using is
2020-07-20 11:00:45 +02:00
chris moran
ec1ab05ae6 Deprecated prepush script in package.json ->
This fixes:
```Warning: Setting pre-push script in package.json > scripts will be deprecated
Please move it to husky.hooks in package.json, a .huskyrc file, or a husky.config.js file
Or run ./node_modules/.bin/husky-upgrade for automatic update```
2020-07-20 04:49:43 -04:00
chris moran
f5f26f334f Move detectInit higher in the render function. This prevents getConfig from potentially being called with the config changes from previous diagrams on the same page (or context)
This also allows mermaid the chance to reset the config to the siteConfig in between renderings
2020-07-20 04:45:10 -04:00
Knut Sveidqvist
dba579b546 #1542 Gantt tweaks 2020-07-20 10:24:15 +02:00
Knut Sveidqvist
fa68b8bb35 #1542 Some tweaks for sequence diagram 2020-07-20 10:05:46 +02:00
Knut Sveidqvist
ceb84ce020 #1542 Dark theme fixes for gantt 2020-07-20 10:00:08 +02:00
Knut Sveidqvist
68aa7fa3a4 #1542 Dark theme fixes for pie and user-journey 2020-07-20 09:44:09 +02:00
Knut Sveidqvist
70cd0655ed #1542 Set default theme variables 2020-07-20 08:20:09 +02:00
Neil Cuzon
956ee06ea6 Update n00b-overview.md 2020-07-19 21:18:36 -07:00
Neil Cuzon
e15e34db93 Update n00b-overview.md 2020-07-19 21:13:39 -07:00
Knut Sveidqvist
3c23de9735 #1542 Lint fixes 2020-07-19 21:15:58 +02:00
Knut Sveidqvist
91da46dd63 #1542 Theme adjustments 2020-07-19 21:10:52 +02:00
Knut Sveidqvist
4d280ff010 #1542 Making sure user overrides from directives ocerrides properly 2020-07-19 15:02:53 +02:00
chris moran
0297dd2664 Merge branch 'mermaid-js-develop' into develop 2020-07-19 04:30:37 -04:00
Neil Cuzon
56e328f31f Update usage.md 2020-07-18 20:20:48 -07:00
Neil Cuzon
ac2c1e019f Update n00b-gettingStarted.md 2020-07-18 20:12:08 -07:00
Neil Cuzon
56073fd522 Update usage.md 2020-07-18 20:11:48 -07:00
Neil Cuzon
07f6572816 Update usage.md 2020-07-18 18:04:03 -07:00
Knut Sveidqvist
8a018aa0f2 Merge branch 'feature/1542_simplify_theming' into develop 2020-07-18 20:12:31 +02:00
Knut Sveidqvist
936d5821f9 Merge 2020-07-18 20:12:10 +02:00
Knut Sveidqvist
04493035cd #1542 Adding khroma for color in dark-theme 2020-07-18 15:51:17 +02:00
Knut Sveidqvist
08064c4243 #1542 Adding khroma for color manipulations 2020-07-18 15:15:50 +02:00
Neil Cuzon
ed1c2cb596 Update README.md 2020-07-18 05:18:18 -07:00
Neil Cuzon
212e0e624f Update n00b-overview.md 2020-07-18 04:59:52 -07:00
Knut Sveidqvist
e8af778962 #1542 Updated test 2020-07-18 13:52:51 +02:00
Neil Cuzon
26dba53d99 Update config.js 2020-07-18 04:39:33 -07:00
Neil Cuzon
1c6a64caf2 Update n00b-overview.md 2020-07-18 04:27:17 -07:00
Knut Sveidqvist
f7a6241ac0 #1542 Fix for markers in class diagrams 2020-07-18 09:57:55 +02:00
Knut Sveidqvist
b6453383cf #1542 Handling of default values when no theme is set 2020-07-18 09:37:51 +02:00
Neil Cuzon
615c6cb388 Update directives.md 2020-07-17 20:00:24 -07:00
Neil Cuzon
31f890d55c Update n00b-overview.md 2020-07-17 16:54:55 -07:00
Neil Cuzon
567c09850c Update n00b-overview.md
- Added copy to make it more friendly to beginners.
2020-07-17 16:54:23 -07:00
Knut Sveidqvist
8d076efd71 #1542 Styling for all diagram types 2020-07-17 15:57:02 +02:00
Knut Sveidqvist
062126c43d Test page for directives 2020-07-17 12:44:42 +02:00
Knut Sveidqvist
f9667cd80f #1542 Test page using directoives to switch theme 2020-07-17 12:34:33 +02:00
Knut Sveidqvist
65c2f58a66 #1542 Test page using directoives to switch theme 2020-07-17 09:31:42 +02:00
Knut Sveidqvist
030b945828 #1542 Theme variables setup 2020-07-17 09:16:39 +02:00
Knut Sveidqvist
fd4240b774 #1542 Setting theme options as the regular options 2020-07-16 23:39:38 +02:00
Knut Sveidqvist
8c0e022b44 Template for dynamic styles in place 2020-07-16 20:27:42 +02:00
Knut Sveidqvist
da8e75f98a Merge from master with doc updates 2020-07-16 12:27:03 +02:00
Knut Sveidqvist
a1d2208bf3 Merge branch 'release/8.6.0' 2020-07-16 12:23:55 +02:00
Knut Sveidqvist
b6b76eb137 Docs updated from code 2020-07-16 12:17:21 +02:00
Knut Sveidqvist
19b16fe796 Merge pull request #1545 from NeilCuzon/release/8.6.0
Release/8.6.0
2020-07-16 12:13:00 +02:00
Knut Sveidqvist
fec1553041 Merge pull request #1548 from mermaid-js/bug/1547_crypto_libraries_in_bundle
Bug/1547 crypto libraries in bundle
2020-07-16 12:10:53 +02:00
Knut Sveidqvist
bc2f693c55 Merge pull request #1549 from mermaid-js/feature/1454_theme_base_redering_tests
#1454 Adding showcase diagrams rendered with the different themes
2020-07-16 11:45:57 +02:00
Knut Sveidqvist
594ae20a6e #1547 Remove usage of crypto libraries 2020-07-16 10:48:37 +02:00
Neil Cuzon
14388f4bb1 Update n00b-gettingStarted.md 2020-07-15 21:30:23 -07:00
Neil Cuzon
369e6d1e61 Update README.md 2020-07-15 14:15:28 -07:00
Neil Cuzon
789200d454 Update README.md 2020-07-15 14:11:35 -07:00
Neil Cuzon
dcfab0f4dd Update README.md 2020-07-15 13:27:54 -07:00
Neil Cuzon
9677ed9e2d Update README.md 2020-07-15 10:35:50 -07:00
Neil Cuzon
a4ece6c1c5 Update directives.md 2020-07-15 10:35:19 -07:00
Neil Cuzon
e34396015f Update directives.md 2020-07-15 10:34:57 -07:00
Neil Cuzon
64e3310376 Update directives.md 2020-07-15 10:34:34 -07:00
Neil Cuzon
a955d8f890 Update directives.md 2020-07-15 10:30:57 -07:00
Knut Sveidqvist
bbc9532444 #1454 Adding showcase diagrams rendered with the different themes 2020-07-15 14:02:19 +02:00
Knut Sveidqvist
389afde138 Merge pull request #1543 from mermaid-js/bug/1485_application_of_font_settings
#1485 Setting proper font settings in the root css
2020-07-15 14:00:00 +02:00
Knut Sveidqvist
fe5d9e486b #1485 Fixing for test 2020-07-15 13:29:35 +02:00
Knut Sveidqvist
6959e140af #1485 Fixing font in pie legends after fix 2020-07-15 12:32:43 +02:00
Knut Sveidqvist
3a9306a9c2 #1485 Setting proper font settings in the root css 2020-07-15 12:12:57 +02:00
Neil Cuzon
cd23899e02 Update README.md 2020-07-14 21:01:01 -07:00
Neil Cuzon
5a9fa66b04 Update _sidebar.md 2020-07-14 21:00:45 -07:00
Neil Cuzon
1866244a2a Update 8.6.0_docs.md 2020-07-14 19:37:05 -07:00
Neil Cuzon
5d4583c77f Update 8.6.0_docs.md 2020-07-14 19:33:06 -07:00
Neil Cuzon
66ee81c55f Update 8.6.0_docs.md 2020-07-14 19:27:00 -07:00
Neil Cuzon
9a2321a669 Update config.js 2020-07-14 18:15:42 -07:00
Neil Cuzon
1878e39dfc Update config.js 2020-07-14 18:11:36 -07:00
Neil Cuzon
2b9960e05f Update stateDiagram.md 2020-07-14 14:25:49 -07:00
Neil Cuzon
c2e34cd0f5 Update pie.md 2020-07-14 14:25:46 -07:00
Neil Cuzon
78bb5e09e5 Update sequenceDiagram.md 2020-07-14 14:25:43 -07:00
Neil Cuzon
e8c7ffa872 Update flowchart.md 2020-07-14 14:25:40 -07:00
Neil Cuzon
557a3f0896 Update gantt.md 2020-07-14 14:25:37 -07:00
Neil Cuzon
b2af5390fb Update README.md 2020-07-13 18:14:59 -07:00
Neil Cuzon
eb6c901527 Update README.md 2020-07-13 18:04:41 -07:00
Neil Cuzon
d5a9cbe5a3 Update README.md 2020-07-13 18:03:36 -07:00
Neil Cuzon
0658581bcd Update README.md 2020-07-13 18:02:38 -07:00
Neil Cuzon
26c3f5a2cc Update README.md 2020-07-13 18:01:43 -07:00
Neil Cuzon
34a60d7661 Add files via upload 2020-07-13 18:00:50 -07:00
Neil Cuzon
ea0cd80ea7 Add files via upload 2020-07-13 17:58:25 -07:00
Neil Cuzon
11d35c8410 Update README.md 2020-07-13 17:13:07 -07:00
Neil Cuzon
38359e176f Update README.md 2020-07-13 17:12:29 -07:00
Neil Cuzon
e54d9cf629 Update 8.6.0_docs.md 2020-07-13 14:56:28 -07:00
Neil Cuzon
deccf8891d Update README.md 2020-07-13 14:56:24 -07:00
Neil Cuzon
e5ac551795 Update README.md 2020-07-13 14:47:52 -07:00
Neil Cuzon
7684f79e64 Update README.md 2020-07-13 14:47:36 -07:00
Neil Cuzon
9fdab327c8 Update 8.6.0_docs.md 2020-07-13 14:46:47 -07:00
Neil Cuzon
1908af6f54 Update 8.6.0_docs.md 2020-07-13 14:45:55 -07:00
Neil Cuzon
a677608f1d Update 8.6.0_docs.md 2020-07-13 14:42:57 -07:00
Neil Cuzon
93d462e028 Update README.md 2020-07-13 13:59:55 -07:00
Knut Sveidqvist
661553da68 Fixed broken link to config info 2020-07-13 17:21:18 +02:00
Knut Sveidqvist
b4203992bf Merge branch 'release/8.6.0' 2020-07-13 16:42:10 +02:00
Knut Sveidqvist
686ee1e349 Relase 8.6.0 2020-07-13 16:39:52 +02:00
Knut Sveidqvist
9e8c9e897f Merge pull request #1538 from NeilCuzon/develop
documentation for config and other changes, with minor cosmetic changes to ReadMe
2020-07-12 19:56:37 +02:00
Neil Cuzon
06ceb5e68d Update README.md 2020-07-12 10:44:35 -07:00
Knut Sveidqvist
dc2f9c304d Font fix for rendering tests - back to noto font 2020-07-12 15:25:01 +02:00
Knut Sveidqvist
462d5c3b12 Font fix for rendering tests 2020-07-12 14:56:27 +02:00
Knut Sveidqvist
39e90a20da Font fix for rendering tests 2020-07-12 12:21:17 +02:00
Knut Sveidqvist
b40014d709 Merge pull request #1536 from mermaid-js/bug/1448_mock_clock_in_render_tests
Mocking of clock in gantt tests
2020-07-12 11:24:14 +02:00
Knut Sveidqvist
2bdc229a9a Merge pull request #1496 from polarsquad/fix-git-commit-id
Make gitGraph commit IDs out of hexadecimal chars
2020-07-12 11:22:19 +02:00
Knut Sveidqvist
61684830bf 2020-07-12 11:15:32 +02:00
Knut Sveidqvist
e93a0556e7 Merge pull request #1471 from vantoan8x/securityLevel_antiscript_option
add security level antiscript option, use rich html format but dont permit script element.
2020-07-12 10:58:08 +02:00
Knut Sveidqvist
12668b78b9 Merge pull request #1535 from 72636c/feature/er_classes
Add classes to ERD elements
2020-07-12 10:52:30 +02:00
Knut Sveidqvist
8255088508 Merge pull request #1534 from 72636c/feature/er_use_max_width
Add `er.useMaxWidth` config option
2020-07-12 10:51:00 +02:00
Knut Sveidqvist
e66f7f012e Merge pull request #1533 from 72636c/feature/config_flowchart_diagram_padding
Add `flowchart.diagramPadding` config option
2020-07-12 10:49:31 +02:00
Ryan Ling
3e38da2120 Document er defaults 2020-07-11 20:50:36 +10:00
Ryan Ling
f2e7c82231 Fix table alignment 2020-07-11 20:44:46 +10:00
Ryan Ling
20e56d7dfa Add classes to ERD elements
It's a little hard to style the current ERDs. This aims to make things
easier by associating a distinct class with each type of element within
the diagram.

I've added a common `er` class across the elements so that those that
bring their own `themeCSS` can target styles at this diagram type. This
hasn't really been done elsewhere so I'm open to suggestions; an
alternative may be to add classes to a top-level element so that we can
do e.g. `svg.mermaid.er .entityBox`.
2020-07-11 20:34:57 +10:00
Ryan Ling
13225faa9e Update docs 2020-07-11 18:59:43 +10:00
Ryan Ling
99cb752c71 Add er.useMaxWidth config option
This restores the option of rendering an ERD with an absolute width,
which is consistent with the approach taken with the other diagram
types.

This logic was lost in #1324, which was probably just a small oversight:

9199546dca (diff-7c38d27acbe0676d923bf19283671616L397-L409)

The option defaults to true for backwards compatibility.
2020-07-11 18:54:26 +10:00
Ryan Ling
5da4ced8c1 Add flowchart.diagramPadding config option
This option lets you customise the padding around the whole flowchart.
It is equivalent to `er.diagramPadding` and defaults to 8px for
backwards compatibility with the current hardcoded value.
2020-07-11 16:54:00 +10:00
Neil Cuzon
e363a21619 Update README.md 2020-07-10 08:43:59 -07:00
Neil Cuzon
09efbaf621 Update Setup.md 2020-07-09 11:15:50 -07:00
Neil Cuzon
31027047e3 Update 8.6.0_docs.md 2020-07-09 06:10:07 -07:00
Neil Cuzon
629eb4ca90 Update 8.6.0_docs.md 2020-07-09 05:28:47 -07:00
Neil Cuzon
c4e6e5eca4 Update 8.6.0_docs.md 2020-07-09 05:25:15 -07:00
Neil Cuzon
ea72d41e6d Update 8.6.0_docs.md 2020-07-09 05:23:30 -07:00
Neil Cuzon
c0f5b04472 Update 8.6.0_docs.md 2020-07-09 05:16:50 -07:00
Neil Cuzon
532b32dab5 Update 8.6.0_docs.md 2020-07-09 05:15:47 -07:00
Neil Cuzon
fb5c96731a Update 8.6.0_docs.md 2020-07-09 05:14:20 -07:00
Neil Cuzon
3f8eb8cb6b Update 8.6.0_docs.md 2020-07-09 04:46:55 -07:00
Neil Cuzon
89dc64ab66 Add files via upload 2020-07-09 04:12:07 -07:00
Neil Cuzon
6968cff2b6 Add files via upload 2020-07-09 04:02:05 -07:00
Chris Moran
c390e9e877 Merge pull request #1529 from cmmoran/develop
Missed test case for allowing site owner to append to `secure` field set
2020-07-09 06:32:16 -04:00
chris moran
dee47ec978 Missed test case for allowing site owner to append to secure field set
Missed logic for default-appending src array values where not existing within dst array in assignWithDepth function
2020-07-08 08:41:35 -04:00
Toan
fce2a16e42 add security level antiscript option, to let use rich html format but remove all script element. 2020-07-05 23:04:22 +07:00
Knut Sveidqvist
5242672efb Adding configuration docs to setup.md and bumping version to 8.6.0 2020-07-04 14:25:14 +02:00
Knut Sveidqvist
5c043dd908 Merge pull request #1525 from mermaid-js/bug/1524_message_text_vertical_pos
Bug/1524 message text vertical pos
2020-07-04 12:46:24 +02:00
Knut Sveidqvist
19ed03c44c #1524 Updated tests 2020-07-04 12:35:34 +02:00
Knut Sveidqvist
32b2ee8cab 2020-07-04 11:13:54 +02:00
Knut Sveidqvist
7e9ab546eb Fix for broken build, issue with config use in flowcahart and gantt diagram 2020-07-02 22:34:13 +02:00
Knut Sveidqvist
2af1f9a9d3 Fix for broken build, issue with config use in flowcahart and gantt diagram 2020-07-02 22:27:03 +02:00
Knut Sveidqvist
b6d6d3c980 Merge pull request #1523 from mermaid-js/feature/1483_long_messages
Directives, sequenceDiagram refactor, config normalization, many tweaks
2020-07-02 18:39:25 +02:00
Knut Sveidqvist
c655cfaca8 Merge branch 'develop' into feature/1483_long_messages 2020-07-02 18:38:37 +02:00
Knut Sveidqvist
b3a465dbca Merge branch 'develop' into feature/1483_long_messages 2020-07-02 18:25:49 +02:00
Knut Sveidqvist
33d3bc53b4 Merge pull request #1519 from cmmoran/develop
Utils - memoize, calculateTextDimensions (and friends), assignWithDepth, etc
2020-07-02 17:01:24 +02:00
Knut Sveidqvist
be9da3928b Updated mermaidAPI.md from PR 2020-07-02 16:59:09 +02:00
Knut Sveidqvist
a9fd557c4e Merge branch 'NeilCuzon-patch-8' into develop 2020-07-02 16:57:00 +02:00
Knut Sveidqvist
faac22f6ed Lint fix 2020-07-02 16:56:30 +02:00
Chris Moran
35a47093ab Merge pull request #1522 from cmmoran/feature/1483_long_messages
Fixed dark theme (sequenceDiagram) sequenceNumbers color
2020-07-01 07:59:17 -04:00
chris moran
01a2d90e38 sequence numbers for dark mode should probably be black since the circle is the contrast color 2020-07-01 07:53:03 -04:00
Chris Moran
1cc2e74a03 Merge pull request #1521 from cmmoran/feature/1483_long_messages
added hasBreaks and splitBreaks to common.js
2020-07-01 07:44:37 -04:00
chris moran
ca86ab71f2 added hasBreaks and splitBreaks to common.js
updated parseMessage to set wrap: true when breaks are detected
2020-07-01 07:41:44 -04:00
Chris Moran
ee425d278c Merge pull request #1520 from mermaid-js/develop
Merging changes from develop into feature/1483_long_messages
2020-07-01 06:34:48 -04:00
chris moran
1c3c2b6a74 utils refactor
- memoize to poor-man-cache properly-ish
- wrapLabel, calculateTextDimensions (and friends) moved to utils for all to enjoy
- drawSimpleText getTextObj moved to utils to support the functions listed above
- assignWithDepth - Object.assign but depth-ier
- random - for crypto random numbers
2020-07-01 06:20:53 -04:00
Chris Moran
9952f7734a Merge pull request #1518 from cmmoran/feature/1483_long_messages
Feature/1483 long messages
2020-07-01 05:36:11 -04:00
chris moran
2ffb2988bf One small refactor to fix activation starty
Ensure a minimum amount of space between wrapped / non-wrapped title text and the next element
2020-07-01 05:34:53 -04:00
chris moran
fda1d7c4c5 Merge remote-tracking branch 'upstream/feature/1483_long_messages' into feature/1483_long_messages 2020-07-01 04:49:15 -04:00
Chris Moran
19519ac74e Merge pull request #1 from mermaid-js/develop
Merge upstream
2020-07-01 04:47:47 -04:00
Chris Moran
eb3f62fd90 Merge pull request #1517 from cmmoran/feature/1483_long_messages
Feature/1483 long messages
2020-07-01 04:46:27 -04:00
Neil Cuzon
891b362e7d Update mermaidAPI.js
-Added tables into the comments from mermaidAPI.md, to reflect documentation that I had added through a previous PR, #1509
-as per @knsv 's directions, added comments here.

-also found a list of parameters, who's documentation do not come out in the markdown file. I left them alone, but will be raising a separate issue, for others to review.
2020-07-01 01:35:25 -07:00
chris moran
cbb69bd3cb () => is not the same as function() {} smh
Fixed a few of the text rendering issues
2020-07-01 04:34:29 -04:00
Knut Sveidqvist
200a3e5e8c Merge pull request #1498 from mermaid-js/feature/1424_dark_mode_in_docs
Feature/1424 dark mode in docs
2020-06-30 16:54:06 +02:00
Knut Sveidqvist
0fab2dc24f Merge pull request #1499 from maiconschmitz/patch-1
Update README.md
2020-06-30 16:34:34 +02:00
Knut Sveidqvist
a48654f195 Merge pull request #1503 from NeilCuzon/patch-4
Update sequenceDiagram.md
2020-06-30 16:31:20 +02:00
chris moran
174b098724 loop/opt/alt/etc titles should always wrap 2020-06-30 07:54:51 -04:00
Chris Moran
ecb4671e0d Merge pull request #1513 from cmmoran/feature/1483_long_messages
conf.messageFont() would have a different cacheKey based on the cache…
2020-06-30 07:21:39 -04:00
chris moran
6c6f6838ee conf.messageFont() would have a different cacheKey based on the cacheKey calculations done in this particular branch. This will be normalized with the memoize PR about to be created. 2020-06-30 07:18:28 -04:00
Chris Moran
b4414758a7 Merge pull request #1512 from cmmoran/feature/1483_long_messages
math is hard sometimes?
2020-06-30 06:47:50 -04:00
chris moran
5b37536ce5 math is hard sometimes? 2020-06-30 06:42:29 -04:00
Chris Moran
3365fa174d Merge pull request #1511 from cmmoran/feature/1483_long_messages
Fixed config *font helpers
2020-06-30 06:24:36 -04:00
chris moran
d42b95bab9 messageFont, noteFont, and actorFont getConfig() calls were not specifying the sequence object
take into account width of message over single actor for actors' max message width
2020-06-30 06:20:45 -04:00
Chris Moran
6a3aaf360e Merge pull request #1510 from cmmoran/feature/1483_long_messages
Feature/1483 long messages
2020-06-30 03:51:25 -04:00
chris moran
083d0c90e2 Merge branch 'develop' into feature/1483_long_messages 2020-06-30 03:50:04 -04:00
chris moran
fed142dad2 Merge branch 'mermaid-js-develop' into develop 2020-06-30 03:34:55 -04:00
chris moran
fcd2126330 Getting closer 2020-06-28 08:37:26 -04:00
Neil Cuzon
e5cd0ced53 Update sequenceDiagram.md 2020-06-26 22:46:09 -07:00
Chris Moran
06dad7865c Merge pull request #1502 from cmmoran/develop
Missed `activationWidth` new configuration option for sequence diagrams
2020-06-26 10:19:02 -04:00
chris moran
6915634729 Missed activationWidth new configuration option for sequence diagrams 2020-06-26 10:17:13 -04:00
Chris Moran
d3647e2e8a Merge pull request #1501 from cmmoran/develop
Fixes
2020-06-26 09:33:57 -04:00
chris moran
217bd1f4bf Fixed test cases for sequence diagrams
Updated config to match a conversation knut and i had about the relationship between global, site, and integrator configuration
(Will update docs)
Renamed wrapEnabled to wrap
Poor man's caching for calculateTextDimensions, wrapLabel, and breakString (actually makes a huge difference)
2020-06-26 09:26:56 -04:00
Maicon Schmitz
75fe500305 Update README.md
Correction off CLI link, in Related projects section
2020-06-25 11:24:45 -03:00
Ashish Jain
1e400624e0 Adjusting classDiagram marker styling 2020-06-24 21:46:59 +02:00
Ashish Jain
b190a0eaba Added support for classDiagram relation arrow markers 2020-06-24 21:45:19 +02:00
Knut Sveidqvist
afc779440a #1424 Setting proper loglevel for docs 2020-06-24 21:28:12 +02:00
Knut Sveidqvist
7f71717a9f #1424 Setting dark mode in docs based un user preferences 2020-06-24 21:26:55 +02:00
Knut Sveidqvist
b9931da241 1465 Marking edges witrh new schema for arrow heads 2020-06-24 19:47:12 +02:00
Knut Sveidqvist
eaf0d5e0a0 Merge branch 'feature/Issue-1465_Class_migration' of github.com:mermaid-js/mermaid into feature/Issue-1465_Class_migration 2020-06-24 19:43:00 +02:00
Knut Sveidqvist
832206ef80 Adjust flowchart-v2 to use new arrot type handling 2020-06-24 19:42:56 +02:00
Ashish Jain
85d4f2843e Initial commit for classDiagram v2 2020-06-24 19:34:12 +02:00
Knut Sveidqvist
0849aa3f03 Merge pull request #1488 from abhijeet-pathak/1005_gantt_sequnce_creation_order_change
Fix for the issue 1005
2020-06-24 18:33:01 +02:00
Knut Sveidqvist
4cdeb214a7 Merge pull request #1486 from zwpaper/develop
gitGraph dot and minus should be valid branch name
2020-06-24 18:25:56 +02:00
abhijeet-pathak
3c727bc46f Corrected the test case description 2020-06-24 14:51:08 +05:30
Miika Kankare
955ccfae88 Make gitGraph commit IDs out of hexadecimal chars 2020-06-24 09:28:58 +03:00
GDFaber
e13662dd2c Merge pull request #1492 from NeilCuzon/patch-5
Update flowchart.md
2020-06-23 19:27:15 +02:00
Abhijeet Pathak
2840c98bb0 Added test case for preserving creation order
of tasks
2020-06-23 22:32:49 +05:30
chris moran
7d9bf83f66 addition: added bounds models for bounds checking in unit tests.
addition: bounds.init will clear models
addition: added loop model widths id instead of using title as the id
removed parseMessage debug message
addition: added configuration labelBoxWidth and labelBoxHeight for loop label box width/height
change: adjusted svgDraw drawText to support anchor and valign and whether to output a tspan
change: drawText returns an array regardless of array size
change: hardcoded label width/height uses conf.labelBoxWidth and conf.labelBoxHeight
change: Math.round() on many of the calculations to clean up bounds values
change: getTextObj anchor, width, height start as undefined
2020-06-22 16:59:07 -04:00
GDFaber
d2c47bb153 Merge pull request #1491 from NeilCuzon/patch-4
Update faq.md
2020-06-22 08:04:03 +02:00
Neil Cuzon
9da3402997 Update flowchart.md
-added a few workarounds, I found for writing "end" as a node name alongside the workaround found in the FAQ.

-also made a few minor edits to the contents.
2020-06-21 15:19:45 -07:00
Neil Cuzon
e7784e3c34 Update faq.md 2020-06-21 11:41:46 -07:00
Neil Cuzon
224d6dc93f Update faq.md 2020-06-21 10:03:21 -07:00
Chris Moran
f95b5d05d7 Merge pull request #1489 from cmmoran/develop
noteModel generated during calculation of loop bounds
2020-06-20 20:56:29 -04:00
chris moran
ee109c2279 noteModel generated during calculation of loop bounds
msgModel generated during calculation of loop bounds
simplifies draw messages loop
2020-06-20 18:15:24 -04:00
Abhijeet Pathak
e515c7beb1 Fxed liniting issues. 2020-06-20 18:39:19 +05:30
Abhijeet Pathak
5f56db6f6e Fix for the issue 1005
(https://github.com/mermaid-js/mermaid/issues/1005)
A new attribute 'order' has been introduced in the task which records
the serial number of task in the script.
In ganttRenderer.js, the tasks are sorted by stratTime attribute.
The function which calculates 'y' for task rectangles, lables etc.
has been modified to correctly position it.
2020-06-20 18:03:48 +05:30
zwPapEr
c00b204259 gitGraph: 🔨 dot and minus should be valid branch name 2020-06-20 11:58:38 +08:00
Knut Sveidqvist
280c89a78d Merge pull request #1484 from chrismoran-bkt/develop
PR 1482 redux
2020-06-19 20:04:15 +02:00
Chris Moran
809ba2b392 Fixed: width of notes left of and right of 2020-06-19 13:50:53 -04:00
Chris Moran
18254392ab Merge branch 'mermaid-js-develop' into develop 2020-06-19 13:32:23 -04:00
Chris Moran
5646518352 Tweaked the PR for long messages 2020-06-19 12:45:04 -04:00
Chris Moran
710b88efae Merge branch 'feature/1483_long_messages' of https://github.com/mermaid-js/mermaid into develop 2020-06-19 09:17:04 -04:00
Chris Moran
1118c3399c Fixed incorrect positioning and bounds for actors and notes with wrapping enabled and disabled 2020-06-19 09:13:37 -04:00
Knut Sveidqvist
98a7800fae Merge pull request #1481 from mermaid-js/1474_missplaced_transitions
1474 missplaced transitions
2020-06-19 11:38:43 +02:00
Knut Sveidqvist
b3f9bbe50f Merge branch 'develop' into 1474_missplaced_transitions 2020-06-19 11:38:30 +02:00
Knut Sveidqvist
e37c7e58cf Merge pull request #1479 from chewnoill/chewy/cleanup-after-failed-render
cleanup helper dom elements before rendering
2020-06-19 11:29:46 +02:00
Knut Sveidqvist
feb9ffadec Diagram showing sequence diagram with cut long message text 2020-06-19 11:03:37 +02:00
Knut Sveidqvist
a4d96b032e Diagram showing sequence diagram with long message text 2020-06-19 11:01:54 +02:00
Knut Sveidqvist
038d70a40b Diagram showing sequence diagram with long message text 2020-06-19 10:57:16 +02:00
Knut Sveidqvist
44d5009538 Revert of PR #1482 2020-06-19 10:52:20 +02:00
Knut Sveidqvist
8e1e7fb314 Merge branch 'chrismoran-bkt-develop' into develop 2020-06-19 08:41:52 +02:00
Knut Sveidqvist
dbbfbb2855 Updates after review 2020-06-19 08:40:54 +02:00
Chris Moran
24ed979faf Fixed an incorrect reference to an outer variable (actor) when processing actor widths 2020-06-18 08:51:16 -04:00
Chris Moran
e64a65c41e Refactored rendering sequence diagrams
Fixed default config clobbering issues
Updated/corrected sequenceDiagram.spec to set the config using mermaidAPI
Enabled freeze on mermaidAPI to protect defaultConfig
2020-06-18 08:10:50 -04:00
Chris Moran
67c2fe8005 Refactored rendering sequence diagrams
Fixed default config clobbering issues
2020-06-17 18:13:37 -04:00
will cohen
d3d15b79fb cleanup helper dom elements before rendering 2020-06-17 17:54:01 -04:00
Knut Sveidqvist
60586d8ce0 #1474 Lint changes 2020-06-17 18:31:53 +02:00
Knut Sveidqvist
c95257f32c #1474 Adding some tests 2020-06-17 18:28:49 +02:00
Knut Sveidqvist
f0162557c5 #1474 Handling transitions 2020-06-17 18:16:24 +02:00
Chris Moran
5f257119d6 Merge branch 'develop' into refactor-sequences
# Conflicts:
#	dist/mermaid.core.js
#	dist/mermaid.core.js.map
#	dist/mermaid.js
#	dist/mermaid.js.map
#	dist/mermaid.min.js
#	dist/mermaid.min.js.map
#	src/config.js
#	src/mermaidAPI.js
2020-06-17 06:12:02 -04:00
Chris Moran
e6df4f24f4 Merge remote-tracking branch 'origin/develop' into develop 2020-06-17 06:05:00 -04:00
Chris
d4b733ff16 Merge pull request #5 from mermaid-js/develop
Merging upstream develop
2020-06-17 06:04:04 -04:00
Chris Moran
3c72d28511 Refactored rendering sequence diagrams 2020-06-17 05:54:24 -04:00
Knut Sveidqvist
e4b63a68fd Merge pull request #1477 from mermaid-js/1473_default_config
1473 default config
2020-06-16 08:07:18 +02:00
Knut Sveidqvist
a251029546 #§473 Font update for e2e tests 2020-06-15 22:42:33 +02:00
Knut Sveidqvist
b5d457daa9 Testcommit 2020-06-15 22:26:11 +02:00
Knut Sveidqvist
603f2a2154 1473 Using setConfig instead of initialize from mermaid in some cases 2020-06-15 21:55:20 +02:00
GDFaber
4f40c96d19 Merge pull request #1475 from NKjoep/develop
fix: Update cli link in the Readme
2020-06-15 16:13:10 +02:00
Andrea D
d7fc658bae fix: Update cli link in the Readme 2020-06-15 14:11:54 +02:00
Knut Sveidqvist
08dd2bd93d 1473 Class diagrams 2020-06-15 08:03:13 +02:00
Knut Sveidqvist
10b8a33b55 1473 Updated config handling, removed a logger 2020-06-15 01:12:25 +02:00
Knut Sveidqvist
bd0210cdce 1473 Updated config handling 2020-06-15 01:11:56 +02:00
Knut Sveidqvist
5677523800 1473 Setting default config 2020-06-14 23:37:08 +02:00
Knut Sveidqvist
2150933368 Setting default config 2020-06-14 22:50:45 +02:00
Chris Moran
fd7dbaf0a7 Merge branch 'mermaid-js-develop' into develop 2020-06-14 14:14:28 -04:00
Knut Sveidqvist
d145310447 Merge pull request #1472 from chrismoran-bkt/develop
Fixed theme rendering for note text on non-dark themes.
2020-06-14 19:52:56 +02:00
Chris Moran
9d413680d9 Fixed a rendering issue introduced while trying to fix dark mode. This should fix the rendering of note text for all current themes. 2020-06-14 13:42:25 -04:00
Chris Moran
0e85c814e1 Merge branch 'mermaid-js-develop' into develop 2020-06-14 13:03:13 -04:00
Knut Sveidqvist
3589bb9597 Merge branch 'develop' of github.com:mermaid-js/mermaid into develop 2020-06-14 18:41:31 +02:00
Knut Sveidqvist
10b06eda91 #1458 Adding directives section in the docs 2020-06-14 18:41:27 +02:00
Knut Sveidqvist
145d337db9 Merge pull request #1458 from chrismoran-bkt/develop
Auto-wrap, inline config, initialization, dark theme tweaks, etc
2020-06-14 18:26:32 +02:00
Chris Moran
1d59ae24c6 Merge branch 'mermaid-js-develop' into develop 2020-06-14 11:40:35 -04:00
Chris Moran
6309dd1350 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into mermaid-js-develop 2020-06-14 11:40:15 -04:00
Chris Moran
0ae001ed6d Fixed issue with idea-multimarkdown.
- JavaFX does not support lookbehind
 - (?) It also appears that named regex groups are also unsupported for both mermaid and javafx

Update:
 - Fixed an issue where setLogLevel did not properly handle 'named' log levels
 - Backwards compatibility should be preserved, any/all %%{...}%% directives will be correctly processed by the grammar and properly ignored for any/all graph types that do not support them.

 - Multiline directives will render an error (as they should) if they are not accounted for in the .jison grammar
2020-06-14 11:34:39 -04:00
Knut Sveidqvist
bb8efadb98 Merge pull request #1470 from vantoan8x/click_event_support_keypath_function
Chart Node click event support key-path value for function callback
2020-06-14 14:25:46 +02:00
Chris Moran
620c894929 Fixed issue causing idea-multimarkdown headaches: util changes. Reworking them. 2020-06-14 06:53:22 -04:00
GDFaber
18d2a7fe4d Merge pull request #1467 from CollierCZ/patch-1
docs: update gantt docs
2020-06-14 00:30:52 +02:00
Knut Sveidqvist
78e74cda28 Merge pull request #1469 from mermaid-js/1466_linetypes_in_beta_renderer
1466 linetypes in beta renderer
2020-06-13 23:10:46 +02:00
Knut Sveidqvist
cc9c69c931 #1466 Fixing notes for state diagrams (beta) 2020-06-13 13:44:45 +02:00
Knut Sveidqvist
6559cfd0e1 #1466 Handling line styles using the new rendering engine 2020-06-13 13:12:33 +02:00
Toan
28dcc781b4 Chart Node click event support key-path value for function callback 2020-06-13 17:41:52 +07:00
Aaron Collier
09f10d2d7e docs: update gantt docs
Added descriptions of title and section statements and how to style todayMarker.
2020-06-12 11:44:01 +02:00
Knut Sveidqvist
8492503d4f Merge pull request #1464 from vantoan8x/bug/fix_tooltip_position_when_scroll
when window scroll, the tooltip show incorrect position coz its missing window.scrollXY
2020-06-11 21:56:27 +02:00
Knut Sveidqvist
c48b9b34e9 Merge pull request #1463 from vantoan8x/develop
Naming the link/connector edgeLabel and edgePath to let easy query and custom.
2020-06-11 21:55:57 +02:00
Chris Moran
04b4da0c75 ## Work in progress.
Implemented directives per PR review comment:

%%{directive: json-encoded-arg-string}%%

example:

%%{init: { 'logLevel': 0, 'theme': 'dark' }}%%

Also changed wrap and config to directives:

%%{wrap}%%
%%{config: { 'fontSize': 18 }}%%
2020-06-11 15:35:00 -04:00
Toan
276b171d93 when window scroll, the tooltip show incorrect position coz its missing offset of window.scrollXY 2020-06-11 16:04:39 +07:00
Toan
44675739a1 when window scroll, the tooltip show incorrect position coz its missing offset of window.scrollXY 2020-06-11 16:01:36 +07:00
Toan
6e13718cbd naming the link/connector edgeLabel and edgePath to let easy query and custom. 2020-06-11 11:42:14 +07:00
Knut Sveidqvist
2bb6922e7f Merge pull request #1446 from jgreywolf/1378-AdditionalQualifiersBugWithMultipleArguments
1378 additional qualifiers bug with multiple arguments
2020-06-10 18:57:40 +02:00
Justin Greywolf
67e167427c 1378-Added additional test 2020-06-09 14:54:08 -07:00
Justin Greywolf
969a4e7ba5 1378-refine legacy member parsing to cover additional cases 2020-06-09 14:25:03 -07:00
GDFaber
a5aa38ce3c Merge pull request #1459 from ameech/patch-1
Fixed Typo
2020-06-09 04:34:01 +02:00
Justin Greywolf
0495103635 Fix regex and Fix incorrect test 2020-06-08 19:21:33 -07:00
Justin Greywolf
ae6b75b62a Removed additional unintended change 2020-06-08 18:47:36 -07:00
Justin Greywolf
9091d686ed 1378-Update regex to match multiple parameters
removing node version changes
2020-06-08 18:42:29 -07:00
Justin Greywolf
47b5d7a2df 1378-accept multiple parameters with methods
sec
2020-06-08 18:42:29 -07:00
Justin Greywolf
6298a7a357 Merge pull request #22 from mermaid-js/develop
merge from base fork
2020-06-08 18:42:10 -07:00
Adam Meech
45c63e2b82 Fixed Typo 2020-06-08 17:14:46 -05:00
Chris Moran
dba617a7fe Merge branch 'mermaid-js-develop' into develop 2020-06-08 15:00:52 -04:00
Chris Moran
4a253a7760 Merged with mainline develop 2020-06-08 14:58:42 -04:00
Chris Moran
bd11663e0a Added auto wrap option (and grammar) for sequenceDiagrams
Added inline config and init(ialization) grammar
Added reinitialize functionality to mermaidAPI (not to be confused with initialize)
Added actorFontWeight, noteFontWeight, messageFontWeight, wrapEnabled, wrapPadding
Added wrapLabel and breakWord functions to intelligently wrap text based on a pixel-based width instead of column-based
  - The implementation is largely from Carys Mills: https://medium.com/@CarysMills/wrapping-svg-text-without-svg-2-ecbfb58f7ba4
  - Made slight modifications for mermaid-js
Fixed dark theme color inconsistencies for sequence diagrams
Removed !important from sequence scss as this prevents any client overrides
Fixed various invalid css values in sequence scss which prevented proper rendering of various elements
Added detectInit to utils for initialization json detection
Updated detectType to support the existence or absence of the intialization configuration
Updated calculateTextWidth to include fontWeight
2020-06-08 14:48:03 -04:00
Knut Sveidqvist
7c4bff567b Merge branch 'master' into develop 2020-06-07 11:08:26 +02:00
Knut Sveidqvist
df2a5e97f8 Update index.html 2020-06-07 11:06:07 +02:00
Knut Sveidqvist
e9e5c75dec 8.5.2 Release build 2020-06-07 10:39:21 +02:00
Knut Sveidqvist
21e4387a39 Merge branch 'release/8.5.2' 2020-06-07 10:35:57 +02:00
Knut Sveidqvist
67ef829e04 Bump of version 2020-06-07 10:24:49 +02:00
Knut Sveidqvist
8b2b9713ce Merge pull request #1451 from mermaid-js/dependabot/npm_and_yarn/websocket-extensions-0.1.4
Bump websocket-extensions from 0.1.3 to 0.1.4
2020-06-07 10:22:25 +02:00
Ashish Jain
b7f998094f Merge pull request #1450 from mermaid-js/feature/1447_return_svg_at_syntax_error
Feature/1447 return svg at syntax error
2020-06-06 19:41:32 +02:00
dependabot[bot]
c324200f70 Bump websocket-extensions from 0.1.3 to 0.1.4
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-06 17:20:32 +00:00
Knut Sveidqvist
db3377e170 Lint fixes 2020-06-06 12:53:19 +02:00
Knut Sveidqvist
85a8feec9d Also fix for error handling when setting mermaid.parseError 2020-06-06 12:42:35 +02:00
Knut Sveidqvist
22b0ddfb42 Merge pull request #1439 from GDFaber/feature/build_and_publish_dev_and_prod_code
Build development and production code in one go and include it into the repository
2020-06-02 18:59:28 +02:00
Marc Faber
1cc94f8353 Add js and map files in dist folder to repository 2020-06-01 15:23:46 +02:00
Marc Faber
7d2a7d24a6 Remove entries in git ignore file 2020-06-01 15:16:41 +02:00
Marc Faber
73056f5620 Build development and production code in one go and include it into the repository 2020-06-01 14:44:53 +02:00
Knut Sveidqvist
2c271acfe9 Merge pull request #1438 from mermaid-js/1436_intersection_with_circles
1436 intersection with circles
2020-05-30 18:54:30 +02:00
Knut Sveidqvist
b76e833ea5 #1436 Correcting intersection calculations for circles 2020-05-30 18:04:46 +02:00
Knut Sveidqvist
3bdb9f289f Merge branch 'master' into develop 2020-05-30 17:11:23 +02:00
Justin Greywolf
97b8684e1a Merge pull request #21 from mermaid-js/develop
merge from base
2020-05-27 14:57:39 -07:00
Knut Sveidqvist
8958b2aa1b Merge pull request #1432 from mermaid-js/1418_html_labels_rendering_engine
1418 html labels rendering engine
2020-05-27 22:34:26 +02:00
Knut Sveidqvist
cf0fb69153 #1418 Lint fixes 2020-05-27 22:23:53 +02:00
Knut Sveidqvist
8603cf89b0 #1418 Fix for descriptions in states 2020-05-27 22:18:59 +02:00
Knut Sveidqvist
39ef0107ad #1418 Fix for titles in stateDiagram clusters 2020-05-27 21:47:07 +02:00
Knut Sveidqvist
63d7b63f42 #1418 Fix fr background in notes when using htmlLabels 2020-05-27 21:20:18 +02:00
Knut Sveidqvist
4ea6c98f43 #1418 Adding support for htmlLabels in stateDiagram (v2) 2020-05-27 20:41:59 +02:00
Knut Sveidqvist
39bdf261c6 2020-05-27 19:38:30 +02:00
Knut Sveidqvist
cb3e13e9e5 Merge pull request #1430 from yonasb/develop
Add Azure Devops native support to integrations list
2020-05-27 19:30:46 +02:00
Knut Sveidqvist
7a7e8fe741 Merge pull request #1425 from spopida/bug/1415_erd_empty_label_not_working
Ensure empty quoted relationship labels are accepted in ER diagrams
2020-05-27 19:30:21 +02:00
Yonas
4a9e691747 Merge pull request #1 from yonasb/docs/add-azure-integration
Add Azure Devops native support to integrations list
2020-05-27 10:09:37 -07:00
Yonas
4026c57834 Add Azure Devops to integrations list 2020-05-27 10:05:43 -07:00
Adrian Hall
f1c05bc909 Ensure empty quoted relationship labels are accepted in ER diagrams 2020-05-23 13:33:44 +01:00
Knut Sveidqvist
18d3b3545d Merge pull request #1422 from kevinkhill/patch-1
Update flowchart.md
2020-05-22 09:37:48 +02:00
Knut Sveidqvist
a03d9fba10 Merge pull request #1419 from korycins/patch-1
Fix config param name. Drop duplicated field in css example.
2020-05-22 09:36:24 +02:00
Knut Sveidqvist
ef24020b14 Merge pull request #1411 from ivan-danilov/sequence-over-notes-position-fix
Fixed SequenceDiagram over note horizontal position
2020-05-22 09:33:54 +02:00
Kevin Hill
d16d969799 Update flowchart.md 2020-05-21 04:33:58 -07:00
Maciej Korycinski
232f1fda6d Fix config param name. Drop duplicated field in css example. 2020-05-19 11:09:08 +02:00
Knut Sveidqvist
c1fd7fdad0 Updated version of mermaid in the docs
8.5.1
2020-05-17 10:29:55 +02:00
Ivan Danilov
61249b0887 Fixed SequenceDiagram over note horizontal position
Previous expression with noteWidth does not make sense as noteWidth is
not used in case of note over two participants - forceWidth is used
instead. It tried to be symmetrical over cases A,B and B,A but failed.

Can be seen with messages over conf.width size (cannot reproduce in the
live editor as it seems to use not the last version where the code
does not use noteWidth).

The changed code explicitly calculates which of the actors is the
"left" one and starts rendering half margin to the left of its cetral
line.
2020-05-13 21:50:25 -07:00
359 changed files with 197544 additions and 15906 deletions

View File

@@ -1 +1,2 @@
**/*.spec.js
dist/**
.github/**

View File

@@ -2,18 +2,27 @@
"env": {
"browser": true,
"es6": true,
"jest/globals": true,
"node": true
},
"parser": "@babel/eslint-parser",
"parserOptions": {
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true
},
"sourceType": "module"
"ecmaFeatures": {
"experimentalObjectRestSpread": true,
"jsx": true
},
"sourceType": "module"
},
"extends": ["prettier", "eslint:recommended"],
"plugins": ["prettier"],
"extends": ["eslint:recommended", "plugin:jsdoc/recommended", "plugin:prettier/recommended"],
"plugins": ["jest", "jsdoc", "prettier"],
"rules": {
"prettier/prettier": ["error"]
"no-prototype-builtins": 0,
"no-unused-vars": 0,
"jsdoc/check-indentation": 0,
"jsdoc/check-alignment": 0,
"jsdoc/check-line-alignment": 0,
"jsdoc/multiline-blocks": 0,
"jsdoc/newline-after-description": 0,
"jsdoc/tag-lines": 0
}
}
}

View File

@@ -23,6 +23,9 @@ A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Code Sample**
If applicable, add the code sample or a link to the [live editor](https://mermaid-js.github.io/mermaid-live-editor).
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]

17
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
version: 2
updates:
- package-ecosystem: npm
open-pull-requests-limit: 10
directory: /
target-branch: develop
schedule:
interval: weekly
day: monday
time: "07:00"
- package-ecosystem: github-actions
directory: /
target-branch: develop
schedule:
interval: weekly
day: monday
time: "07:00"

View File

@@ -7,27 +7,21 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x, 12.x]
node-version: [16.x]
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v2
with:
cache: yarn
node-version: ${{ matrix.node-version }}
- name: Install Yarn
run: npm i yarn --global
- name: Cache Node Modules
uses: actions/cache@v1
with:
path: .cache
key: ${{ runner.OS }}-build-${{ hashFiles('**/yarn.lock') }}
- name: Install Packages
run: |
yarn config set cache-folder $GITHUB_WORKSPACE/.cache/yarn
yarn install --frozen-lockfile
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
@@ -36,7 +30,7 @@ jobs:
run: yarn build
- name: Upload Build as Artifact
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v2
with:
name: dist
path: dist
@@ -61,4 +55,4 @@ jobs:
# uses: coverallsapp/github-action@master
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# parallel-finished: true
# parallel-finished: true

52
.github/workflows/e2e.yml vendored Normal file
View File

@@ -0,0 +1,52 @@
name: E2E
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- uses: actions/checkout@v2.3.4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
cache: yarn
node-version: ${{ matrix.node-version }}
- name: Install Yarn
run: npm i yarn --global
- name: Install Packages
run: |
yarn install --frozen-lockfile
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- name: Run Build
run: yarn build
# - name: Run e2e Tests
# run: |
# yarn e2e
#- name: Upload Test Results
# uses: coverallsapp/github-action@v1.0.1
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# parallel: true
- name: Run E2E Tests
run: yarn e2e
env:
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
CYPRESS_CACHE_FOLDER: .cache/Cypress
#- name: Post Upload Test Results
# uses: coverallsapp/github-action@master
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# parallel-finished: true

View File

@@ -8,7 +8,7 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: andymckay/labeler@1.0
- uses: andymckay/labeler@1.0.4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
labels: "Status: Triage"
add-labels: "Status: Triage"

View File

@@ -1,13 +0,0 @@
name: Lock closed issue
on:
issues:
types: [closed]
jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: Dunning-Kruger/lock-issues@v1
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"

View File

@@ -0,0 +1,13 @@
name: Validate PR Labeler Configuration
on: [push, pull_request]
jobs:
pr-labeler:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2.3.4
- name: Validate Configuration
uses: Yash-Singh1/pr-labeler-config-validator@releases/v0.0.3
with:
configuration-path: .github/pr-labeler.yml

View File

@@ -1,6 +1,6 @@
name: Apply labels to PR
on:
pull_request:
pull_request_target:
types: [opened]
jobs:

View File

@@ -10,6 +10,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Draft Release
uses: toolmantim/release-drafter@v5.2.0
uses: toolmantim/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -9,11 +9,11 @@ jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v2
with:
node-version: 10.x
node-version: 16.x
- name: Install Yarn
run: npm i yarn --global
@@ -25,7 +25,7 @@ jobs:
- name: Publish
run: |
PREVIEW_VERSION=$(git rev-list --count --first-parent HEAD)
PREVIEW_VERSION=8
VERSION=$(echo ${{github.ref}} | tail -c +20)-preview.$PREVIEW_VERSION
echo $VERSION
npm version --no-git-tag-version --allow-same-version $VERSION

View File

@@ -8,15 +8,13 @@ jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: fregante/setup-git-token@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v2.3.4
- uses: fregante/setup-git-user@v1
- name: Setup Node.js
uses: actions/setup-node@v1
uses: actions/setup-node@v2
with:
node-version: 10.x
node-version: 16.x
- name: Install Yarn
run: npm i yarn --global

7
.gitignore vendored
View File

@@ -19,4 +19,9 @@ dist/sequenceTest.html
.vscode/
cypress/platform/current.html
cypress/platform/experimental.html
cypress/platform/experimental.html
local/
_site
Gemfile.lock
/.vs

4
.husky/pre-commit Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn dlx lint-staged

5
.lintstagedrc.json Normal file
View File

@@ -0,0 +1,5 @@
{
"*": [
"yarn lint:fix"
]
}

View File

@@ -1,3 +1,6 @@
version: 1
version: 2
snapshot:
widths: [1280]
widths:
- 1280
discovery:
disable-cache: true

View File

@@ -1,4 +0,0 @@
{
"printWidth": 100,
"singleQuote": true
}

8
.prettierrc.json Normal file
View File

@@ -0,0 +1,8 @@
{
"endOfLine": "auto",
"plugins": [
"prettier-plugin-jsdoc"
],
"printWidth": 100,
"singleQuote": true
}

View File

@@ -1,12 +0,0 @@
dist: trusty
language: node_js
node_js:
- "10"
cache:
npm: false
script:
- yarn build
- yarn test --coverage
- yarn e2e
after_success:
- cat ./coverage/lcov.info | ./node_modules/.bin/coveralls

View File

@@ -11,7 +11,7 @@ Here are a few things to know to get you started on the right path.
We make all changes via pull requests. As we have many pull requests from developers new to mermaid, the current approach is to have *knsv, Knut Sveidqvist* as a main reviewer of changes and merging pull requests. More precisely like this:
* Large changes reviewed by knsv or other developer asked to review by knsv
* Smaller low-risk changes like dependecies, documentation etc can be merged by active collaborators
* Smaller low-risk changes like dependencies, documentation etc can be merged by active collaborators
* documentation (updates to the docs folder is also allowed via direct commits)
To commit code, create a branch, let it start with the type like feature or bug followed by the issue number for reference and some describing text.
@@ -26,7 +26,35 @@ Another:
## Committing documentation
Less strict here, it is ok to commit directly in the develop branch if you are a collaborator.
Less strict here, it is OK to commit directly in the `develop` branch if you are a collaborator.
The documentation is located in the `docs` directory and published using GitHub Pages.
The documentation site is powered by [Docsify](https://docsify.js.org), a simple documentation site generator.
The documentation is written in Markdown, for more information about Markdown [see the GitHub Markdown help page](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax).
If you want to preview the documentation site on your machine, you need to install `docsify-cli`:
```sh
$ npm i docsify-cli -g
```
If you are more familiar with Yarn, you can use the following command:
```sh
$ yarn global add docsify-cli
```
The above command will install `docsify-cli` globally.
If the installation is successful, the command `docsify` will be available in your `PATH`.
You can now run the following command to serve the documentation site:
```sh
$ docsify serve docs
```
Once the local HTTP server is listening, you can point your browser at http://localhost:3000.
## Branching
@@ -57,7 +85,7 @@ The rendering tests are very straightforward to create. There is a function imgS
When running in ci it will take a snapshot of the rendered diagram and compare it with the snapshot from last build and flag for review it if it differs.
This is what a rendering test looks like:
```
```javascript
it('should render forks and joins', () => {
imgSnapshotTest(
`

View File

@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2014 - 2018 Knut Sveidqvist
Copyright (c) 2014 - 2021 Knut Sveidqvist
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,54 +1,40 @@
<!-- <Remove this in the future> -->
| :mega: :mega: :mega: |
| :----: |
| * If you're upgrading from a version __< v8.2.0__, there are [non-backward-compatible changes](http://mermaid-js.github.io/mermaid/#/usage?id=to-enable-click-event-and-tags-in-nodes) related to security issues. Default behaviour of the library might have changed for your implementation.|
<!-- </Remove this in the future> -->
# mermaid [![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/Mermaid/mermaid)
<!-- <Main description> -->
__mermaid is a Javascript based diagramming and charting tool. It generates diagrams flowcharts and more, using markdown-inspired text for ease and speed.__
English | [简体中文](./README.zh-CN.md)
Check out the list of [Integrations and Usages of Mermaid](https://github.com/mermaid-js/mermaid/blob/develop/docs/integrations.md)
![banner](./img/header.png)
:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) in the category "The most exciting use of technology"!!!**
**Thanks to all involved, people committing pull requests, people answering questions! 🙏**
<a href="https://mermaid-js.github.io/mermaid/landing/" alt="Link to landing page for the book The Official Guide To mermaid.js"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/img/book-banner-post-release.jpg"></a>
## About
<!-- <Main description> -->
Mermaid is a Javascript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development.
> Doc-Rot is a Catch-22 that Mermaid helps to solve.
Diagramming and documentation costs precious developer time and gets outdated quickly.
But not having diagrams or docs ruins productivity and hurts organizational learning. <br/>
Mermaid addresses this problem by cutting the time, effort and tooling that is required to create modifiable diagrams and charts, for smarter and more reusable content.
The text definitions for Mermaid diagrams allows for it to be updated easily, it can also be made part of production scripts (and other pieces of code).
So less time needs to be spent on documenting, as a separate and laborious task. <br/>
Even non-programmers can create diagrams through the [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor/).<br/>
[Tutorials](./docs/Tutorials.md) has video tutorials.
Use Mermaid with your favorite applications, check out the list of [Integrations and Usages of Mermaid](./docs/integrations.md).
For a more detailed introduction to Mermaid and some of its more basic uses, look to the [Beginner's Guide](./docs/n00b-overview.md) and [Usage](./docs/usage.md).
🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [Documentation](https://mermaidjs.github.io) | 🙌 [Contribution](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [Changelog](./docs/CHANGELOG.md)
For more information and help in getting started, please view our [documentation](http://mermaid-js.github.io/mermaid/) and start simplifying yours. Alternatively, you can also play with our [live editor](https://mermaidjs.github.io/mermaid-live-editor/).
<!-- </Main description> -->
:trophy: **Mermaid was nominated and won the [JS Open Source Awards (2019)](https://osawards.com/javascript/#nominees) in the category "The most exciting use of technology"!!! Thanks to all involved, people committing pull requests, people answering questions and special thanks to Tyler Long who is helping me maintain the project.**
## Examples
## New diagram
This version comes with a new diagram type, user journey diagrams.
## New diagrams in 8.4
With version 8.4 class diagrams have got some new features, bug fixes and documentation. Another new feature in 8.4 is the new diagram type, state diagrams.
![Image show the two new diagram types](./docs/img/new-diagrams.png)
## Special note regarding version 8.2
In version 8.2 a security improvement was introduced. A securityLevel configuration was introduced which sets the level of trust to be used on the parsed diagrams.
- **true**: (default) tags in text are encoded, click functionality is disabled
- false: tags in text are allowed, click functionality is enabled
Closed issues:
⚠️ **Note** : This changes the default behaviour of mermaid so that after upgrade to 8.2, if the securityLevel is not configured, tags in flowcharts are encoded as tags and clicking is prohibited.
If your application is taking resposibility for the diagram source security you can set the securityLevel accordingly. By doing this clicks and tags are again allowed.
```javascript
mermaidAPI.initialize({
securityLevel: 'loose'
});
```
For more information and help in getting started, please view our [documentation](http://mermaid-js.github.io/mermaid/) and start simplifying yours. Play with our [live editor](https://mermaidjs.github.io/mermaid-live-editor/) or jump straight to the [installation and usage](http://mermaid-js.github.io/mermaid/#/usage).
<!-- </Main description> -->
__The following are some examples of the diagrams, charts and graphs that can be made using mermaid and the Markdown-inspired text specific to it. Click here jump into the [text syntax](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference).__
__The following are some examples of the diagrams, charts and graphs that can be made using Mermaid and the Markdown-inspired text specific to it. Click here jump into the [text syntax](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference).__
<table>
<!-- <Flowchart> -->
<tr><td colspan=2 align="center">
@@ -143,11 +129,11 @@ class Class10 {
<!-- <State> -->
<tr><td colspan=2 align="center">
<b>State</b><br />
[<a href="http://mermaid-js.github.io/mermaid/#/stateDiagram">docs</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtXG4gICAgWypdIC0tPiBTdGlsbFxuICAgIFN0aWxsIC0tPiBbKl1cbiAgICBTdGlsbCAtLT4gTW92aW5nXG4gICAgTW92aW5nIC0tPiBTdGlsbFxuICAgIE1vdmluZyAtLT4gQ3Jhc2hcbiAgICBDcmFzaCAtLT4gWypdIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
[<a href="http://mermaid-js.github.io/mermaid/#/stateDiagram">docs</a> - <a href="https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtLXYyXG4gICAgWypdIC0tPiBTdGlsbFxuICAgIFN0aWxsIC0tPiBbKl1cbiAgICBTdGlsbCAtLT4gTW92aW5nXG4gICAgTW92aW5nIC0tPiBTdGlsbFxuICAgIE1vdmluZyAtLT4gQ3Jhc2hcbiAgICBDcmFzaCAtLT4gWypdIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQiLCJ0aGVtZVZhcmlhYmxlcyI6eyJiYWNrZ3JvdW5kIjoid2hpdGUiLCJwcmltYXJ5Q29sb3IiOiIjRUNFQ0ZGIiwic2Vjb25kYXJ5Q29sb3IiOiIjZmZmZmRlIiwidGVydGlhcnlDb2xvciI6ImhzbCg4MCwgMTAwJSwgOTYuMjc0NTA5ODAzOSUpIiwicHJpbWFyeUJvcmRlckNvbG9yIjoiaHNsKDI0MCwgNjAlLCA4Ni4yNzQ1MDk4MDM5JSkiLCJzZWNvbmRhcnlCb3JkZXJDb2xvciI6ImhzbCg2MCwgNjAlLCA4My41Mjk0MTE3NjQ3JSkiLCJ0ZXJ0aWFyeUJvcmRlckNvbG9yIjoiaHNsKDgwLCA2MCUsIDg2LjI3NDUwOTgwMzklKSIsInByaW1hcnlUZXh0Q29sb3IiOiIjMTMxMzAwIiwic2Vjb25kYXJ5VGV4dENvbG9yIjoiIzAwMDAyMSIsInRlcnRpYXJ5VGV4dENvbG9yIjoicmdiKDkuNTAwMDAwMDAwMSwgOS41MDAwMDAwMDAxLCA5LjUwMDAwMDAwMDEpIiwibGluZUNvbG9yIjoiIzMzMzMzMyIsInRleHRDb2xvciI6IiMzMzMiLCJtYWluQmtnIjoiI0VDRUNGRiIsInNlY29uZEJrZyI6IiNmZmZmZGUiLCJib3JkZXIxIjoiIzkzNzBEQiIsImJvcmRlcjIiOiIjYWFhYTMzIiwiYXJyb3doZWFkQ29sb3IiOiIjMzMzMzMzIiwiZm9udEZhbWlseSI6IlwidHJlYnVjaGV0IG1zXCIsIHZlcmRhbmEsIGFyaWFsIiwiZm9udFNpemUiOiIxNnB4IiwibGFiZWxCYWNrZ3JvdW5kIjoiI2U4ZThlOCIsIm5vZGVCa2ciOiIjRUNFQ0ZGIiwibm9kZUJvcmRlciI6IiM5MzcwREIiLCJjbHVzdGVyQmtnIjoiI2ZmZmZkZSIsImNsdXN0ZXJCb3JkZXIiOiIjYWFhYTMzIiwiZGVmYXVsdExpbmtDb2xvciI6IiMzMzMzMzMiLCJ0aXRsZUNvbG9yIjoiIzMzMyIsImVkZ2VMYWJlbEJhY2tncm91bmQiOiIjZThlOGU4IiwiYWN0b3JCb3JkZXIiOiJoc2woMjU5LjYyNjE2ODIyNDMsIDU5Ljc3NjUzNjMxMjglLCA4Ny45MDE5NjA3ODQzJSkiLCJhY3RvckJrZyI6IiNFQ0VDRkYiLCJhY3RvclRleHRDb2xvciI6ImJsYWNrIiwiYWN0b3JMaW5lQ29sb3IiOiJncmV5Iiwic2lnbmFsQ29sb3IiOiIjMzMzIiwic2lnbmFsVGV4dENvbG9yIjoiIzMzMyIsImxhYmVsQm94QmtnQ29sb3IiOiIjRUNFQ0ZGIiwibGFiZWxCb3hCb3JkZXJDb2xvciI6ImhzbCgyNTkuNjI2MTY4MjI0MywgNTkuNzc2NTM2MzEyOCUsIDg3LjkwMTk2MDc4NDMlKSIsImxhYmVsVGV4dENvbG9yIjoiYmxhY2siLCJsb29wVGV4dENvbG9yIjoiYmxhY2siLCJub3RlQm9yZGVyQ29sb3IiOiIjYWFhYTMzIiwibm90ZUJrZ0NvbG9yIjoiI2ZmZjVhZCIsIm5vdGVUZXh0Q29sb3IiOiJibGFjayIsImFjdGl2YXRpb25Cb3JkZXJDb2xvciI6IiM2NjYiLCJhY3RpdmF0aW9uQmtnQ29sb3IiOiIjZjRmNGY0Iiwic2VxdWVuY2VOdW1iZXJDb2xvciI6IndoaXRlIiwic2VjdGlvbkJrZ0NvbG9yIjoicmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQ5KSIsImFsdFNlY3Rpb25Ca2dDb2xvciI6IndoaXRlIiwic2VjdGlvbkJrZ0NvbG9yMiI6IiNmZmY0MDAiLCJ0YXNrQm9yZGVyQ29sb3IiOiIjNTM0ZmJjIiwidGFza0JrZ0NvbG9yIjoiIzhhOTBkZCIsInRhc2tUZXh0TGlnaHRDb2xvciI6IndoaXRlIiwidGFza1RleHRDb2xvciI6IndoaXRlIiwidGFza1RleHREYXJrQ29sb3IiOiJibGFjayIsInRhc2tUZXh0T3V0c2lkZUNvbG9yIjoiYmxhY2siLCJ0YXNrVGV4dENsaWNrYWJsZUNvbG9yIjoiIzAwMzE2MyIsImFjdGl2ZVRhc2tCb3JkZXJDb2xvciI6IiM1MzRmYmMiLCJhY3RpdmVUYXNrQmtnQ29sb3IiOiIjYmZjN2ZmIiwiZ3JpZENvbG9yIjoibGlnaHRncmV5IiwiZG9uZVRhc2tCa2dDb2xvciI6ImxpZ2h0Z3JleSIsImRvbmVUYXNrQm9yZGVyQ29sb3IiOiJncmV5IiwiY3JpdEJvcmRlckNvbG9yIjoiI2ZmODg4OCIsImNyaXRCa2dDb2xvciI6InJlZCIsInRvZGF5TGluZUNvbG9yIjoicmVkIiwibGFiZWxDb2xvciI6ImJsYWNrIiwiZXJyb3JCa2dDb2xvciI6IiM1NTIyMjIiLCJlcnJvclRleHRDb2xvciI6IiM1NTIyMjIiLCJjbGFzc1RleHQiOiIjMTMxMzAwIiwiZmlsbFR5cGUwIjoiI0VDRUNGRiIsImZpbGxUeXBlMSI6IiNmZmZmZGUiLCJmaWxsVHlwZTIiOiJoc2woMzA0LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTMiOiJoc2woMTI0LCAxMDAlLCA5My41Mjk0MTE3NjQ3JSkiLCJmaWxsVHlwZTQiOiJoc2woMTc2LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTUiOiJoc2woLTQsIDEwMCUsIDkzLjUyOTQxMTc2NDclKSIsImZpbGxUeXBlNiI6ImhzbCg4LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTciOiJoc2woMTg4LCAxMDAlLCA5My41Mjk0MTE3NjQ3JSkifX0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9">live editor</a>]
</td></tr>
<tr>
<td><pre>
stateDiagram
stateDiagram-v2
[*] --> Still
Still --> [*]
Still --> Moving
@@ -214,17 +200,17 @@ pie
## Related projects
- [Command Line Interface](https://github.com/mermaid-js/mermaid.cli)
- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli)
- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor)
- [HTTP Server](https://github.com/TomWright/mermaid-server)
# Contributors [![Help wanted](https://img.shields.io/github/labels/mermaid-js/mermaid/Help%20wanted!)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Help+wanted%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors)
## Contributors [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors)
Mermaid is a growing community and is always accepting new contributors. There's a lot of different ways to help out and we're always looking for extra hands! Look at [this issue](https://github.com/mermaid-js/mermaid/issues/866) if you want to know where to start helping out.
Detailed information about how to contribute can be found in the [contribution guide](CONTRIBUTING.md)
# Appreciation
## Appreciation
A quick note from Knut Sveidqvist:
>*Many thanks to the [d3](http://d3js.org/) and [dagre-d3](https://github.com/cpettitt/dagre-d3) projects for providing the graphical layout and drawing libraries!*
>*Thanks also to the [js-sequence-diagram](http://bramp.github.io/js-sequence-diagrams) project for usage of the grammar for the sequence diagrams. Thanks to Jessica Peter for inspiration and starting point for gantt rendering.*

220
README.zh-CN.md Normal file
View File

@@ -0,0 +1,220 @@
# mermaid [![Build Status](https://travis-ci.org/mermaid-js/mermaid.svg?branch=master)](https://travis-ci.org/mermaid-js/mermaid) [![NPM](https://img.shields.io/npm/v/mermaid)](https://www.npmjs.com/package/mermaid) [![Coverage Status](https://coveralls.io/repos/github/mermaid-js/mermaid/badge.svg?branch=master)](https://coveralls.io/github/mermaid-js/mermaid?branch=master) [![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) [![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/Mermaid/mermaid)
[English](./README.md) | 简体中文
![banner](./img/header.png)
:trophy: **Mermaid 被提名并获得了 [JS Open Source Awards (2019)](https://osawards.com/javascript/2019) 的 "The most exciting use of technology" 奖项!!!**
**感谢所有参与进来提交 PR解答疑问的人们! 🙏**
<a href="https://mermaid-js.github.io/mermaid/landing/" alt="Link to landing page for the book The Official Guide To mermaid.js"><img src="https://github.com/mermaid-js/mermaid/blob/master/docs/img/book-banner-pre-release.jpg"></a>
## 关于 Mermaid
<!-- <Main description> -->
Mermaid 是一个基于 Javascript 的图表绘制工具,通过解析类 Markdown 的文本语法来实现图表的创建和动态修改。Mermaid 诞生的主要目的是让文档的更新能够及时跟上开发进度。
> Mermaid 致力于解决 Doc-Rot 这个令人头疼的问题。
绘图和编写文档花费了开发者宝贵的开发时间,而且随着业务的变更,它很快就会过期。 但是如果缺少了图表或文档,对于生产力和团队新人的业务学习都会产生巨大的阻碍。 <br/>
Mermaid 通过减少创建可修改的图表所需要的时间、精力和工具来解决这一难题,从而提高了内容的智能化和可重用性。 作为一个基于文本的绘图工具, Mermaid 天生就易于维护和更新,它也可以作为生产脚本(或其他代码)的一部分,使得文档编写变得更加简单。 有了它之后,开发者可以从维护文档这个与开发割离且麻烦的任务中解放出来。 <br/>
即使是从未接触过编程的非专业人员也可以通过 [Mermaid Live Editor](https://mermaid-js.github.io/mermaid-live-editor/)来创建图表。<br/>
你可以访问 [教程](./docs/Tutorials.md) 来查看 Live Editor 的视频教程。
U也可以查看 [Mermaid 的集成和使用](./docs/integrations.md) 这个清单来检查你的文档工具是否已经集成了 Mermaid 支持。
如果想要查看关于 Mermaid 更详细的介绍及基础使用方式,可以查看 [入门指引](./docs/n00b-overview.md) and [用法](./docs/usage.md).
🌐 [CDN](https://unpkg.com/mermaid/) | 📖 [文档](https://mermaidjs.github.io) | 🙌 [贡献](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) | 📜 [更新日志](./docs/CHANGELOG.md)
<!-- </Main description> -->
## 示例
__下面是一些使用 Mermaid 和类 Markdown 语法创建的图表示例。点击 [语法](https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference) 查看详情__
<table>
<!-- <Flowchart> -->
<tr><td colspan=2 align="center">
<b>流程图</b></br>
[<a href="http://mermaid-js.github.io/mermaid/#/flowchart">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0hhcmRdIC0tPnxUZXh0fCBCKFJvdW5kKVxuICAgIEIgLS0-IEN7RGVjaXNpb259XG4gICAgQyAtLT58T25lfCBEW1Jlc3VsdCAxXVxuICAgIEMgLS0-fFR3b3wgRVtSZXN1bHQgMl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
</td></tr>
<tr>
<td><pre>
graph TD
A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
C -->|Two| E[Result 2]
</pre></td>
<td align="center">
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-flow.png" />
</td>
</tr>
<!-- </Flowchart> -->
<!-- <Sequence> -->
<tr><td colspan=2 align="center">
<b>时序图</b><br />
[<a href="http://mermaid-js.github.io/mermaid/#/sequenceDiagram">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5BbGljZS0-PkpvaG46IEhlbGxvIEpvaG4sIGhvdyBhcmUgeW91P1xubG9vcCBIZWFsdGhjaGVja1xuICAgIEpvaG4tPj5Kb2huOiBGaWdodCBhZ2FpbnN0IGh5cG9jaG9uZHJpYVxuZW5kXG5Ob3RlIHJpZ2h0IG9mIEpvaG46IFJhdGlvbmFsIHRob3VnaHRzIVxuSm9obi0tPj5BbGljZTogR3JlYXQhXG5Kb2huLT4-Qm9iOiBIb3cgYWJvdXQgeW91P1xuQm9iLS0-PkpvaG46IEpvbGx5IGdvb2QhIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
</td></tr>
<tr>
<td><pre>
sequenceDiagram
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
</pre></td>
<td align="center">
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-sequence.png" />
</td>
</tr>
<!-- </Sequence> -->
<!-- <Gantt> -->
<tr><td colspan=2 align="center">
<b>甘特图</b><br />
[<a href="http://mermaid-js.github.io/mermaid/#/gantt">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ2FudHRcbnNlY3Rpb24gU2VjdGlvblxuQ29tcGxldGVkIDpkb25lLCAgICBkZXMxLCAyMDE0LTAxLTA2LDIwMTQtMDEtMDhcbkFjdGl2ZSAgICAgICAgOmFjdGl2ZSwgIGRlczIsIDIwMTQtMDEtMDcsIDNkXG5QYXJhbGxlbCAxICAgOiAgICAgICAgIGRlczMsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAyICAgOiAgICAgICAgIGRlczQsIGFmdGVyIGRlczEsIDFkXG5QYXJhbGxlbCAzICAgOiAgICAgICAgIGRlczUsIGFmdGVyIGRlczMsIDFkXG5QYXJhbGxlbCA0ICAgOiAgICAgICAgIGRlczYsIGFmdGVyIGRlczQsIDFkIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
</td></tr>
<tr>
<td><pre>
gantt
section Section
Completed :done, des1, 2014-01-06,2014-01-08
Active :active, des2, 2014-01-07, 3d
Parallel 1 : des3, after des1, 1d
Parallel 2 : des4, after des1, 1d
Parallel 3 : des5, after des3, 1d
Parallel 4 : des6, after des4, 1d
</pre></td>
<td align="center">
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-gantt.png" />
</td>
</tr>
<!-- </Gantt> -->
<!-- <Class> -->
<tr><td colspan=2 align="center">
<b>类图</b><br />
[<a href="http://mermaid-js.github.io/mermaid/#/classDiagram">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiY2xhc3NEaWFncmFtXG5DbGFzczAxIDx8LS0gQXZlcnlMb25nQ2xhc3MgOiBDb29sXG48PGludGVyZmFjZT4-IENsYXNzMDFcbkNsYXNzMDkgLS0-IEMyIDogV2hlcmUgYW0gaT9cbkNsYXNzMDkgLS0qIEMzXG5DbGFzczA5IC0tfD4gQ2xhc3MwN1xuQ2xhc3MwNyA6IGVxdWFscygpXG5DbGFzczA3IDogT2JqZWN0W10gZWxlbWVudERhdGFcbkNsYXNzMDEgOiBzaXplKClcbkNsYXNzMDEgOiBpbnQgY2hpbXBcbkNsYXNzMDEgOiBpbnQgZ29yaWxsYVxuY2xhc3MgQ2xhc3MxMCB7XG4gID4-c2VydmljZT4-XG4gIGludCBpZFxuICBzaXplKClcbn0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
</td></tr>
<tr>
<td><pre>
classDiagram
Class01 &lt;|-- AveryLongClass : Cool
&lt;&lt;interface>> Class01
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
class Class10 {
&lt;&lt;service>>
int id
size()
}
</pre></td>
<td align="center">
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-class.png" />
</td>
</tr>
<!-- </Class> -->
<!-- <State> -->
<tr><td colspan=2 align="center">
<b>状态图</b><br />
[<a href="http://mermaid-js.github.io/mermaid/#/stateDiagram">文档</a> - <a href="https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtLXYyXG4gICAgWypdIC0tPiBTdGlsbFxuICAgIFN0aWxsIC0tPiBbKl1cbiAgICBTdGlsbCAtLT4gTW92aW5nXG4gICAgTW92aW5nIC0tPiBTdGlsbFxuICAgIE1vdmluZyAtLT4gQ3Jhc2hcbiAgICBDcmFzaCAtLT4gWypdIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQiLCJ0aGVtZVZhcmlhYmxlcyI6eyJiYWNrZ3JvdW5kIjoid2hpdGUiLCJwcmltYXJ5Q29sb3IiOiIjRUNFQ0ZGIiwic2Vjb25kYXJ5Q29sb3IiOiIjZmZmZmRlIiwidGVydGlhcnlDb2xvciI6ImhzbCg4MCwgMTAwJSwgOTYuMjc0NTA5ODAzOSUpIiwicHJpbWFyeUJvcmRlckNvbG9yIjoiaHNsKDI0MCwgNjAlLCA4Ni4yNzQ1MDk4MDM5JSkiLCJzZWNvbmRhcnlCb3JkZXJDb2xvciI6ImhzbCg2MCwgNjAlLCA4My41Mjk0MTE3NjQ3JSkiLCJ0ZXJ0aWFyeUJvcmRlckNvbG9yIjoiaHNsKDgwLCA2MCUsIDg2LjI3NDUwOTgwMzklKSIsInByaW1hcnlUZXh0Q29sb3IiOiIjMTMxMzAwIiwic2Vjb25kYXJ5VGV4dENvbG9yIjoiIzAwMDAyMSIsInRlcnRpYXJ5VGV4dENvbG9yIjoicmdiKDkuNTAwMDAwMDAwMSwgOS41MDAwMDAwMDAxLCA5LjUwMDAwMDAwMDEpIiwibGluZUNvbG9yIjoiIzMzMzMzMyIsInRleHRDb2xvciI6IiMzMzMiLCJtYWluQmtnIjoiI0VDRUNGRiIsInNlY29uZEJrZyI6IiNmZmZmZGUiLCJib3JkZXIxIjoiIzkzNzBEQiIsImJvcmRlcjIiOiIjYWFhYTMzIiwiYXJyb3doZWFkQ29sb3IiOiIjMzMzMzMzIiwiZm9udEZhbWlseSI6IlwidHJlYnVjaGV0IG1zXCIsIHZlcmRhbmEsIGFyaWFsIiwiZm9udFNpemUiOiIxNnB4IiwibGFiZWxCYWNrZ3JvdW5kIjoiI2U4ZThlOCIsIm5vZGVCa2ciOiIjRUNFQ0ZGIiwibm9kZUJvcmRlciI6IiM5MzcwREIiLCJjbHVzdGVyQmtnIjoiI2ZmZmZkZSIsImNsdXN0ZXJCb3JkZXIiOiIjYWFhYTMzIiwiZGVmYXVsdExpbmtDb2xvciI6IiMzMzMzMzMiLCJ0aXRsZUNvbG9yIjoiIzMzMyIsImVkZ2VMYWJlbEJhY2tncm91bmQiOiIjZThlOGU4IiwiYWN0b3JCb3JkZXIiOiJoc2woMjU5LjYyNjE2ODIyNDMsIDU5Ljc3NjUzNjMxMjglLCA4Ny45MDE5NjA3ODQzJSkiLCJhY3RvckJrZyI6IiNFQ0VDRkYiLCJhY3RvclRleHRDb2xvciI6ImJsYWNrIiwiYWN0b3JMaW5lQ29sb3IiOiJncmV5Iiwic2lnbmFsQ29sb3IiOiIjMzMzIiwic2lnbmFsVGV4dENvbG9yIjoiIzMzMyIsImxhYmVsQm94QmtnQ29sb3IiOiIjRUNFQ0ZGIiwibGFiZWxCb3hCb3JkZXJDb2xvciI6ImhzbCgyNTkuNjI2MTY4MjI0MywgNTkuNzc2NTM2MzEyOCUsIDg3LjkwMTk2MDc4NDMlKSIsImxhYmVsVGV4dENvbG9yIjoiYmxhY2siLCJsb29wVGV4dENvbG9yIjoiYmxhY2siLCJub3RlQm9yZGVyQ29sb3IiOiIjYWFhYTMzIiwibm90ZUJrZ0NvbG9yIjoiI2ZmZjVhZCIsIm5vdGVUZXh0Q29sb3IiOiJibGFjayIsImFjdGl2YXRpb25Cb3JkZXJDb2xvciI6IiM2NjYiLCJhY3RpdmF0aW9uQmtnQ29sb3IiOiIjZjRmNGY0Iiwic2VxdWVuY2VOdW1iZXJDb2xvciI6IndoaXRlIiwic2VjdGlvbkJrZ0NvbG9yIjoicmdiYSgxMDIsIDEwMiwgMjU1LCAwLjQ5KSIsImFsdFNlY3Rpb25Ca2dDb2xvciI6IndoaXRlIiwic2VjdGlvbkJrZ0NvbG9yMiI6IiNmZmY0MDAiLCJ0YXNrQm9yZGVyQ29sb3IiOiIjNTM0ZmJjIiwidGFza0JrZ0NvbG9yIjoiIzhhOTBkZCIsInRhc2tUZXh0TGlnaHRDb2xvciI6IndoaXRlIiwidGFza1RleHRDb2xvciI6IndoaXRlIiwidGFza1RleHREYXJrQ29sb3IiOiJibGFjayIsInRhc2tUZXh0T3V0c2lkZUNvbG9yIjoiYmxhY2siLCJ0YXNrVGV4dENsaWNrYWJsZUNvbG9yIjoiIzAwMzE2MyIsImFjdGl2ZVRhc2tCb3JkZXJDb2xvciI6IiM1MzRmYmMiLCJhY3RpdmVUYXNrQmtnQ29sb3IiOiIjYmZjN2ZmIiwiZ3JpZENvbG9yIjoibGlnaHRncmV5IiwiZG9uZVRhc2tCa2dDb2xvciI6ImxpZ2h0Z3JleSIsImRvbmVUYXNrQm9yZGVyQ29sb3IiOiJncmV5IiwiY3JpdEJvcmRlckNvbG9yIjoiI2ZmODg4OCIsImNyaXRCa2dDb2xvciI6InJlZCIsInRvZGF5TGluZUNvbG9yIjoicmVkIiwibGFiZWxDb2xvciI6ImJsYWNrIiwiZXJyb3JCa2dDb2xvciI6IiM1NTIyMjIiLCJlcnJvclRleHRDb2xvciI6IiM1NTIyMjIiLCJjbGFzc1RleHQiOiIjMTMxMzAwIiwiZmlsbFR5cGUwIjoiI0VDRUNGRiIsImZpbGxUeXBlMSI6IiNmZmZmZGUiLCJmaWxsVHlwZTIiOiJoc2woMzA0LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTMiOiJoc2woMTI0LCAxMDAlLCA5My41Mjk0MTE3NjQ3JSkiLCJmaWxsVHlwZTQiOiJoc2woMTc2LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTUiOiJoc2woLTQsIDEwMCUsIDkzLjUyOTQxMTc2NDclKSIsImZpbGxUeXBlNiI6ImhzbCg4LCAxMDAlLCA5Ni4yNzQ1MDk4MDM5JSkiLCJmaWxsVHlwZTciOiJoc2woMTg4LCAxMDAlLCA5My41Mjk0MTE3NjQ3JSkifX0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9">live editor</a>]
</td></tr>
<tr>
<td><pre>
stateDiagram-v2
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
</pre></td>
<td align="center">
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-state.png" />
</td>
</tr>
<!-- </State> -->
<!-- <Pie> -->
<tr><td colspan=2 align="center">
<b>饼图</b><br />
[<a href="http://mermaid-js.github.io/mermaid/#/pie">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoicGllXG5cIkRvZ3NcIiA6IDQyLjk2XG5cIkNhdHNcIiA6IDUwLjA1XG5cIlJhdHNcIiA6IDEwLjAxIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
</td></tr>
<tr>
<td><pre>
pie
"Dogs" : 386
"Cats" : 85
"Rats" : 15
</pre></td>
<td align="center">
<img src="https://raw.githubusercontent.com/mermaid-js/mermaid/master/img/gray-pie.png" />
</td>
</tr>
<!-- </Pie> -->
<!-- <Git> -->
<tr><td colspan=2 align="center">
<b>Git图</b><br />
[实验特性 - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ2l0R3JhcGg6XG5vcHRpb25zXG57XG4gICAgXCJub2RlU3BhY2luZ1wiOiAxNTAsXG4gICAgXCJub2RlUmFkaXVzXCI6IDEwXG59XG5lbmRcbmNvbW1pdFxuYnJhbmNoIG5ld2JyYW5jaFxuY2hlY2tvdXQgbmV3YnJhbmNoXG5jb21taXRcbmNvbW1pdFxuY2hlY2tvdXQgbWFzdGVyXG5jb21taXRcbmNvbW1pdFxubWVyZ2UgbmV3YnJhbmNoXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ">live editor</a>]
</td></tr>
<tr>
<td colspan="2" align="center"><i>敬请期待!</i></td>
</tr>
<!-- </Git> -->
<!-- <Journey> -->
<tr><td colspan=2 align="center">
<b>用户体验旅程图</b><br />
[<a href="http://mermaid-js.github.io/mermaid/#/user-journey">文档</a> - <a href="https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtXG4gICAgWypdIC0tPiBTdGlsbFxuICAgIFN0aWxsIC0tPiBbKl1cbiAgICBTdGlsbCAtLT4gTW92aW5nXG4gICAgTW92aW5nIC0tPiBTdGlsbFxuICAgIE1vdmluZyAtLT4gQ3Jhc2hcbiAgICBDcmFzaCAtLT4gWypdIiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifX0">live editor</a>]
</td></tr>
<tr>
<td>
<pre>
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 3: Me
</pre></td>
<td align="center">
<img alt="User Journey Diagram" src="img/gray-user-journey.png" />
</td>
</tr>
<!-- </Journey> -->
</table>
## 相关项目
- [Command Line Interface](https://github.com/mermaid-js/mermaid-cli)
- [Live Editor](https://github.com/mermaid-js/mermaid-live-editor)
- [HTTP Server](https://github.com/TomWright/mermaid-server)
## 贡献者 [![Good first issue](https://img.shields.io/github/labels/mermaid-js/mermaid/Good%20first%20issue%21)](https://github.com/mermaid-js/mermaid/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%21%22) [![Contributors](https://img.shields.io/github/contributors/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors) [![Commits](https://img.shields.io/github/commit-activity/m/mermaid-js/mermaid)](https://github.com/mermaid-js/mermaid/graphs/contributors)
Mermaid 是一个不断发展中的社区,并且还在接收新的贡献者。有很多不同的方式可以参与进来,而且我们还在寻找额外的帮助。如果你想知道如何开始贡献,请查看 [这个 issue](https://github.com/mermaid-js/mermaid/issues/866)。
关于如何贡献的详细信息可以在 [贡献指南](CONTRIBUTING.md) 中找到。
## 鸣谢
来自 Knut Sveidqvist:
>*特别感谢 [d3](http://d3js.org/) 和 [dagre-d3](https://github.com/cpettitt/dagre-d3) 这两个优秀的项目,它们提供了图形布局和绘图工具库! *
>*同样感谢 [js-sequence-diagram](http://bramp.github.io/js-sequence-diagrams) 提供了时序图语法的使用。 感谢 Jessica Peter 提供了甘特图渲染的灵感。*
>*感谢 [Tyler Long](https://github.com/tylerlong) 从 2017年四月开始成为了项目的合作者。*
>
>*感谢越来越多的 [贡献者们](https://github.com/knsv/mermaid/graphs/contributors),没有你们,就没有这个项目的今天!*
---
*Mermaid 是由 Knut Sveidqvist 创建,它为了更简单的文档编写而生。*

3
Renfay.md Normal file
View File

@@ -0,0 +1,3 @@
# Renfay project
A note system!

View File

@@ -1,3 +1,3 @@
export const curveBasis = 'basis'
export const curveLinear = 'linear'
export const curveCardinal = 'cardinal'
export const curveBasis = 'basis';
export const curveLinear = 'linear';
export const curveCardinal = 'cardinal';

71
__mocks__/d3.js vendored
View File

@@ -1,11 +1,10 @@
/* eslint-env jest */
let NewD3 = function () {
function returnThis () {
return this
function returnThis() {
return this;
}
return {
append: function () {
return NewD3()
return NewD3();
},
lower: returnThis,
attr: returnThis,
@@ -16,41 +15,47 @@ let NewD3 = function () {
getBBox: function () {
return {
height: 10,
width: 20
}
}
}
}
}
}
width: 20,
};
},
},
},
};
};
export const select = function () {
return new NewD3()
}
return new NewD3();
};
export const selectAll = function () {
return new NewD3()
}
return new NewD3();
};
export const curveBasis = 'basis'
export const curveLinear = 'linear'
export const curveCardinal = 'cardinal'
export const curveBasis = 'basis';
export const curveLinear = 'linear';
export const curveCardinal = 'cardinal';
export const MockD3 = (name, parent) => {
const children = []
const children = [];
const elem = {
get __children () { return children },
get __name () { return name },
get __parent () { return parent }
}
get __children() {
return children;
},
get __name() {
return name;
},
get __parent() {
return parent;
},
};
elem.append = (name) => {
const mockElem = MockD3(name, elem)
children.push(mockElem)
return mockElem
}
elem.lower = jest.fn(() => elem)
elem.attr = jest.fn(() => elem)
elem.text = jest.fn(() => elem)
elem.style = jest.fn(() => elem)
return elem
}
const mockElem = MockD3(name, elem);
children.push(mockElem);
return mockElem;
};
elem.lower = jest.fn(() => elem);
elem.attr = jest.fn(() => elem);
elem.text = jest.fn(() => elem);
elem.style = jest.fn(() => elem);
return elem;
};

View File

@@ -3,8 +3,8 @@ module.exports = {
[
'@babel/preset-env',
{
targets: "defaults, ie >= 11, current node"
}
]
]
}
targets: 'defaults, ie >= 11, current node',
},
],
],
};

View File

@@ -1 +1,3 @@
{ "video": false }
{
"video": false
}

10
cypress/.eslintrc.json Normal file
View File

@@ -0,0 +1,10 @@
{
"env": {
"cypress/globals": true
},
"extends": ["plugin:cypress/recommended"],
"plugins": ["cypress"],
"rules":{
"cypress/no-unnecessary-waiting": 0
}
}

View File

@@ -2,15 +2,16 @@
context('Actions', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/actions')
})
cy.visit('https://example.cypress.io/commands/actions');
});
// https://on.cypress.io/interacting-with-elements
it('.type() - type into a DOM element', () => {
// https://on.cypress.io/type
cy.get('.action-email')
.type('fake@email.com').should('have.value', 'fake@email.com')
.type('fake@email.com')
.should('have.value', 'fake@email.com')
// .type() with special character sequences
.type('{leftarrow}{rightarrow}{uparrow}{downarrow}')
@@ -24,48 +25,52 @@ context('Actions', () => {
// Delay each keypress by 0.1 sec
.type('slow.typing@email.com', { delay: 100 })
.should('have.value', 'slow.typing@email.com')
.should('have.value', 'slow.typing@email.com');
cy.get('.action-disabled')
// Ignore error checking prior to type
// like whether the input is visible or disabled
.type('disabled error checking', { force: true })
.should('have.value', 'disabled error checking')
})
.should('have.value', 'disabled error checking');
});
it('.focus() - focus on a DOM element', () => {
// https://on.cypress.io/focus
cy.get('.action-focus').focus()
cy.get('.action-focus')
.focus()
.should('have.class', 'focus')
.prev().should('have.attr', 'style', 'color: orange;')
})
.prev()
.should('have.attr', 'style', 'color: orange;');
});
it('.blur() - blur off a DOM element', () => {
// https://on.cypress.io/blur
cy.get('.action-blur').type('About to blur').blur()
cy.get('.action-blur')
.type('About to blur')
.blur()
.should('have.class', 'error')
.prev().should('have.attr', 'style', 'color: red;')
})
.prev()
.should('have.attr', 'style', 'color: red;');
});
it('.clear() - clears an input or textarea element', () => {
// https://on.cypress.io/clear
cy.get('.action-clear').type('Clear this text')
cy.get('.action-clear')
.type('Clear this text')
.should('have.value', 'Clear this text')
.clear()
.should('have.value', '')
})
.should('have.value', '');
});
it('.submit() - submit a form', () => {
// https://on.cypress.io/submit
cy.get('.action-form')
.find('[type="text"]').type('HALFOFF')
cy.get('.action-form').submit()
.next().should('contain', 'Your form has been submitted!')
})
cy.get('.action-form').find('[type="text"]').type('HALFOFF');
cy.get('.action-form').submit().next().should('contain', 'Your form has been submitted!');
});
it('.click() - click on a DOM element', () => {
// https://on.cypress.io/click
cy.get('.action-btn').click()
cy.get('.action-btn').click();
// You can click on 9 specific positions of an element:
// -----------------------------------
@@ -81,16 +86,16 @@ context('Actions', () => {
// -----------------------------------
// clicking in the center of the element is the default
cy.get('#action-canvas').click()
cy.get('#action-canvas').click();
cy.get('#action-canvas').click('topLeft')
cy.get('#action-canvas').click('top')
cy.get('#action-canvas').click('topRight')
cy.get('#action-canvas').click('left')
cy.get('#action-canvas').click('right')
cy.get('#action-canvas').click('bottomLeft')
cy.get('#action-canvas').click('bottom')
cy.get('#action-canvas').click('bottomRight')
cy.get('#action-canvas').click('topLeft');
cy.get('#action-canvas').click('top');
cy.get('#action-canvas').click('topRight');
cy.get('#action-canvas').click('left');
cy.get('#action-canvas').click('right');
cy.get('#action-canvas').click('bottomLeft');
cy.get('#action-canvas').click('bottom');
cy.get('#action-canvas').click('bottomRight');
// .click() accepts an x and y coordinate
// that controls where the click occurs :)
@@ -102,90 +107,83 @@ context('Actions', () => {
.click(100, 185)
.click(125, 190)
.click(150, 185)
.click(170, 165)
.click(170, 165);
// click multiple elements by passing multiple: true
cy.get('.action-labels>.label').click({ multiple: true })
cy.get('.action-labels>.label').click({ multiple: true });
// Ignore error checking prior to clicking
cy.get('.action-opacity>.btn').click({ force: true })
})
cy.get('.action-opacity>.btn').click({ force: true });
});
it('.dblclick() - double click on a DOM element', () => {
// https://on.cypress.io/dblclick
// Our app has a listener on 'dblclick' event in our 'scripts.js'
// that hides the div and shows an input on double click
cy.get('.action-div').dblclick().should('not.be.visible')
cy.get('.action-input-hidden').should('be.visible')
})
cy.get('.action-div').dblclick().should('not.be.visible');
cy.get('.action-input-hidden').should('be.visible');
});
it('.check() - check a checkbox or radio element', () => {
// https://on.cypress.io/check
// By default, .check() will check all
// matching checkbox or radio elements in succession, one after another
cy.get('.action-checkboxes [type="checkbox"]').not('[disabled]')
.check().should('be.checked')
cy.get('.action-checkboxes [type="checkbox"]').not('[disabled]').check().should('be.checked');
cy.get('.action-radios [type="radio"]').not('[disabled]')
.check().should('be.checked')
cy.get('.action-radios [type="radio"]').not('[disabled]').check().should('be.checked');
// .check() accepts a value argument
cy.get('.action-radios [type="radio"]')
.check('radio1').should('be.checked')
cy.get('.action-radios [type="radio"]').check('radio1').should('be.checked');
// .check() accepts an array of values
cy.get('.action-multiple-checkboxes [type="checkbox"]')
.check(['checkbox1', 'checkbox2']).should('be.checked')
.check(['checkbox1', 'checkbox2'])
.should('be.checked');
// Ignore error checking prior to checking
cy.get('.action-checkboxes [disabled]')
.check({ force: true }).should('be.checked')
cy.get('.action-checkboxes [disabled]').check({ force: true }).should('be.checked');
cy.get('.action-radios [type="radio"]')
.check('radio3', { force: true }).should('be.checked')
})
cy.get('.action-radios [type="radio"]').check('radio3', { force: true }).should('be.checked');
});
it('.uncheck() - uncheck a checkbox element', () => {
// https://on.cypress.io/uncheck
// By default, .uncheck() will uncheck all matching
// checkbox elements in succession, one after another
cy.get('.action-check [type="checkbox"]')
.not('[disabled]')
.uncheck().should('not.be.checked')
cy.get('.action-check [type="checkbox"]').not('[disabled]').uncheck().should('not.be.checked');
// .uncheck() accepts a value argument
cy.get('.action-check [type="checkbox"]')
.check('checkbox1')
.uncheck('checkbox1').should('not.be.checked')
.uncheck('checkbox1')
.should('not.be.checked');
// .uncheck() accepts an array of values
cy.get('.action-check [type="checkbox"]')
.check(['checkbox1', 'checkbox3'])
.uncheck(['checkbox1', 'checkbox3']).should('not.be.checked')
.uncheck(['checkbox1', 'checkbox3'])
.should('not.be.checked');
// Ignore error checking prior to unchecking
cy.get('.action-check [disabled]')
.uncheck({ force: true }).should('not.be.checked')
})
cy.get('.action-check [disabled]').uncheck({ force: true }).should('not.be.checked');
});
it('.select() - select an option in a <select> element', () => {
// https://on.cypress.io/select
// Select option(s) with matching text content
cy.get('.action-select').select('apples')
cy.get('.action-select').select('apples');
cy.get('.action-select-multiple')
.select(['apples', 'oranges', 'bananas'])
cy.get('.action-select-multiple').select(['apples', 'oranges', 'bananas']);
// Select option(s) with matching value
cy.get('.action-select').select('fr-bananas')
cy.get('.action-select').select('fr-bananas');
cy.get('.action-select-multiple')
.select(['fr-apples', 'fr-oranges', 'fr-bananas'])
})
cy.get('.action-select-multiple').select(['fr-apples', 'fr-oranges', 'fr-bananas']);
});
it('.scrollIntoView() - scroll an element into view', () => {
// https://on.cypress.io/scrollintoview
@@ -194,27 +192,21 @@ context('Actions', () => {
// because they're not within
// the viewable area of their parent
// (we need to scroll to see them)
cy.get('#scroll-horizontal button')
.should('not.be.visible')
cy.get('#scroll-horizontal button').should('not.be.visible');
// scroll the button into view, as if the user had scrolled
cy.get('#scroll-horizontal button').scrollIntoView()
.should('be.visible')
cy.get('#scroll-horizontal button').scrollIntoView().should('be.visible');
cy.get('#scroll-vertical button')
.should('not.be.visible')
cy.get('#scroll-vertical button').should('not.be.visible');
// Cypress handles the scroll direction needed
cy.get('#scroll-vertical button').scrollIntoView()
.should('be.visible')
cy.get('#scroll-vertical button').scrollIntoView().should('be.visible');
cy.get('#scroll-both button')
.should('not.be.visible')
cy.get('#scroll-both button').should('not.be.visible');
// Cypress knows to scroll to the right and down
cy.get('#scroll-both button').scrollIntoView()
.should('be.visible')
})
cy.get('#scroll-both button').scrollIntoView().should('be.visible');
});
it('.trigger() - trigger an event on a DOM element', () => {
// https://on.cypress.io/trigger
@@ -228,12 +220,12 @@ context('Actions', () => {
cy.get('.trigger-input-range')
.invoke('val', 25)
.trigger('change')
.get('input[type=range]').siblings('p')
.should('have.text', '25')
})
.get('input[type=range]')
.siblings('p')
.should('have.text', '25');
});
it('cy.scrollTo() - scroll the window or element to a position', () => {
// https://on.cypress.io/scrollTo
// You can scroll to 9 specific positions of an element:
@@ -251,22 +243,22 @@ context('Actions', () => {
// if you chain .scrollTo() off of cy, we will
// scroll the entire window
cy.scrollTo('bottom')
cy.scrollTo('bottom');
cy.get('#scrollable-horizontal').scrollTo('right')
cy.get('#scrollable-horizontal').scrollTo('right');
// or you can scroll to a specific coordinate:
// (x axis, y axis) in pixels
cy.get('#scrollable-vertical').scrollTo(250, 250)
cy.get('#scrollable-vertical').scrollTo(250, 250);
// or you can scroll to a specific percentage
// of the (width, height) of the element
cy.get('#scrollable-both').scrollTo('75%', '25%')
cy.get('#scrollable-both').scrollTo('75%', '25%');
// control the easing of the scroll (default is 'swing')
cy.get('#scrollable-vertical').scrollTo('center', { easing: 'linear' })
cy.get('#scrollable-vertical').scrollTo('center', { easing: 'linear' });
// control the duration of the scroll (in ms)
cy.get('#scrollable-both').scrollTo('center', { duration: 2000 })
})
})
cy.get('#scrollable-both').scrollTo('center', { duration: 2000 });
});
});

View File

@@ -2,8 +2,8 @@
context('Aliasing', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/aliasing')
})
cy.visit('https://example.cypress.io/commands/aliasing');
});
it('.as() - alias a DOM element for later use', () => {
// https://on.cypress.io/as
@@ -12,31 +12,25 @@ context('Aliasing', () => {
// We don't have to traverse to the element
// later in our code, we reference it with @
cy.get('.as-table').find('tbody>tr')
.first().find('td').first()
.find('button').as('firstBtn')
cy.get('.as-table').find('tbody>tr').first().find('td').first().find('button').as('firstBtn');
// when we reference the alias, we place an
// @ in front of its name
cy.get('@firstBtn').click()
cy.get('@firstBtn').click();
cy.get('@firstBtn')
.should('have.class', 'btn-success')
.and('contain', 'Changed')
})
cy.get('@firstBtn').should('have.class', 'btn-success').and('contain', 'Changed');
});
it('.as() - alias a route for later use', () => {
// Alias the route to wait for its response
cy.server()
cy.route('GET', 'comments/*').as('getComment')
cy.server();
cy.route('GET', 'comments/*').as('getComment');
// we have code that gets a comment when
// the button is clicked in scripts.js
cy.get('.network-btn').click()
cy.get('.network-btn').click();
// https://on.cypress.io/wait
cy.wait('@getComment').its('status').should('eq', 200)
})
})
cy.wait('@getComment').its('status').should('eq', 200);
});
});

View File

@@ -2,8 +2,8 @@
context('Assertions', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/assertions')
})
cy.visit('https://example.cypress.io/commands/assertions');
});
describe('Implicit Assertions', () => {
it('.should() - make an assertion about the current subject', () => {
@@ -23,7 +23,7 @@ context('Assertions', () => {
// first need to invoke jQuery method text()
// and then match using regular expression
.invoke('text')
.should('match', /column content/i)
.should('match', /column content/i);
// a better way to check element's text content against a regular expression
// is to use "cy.contains"
@@ -32,33 +32,33 @@ context('Assertions', () => {
.find('tbody tr:last')
// finds first <td> element with text content matching regular expression
.contains('td', /column content/i)
.should('be.visible')
.should('be.visible');
// for more information about asserting element's text
// see https://on.cypress.io/using-cypress-faq#How-do-I-get-an-elements-text-contents
})
});
it('.and() - chain multiple assertions together', () => {
// https://on.cypress.io/and
cy.get('.assertions-link')
.should('have.class', 'active')
.and('have.attr', 'href')
.and('include', 'cypress.io')
})
})
.and('include', 'cypress.io');
});
});
describe('Explicit Assertions', () => {
// https://on.cypress.io/assertions
it('expect - make an assertion about a specified subject', () => {
// We can use Chai's BDD style assertions
expect(true).to.be.true
const o = { foo: 'bar' }
expect(true).to.be.true;
const o = { foo: 'bar' };
expect(o).to.equal(o)
expect(o).to.deep.equal({ foo: 'bar' })
expect(o).to.equal(o);
expect(o).to.deep.equal({ foo: 'bar' });
// matching text using regular expression
expect('FooBar').to.match(/bar$/i)
})
expect('FooBar').to.match(/bar$/i);
});
it('pass your own callback function to should()', () => {
// Pass a function to should that can have any number
@@ -71,14 +71,14 @@ context('Assertions', () => {
// https://on.cypress.io/$
// return an array of texts from all of the p's
// @ts-ignore TS6133 unused variable
const texts = $p.map((i, el) => Cypress.$(el).text())
const texts = $p.map((i, el) => Cypress.$(el).text());
// jquery map returns jquery object
// and .get() convert this to simple array
const paragraphs = texts.get()
const paragraphs = texts.get();
// array should have length of 3
expect(paragraphs, 'has 3 paragraphs').to.have.length(3)
expect(paragraphs, 'has 3 paragraphs').to.have.length(3);
// use second argument to expect(...) to provide clear
// message with each assertion
@@ -86,27 +86,27 @@ context('Assertions', () => {
'Some text from first p',
'More text from second p',
'And even more text from third p',
])
})
})
]);
});
});
it('finds element by class name regex', () => {
cy.get('.docs-header')
.find('div')
// .should(cb) callback function will be retried
.should(($div) => {
expect($div).to.have.length(1)
expect($div).to.have.length(1);
const className = $div[0].className
const className = $div[0].className;
expect(className).to.match(/heading-/)
expect(className).to.match(/heading-/);
})
// .then(cb) callback is not retried,
// it either passes or fails
.then(($div) => {
expect($div, 'text content').to.have.text('Introduction')
})
})
expect($div, 'text content').to.have.text('Introduction');
});
});
it('can throw any error', () => {
cy.get('.docs-header')
@@ -114,55 +114,56 @@ context('Assertions', () => {
.should(($div) => {
if ($div.length !== 1) {
// you can throw your own errors
throw new Error('Did not find 1 element')
throw new Error('Did not find 1 element');
}
const className = $div[0].className
const className = $div[0].className;
if (!className.match(/heading-/)) {
throw new Error(`Could not find class "heading-" in ${className}`)
throw new Error(`Could not find class "heading-" in ${className}`);
}
})
})
});
});
it('matches unknown text between two elements', () => {
/**
* Text from the first element.
*
* @type {string}
*/
let text
*/
let text;
/**
* Normalizes passed text,
* useful before comparing text with spaces and different capitalization.
* Normalizes passed text, useful before comparing text with spaces and different capitalization.
*
* @param {string} s Text to normalize
*/
const normalizeText = (s) => s.replace(/\s/g, '').toLowerCase()
*/
const normalizeText = (s) => s.replace(/\s/g, '').toLowerCase();
cy.get('.two-elements')
.find('.first')
.then(($first) => {
// save text from the first element
text = normalizeText($first.text())
})
text = normalizeText($first.text());
});
cy.get('.two-elements')
.find('.second')
.should(($div) => {
// we can massage text before comparing
const secondText = normalizeText($div.text())
const secondText = normalizeText($div.text());
expect(secondText, 'second text').to.equal(text)
})
})
expect(secondText, 'second text').to.equal(text);
});
});
it('assert - assert shape of an object', () => {
const person = {
name: 'Joe',
age: 20,
}
};
assert.isObject(person, 'value is object')
})
})
})
assert.isObject(person, 'value is object');
});
});
});

View File

@@ -2,55 +2,54 @@
context('Connectors', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/connectors')
})
cy.visit('https://example.cypress.io/commands/connectors');
});
it('.each() - iterate over an array of elements', () => {
// https://on.cypress.io/each
cy.get('.connectors-each-ul>li')
.each(($el, index, $list) => {
console.log($el, index, $list)
})
})
cy.get('.connectors-each-ul>li').each(($el, index, $list) => {
console.log($el, index, $list);
});
});
it('.its() - get properties on the current subject', () => {
// https://on.cypress.io/its
cy.get('.connectors-its-ul>li')
// calls the 'length' property yielding that value
.its('length')
.should('be.gt', 2)
})
.should('be.gt', 2);
});
it('.invoke() - invoke a function on the current subject', () => {
// our div is hidden in our script.js
// $('.connectors-div').hide()
// https://on.cypress.io/invoke
cy.get('.connectors-div').should('be.hidden')
cy.get('.connectors-div')
.should('be.hidden')
// call the jquery method 'show' on the 'div.container'
.invoke('show')
.should('be.visible')
})
.should('be.visible');
});
it('.spread() - spread an array as individual args to callback function', () => {
// https://on.cypress.io/spread
const arr = ['foo', 'bar', 'baz']
const arr = ['foo', 'bar', 'baz'];
cy.wrap(arr).spread((foo, bar, baz) => {
expect(foo).to.eq('foo')
expect(bar).to.eq('bar')
expect(baz).to.eq('baz')
})
})
expect(foo).to.eq('foo');
expect(bar).to.eq('bar');
expect(baz).to.eq('baz');
});
});
it('.then() - invoke a callback function with the current subject', () => {
// https://on.cypress.io/then
cy.get('.connectors-list > li')
.then(($lis) => {
expect($lis, '3 items').to.have.length(3)
expect($lis.eq(0), 'first item').to.contain('Walk the dog')
expect($lis.eq(1), 'second item').to.contain('Feed the cat')
expect($lis.eq(2), 'third item').to.contain('Write JavaScript')
})
})
})
cy.get('.connectors-list > li').then(($lis) => {
expect($lis, '3 items').to.have.length(3);
expect($lis.eq(0), 'first item').to.contain('Walk the dog');
expect($lis.eq(1), 'second item').to.contain('Feed the cat');
expect($lis.eq(2), 'third item').to.contain('Write JavaScript');
});
});
});

View File

@@ -2,77 +2,78 @@
context('Cookies', () => {
beforeEach(() => {
Cypress.Cookies.debug(true)
Cypress.Cookies.debug(true);
cy.visit('https://example.cypress.io/commands/cookies')
cy.visit('https://example.cypress.io/commands/cookies');
// clear cookies again after visiting to remove
// any 3rd party cookies picked up such as cloudflare
cy.clearCookies()
})
cy.clearCookies();
});
it('cy.getCookie() - get a browser cookie', () => {
// https://on.cypress.io/getcookie
cy.get('#getCookie .set-a-cookie').click()
cy.get('#getCookie .set-a-cookie').click();
// cy.getCookie() yields a cookie object
cy.getCookie('token').should('have.property', 'value', '123ABC')
})
cy.getCookie('token').should('have.property', 'value', '123ABC');
});
it('cy.getCookies() - get browser cookies', () => {
// https://on.cypress.io/getcookies
cy.getCookies().should('be.empty')
cy.getCookies().should('be.empty');
cy.get('#getCookies .set-a-cookie').click()
cy.get('#getCookies .set-a-cookie').click();
// cy.getCookies() yields an array of cookies
cy.getCookies().should('have.length', 1).should((cookies) => {
// each cookie has these properties
expect(cookies[0]).to.have.property('name', 'token')
expect(cookies[0]).to.have.property('value', '123ABC')
expect(cookies[0]).to.have.property('httpOnly', false)
expect(cookies[0]).to.have.property('secure', false)
expect(cookies[0]).to.have.property('domain')
expect(cookies[0]).to.have.property('path')
})
})
cy.getCookies()
.should('have.length', 1)
.should((cookies) => {
// each cookie has these properties
expect(cookies[0]).to.have.property('name', 'token');
expect(cookies[0]).to.have.property('value', '123ABC');
expect(cookies[0]).to.have.property('httpOnly', false);
expect(cookies[0]).to.have.property('secure', false);
expect(cookies[0]).to.have.property('domain');
expect(cookies[0]).to.have.property('path');
});
});
it('cy.setCookie() - set a browser cookie', () => {
// https://on.cypress.io/setcookie
cy.getCookies().should('be.empty')
cy.getCookies().should('be.empty');
cy.setCookie('foo', 'bar')
cy.setCookie('foo', 'bar');
// cy.getCookie() yields a cookie object
cy.getCookie('foo').should('have.property', 'value', 'bar')
})
cy.getCookie('foo').should('have.property', 'value', 'bar');
});
it('cy.clearCookie() - clear a browser cookie', () => {
// https://on.cypress.io/clearcookie
cy.getCookie('token').should('be.null')
cy.getCookie('token').should('be.null');
cy.get('#clearCookie .set-a-cookie').click()
cy.get('#clearCookie .set-a-cookie').click();
cy.getCookie('token').should('have.property', 'value', '123ABC')
cy.getCookie('token').should('have.property', 'value', '123ABC');
// cy.clearCookies() yields null
cy.clearCookie('token').should('be.null')
cy.clearCookie('token').should('be.null');
cy.getCookie('token').should('be.null')
})
cy.getCookie('token').should('be.null');
});
it('cy.clearCookies() - clear browser cookies', () => {
// https://on.cypress.io/clearcookies
cy.getCookies().should('be.empty')
cy.getCookies().should('be.empty');
cy.get('#clearCookies .set-a-cookie').click()
cy.get('#clearCookies .set-a-cookie').click();
cy.getCookies().should('have.length', 1)
cy.getCookies().should('have.length', 1);
// cy.clearCookies() yields null
cy.clearCookies()
cy.clearCookies();
cy.getCookies().should('be.empty')
})
})
cy.getCookies().should('be.empty');
});
});

View File

@@ -2,81 +2,85 @@
context('Cypress.Commands', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
// https://on.cypress.io/custom-commands
it('.add() - create a custom command', () => {
Cypress.Commands.add('console', {
prevSubject: true,
}, (subject, method) => {
// the previous subject is automatically received
// and the commands arguments are shifted
Cypress.Commands.add(
'console',
{
prevSubject: true,
},
(subject, method) => {
// the previous subject is automatically received
// and the commands arguments are shifted
// allow us to change the console method used
method = method || 'log'
// allow us to change the console method used
method = method || 'log';
// log the subject to the console
// @ts-ignore TS7017
console[method]('The subject is', subject)
// log the subject to the console
// @ts-ignore TS7017
console[method]('The subject is', subject);
// whatever we return becomes the new subject
// we don't want to change the subject so
// we return whatever was passed in
return subject
})
// whatever we return becomes the new subject
// we don't want to change the subject so
// we return whatever was passed in
return subject;
}
);
// @ts-ignore TS2339
cy.get('button').console('info').then(($button) => {
// subject is still $button
})
})
})
cy.get('button')
.console('info')
.then(($button) => {
// subject is still $button
});
});
});
context('Cypress.Cookies', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
// https://on.cypress.io/cookies
it('.debug() - enable or disable debugging', () => {
Cypress.Cookies.debug(true)
Cypress.Cookies.debug(true);
// Cypress will now log in the console when
// cookies are set or cleared
cy.setCookie('fakeCookie', '123ABC')
cy.clearCookie('fakeCookie')
cy.setCookie('fakeCookie', '123ABC')
cy.clearCookie('fakeCookie')
cy.setCookie('fakeCookie', '123ABC')
})
cy.setCookie('fakeCookie', '123ABC');
cy.clearCookie('fakeCookie');
cy.setCookie('fakeCookie', '123ABC');
cy.clearCookie('fakeCookie');
cy.setCookie('fakeCookie', '123ABC');
});
it('.preserveOnce() - preserve cookies by key', () => {
// normally cookies are reset after each test
cy.getCookie('fakeCookie').should('not.be.ok')
cy.getCookie('fakeCookie').should('not.be.ok');
// preserving a cookie will not clear it when
// the next test starts
cy.setCookie('lastCookie', '789XYZ')
Cypress.Cookies.preserveOnce('lastCookie')
})
cy.setCookie('lastCookie', '789XYZ');
Cypress.Cookies.preserveOnce('lastCookie');
});
it('.defaults() - set defaults for all cookies', () => {
// now any cookie with the name 'session_id' will
// not be cleared before each new test runs
Cypress.Cookies.defaults({
whitelist: 'session_id',
})
})
})
});
});
});
context('Cypress.Server', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
// Permanently override server options for
// all instances of cy.server()
@@ -86,71 +90,71 @@ context('Cypress.Server', () => {
Cypress.Server.defaults({
delay: 0,
force404: false,
})
})
})
});
});
});
context('Cypress.arch', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
it('Get CPU architecture name of underlying OS', () => {
// https://on.cypress.io/arch
expect(Cypress.arch).to.exist
})
})
expect(Cypress.arch).to.exist;
});
});
context('Cypress.config()', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
it('Get and set configuration options', () => {
// https://on.cypress.io/config
let myConfig = Cypress.config()
let myConfig = Cypress.config();
expect(myConfig).to.have.property('animationDistanceThreshold', 5)
expect(myConfig).to.have.property('baseUrl', null)
expect(myConfig).to.have.property('defaultCommandTimeout', 4000)
expect(myConfig).to.have.property('requestTimeout', 5000)
expect(myConfig).to.have.property('responseTimeout', 30000)
expect(myConfig).to.have.property('viewportHeight', 660)
expect(myConfig).to.have.property('viewportWidth', 1000)
expect(myConfig).to.have.property('pageLoadTimeout', 60000)
expect(myConfig).to.have.property('waitForAnimations', true)
expect(myConfig).to.have.property('animationDistanceThreshold', 5);
expect(myConfig).to.have.property('baseUrl', null);
expect(myConfig).to.have.property('defaultCommandTimeout', 4000);
expect(myConfig).to.have.property('requestTimeout', 5000);
expect(myConfig).to.have.property('responseTimeout', 30000);
expect(myConfig).to.have.property('viewportHeight', 660);
expect(myConfig).to.have.property('viewportWidth', 1000);
expect(myConfig).to.have.property('pageLoadTimeout', 60000);
expect(myConfig).to.have.property('waitForAnimations', true);
expect(Cypress.config('pageLoadTimeout')).to.eq(60000)
expect(Cypress.config('pageLoadTimeout')).to.eq(60000);
// this will change the config for the rest of your tests!
Cypress.config('pageLoadTimeout', 20000)
Cypress.config('pageLoadTimeout', 20000);
expect(Cypress.config('pageLoadTimeout')).to.eq(20000)
expect(Cypress.config('pageLoadTimeout')).to.eq(20000);
Cypress.config('pageLoadTimeout', 60000)
})
})
Cypress.config('pageLoadTimeout', 60000);
});
});
context('Cypress.dom', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
// https://on.cypress.io/dom
it('.isHidden() - determine if a DOM element is hidden', () => {
let hiddenP = Cypress.$('.dom-p p.hidden').get(0)
let visibleP = Cypress.$('.dom-p p.visible').get(0)
let hiddenP = Cypress.$('.dom-p p.hidden').get(0);
let visibleP = Cypress.$('.dom-p p.visible').get(0);
// our first paragraph has css class 'hidden'
expect(Cypress.dom.isHidden(hiddenP)).to.be.true
expect(Cypress.dom.isHidden(visibleP)).to.be.false
})
})
expect(Cypress.dom.isHidden(hiddenP)).to.be.true;
expect(Cypress.dom.isHidden(visibleP)).to.be.false;
});
});
context('Cypress.env()', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
// We can set environment variables for highly dynamic values
@@ -161,62 +165,61 @@ context('Cypress.env()', () => {
Cypress.env({
host: 'veronica.dev.local',
api_server: 'http://localhost:8888/v1/',
})
});
// get environment variable
expect(Cypress.env('host')).to.eq('veronica.dev.local')
expect(Cypress.env('host')).to.eq('veronica.dev.local');
// set environment variable
Cypress.env('api_server', 'http://localhost:8888/v2/')
expect(Cypress.env('api_server')).to.eq('http://localhost:8888/v2/')
Cypress.env('api_server', 'http://localhost:8888/v2/');
expect(Cypress.env('api_server')).to.eq('http://localhost:8888/v2/');
// get all environment variable
expect(Cypress.env()).to.have.property('host', 'veronica.dev.local')
expect(Cypress.env()).to.have.property('api_server', 'http://localhost:8888/v2/')
})
})
expect(Cypress.env()).to.have.property('host', 'veronica.dev.local');
expect(Cypress.env()).to.have.property('api_server', 'http://localhost:8888/v2/');
});
});
context('Cypress.log', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
it('Control what is printed to the Command Log', () => {
// https://on.cypress.io/cypress-log
})
})
});
});
context('Cypress.platform', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
it('Get underlying OS name', () => {
// https://on.cypress.io/platform
expect(Cypress.platform).to.be.exist
})
})
expect(Cypress.platform).to.be.exist;
});
});
context('Cypress.version', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
it('Get current version of Cypress being run', () => {
// https://on.cypress.io/version
expect(Cypress.version).to.be.exist
})
})
expect(Cypress.version).to.be.exist;
});
});
context('Cypress.spec', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/cypress-api')
})
cy.visit('https://example.cypress.io/cypress-api');
});
it('Get current spec information', () => {
// https://on.cypress.io/spec
// wrap the object so we can inspect it easily by clicking in the command log
cy.wrap(Cypress.spec).should('have.keys', ['name', 'relative', 'absolute'])
})
})
cy.wrap(Cypress.spec).should('have.keys', ['name', 'relative', 'absolute']);
});
});

View File

@@ -3,18 +3,18 @@
/// JSON fixture file can be loaded directly using
// the built-in JavaScript bundler
// @ts-ignore
const requiredExample = require('../../fixtures/example')
const requiredExample = require('../../fixtures/example');
context('Files', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/files')
})
cy.visit('https://example.cypress.io/commands/files');
});
beforeEach(() => {
// load example.json fixture file and store
// in the test context object
cy.fixture('example.json').as('example')
})
cy.fixture('example.json').as('example');
});
it('cy.fixture() - load a fixture', () => {
// https://on.cypress.io/fixture
@@ -22,57 +22,58 @@ context('Files', () => {
// Instead of writing a response inline you can
// use a fixture file's content.
cy.server()
cy.fixture('example.json').as('comment')
cy.server();
cy.fixture('example.json').as('comment');
// when application makes an Ajax request matching "GET comments/*"
// Cypress will intercept it and reply with object
// from the "comment" alias
cy.route('GET', 'comments/*', '@comment').as('getComment')
cy.route('GET', 'comments/*', '@comment').as('getComment');
// we have code that gets a comment when
// the button is clicked in scripts.js
cy.get('.fixture-btn').click()
cy.get('.fixture-btn').click();
cy.wait('@getComment').its('responseBody')
cy.wait('@getComment')
.its('responseBody')
.should('have.property', 'name')
.and('include', 'Using fixtures to represent data')
.and('include', 'Using fixtures to represent data');
// you can also just write the fixture in the route
cy.route('GET', 'comments/*', 'fixture:example.json').as('getComment')
cy.route('GET', 'comments/*', 'fixture:example.json').as('getComment');
// we have code that gets a comment when
// the button is clicked in scripts.js
cy.get('.fixture-btn').click()
cy.get('.fixture-btn').click();
cy.wait('@getComment').its('responseBody')
cy.wait('@getComment')
.its('responseBody')
.should('have.property', 'name')
.and('include', 'Using fixtures to represent data')
.and('include', 'Using fixtures to represent data');
// or write fx to represent fixture
// by default it assumes it's .json
cy.route('GET', 'comments/*', 'fx:example').as('getComment')
cy.route('GET', 'comments/*', 'fx:example').as('getComment');
// we have code that gets a comment when
// the button is clicked in scripts.js
cy.get('.fixture-btn').click()
cy.get('.fixture-btn').click();
cy.wait('@getComment').its('responseBody')
cy.wait('@getComment')
.its('responseBody')
.should('have.property', 'name')
.and('include', 'Using fixtures to represent data')
})
.and('include', 'Using fixtures to represent data');
});
it('cy.fixture() or require - load a fixture', function () {
// we are inside the "function () { ... }"
// callback and can use test context object "this"
// "this.example" was loaded in "beforeEach" function callback
expect(this.example, 'fixture in the test context')
.to.deep.equal(requiredExample)
expect(this.example, 'fixture in the test context').to.deep.equal(requiredExample);
// or use "cy.wrap" and "should('deep.equal', ...)" assertion
// @ts-ignore
cy.wrap(this.example, 'fixture vs require')
.should('deep.equal', requiredExample)
})
cy.wrap(this.example, 'fixture vs require').should('deep.equal', requiredExample);
});
it('cy.readFile() - read a files contents', () => {
// https://on.cypress.io/readfile
@@ -80,9 +81,9 @@ context('Files', () => {
// You can read a file and yield its contents
// The filePath is relative to your project's root.
cy.readFile('cypress.json').then((json) => {
expect(json).to.be.an('object')
})
})
expect(json).to.be.an('object');
});
});
it('cy.writeFile() - write to a file', () => {
// https://on.cypress.io/writefile
@@ -91,13 +92,12 @@ context('Files', () => {
// Use a response from a request to automatically
// generate a fixture file for use later
cy.request('https://jsonplaceholder.cypress.io/users')
.then((response) => {
cy.writeFile('cypress/fixtures/users.json', response.body)
})
cy.request('https://jsonplaceholder.cypress.io/users').then((response) => {
cy.writeFile('cypress/fixtures/users.json', response.body);
});
cy.fixture('users').should((users) => {
expect(users[0].name).to.exist
})
expect(users[0].name).to.exist;
});
// JavaScript arrays and objects are stringified
// and formatted into text.
@@ -105,10 +105,10 @@ context('Files', () => {
id: 8739,
name: 'Jane',
email: 'jane@example.com',
})
});
cy.fixture('profile').should((profile) => {
expect(profile.name).to.eq('Jane')
})
})
})
expect(profile.name).to.eq('Jane');
});
});
});

View File

@@ -2,51 +2,57 @@
context('Local Storage', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/local-storage')
})
cy.visit('https://example.cypress.io/commands/local-storage');
});
// Although local storage is automatically cleared
// in between tests to maintain a clean state
// sometimes we need to clear the local storage manually
it('cy.clearLocalStorage() - clear all data in local storage', () => {
// https://on.cypress.io/clearlocalstorage
cy.get('.ls-btn').click().should(() => {
expect(localStorage.getItem('prop1')).to.eq('red')
expect(localStorage.getItem('prop2')).to.eq('blue')
expect(localStorage.getItem('prop3')).to.eq('magenta')
})
cy.get('.ls-btn')
.click()
.should(() => {
expect(localStorage.getItem('prop1')).to.eq('red');
expect(localStorage.getItem('prop2')).to.eq('blue');
expect(localStorage.getItem('prop3')).to.eq('magenta');
});
// clearLocalStorage() yields the localStorage object
cy.clearLocalStorage().should((ls) => {
expect(ls.getItem('prop1')).to.be.null
expect(ls.getItem('prop2')).to.be.null
expect(ls.getItem('prop3')).to.be.null
})
expect(ls.getItem('prop1')).to.be.null;
expect(ls.getItem('prop2')).to.be.null;
expect(ls.getItem('prop3')).to.be.null;
});
// Clear key matching string in Local Storage
cy.get('.ls-btn').click().should(() => {
expect(localStorage.getItem('prop1')).to.eq('red')
expect(localStorage.getItem('prop2')).to.eq('blue')
expect(localStorage.getItem('prop3')).to.eq('magenta')
})
cy.get('.ls-btn')
.click()
.should(() => {
expect(localStorage.getItem('prop1')).to.eq('red');
expect(localStorage.getItem('prop2')).to.eq('blue');
expect(localStorage.getItem('prop3')).to.eq('magenta');
});
cy.clearLocalStorage('prop1').should((ls) => {
expect(ls.getItem('prop1')).to.be.null
expect(ls.getItem('prop2')).to.eq('blue')
expect(ls.getItem('prop3')).to.eq('magenta')
})
expect(ls.getItem('prop1')).to.be.null;
expect(ls.getItem('prop2')).to.eq('blue');
expect(ls.getItem('prop3')).to.eq('magenta');
});
// Clear keys matching regex in Local Storage
cy.get('.ls-btn').click().should(() => {
expect(localStorage.getItem('prop1')).to.eq('red')
expect(localStorage.getItem('prop2')).to.eq('blue')
expect(localStorage.getItem('prop3')).to.eq('magenta')
})
cy.get('.ls-btn')
.click()
.should(() => {
expect(localStorage.getItem('prop1')).to.eq('red');
expect(localStorage.getItem('prop2')).to.eq('blue');
expect(localStorage.getItem('prop3')).to.eq('magenta');
});
cy.clearLocalStorage(/prop1|2/).should((ls) => {
expect(ls.getItem('prop1')).to.be.null
expect(ls.getItem('prop2')).to.be.null
expect(ls.getItem('prop3')).to.eq('magenta')
})
})
})
expect(ls.getItem('prop1')).to.be.null;
expect(ls.getItem('prop2')).to.be.null;
expect(ls.getItem('prop3')).to.eq('magenta');
});
});
});

View File

@@ -2,31 +2,31 @@
context('Location', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/location')
})
cy.visit('https://example.cypress.io/commands/location');
});
it('cy.hash() - get the current URL hash', () => {
// https://on.cypress.io/hash
cy.hash().should('be.empty')
})
cy.hash().should('be.empty');
});
it('cy.location() - get window.location', () => {
// https://on.cypress.io/location
cy.location().should((location) => {
expect(location.hash).to.be.empty
expect(location.href).to.eq('https://example.cypress.io/commands/location')
expect(location.host).to.eq('example.cypress.io')
expect(location.hostname).to.eq('example.cypress.io')
expect(location.origin).to.eq('https://example.cypress.io')
expect(location.pathname).to.eq('/commands/location')
expect(location.port).to.eq('')
expect(location.protocol).to.eq('https:')
expect(location.search).to.be.empty
})
})
expect(location.hash).to.be.empty;
expect(location.href).to.eq('https://example.cypress.io/commands/location');
expect(location.host).to.eq('example.cypress.io');
expect(location.hostname).to.eq('example.cypress.io');
expect(location.origin).to.eq('https://example.cypress.io');
expect(location.pathname).to.eq('/commands/location');
expect(location.port).to.eq('');
expect(location.protocol).to.eq('https:');
expect(location.search).to.be.empty;
});
});
it('cy.url() - get the current URL', () => {
// https://on.cypress.io/url
cy.url().should('eq', 'https://example.cypress.io/commands/location')
})
})
cy.url().should('eq', 'https://example.cypress.io/commands/location');
});
});

View File

@@ -2,8 +2,8 @@
context('Misc', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/misc')
})
cy.visit('https://example.cypress.io/commands/misc');
});
it('.end() - end the command chain', () => {
// https://on.cypress.io/end
@@ -12,12 +12,12 @@ context('Misc', () => {
// and force Cypress to re-query from the root element
cy.get('.misc-table').within(() => {
// ends the current chain and yields null
cy.contains('Cheryl').click().end()
cy.contains('Cheryl').click().end();
// queries the entire table again
cy.contains('Charles').click()
})
})
cy.contains('Charles').click();
});
});
it('cy.exec() - execute a system command', () => {
// https://on.cypress.io/exec
@@ -25,40 +25,36 @@ context('Misc', () => {
// execute a system command.
// so you can take actions necessary for
// your test outside the scope of Cypress.
cy.exec('echo Jane Lane')
.its('stdout').should('contain', 'Jane Lane')
cy.exec('echo Jane Lane').its('stdout').should('contain', 'Jane Lane');
// we can use Cypress.platform string to
// select appropriate command
// https://on.cypress/io/platform
cy.log(`Platform ${Cypress.platform} architecture ${Cypress.arch}`)
cy.log(`Platform ${Cypress.platform} architecture ${Cypress.arch}`);
if (Cypress.platform === 'win32') {
cy.exec('print cypress.json')
.its('stderr').should('be.empty')
cy.exec('print cypress.json').its('stderr').should('be.empty');
} else {
cy.exec('cat cypress.json')
.its('stderr').should('be.empty')
cy.exec('cat cypress.json').its('stderr').should('be.empty');
cy.exec('pwd')
.its('code').should('eq', 0)
cy.exec('pwd').its('code').should('eq', 0);
}
})
});
it('cy.focused() - get the DOM element that has focus', () => {
// https://on.cypress.io/focused
cy.get('.misc-form').find('#name').click()
cy.focused().should('have.id', 'name')
cy.get('.misc-form').find('#name').click();
cy.focused().should('have.id', 'name');
cy.get('.misc-form').find('#description').click()
cy.focused().should('have.id', 'description')
})
cy.get('.misc-form').find('#description').click();
cy.focused().should('have.id', 'description');
});
context('Cypress.Screenshot', function () {
it('cy.screenshot() - take a screenshot', () => {
// https://on.cypress.io/screenshot
cy.screenshot('my-image')
})
cy.screenshot('my-image');
});
it('Cypress.Screenshot.defaults() - change default config of screenshots', function () {
Cypress.Screenshot.defaults({
@@ -68,16 +64,14 @@ context('Misc', () => {
scale: false,
disableTimersAndAnimations: true,
screenshotOnRunFailure: true,
beforeScreenshot () { },
afterScreenshot () { },
})
})
})
beforeScreenshot() {},
afterScreenshot() {},
});
});
});
it('cy.wrap() - wrap an object', () => {
// https://on.cypress.io/wrap
cy.wrap({ foo: 'bar' })
.should('have.property', 'foo')
.and('include', 'bar')
})
})
cy.wrap({ foo: 'bar' }).should('have.property', 'foo').and('include', 'bar');
});
});

View File

@@ -2,38 +2,38 @@
context('Navigation', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io')
cy.get('.navbar-nav').contains('Commands').click()
cy.get('.dropdown-menu').contains('Navigation').click()
})
cy.visit('https://example.cypress.io');
cy.get('.navbar-nav').contains('Commands').click();
cy.get('.dropdown-menu').contains('Navigation').click();
});
it('cy.go() - go back or forward in the browser\'s history', () => {
it("cy.go() - go back or forward in the browser's history", () => {
// https://on.cypress.io/go
cy.location('pathname').should('include', 'navigation')
cy.location('pathname').should('include', 'navigation');
cy.go('back')
cy.location('pathname').should('not.include', 'navigation')
cy.go('back');
cy.location('pathname').should('not.include', 'navigation');
cy.go('forward')
cy.location('pathname').should('include', 'navigation')
cy.go('forward');
cy.location('pathname').should('include', 'navigation');
// clicking back
cy.go(-1)
cy.location('pathname').should('not.include', 'navigation')
cy.go(-1);
cy.location('pathname').should('not.include', 'navigation');
// clicking forward
cy.go(1)
cy.location('pathname').should('include', 'navigation')
})
cy.go(1);
cy.location('pathname').should('include', 'navigation');
});
it('cy.reload() - reload the page', () => {
// https://on.cypress.io/reload
cy.reload()
cy.reload();
// reload the page without using the cache
cy.reload(true)
})
cy.reload(true);
});
it('cy.visit() - visit a remote url', () => {
// https://on.cypress.io/visit
@@ -43,14 +43,14 @@ context('Navigation', () => {
// Pass options to the visit
cy.visit('https://example.cypress.io/commands/navigation', {
timeout: 50000, // increase total time for the visit to resolve
onBeforeLoad (contentWindow) {
onBeforeLoad(contentWindow) {
// contentWindow is the remote page's window object
expect(typeof contentWindow === 'object').to.be.true
expect(typeof contentWindow === 'object').to.be.true;
},
onLoad (contentWindow) {
onLoad(contentWindow) {
// contentWindow is the remote page's window object
expect(typeof contentWindow === 'object').to.be.true
expect(typeof contentWindow === 'object').to.be.true;
},
})
})
})
});
});
});

View File

@@ -2,8 +2,8 @@
context('Network Requests', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/network-requests')
})
cy.visit('https://example.cypress.io/commands/network-requests');
});
// Manage AJAX / XHR requests in your app
@@ -13,59 +13,56 @@ context('Network Requests', () => {
cy.server().should((server) => {
// the default options on server
// you can override any of these options
expect(server.delay).to.eq(0)
expect(server.method).to.eq('GET')
expect(server.status).to.eq(200)
expect(server.headers).to.be.null
expect(server.response).to.be.null
expect(server.onRequest).to.be.undefined
expect(server.onResponse).to.be.undefined
expect(server.onAbort).to.be.undefined
expect(server.delay).to.eq(0);
expect(server.method).to.eq('GET');
expect(server.status).to.eq(200);
expect(server.headers).to.be.null;
expect(server.response).to.be.null;
expect(server.onRequest).to.be.undefined;
expect(server.onResponse).to.be.undefined;
expect(server.onAbort).to.be.undefined;
// These options control the server behavior
// affecting all requests
// pass false to disable existing route stubs
expect(server.enable).to.be.true
expect(server.enable).to.be.true;
// forces requests that don't match your routes to 404
expect(server.force404).to.be.false
expect(server.force404).to.be.false;
// whitelists requests from ever being logged or stubbed
expect(server.whitelist).to.be.a('function')
})
expect(server.whitelist).to.be.a('function');
});
cy.server({
method: 'POST',
delay: 1000,
status: 422,
response: {},
})
});
// any route commands will now inherit the above options
// from the server. anything we pass specifically
// to route will override the defaults though.
})
});
it('cy.request() - make an XHR request', () => {
// https://on.cypress.io/request
cy.request('https://jsonplaceholder.cypress.io/comments')
.should((response) => {
expect(response.status).to.eq(200)
expect(response.body).to.have.length(500)
expect(response).to.have.property('headers')
expect(response).to.have.property('duration')
})
})
cy.request('https://jsonplaceholder.cypress.io/comments').should((response) => {
expect(response.status).to.eq(200);
expect(response.body).to.have.length(500);
expect(response).to.have.property('headers');
expect(response).to.have.property('duration');
});
});
it('cy.request() - verify response using BDD syntax', () => {
cy.request('https://jsonplaceholder.cypress.io/comments')
.then((response) => {
cy.request('https://jsonplaceholder.cypress.io/comments').then((response) => {
// https://on.cypress.io/assertions
expect(response).property('status').to.equal(200)
expect(response).property('body').to.have.length(500)
expect(response).to.include.keys('headers', 'duration')
})
})
expect(response).property('status').to.equal(200);
expect(response).property('body').to.have.length(500);
expect(response).to.include.keys('headers', 'duration');
});
});
it('cy.request() with query parameters', () => {
// will execute request
@@ -77,42 +74,42 @@ context('Network Requests', () => {
id: 3,
},
})
.its('body')
.should('be.an', 'array')
.and('have.length', 1)
.its('0') // yields first element of the array
.should('contain', {
postId: 1,
id: 3,
})
})
.its('body')
.should('be.an', 'array')
.and('have.length', 1)
.its('0') // yields first element of the array
.should('contain', {
postId: 1,
id: 3,
});
});
it('cy.request() - pass result to the second request', () => {
// first, let's find out the userId of the first user we have
cy.request('https://jsonplaceholder.cypress.io/users?_limit=1')
.its('body.0') // yields the first element of the returned list
.then((user) => {
expect(user).property('id').to.be.a('number')
expect(user).property('id').to.be.a('number');
// make a new post on behalf of the user
cy.request('POST', 'https://jsonplaceholder.cypress.io/posts', {
userId: user.id,
title: 'Cypress Test Runner',
body: 'Fast, easy and reliable testing for anything that runs in a browser.',
})
});
})
// note that the value here is the returned value of the 2nd request
// which is the new post object
.then((response) => {
expect(response).property('status').to.equal(201) // new entity created
expect(response).property('status').to.equal(201); // new entity created
expect(response).property('body').to.contain({
id: 101, // there are already 100 posts, so new entity gets id 101
title: 'Cypress Test Runner',
})
});
// we don't know the user id here - since it was in above closure
// so in this test just confirm that the property is there
expect(response.body).property('userId').to.be.a('number')
})
})
expect(response.body).property('userId').to.be.a('number');
});
});
it('cy.request() - save response in the shared test context', () => {
// https://on.cypress.io/variables-and-aliases
@@ -131,47 +128,48 @@ context('Network Requests', () => {
title: 'Cypress Test Runner',
body: 'Fast, easy and reliable testing for anything that runs in a browser.',
})
.its('body').as('post') // save the new post from the response
.its('body')
.as('post'); // save the new post from the response
})
.then(function () {
// When this callback runs, both "cy.request" API commands have finished
// and the test context has "user" and "post" objects set.
// Let's verify them.
expect(this.post, 'post has the right user id').property('userId').to.equal(this.user.id)
})
})
expect(this.post, 'post has the right user id').property('userId').to.equal(this.user.id);
});
});
it('cy.route() - route responses to matching requests', () => {
// https://on.cypress.io/route
let message = 'whoa, this comment does not exist'
let message = 'whoa, this comment does not exist';
cy.server()
cy.server();
// Listen to GET to comments/1
cy.route('GET', 'comments/*').as('getComment')
cy.route('GET', 'comments/*').as('getComment');
// we have code that gets a comment when
// the button is clicked in scripts.js
cy.get('.network-btn').click()
cy.get('.network-btn').click();
// https://on.cypress.io/wait
cy.wait('@getComment').its('status').should('eq', 200)
cy.wait('@getComment').its('status').should('eq', 200);
// Listen to POST to comments
cy.route('POST', '/comments').as('postComment')
cy.route('POST', '/comments').as('postComment');
// we have code that posts a comment when
// the button is clicked in scripts.js
cy.get('.network-post').click()
cy.wait('@postComment')
cy.get('.network-post').click();
cy.wait('@postComment');
// get the route
cy.get('@postComment').should((xhr) => {
expect(xhr.requestBody).to.include('email')
expect(xhr.requestHeaders).to.have.property('Content-Type')
expect(xhr.responseBody).to.have.property('name', 'Using POST in cy.route()')
})
expect(xhr.requestBody).to.include('email');
expect(xhr.requestHeaders).to.have.property('Content-Type');
expect(xhr.responseBody).to.have.property('name', 'Using POST in cy.route()');
});
// Stub a response to PUT comments/ ****
cy.route({
@@ -180,15 +178,15 @@ context('Network Requests', () => {
status: 404,
response: { error: message },
delay: 500,
}).as('putComment')
}).as('putComment');
// we have code that puts a comment when
// the button is clicked in scripts.js
cy.get('.network-put').click()
cy.get('.network-put').click();
cy.wait('@putComment')
cy.wait('@putComment');
// our 404 statusCode logic in scripts.js executed
cy.get('.network-put-comment').should('contain', message)
})
})
cy.get('.network-put-comment').should('contain', message);
});
});

View File

@@ -2,8 +2,8 @@
context('Querying', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/querying')
})
cy.visit('https://example.cypress.io/commands/querying');
});
// The most commonly used query is 'cy.get()', you can
// think of this like the '$' in jQuery
@@ -11,77 +11,65 @@ context('Querying', () => {
it('cy.get() - query DOM elements', () => {
// https://on.cypress.io/get
cy.get('#query-btn').should('contain', 'Button')
cy.get('#query-btn').should('contain', 'Button');
cy.get('.query-btn').should('contain', 'Button')
cy.get('.query-btn').should('contain', 'Button');
cy.get('#querying .well>button:first').should('contain', 'Button')
cy.get('#querying .well>button:first').should('contain', 'Button');
// ↲
// Use CSS selectors just like jQuery
cy.get('[data-test-id="test-example"]').should('have.class', 'example')
cy.get('[data-test-id="test-example"]').should('have.class', 'example');
// 'cy.get()' yields jQuery object, you can get its attribute
// by invoking `.attr()` method
cy.get('[data-test-id="test-example"]')
.invoke('attr', 'data-test-id')
.should('equal', 'test-example')
.should('equal', 'test-example');
// or you can get element's CSS property
cy.get('[data-test-id="test-example"]')
.invoke('css', 'position')
.should('equal', 'static')
cy.get('[data-test-id="test-example"]').invoke('css', 'position').should('equal', 'static');
// or use assertions directly during 'cy.get()'
// https://on.cypress.io/assertions
cy.get('[data-test-id="test-example"]')
.should('have.attr', 'data-test-id', 'test-example')
.and('have.css', 'position', 'static')
})
.and('have.css', 'position', 'static');
});
it('cy.contains() - query DOM elements with matching content', () => {
// https://on.cypress.io/contains
cy.get('.query-list')
.contains('bananas')
.should('have.class', 'third')
cy.get('.query-list').contains('bananas').should('have.class', 'third');
// we can pass a regexp to `.contains()`
cy.get('.query-list')
.contains(/^b\w+/)
.should('have.class', 'third')
cy.get('.query-list').contains(/^b\w+/).should('have.class', 'third');
cy.get('.query-list')
.contains('apples')
.should('have.class', 'first')
cy.get('.query-list').contains('apples').should('have.class', 'first');
// passing a selector to contains will
// yield the selector containing the text
cy.get('#querying')
.contains('ul', 'oranges')
.should('have.class', 'query-list')
cy.get('#querying').contains('ul', 'oranges').should('have.class', 'query-list');
cy.get('.query-button')
.contains('Save Form')
.should('have.class', 'btn')
})
cy.get('.query-button').contains('Save Form').should('have.class', 'btn');
});
it('.within() - query DOM elements within a specific element', () => {
// https://on.cypress.io/within
cy.get('.query-form').within(() => {
cy.get('input:first').should('have.attr', 'placeholder', 'Email')
cy.get('input:last').should('have.attr', 'placeholder', 'Password')
})
})
cy.get('input:first').should('have.attr', 'placeholder', 'Email');
cy.get('input:last').should('have.attr', 'placeholder', 'Password');
});
});
it('cy.root() - query the root DOM element', () => {
// https://on.cypress.io/root
// By default, root is the document
cy.root().should('match', 'html')
cy.root().should('match', 'html');
cy.get('.query-ul').within(() => {
// In this within, the root is now the ul DOM element
cy.root().should('have.class', 'query-ul')
})
})
})
cy.root().should('have.class', 'query-ul');
});
});
});

View File

@@ -3,93 +3,92 @@
context('Spies, Stubs, and Clock', () => {
it('cy.spy() - wrap a method in a spy', () => {
// https://on.cypress.io/spy
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks')
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks');
const obj = {
foo () {},
}
foo() {},
};
const spy = cy.spy(obj, 'foo').as('anyArgs')
const spy = cy.spy(obj, 'foo').as('anyArgs');
obj.foo()
obj.foo();
expect(spy).to.be.called
})
expect(spy).to.be.called;
});
it('cy.spy() retries until assertions pass', () => {
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks')
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks');
const obj = {
/**
* Prints the argument passed
*
* @param x {any}
*/
foo (x) {
console.log('obj.foo called with', x)
*/
foo(x) {
console.log('obj.foo called with', x);
},
}
};
cy.spy(obj, 'foo').as('foo')
cy.spy(obj, 'foo').as('foo');
setTimeout(() => {
obj.foo('first')
}, 500)
obj.foo('first');
}, 500);
setTimeout(() => {
obj.foo('second')
}, 2500)
obj.foo('second');
}, 2500);
cy.get('@foo').should('have.been.calledTwice')
})
cy.get('@foo').should('have.been.calledTwice');
});
it('cy.stub() - create a stub and/or replace a function with stub', () => {
// https://on.cypress.io/stub
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks')
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks');
const obj = {
/**
* prints both arguments to the console
* Prints both arguments to the console
*
* @param a {string}
* @param b {string}
*/
foo (a, b) {
console.log('a', a, 'b', b)
*/
foo(a, b) {
console.log('a', a, 'b', b);
},
}
};
const stub = cy.stub(obj, 'foo').as('foo')
const stub = cy.stub(obj, 'foo').as('foo');
obj.foo('foo', 'bar')
obj.foo('foo', 'bar');
expect(stub).to.be.called
})
expect(stub).to.be.called;
});
it('cy.clock() - control time in the browser', () => {
// https://on.cypress.io/clock
// create the date in UTC so its always the same
// no matter what local timezone the browser is running in
const now = new Date(Date.UTC(2017, 2, 14)).getTime()
const now = new Date(Date.UTC(2017, 2, 14)).getTime();
cy.clock(now)
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks')
cy.get('#clock-div').click()
.should('have.text', '1489449600')
})
cy.clock(now);
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks');
cy.get('#clock-div').click().should('have.text', '1489449600');
});
it('cy.tick() - move time in the browser', () => {
// https://on.cypress.io/tick
// create the date in UTC so its always the same
// no matter what local timezone the browser is running in
const now = new Date(Date.UTC(2017, 2, 14)).getTime()
const now = new Date(Date.UTC(2017, 2, 14)).getTime();
cy.clock(now)
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks')
cy.get('#tick-div').click()
.should('have.text', '1489449600')
cy.tick(10000) // 10 seconds passed
cy.get('#tick-div').click()
.should('have.text', '1489449610')
})
})
cy.clock(now);
cy.visit('https://example.cypress.io/commands/spies-stubs-clocks');
cy.get('#tick-div').click().should('have.text', '1489449600');
cy.tick(10000); // 10 seconds passed
cy.get('#tick-div').click().should('have.text', '1489449610');
});
});

View File

@@ -2,120 +2,96 @@
context('Traversal', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/traversal')
})
cy.visit('https://example.cypress.io/commands/traversal');
});
it('.children() - get child DOM elements', () => {
// https://on.cypress.io/children
cy.get('.traversal-breadcrumb')
.children('.active')
.should('contain', 'Data')
})
cy.get('.traversal-breadcrumb').children('.active').should('contain', 'Data');
});
it('.closest() - get closest ancestor DOM element', () => {
// https://on.cypress.io/closest
cy.get('.traversal-badge')
.closest('ul')
.should('have.class', 'list-group')
})
cy.get('.traversal-badge').closest('ul').should('have.class', 'list-group');
});
it('.eq() - get a DOM element at a specific index', () => {
// https://on.cypress.io/eq
cy.get('.traversal-list>li')
.eq(1).should('contain', 'siamese')
})
cy.get('.traversal-list>li').eq(1).should('contain', 'siamese');
});
it('.filter() - get DOM elements that match the selector', () => {
// https://on.cypress.io/filter
cy.get('.traversal-nav>li')
.filter('.active').should('contain', 'About')
})
cy.get('.traversal-nav>li').filter('.active').should('contain', 'About');
});
it('.find() - get descendant DOM elements of the selector', () => {
// https://on.cypress.io/find
cy.get('.traversal-pagination')
.find('li').find('a')
.should('have.length', 7)
})
cy.get('.traversal-pagination').find('li').find('a').should('have.length', 7);
});
it('.first() - get first DOM element', () => {
// https://on.cypress.io/first
cy.get('.traversal-table td')
.first().should('contain', '1')
})
cy.get('.traversal-table td').first().should('contain', '1');
});
it('.last() - get last DOM element', () => {
// https://on.cypress.io/last
cy.get('.traversal-buttons .btn')
.last().should('contain', 'Submit')
})
cy.get('.traversal-buttons .btn').last().should('contain', 'Submit');
});
it('.next() - get next sibling DOM element', () => {
// https://on.cypress.io/next
cy.get('.traversal-ul')
.contains('apples').next().should('contain', 'oranges')
})
cy.get('.traversal-ul').contains('apples').next().should('contain', 'oranges');
});
it('.nextAll() - get all next sibling DOM elements', () => {
// https://on.cypress.io/nextall
cy.get('.traversal-next-all')
.contains('oranges')
.nextAll().should('have.length', 3)
})
cy.get('.traversal-next-all').contains('oranges').nextAll().should('have.length', 3);
});
it('.nextUntil() - get next sibling DOM elements until next el', () => {
// https://on.cypress.io/nextuntil
cy.get('#veggies')
.nextUntil('#nuts').should('have.length', 3)
})
cy.get('#veggies').nextUntil('#nuts').should('have.length', 3);
});
it('.not() - remove DOM elements from set of DOM elements', () => {
// https://on.cypress.io/not
cy.get('.traversal-disabled .btn')
.not('[disabled]').should('not.contain', 'Disabled')
})
cy.get('.traversal-disabled .btn').not('[disabled]').should('not.contain', 'Disabled');
});
it('.parent() - get parent DOM element from DOM elements', () => {
// https://on.cypress.io/parent
cy.get('.traversal-mark')
.parent().should('contain', 'Morbi leo risus')
})
cy.get('.traversal-mark').parent().should('contain', 'Morbi leo risus');
});
it('.parents() - get parent DOM elements from DOM elements', () => {
// https://on.cypress.io/parents
cy.get('.traversal-cite')
.parents().should('match', 'blockquote')
})
cy.get('.traversal-cite').parents().should('match', 'blockquote');
});
it('.parentsUntil() - get parent DOM elements from DOM elements until el', () => {
// https://on.cypress.io/parentsuntil
cy.get('.clothes-nav')
.find('.active')
.parentsUntil('.clothes-nav')
.should('have.length', 2)
})
cy.get('.clothes-nav').find('.active').parentsUntil('.clothes-nav').should('have.length', 2);
});
it('.prev() - get previous sibling DOM element', () => {
// https://on.cypress.io/prev
cy.get('.birds').find('.active')
.prev().should('contain', 'Lorikeets')
})
cy.get('.birds').find('.active').prev().should('contain', 'Lorikeets');
});
it('.prevAll() - get all previous sibling DOM elements', () => {
// https://on.cypress.io/prevAll
cy.get('.fruits-list').find('.third')
.prevAll().should('have.length', 2)
})
cy.get('.fruits-list').find('.third').prevAll().should('have.length', 2);
});
it('.prevUntil() - get all previous sibling DOM elements until el', () => {
// https://on.cypress.io/prevUntil
cy.get('.foods-list').find('#nuts')
.prevUntil('#veggies').should('have.length', 3)
})
cy.get('.foods-list').find('#nuts').prevUntil('#veggies').should('have.length', 3);
});
it('.siblings() - get all sibling DOM elements', () => {
// https://on.cypress.io/siblings
cy.get('.traversal-pills .active')
.siblings().should('have.length', 2)
})
})
cy.get('.traversal-pills .active').siblings().should('have.length', 2);
});
});

View File

@@ -2,132 +2,128 @@
context('Utilities', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/utilities')
})
cy.visit('https://example.cypress.io/utilities');
});
it('Cypress._ - call a lodash method', () => {
// https://on.cypress.io/_
cy.request('https://jsonplaceholder.cypress.io/users')
.then((response) => {
let ids = Cypress._.chain(response.body).map('id').take(3).value()
cy.request('https://jsonplaceholder.cypress.io/users').then((response) => {
let ids = Cypress._.chain(response.body).map('id').take(3).value();
expect(ids).to.deep.eq([1, 2, 3])
})
})
expect(ids).to.deep.eq([1, 2, 3]);
});
});
it('Cypress.$ - call a jQuery method', () => {
// https://on.cypress.io/$
let $li = Cypress.$('.utility-jquery li:first')
let $li = Cypress.$('.utility-jquery li:first');
cy.wrap($li)
.should('not.have.class', 'active')
.click()
.should('have.class', 'active')
})
cy.wrap($li).should('not.have.class', 'active').click().should('have.class', 'active');
});
it('Cypress.Blob - blob utilities and base64 string conversion', () => {
// https://on.cypress.io/blob
cy.get('.utility-blob').then(($div) =>
// https://github.com/nolanlawson/blob-util#imgSrcToDataURL
// get the dataUrl string for the javascript-logo
Cypress.Blob.imgSrcToDataURL('https://example.cypress.io/assets/img/javascript-logo.png', undefined, 'anonymous')
.then((dataUrl) => {
// https://github.com/nolanlawson/blob-util#imgSrcToDataURL
// get the dataUrl string for the javascript-logo
Cypress.Blob.imgSrcToDataURL(
'https://example.cypress.io/assets/img/javascript-logo.png',
undefined,
'anonymous'
).then((dataUrl) => {
// create an <img> element and set its src to the dataUrl
let img = Cypress.$('<img />', { src: dataUrl })
let img = Cypress.$('<img />', { src: dataUrl });
// need to explicitly return cy here since we are initially returning
// the Cypress.Blob.imgSrcToDataURL promise to our test
// append the image
$div.append(img)
$div.append(img);
cy.get('.utility-blob img').click()
.should('have.attr', 'src', dataUrl)
}))
})
cy.get('.utility-blob img').click().should('have.attr', 'src', dataUrl);
})
);
});
it('Cypress.minimatch - test out glob patterns against strings', () => {
// https://on.cypress.io/minimatch
let matching = Cypress.minimatch('/users/1/comments', '/users/*/comments', {
matchBase: true,
})
});
expect(matching, 'matching wildcard').to.be.true
expect(matching, 'matching wildcard').to.be.true;
matching = Cypress.minimatch('/users/1/comments/2', '/users/*/comments', {
matchBase: true,
})
expect(matching, 'comments').to.be.false
});
expect(matching, 'comments').to.be.false;
// ** matches against all downstream path segments
matching = Cypress.minimatch('/foo/bar/baz/123/quux?a=b&c=2', '/foo/**', {
matchBase: true,
})
expect(matching, 'comments').to.be.true
});
expect(matching, 'comments').to.be.true;
// whereas * matches only the next path segment
matching = Cypress.minimatch('/foo/bar/baz/123/quux?a=b&c=2', '/foo/*', {
matchBase: false,
})
expect(matching, 'comments').to.be.false
})
});
expect(matching, 'comments').to.be.false;
});
it('Cypress.moment() - format or parse dates using a moment method', () => {
// https://on.cypress.io/moment
const time = Cypress.moment().utc('2014-04-25T19:38:53.196Z').format('h:mm A')
const time = Cypress.moment().utc('2014-04-25T19:38:53.196Z').format('h:mm A');
expect(time).to.be.a('string')
expect(time).to.be.a('string');
cy.get('.utility-moment').contains('3:38 PM')
.should('have.class', 'badge')
cy.get('.utility-moment').contains('3:38 PM').should('have.class', 'badge');
// the time in the element should be between 3pm and 5pm
const start = Cypress.moment('3:00 PM', 'LT')
const end = Cypress.moment('5:00 PM', 'LT')
const start = Cypress.moment('3:00 PM', 'LT');
const end = Cypress.moment('5:00 PM', 'LT');
cy.get('.utility-moment .badge')
.should(($el) => {
// parse American time like "3:38 PM"
const m = Cypress.moment($el.text().trim(), 'LT')
cy.get('.utility-moment .badge').should(($el) => {
// parse American time like "3:38 PM"
const m = Cypress.moment($el.text().trim(), 'LT');
// display hours + minutes + AM|PM
const f = 'h:mm A'
expect(m.isBetween(start, end),
`${m.format(f)} should be between ${start.format(f)} and ${end.format(f)}`).to.be.true
})
})
// display hours + minutes + AM|PM
const f = 'h:mm A';
expect(
m.isBetween(start, end),
`${m.format(f)} should be between ${start.format(f)} and ${end.format(f)}`
).to.be.true;
});
});
it('Cypress.Promise - instantiate a bluebird promise', () => {
// https://on.cypress.io/promise
let waited = false
let waited = false;
/**
* @return Bluebird<string>
*/
function waitOneSecond () {
/** @returns Bluebird<string> */
function waitOneSecond() {
// return a promise that resolves after 1 second
// @ts-ignore TS2351 (new Cypress.Promise)
return new Cypress.Promise((resolve, reject) => {
setTimeout(() => {
// set waited to true
waited = true
waited = true;
// resolve with 'foo' string
resolve('foo')
}, 1000)
})
resolve('foo');
}, 1000);
});
}
cy.then(() =>
// return a promise to cy.then() that
// is awaited until it resolves
// return a promise to cy.then() that
// is awaited until it resolves
// @ts-ignore TS7006
waitOneSecond().then((str) => {
expect(str).to.eq('foo')
expect(waited).to.be.true
}))
})
})
expect(str).to.eq('foo');
expect(waited).to.be.true;
})
);
});
});

View File

@@ -2,22 +2,22 @@
context('Viewport', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/viewport')
})
cy.visit('https://example.cypress.io/commands/viewport');
});
it('cy.viewport() - set the viewport size and dimension', () => {
// https://on.cypress.io/viewport
cy.get('#navbar').should('be.visible')
cy.viewport(320, 480)
cy.get('#navbar').should('be.visible');
cy.viewport(320, 480);
// the navbar should have collapse since our screen is smaller
cy.get('#navbar').should('not.be.visible')
cy.get('.navbar-toggle').should('be.visible').click()
cy.get('.nav').find('a').should('be.visible')
cy.get('#navbar').should('not.be.visible');
cy.get('.navbar-toggle').should('be.visible').click();
cy.get('.nav').find('a').should('be.visible');
// lets see what our app looks like on a super large screen
cy.viewport(2999, 2999)
cy.viewport(2999, 2999);
// cy.viewport() accepts a set of preset sizes
// to easily set the screen to a device's width and height
@@ -25,35 +25,35 @@ context('Viewport', () => {
// We added a cy.wait() between each viewport change so you can see
// the change otherwise it is a little too fast to see :)
cy.viewport('macbook-15')
cy.wait(200)
cy.viewport('macbook-13')
cy.wait(200)
cy.viewport('macbook-11')
cy.wait(200)
cy.viewport('ipad-2')
cy.wait(200)
cy.viewport('ipad-mini')
cy.wait(200)
cy.viewport('iphone-6+')
cy.wait(200)
cy.viewport('iphone-6')
cy.wait(200)
cy.viewport('iphone-5')
cy.wait(200)
cy.viewport('iphone-4')
cy.wait(200)
cy.viewport('iphone-3')
cy.wait(200)
cy.viewport('macbook-15');
cy.wait(200);
cy.viewport('macbook-13');
cy.wait(200);
cy.viewport('macbook-11');
cy.wait(200);
cy.viewport('ipad-2');
cy.wait(200);
cy.viewport('ipad-mini');
cy.wait(200);
cy.viewport('iphone-6+');
cy.wait(200);
cy.viewport('iphone-6');
cy.wait(200);
cy.viewport('iphone-5');
cy.wait(200);
cy.viewport('iphone-4');
cy.wait(200);
cy.viewport('iphone-3');
cy.wait(200);
// cy.viewport() accepts an orientation for all presets
// the default orientation is 'portrait'
cy.viewport('ipad-2', 'portrait')
cy.wait(200)
cy.viewport('iphone-4', 'landscape')
cy.wait(200)
cy.viewport('ipad-2', 'portrait');
cy.wait(200);
cy.viewport('iphone-4', 'landscape');
cy.wait(200);
// The viewport will be reset back to the default dimensions
// in between tests (the default can be set in cypress.json)
})
})
});
});

View File

@@ -2,33 +2,32 @@
context('Waiting', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/waiting')
})
cy.visit('https://example.cypress.io/commands/waiting');
});
// BE CAREFUL of adding unnecessary wait times.
// https://on.cypress.io/best-practices#Unnecessary-Waiting
// https://on.cypress.io/wait
it('cy.wait() - wait for a specific amount of time', () => {
cy.get('.wait-input1').type('Wait 1000ms after typing')
cy.wait(1000)
cy.get('.wait-input2').type('Wait 1000ms after typing')
cy.wait(1000)
cy.get('.wait-input3').type('Wait 1000ms after typing')
cy.wait(1000)
})
cy.get('.wait-input1').type('Wait 1000ms after typing');
cy.wait(1000);
cy.get('.wait-input2').type('Wait 1000ms after typing');
cy.wait(1000);
cy.get('.wait-input3').type('Wait 1000ms after typing');
cy.wait(1000);
});
it('cy.wait() - wait for a specific route', () => {
cy.server()
cy.server();
// Listen to GET to comments/1
cy.route('GET', 'comments/*').as('getComment')
cy.route('GET', 'comments/*').as('getComment');
// we have code that gets a comment when
// the button is clicked in scripts.js
cy.get('.network-btn').click()
cy.get('.network-btn').click();
// wait for GET comments/1
cy.wait('@getComment').its('status').should('eq', 200)
})
})
cy.wait('@getComment').its('status').should('eq', 200);
});
});

View File

@@ -2,21 +2,21 @@
context('Window', () => {
beforeEach(() => {
cy.visit('https://example.cypress.io/commands/window')
})
cy.visit('https://example.cypress.io/commands/window');
});
it('cy.window() - get the global window object', () => {
// https://on.cypress.io/window
cy.window().should('have.property', 'top')
})
cy.window().should('have.property', 'top');
});
it('cy.document() - get the document object', () => {
// https://on.cypress.io/document
cy.document().should('have.property', 'charset').and('eq', 'UTF-8')
})
cy.document().should('have.property', 'charset').and('eq', 'UTF-8');
});
it('cy.title() - get the title', () => {
// https://on.cypress.io/title
cy.title().should('include', 'Kitchen Sink')
})
})
cy.title().should('include', 'Kitchen Sink');
});
});

View File

@@ -1,10 +1,9 @@
/* eslint-env jest */
import { Base64 } from 'js-base64';
export const mermaidUrl = (graphStr, options, api) => {
const obj = {
code: graphStr,
mermaid: options
mermaid: options,
};
const objStr = JSON.stringify(obj);
let url = 'http://localhost:9000/e2e.html?graph=' + Base64.encodeURI(objStr);
@@ -19,7 +18,31 @@ export const mermaidUrl = (graphStr, options, api) => {
return url;
};
export const imgSnapshotTest = (graphStr, options, api) => {
export const imgSnapshotTest = (graphStr, _options, api) => {
cy.log(_options);
const options = Object.assign(_options);
if (!options.fontFamily) {
options.fontFamily = 'courier';
}
if (!options.sequence) {
options.sequence = {};
}
if (!options.sequence || (options.sequence && !options.sequence.actorFontFamily)) {
options.sequence.actorFontFamily = 'courier';
}
if (options.sequence && !options.sequence.noteFontFamily) {
options.sequence.noteFontFamily = 'courier';
}
options.sequence.actorFontFamily = 'courier';
options.sequence.noteFontFamily = 'courier';
options.sequence.messageFontFamily = 'courier';
if (options.sequence && !options.sequence.actorFontFamily) {
options.sequence.actorFontFamily = 'courier';
}
if (!options.fontSize) {
options.fontSize = '16px';
}
cy.log(options);
const url = mermaidUrl(graphStr, options, api);
cy.visit(url);

View File

@@ -1,5 +1,4 @@
import { renderGraph } from '../../helpers/util';
/* eslint-env jest */
describe('Configuration', () => {
describe('arrowMarkerAbsolute', () => {
it('should handle default value false of arrowMarkerAbsolute', () => {
@@ -11,12 +10,14 @@ describe('Configuration', () => {
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ }
{}
);
// Check the marker-end property to make sure it is properly set to
// start with #
cy.get('.edgePath path').first().should('have.attr', 'marker-end')
cy.get('.edgePath path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(#');
});
@@ -29,12 +30,14 @@ describe('Configuration', () => {
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ }
{}
);
// Check the marker-end property to make sure it is properly set to
// start with #
cy.get('.edgePath path').first().should('have.attr', 'marker-end')
cy.get('.edgePath path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(#');
});
@@ -48,13 +51,15 @@ describe('Configuration', () => {
C -->|Three| F[fa:fa-car Car]
`,
{
arrowMarkerAbsolute: false
arrowMarkerAbsolute: false,
}
);
// Check the marker-end property to make sure it is properly set to
// start with #
cy.get('.edgePath path').first().should('have.attr', 'marker-end')
cy.get('.edgePath path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(#');
});
@@ -68,13 +73,15 @@ describe('Configuration', () => {
C -->|Three| F[fa:fa-car Car]
`,
{
arrowMarkerAbsolute: "false"
arrowMarkerAbsolute: 'false',
}
);
// Check the marker-end property to make sure it is properly set to
// start with #
cy.get('.edgePath path').first().should('have.attr', 'marker-end')
cy.get('.edgePath path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(#');
});
@@ -88,13 +95,23 @@ describe('Configuration', () => {
C -->|Three| F[fa:fa-car Car]
`,
{
arrowMarkerAbsolute: true
arrowMarkerAbsolute: true,
}
);
cy.get('.edgePath path').first().should('have.attr', 'marker-end')
cy.get('.edgePath path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(http://localhost');
});
it('should not taint the initial configuration when using multiple directives', () => {
const url = 'http://localhost:9000/regression/issue-1874.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('svg');
cy.percySnapshot();
});
});
});

View File

@@ -1,47 +1,83 @@
/* eslint-env jest */
describe('Interaction', () => {
describe('Interaction - security level loose', () => {
it('should handle a click on a node with a bound function', () => {
it('Graph: should handle a click on a node with a bound function', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g#Function')
.click();
cy.get('body').find('g#flowchart-Function-2').click();
cy.get('.created-by-click').should('have.text', 'Clicked By Flow');
});
it('should handle a click on a node with a bound function where the node starts with a number', () => {
it('Graph: should handle a click on a node with a bound function with args', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g[id="1Function"]')
.click();
cy.get('body').find('g#flowchart-FunctionArg-18').click();
cy.get('.created-by-click').should('have.text', 'Clicked By Flow');
cy.get('.created-by-click-2').should('have.text', 'Clicked By Flow: ARGUMENT');
});
it('should handle a click on a node with a bound url', () => {
it('Flowchart: should handle a click on a node with a bound function where the node starts with a number', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g#URL')
.click();
cy.get('body').find('g[id="flowchart-FunctionArg-22"]').click();
cy.location().should(location => {
cy.get('.created-by-click-2').should('have.text', 'Clicked By Flow: ARGUMENT');
});
it('Graph: should handle a click on a node with a bound url', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('#flowchart-URL-3').click();
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
it('should handle a click on a node with a bound url where the node starts with a number', () => {
it('Graph: should handle a click on a node with a bound url where the node starts with a number', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g[id="2URL"]')
.click();
cy.get('body').find('g[id="flowchart-2URL-7"]').click();
cy.location().should(location => {
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
it('Flowchart-v2: should handle a click on a node with a bound function', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('g#flowchart-Function-10').click();
cy.get('.created-by-click').should('have.text', 'Clicked By Flow');
});
it('Flowchart-v2: should handle a click on a node with a bound function where the node starts with a number', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('g[id="flowchart-1Function-14"]').click();
cy.get('.created-by-click').should('have.text', 'Clicked By Flow');
});
it('Flowchart-v2: should handle a click on a node with a bound url', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('#flowchart-URL-11').click();
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
it('Flowchart-v2: should handle a click on a node with a bound url where the node starts with a number', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('g[id="flowchart-2URL-15"]').click();
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
@@ -50,11 +86,9 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('rect#cl1')
.click({ force: true });
cy.get('body').find('rect#cl1').click({ force: true });
cy.location().should(location => {
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
@@ -62,11 +96,9 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('text#cl1-text')
.click({ force: true });
cy.get('body').find('text#cl1-text').click({ force: true });
cy.location().should(location => {
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
@@ -74,9 +106,7 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('rect#cl2')
.click({ force: true });
cy.get('body').find('rect#cl2').click({ force: true });
cy.get('.created-by-gant-click').should('have.text', 'Clicked By Gant cl2');
});
@@ -84,9 +114,7 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('rect#cl3')
.click({ force: true });
cy.get('body').find('rect#cl3').click({ force: true });
cy.get('.created-by-gant-click').should('have.text', 'Clicked By Gant test1 test2 test3');
});
@@ -95,9 +123,7 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('text#cl2-text')
.click({ force: true });
cy.get('body').find('text#cl2-text').click({ force: true });
cy.get('.created-by-gant-click').should('have.text', 'Clicked By Gant cl2');
});
@@ -105,13 +131,10 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_loose.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('text#cl3-text')
.click({ force: true });
cy.get('body').find('text#cl3-text').click({ force: true });
cy.get('.created-by-gant-click').should('have.text', 'Clicked By Gant test1 test2 test3');
});
});
describe('Interaction - security level tight', () => {
@@ -119,31 +142,27 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g#Function')
.click();
cy.get('body').find('g#flowchart-Function-2').click();
cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow');
cy.get('.created-by-click').should('not.exist');
// cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow');
});
it('should handle a click on a node with a bound function where the node starts with a number', () => {
const url = 'http://localhost:9000/click_security_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g[id="1Function"]')
.click();
cy.get('body').find('g[id="flowchart-1Function-6"]').click();
cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow');
// cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow');
cy.get('.created-by-click').should('not.exist');
});
it('should handle a click on a node with a bound url', () => {
const url = 'http://localhost:9000/click_security_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g#URL')
.click();
cy.get('body').find('g#flowchart-URL-3').click();
cy.location().should(location => {
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
@@ -151,11 +170,9 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g[id="2URL"]')
.click();
cy.get('body').find('g[id="flowchart-2URL-7"]').click();
cy.location().should(location => {
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
@@ -164,11 +181,9 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('rect#cl1')
.click({ force: true });
cy.get('body').find('rect#cl1').click({ force: true });
cy.location().should(location => {
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
@@ -176,11 +191,9 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('text#cl1-text')
.click({ force: true });
cy.get('body').find('text#cl1-text').click({ force: true });
cy.location().should(location => {
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
@@ -188,77 +201,67 @@ describe('Interaction', () => {
const url = 'http://localhost:9000/click_security_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('rect#cl2')
.click({ force: true });
cy.get('body').find('rect#cl2').click({ force: true });
cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2');
// cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2');
cy.get('.created-by-gant-click').should('not.exist');
});
it('should handle a click on a task with a bound function', () => {
const url = 'http://localhost:9000/click_security_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('text#cl2-text')
.click({ force: true });
cy.get('body').find('text#cl2-text').click({ force: true });
cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2');
// cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2');
cy.get('.created-by-gant-click').should('not.exist');
});
});
describe('Interaction - security level other, missspelling', () => {
it('should handle a click on a node with a bound function', () => {
const url = 'http://localhost:9000/click_security_strict.html';
const url = 'http://localhost:9000/click_security_other.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g#Function')
.click();
cy.get('body').find('g#flowchart-Function-2').click();
cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow');
// cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow');
cy.get('.created-by-click').should('not.exist');
});
it('should handle a click on a node with a bound function where the node starts with a number', () => {
const url = 'http://localhost:9000/click_security_strict.html';
const url = 'http://localhost:9000/click_security_other.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g[id="1Function"]')
.click();
cy.get('body').find('g[id="flowchart-1Function-6"]').click();
cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow');
cy.get('.created-by-click').should('not.exist');
cy.get('.created-by-click').should('not.exist');
});
it('should handle a click on a node with a bound url', () => {
const url = 'http://localhost:9000/click_security_strict.html';
const url = 'http://localhost:9000/click_security_other.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('g#URL')
.click();
cy.get('body').find('g#flowchart-URL-3').click();
cy.location().should(location => {
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
});
});
it('should handle a click on a task with a bound function', () => {
const url = 'http://localhost:9000/click_security_strict.html';
const url = 'http://localhost:9000/click_security_other.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('rect#cl2')
.click({ force: true });
cy.get('body').find('rect#cl2').click({ force: true });
cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2');
cy.get('.created-by-gant-click').should('not.exist');
});
it('should handle a click on a task with a bound function', () => {
const url = 'http://localhost:9000/click_security_strict.html';
const url = 'http://localhost:9000/click_security_other.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body')
.find('text#cl2-text')
.click({ force: true });
cy.get('body').find('text#cl2-text').click({ force: true });
cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2');
cy.get('.created-by-gant-click').should('not.exist');
});
});
});

View File

@@ -1,16 +1,19 @@
/* eslint-env jest */
describe('Rerendering', () => {
it('should be able to render after an error has occured', () => {
const url = 'http://localhost:9000/render-after-error.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('#graphDiv').should('exist');
});
it('should be able to render and rerender a graph via API', () => {
const url = 'http://localhost:9000/rerender.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('#graph #A').should('have.text', 'XMas');
it('should be able to render and rerender a graph via API', () => {
const url = 'http://localhost:9000/rerender.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('#graph [id^=flowchart-A]').should('have.text', 'XMas');
cy.get('body')
.find('#rerender')
.click({ force: true });
cy.get('body').find('#rerender').click({ force: true });
cy.get('#graph #A').should('have.text', 'Saturday');
});
cy.get('#graph [id^=flowchart-A]').should('have.text', 'Saturday');
});
});

View File

@@ -1,11 +1,16 @@
/* eslint-env jest */
describe('Sequencediagram', () => {
it('should render a simple sequence diagrams', () => {
const url = 'http://localhost:9000/webpackUsage.html';
cy.visit(url);
cy.get('body')
.find('svg')
.should('have.length', 2);
cy.get('body').find('svg').should('have.length', 1);
});
it('should handle html escapings properly', () => {
const url = 'http://localhost:9000/webpackUsage.html?test-html-escaping=true';
cy.visit(url);
cy.get('body').find('svg').should('have.length', 1);
cy.get('g.label > foreignobject > div').should('not.contain.text', '<b>');
});
});

View File

@@ -1,35 +1,113 @@
/* eslint-env jest */
import { mermaidUrl } from '../../helpers/util.js';
/* eslint-disable */
describe('XSS', () => {
it('should handle xss in tags', () => {
const str = 'eyJjb2RlIjoiXG5ncmFwaCBMUlxuICAgICAgQi0tPkQoPGltZyBvbmVycm9yPWxvY2F0aW9uPWBqYXZhc2NyaXB0XFx1MDAzYXhzc0F0dGFja1xcdTAwMjhkb2N1bWVudC5kb21haW5cXHUwMDI5YCBzcmM9eD4pOyIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In19';
const str =
'eyJjb2RlIjoiXG5ncmFwaCBMUlxuICAgICAgQi0tPkQoPGltZyBvbmVycm9yPWxvY2F0aW9uPWBqYXZhc2NyaXB0XFx1MDAzYXhzc0F0dGFja1xcdTAwMjhkb2N1bWVudC5kb21haW5cXHUwMDI5YCBzcmM9eD4pOyIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In19';
const url = mermaidUrl(str,{}, true);
const url = mermaidUrl(str, {}, true);
cy.visit(url);
cy.wait(1000).then(()=>{
cy.wait(1000).then(() => {
cy.get('.mermaid').should('exist');
});
cy.get('svg')
// cy.percySnapshot()
cy.get('svg');
});
})
it('should handle xss in tags in non-html mode', () => {
const str = 'eyJjb2RlIjoiXG5ncmFwaCBMUlxuICAgICAgQi0tPkQoPGltZyBvbmVycm9yPWxvY2F0aW9uPWBqYXZhc2NyaXB0XFx1MDAzYXhzc0F0dGFja1xcdTAwMjhkb2N1bWVudC5kb21haW5cXHUwMDI5YCBzcmM9eD4pOyIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0IiwiZmxvd2NoYXJ0Ijp7Imh0bWxMYWJlbHMiOmZhbHNlfX19';
it('should not allow tags in the css', () => {
const str =
'eyJjb2RlIjoiJSV7aW5pdDogeyAnZm9udEZhbWlseSc6ICdcXFwiPjwvc3R5bGU-PGltZyBzcmM9eCBvbmVycm9yPXhzc0F0dGFjaygpPid9IH0lJVxuZ3JhcGggTFJcbiAgICAgQSAtLT4gQiIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0IiwiZmxvd2NoYXJ0Ijp7Imh0bWxMYWJlbHMiOmZhbHNlfX0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9';
const url = mermaidUrl(str,{
"theme": "default",
"flowchart": {
"htmlMode": false
}
}, true);
const url = mermaidUrl(
str,
{
theme: 'default',
flowchart: {
htmlMode: false,
},
},
true
);
cy.visit(url);
// cy.get('svg')
// cy.percySnapshot()
cy.get('.malware').should('not.exist');
cy.wait(1000).then(() => {
cy.get('#the-malware').should('not.exist');
});
});
})
})
it('should handle xss in tags in non-html mode', () => {
const str =
'eyJjb2RlIjoiXG5ncmFwaCBMUlxuICAgICAgQi0tPkQoPGltZyBvbmVycm9yPWxvY2F0aW9uPWBqYXZhc2NyaXB0XFx1MDAzYXhzc0F0dGFja1xcdTAwMjhkb2N1bWVudC5kb21haW5cXHUwMDI5YCBzcmM9eD4pOyIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0IiwiZmxvd2NoYXJ0Ijp7Imh0bWxMYWJlbHMiOmZhbHNlfX19';
const url = mermaidUrl(
str,
{
theme: 'default',
flowchart: {
htmlMode: false,
},
},
true
);
cy.visit(url);
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow changing the __proto__ attribute using config', () => {
cy.visit('http://localhost:9000/xss2.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating htmlLabels into a false positive', () => {
cy.visit('http://localhost:9000/xss4.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating antiscript to run javascript', () => {
cy.visit('http://localhost:9000/xss5.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating antiscript to run javascript using onerror', () => {
cy.visit('http://localhost:9000/xss6.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating antiscript to run javascript using onerror in state diagrams with dagre wrapper', () => {
cy.visit('http://localhost:9000/xss8.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating antiscript to run javascript using onerror in state diagrams with dagre d3', () => {
cy.visit('http://localhost:9000/xss9.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating antiscript to run javascript using onerror in state diagrams with dagre d3', () => {
cy.visit('http://localhost:9000/xss10.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating antiscript to run javascript using onerror in state diagrams with dagre d3', () => {
cy.visit('http://localhost:9000/xss11.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating antiscript to run javascript using onerror in state diagrams with dagre d3', () => {
cy.visit('http://localhost:9000/xss12.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating antiscript to run javascript using onerror in state diagrams with dagre d3', () => {
cy.visit('http://localhost:9000/xss13.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
it('should not allow maniplulating antiscript to run javascript iframes in class diagrams', () => {
cy.visit('http://localhost:9000/xss14.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');
});
});

View File

@@ -0,0 +1,481 @@
import { imgSnapshotTest } from '../../helpers/util';
describe('Class diagram V2', () => {
it('0: should render a simple class diagram', () => {
imgSnapshotTest(
`
classDiagram-v2
classA -- classB : Inheritance
classA -- classC : link
classC -- classD : link
classB -- classD
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('1: should render a simple class diagram', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class12 <|.. Class08
Class11 ..>Class12
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class01 : -int privateChimp
Class01 : +int publicGorilla
Class01 : #int protectedMarmoset
Class08 <--> C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('2: should render a simple class diagrams with cardinality', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('should render a simple class diagram with different visibilities', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class01 : -privateMethod()
Class01 : +publicMethod()
Class01 : #protectedMethod()
Class01 : -int privateChimp
Class01 : +int publicGorilla
Class01 : #int protectedMarmoset
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('should render multiple class diagrams', () => {
imgSnapshotTest(
[
`
classDiagram-v2
Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
`
classDiagram-v2
Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
],
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('4: should render a simple class diagram with comments', () => {
imgSnapshotTest(
`
classDiagram-v2
%% this is a comment
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('5: should render a simple class diagram with abstract method', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01 <|-- AveryLongClass : Cool
Class01 : someMethod()*
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('6: should render a simple class diagram with static method', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01 <|-- AveryLongClass : Cool
Class01 : someMethod()$
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('7: should render a simple class diagram with Generic class', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class01~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('8: should render a simple class diagram with Generic class and relations', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('9: should render a simple class diagram with clickable link', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
link Class01 "google.com" "A Tooltip"
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('10: should render a simple class diagram with clickable callback', () => {
imgSnapshotTest(
`
classDiagram-v2
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
callback Class01 "functionCall" "A Tooltip"
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('11: should render a simple class diagram with return type on method', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class10~T~ {
int[] id
test(int[] ids) bool
testArray() bool[]
}
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('12: should render a simple class diagram with generic types', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class10~T~ {
int[] id
List~int~ ids
test(List~int~ ids) List~bool~
testArray() bool[]
}
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('13: should render a simple class diagram with css classes applied', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class10 {
int[] id
List~int~ ids
test(List~int~ ids) List~bool~
testArray() bool[]
}
cssClass "Class10" exClass2
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('14: should render a simple class diagram with css classes applied directly', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class10:::exClass2 {
int[] id
List~int~ ids
test(List~int~ ids) List~bool~
testArray() bool[]
}
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('15: should render a simple class diagram with css classes applied two multiple classes', () => {
imgSnapshotTest(
`
classDiagram-v2
class Class10
class Class20
cssClass "Class10, class20" exClass2
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('16a: should render a simple class diagram with static field', () => {
imgSnapshotTest(
`
classDiagram-v2
class Foo {
+String bar$
}
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('16b: should handle the direction statemnent with TB', () => {
imgSnapshotTest(
`
classDiagram
direction TB
class Student {
-idCard : IdCard
}
class IdCard{
-id : int
-name : string
}
class Bike{
-id : int
-name : string
}
Student "1" --o "1" IdCard : carries
Student "1" --o "1" Bike : rides
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('18: should handle the direction statemnent with LR', () => {
imgSnapshotTest(
`
classDiagram
direction LR
class Student {
-idCard : IdCard
}
class IdCard{
-id : int
-name : string
}
class Bike{
-id : int
-name : string
}
Student "1" --o "1" IdCard : carries
Student "1" --o "1" Bike : rides
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('17a: should handle the direction statemnent with BT', () => {
imgSnapshotTest(
`
classDiagram
direction BT
class Student {
-idCard : IdCard
}
class IdCard{
-id : int
-name : string
}
class Bike{
-id : int
-name : string
}
Student "1" --o "1" IdCard : carries
Student "1" --o "1" Bike : rides
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
it('17b: should handle the direction statemment with RL', () => {
imgSnapshotTest(
`
classDiagram
direction RL
class Student {
-idCard : IdCard
}
class IdCard{
-id : int
-name : string
}
class Bike{
-id : int
-name : string
}
Student "1" --o "1" IdCard : carries
Student "1" --o "1" Bike : rides
`,
{ logLevel: 1, flowchart: { htmlLabels: false } }
);
cy.get('svg');
});
});

View File

@@ -1,308 +1,410 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util';
describe('Class diagram', () => {
it('1: should render a simple class diagram', () => {
imgSnapshotTest(
`
classDiagram
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class12 <|.. Class08
Class11 ..>Class12
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class01 : -int privateChimp
Class01 : +int publicGorilla
Class01 : #int protectedMarmoset
Class08 <--> C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{logLevel : 1}
);
cy.get('svg');
});
it('2: should render a simple class diagrams with cardinality', () => {
imgSnapshotTest(
`
classDiagram
Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{}
);
cy.get('svg');
});
it('should render a simple class diagram with different visibilities', () => {
imgSnapshotTest(
`
classDiagram
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class01 : -int privateMethod()
Class01 : +int publicMethod()
Class01 : #int protectedMethod()
Class01 : -int privateChimp
Class01 : +int publicGorilla
Class01 : #int protectedMarmoset
`,
{}
);
cy.get('svg');
});
it('should render multiple class diagrams', () => {
imgSnapshotTest(
[
`
classDiagram
Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
`
classDiagram
Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
],
{}
);
cy.get('svg');
});
it('4: should render a simple class diagram with comments', () => {
imgSnapshotTest(
`
classDiagram
%% this is a comment
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{}
);
cy.get('svg');
});
it('5: should render a simple class diagram with abstract method', () => {
imgSnapshotTest(
`
classDiagram
Class01 <|-- AveryLongClass : Cool
Class01 : someMethod()*
`,
{}
);
cy.get('svg');
});
it('6: should render a simple class diagram with static method', () => {
imgSnapshotTest(
`
classDiagram
Class01 <|-- AveryLongClass : Cool
Class01 : someMethod()$
`,
{}
);
cy.get('svg');
});
it('7: should render a simple class diagram with Generic class', () => {
imgSnapshotTest(
`
classDiagram
class Class01~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{}
);
cy.get('svg');
});
it('8: should render a simple class diagram with Generic class and relations', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{}
);
cy.get('svg');
});
it('9: should render a simple class diagram with clickable link', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
link class01 "google.com" "A Tooltip"
`,
{}
);
cy.get('svg');
});
it('10: should render a simple class diagram with clickable callback', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
callback class01 "functionCall" "A Tooltip"
`,
{}
);
cy.get('svg');
});
it('11: should render a simple class diagram with return type on method', () => {
imgSnapshotTest(
`
classDiagram
class Class10~T~ {
int[] id
test(int[] ids) bool
testArray() bool[]
}
`,
{}
);
cy.get('svg');
});
it('12: should render a simple class diagram with generic types', () => {
imgSnapshotTest(
`
classDiagram
class Class10~T~ {
int[] id
List~int~ ids
test(List~int~ ids) List~bool~
testArray() bool[]
}
`,
{}
);
cy.get('svg');
});
});
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
describe('Class diagram', () => {
it('1: should render a simple class diagram', () => {
imgSnapshotTest(
`
classDiagram
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class12 <|.. Class08
Class11 ..>Class12
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class01 : -int privateChimp
Class01 : +int publicGorilla
Class01 : #int protectedMarmoset
Class08 <--> C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('2: should render a simple class diagrams with cardinality', () => {
imgSnapshotTest(
`
classDiagram
Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{}
);
cy.get('svg');
});
it('3: should render a simple class diagram with different visibilities', () => {
imgSnapshotTest(
`
classDiagram
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class01 : -privateMethod()
Class01 : +publicMethod()
Class01 : #protectedMethod()
Class01 : -int privateChimp
Class01 : +int publicGorilla
Class01 : #int protectedMarmoset
`,
{}
);
cy.get('svg');
});
it('4: should render a simple class diagram with comments', () => {
imgSnapshotTest(
`
classDiagram
%% this is a comment
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 --> C2 : Where am i?
Class09 --* C3
Class09 --|> Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{}
);
cy.get('svg');
});
it('5: should render a simple class diagram with abstract method', () => {
imgSnapshotTest(
`
classDiagram
Class01 <|-- AveryLongClass : Cool
Class01 : someMethod()*
`,
{}
);
cy.get('svg');
});
it('6: should render a simple class diagram with static method', () => {
imgSnapshotTest(
`
classDiagram
Class01 <|-- AveryLongClass : Cool
Class01 : someMethod()$
`,
{}
);
cy.get('svg');
});
it('7: should render a simple class diagram with Generic class', () => {
imgSnapshotTest(
`
classDiagram
class Class01~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{}
);
cy.get('svg');
});
it('8: should render a simple class diagram with Generic class and relations', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
{}
);
cy.get('svg');
});
it('9: should render a simple class diagram with clickable link', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
link Class01 "google.com" "A Tooltip"
`,
{}
);
cy.get('svg');
});
it('10: should render a simple class diagram with clickable callback', () => {
imgSnapshotTest(
`
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
callback Class01 "functionCall" "A Tooltip"
`,
{}
);
cy.get('svg');
});
it('11: should render a simple class diagram with return type on method', () => {
imgSnapshotTest(
`
classDiagram
class Class10~T~ {
int[] id
test(int[] ids) bool
testArray() bool[]
}
`,
{}
);
cy.get('svg');
});
it('12: should render a simple class diagram with generic types', () => {
imgSnapshotTest(
`
classDiagram
class Class10~T~ {
int[] id
List~int~ ids
test(List~int~ ids) List~bool~
testArray() bool[]
}
`,
{}
);
cy.get('svg');
});
it('13: should render a simple class diagram with css classes applied', () => {
imgSnapshotTest(
`
classDiagram
class Class10 {
int[] id
List~int~ ids
test(List~int~ ids) List~bool~
testArray() bool[]
}
class Class10:::exClass2
`,
{}
);
cy.get('svg');
});
it('14: should render a simple class diagram with css classes applied directly', () => {
imgSnapshotTest(
`
classDiagram
class Class10:::exClass2 {
int[] id
List~int~ ids
test(List~int~ ids) List~bool~
testArray() bool[]
}
`,
{}
);
cy.get('svg');
});
it('15: should render a simple class diagram with css classes applied two multiple classes', () => {
imgSnapshotTest(
`
classDiagram
class Class10
class Class20
cssClass "Class10, Class20" exClass2
class Class20:::exClass2
`,
{}
);
cy.get('svg');
});
it('16: should render multiple class diagrams', () => {
imgSnapshotTest(
[
`
classDiagram
Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
`
classDiagram
Class01 "1" <|--|> "*" AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "1" *-- "*" Class04
Class05 "1" o-- "many" Class06
Class07 "1" .. "*" Class08
Class09 "1" --> "*" C2 : Where am i?
Class09 "*" --* "*" C3
Class09 "1" --|> "1" Class07
Class07 : equals()
Class07 : Object[] elementData
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 "1" <--> "*" C2: Cool label
class Class10 {
&lt;&lt;service&gt;&gt;
int id
test()
}
`,
],
{}
);
cy.get('svg');
});
// it('17: should render a class diagram when useMaxWidth is true (default)', () => {
// renderGraph(
// `
// classDiagram
// Class01 <|-- AveryLongClass : Cool
// Class01 : size()
// Class01 : int chimp
// Class01 : int gorilla
// Class01 : -int privateChimp
// Class01 : +int publicGorilla
// Class01 : #int protectedMarmoset
// `,
// { class: { useMaxWidth: true } }
// );
// cy.get('svg')
// .should((svg) => {
// expect(svg).to.have.attr('width', '100%');
// const height = parseFloat(svg.attr('height'));
// expect(height).to.be.within(332, 333);
// // expect(svg).to.have.attr('height', '218');
// const style = svg.attr('style');
// expect(style).to.match(/^max-width: [\d.]+px;$/);
// const maxWidthValue = parseInt(style.match(/[\d.]+/g).join(''));
// // use within because the absolute value can be slightly different depending on the environment ±5%
// expect(maxWidthValue).to.be.within(203, 204);
// });
// });
// it('18: should render a class diagram when useMaxWidth is false', () => {
// renderGraph(
// `
// classDiagram
// Class01 <|-- AveryLongClass : Cool
// Class01 : size()
// Class01 : int chimp
// Class01 : int gorilla
// Class01 : -int privateChimp
// Class01 : +int publicGorilla
// Class01 : #int protectedMarmoset
// `,
// { class: { useMaxWidth: false } }
// );
// cy.get('svg')
// .should((svg) => {
// const width = parseFloat(svg.attr('width'));
// // use within because the absolute value can be slightly different depending on the environment ±5%
// expect(width).to.be.within(100, 101);
// const height = parseFloat(svg.attr('height'));
// expect(height).to.be.within(332, 333);
// // expect(svg).to.have.attr('height', '332');
// // expect(svg).to.not.have.attr('style');
// });
// });
});

View File

@@ -0,0 +1,140 @@
import { imgSnapshotTest } from '../../helpers/util.js';
describe('Configuration and directives - nodes should be light blue', () => {
it('No config - use default', () => {
imgSnapshotTest(
`
graph TD
A(Default) --> B[/Another/]
A --> C[End]
subgraph section
B
C
end
`,
{}
);
cy.get('svg');
});
it('Settigns from intitialize - nodes should be green', () => {
imgSnapshotTest(
`
graph TD
A(Forest) --> B[/Another/]
A --> C[End]
subgraph section
B
C
end `,
{ theme: 'forest' }
);
cy.get('svg');
});
it('Settings from initialize overriding themeVariable - nodes shold be red', () => {
imgSnapshotTest(
`
%%{init: { 'theme': 'base', 'themeVariables':{ 'primaryColor': '#ff0000'}}}%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{ theme: 'base', themeVariables: { primaryColor: '#ff0000' }, logLevel: 0 }
);
cy.get('svg');
});
it('Settings from directive - nodes should be grey', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0, 'theme': 'neutral'} }%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{}
);
cy.get('svg');
});
it('Settings from directive overriding theme variable - nodes should be red', () => {
imgSnapshotTest(
`
%%{init: {'theme': 'base', 'themeVariables':{ 'primaryColor': '#ff0000'}}}%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{}
);
cy.get('svg');
});
it('Settings from initialize and directive - nodes should be grey', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0, 'theme': 'neutral'} }%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{ theme: 'forest' }
);
cy.get('svg');
});
it('Theme from initialize, directive overriding theme variable - nodes should be red', () => {
imgSnapshotTest(
`
%%{init: {'theme': 'base', 'themeVariables':{ 'primaryColor': '#ff0000'}}}%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{ theme: 'base' }
);
cy.get('svg');
});
it('Theme variable from initialize, theme from directive - nodes should be red', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0, 'theme': 'base'} }%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
`,
{ themeVariables: { primaryColor: '#ff0000' } }
);
cy.get('svg');
});
describe('when rendering several diagrams', () => {
it('diagrams should not taint later diagrams', () => {
const url = 'http://localhost:9000/theme-directives.html';
cy.visit(url);
cy.get('svg');
cy.percySnapshot();
});
});
});

View File

@@ -1,4 +1,3 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util';
describe('State diagram', () => {

View File

@@ -0,0 +1,12 @@
import { imgSnapshotTest } from '../../helpers/util';
describe('Flowchart', () => {
it('34: testing the label width in percy', () => {
imgSnapshotTest(
`graph TD
A[Christmas]
`,
{ theme: 'forest', fontFamily: '"Noto Sans SC", sans-serif' }
);
});
});

View File

@@ -1,5 +1,4 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
describe('Entity Relationship Diagram', () => {
it('should render a simple ER diagram', () => {
@@ -9,7 +8,7 @@ describe('Entity Relationship Diagram', () => {
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
`,
{logLevel : 1}
{ logLevel: 1 }
);
cy.get('svg');
});
@@ -22,7 +21,7 @@ describe('Entity Relationship Diagram', () => {
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
`,
{logLevel : 1}
{ logLevel: 1 }
);
cy.get('svg');
});
@@ -34,7 +33,7 @@ describe('Entity Relationship Diagram', () => {
CUSTOMER ||--|{ ADDRESS : "invoiced at"
CUSTOMER ||--|{ ADDRESS : "receives goods at"
`,
{logLevel : 1}
{ logLevel: 1 }
);
cy.get('svg');
});
@@ -47,7 +46,7 @@ describe('Entity Relationship Diagram', () => {
B ||--|{ C : likes
C ||--|{ A : likes
`,
{logLevel : 1}
{ logLevel: 1 }
);
cy.get('svg');
});
@@ -65,7 +64,7 @@ describe('Entity Relationship Diagram', () => {
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
`,
{logLevel : 1}
{ logLevel: 1 }
);
cy.get('svg');
});
@@ -73,18 +72,124 @@ describe('Entity Relationship Diagram', () => {
it('should render multiple ER diagrams', () => {
imgSnapshotTest(
[
`
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
`,
`
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
`,
],
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render an ER diagram with blank or empty labels', () => {
imgSnapshotTest(
`
erDiagram
BOOK }|..|{ AUTHOR : ""
BOOK }|..|{ GENRE : " "
AUTHOR }|..|{ GENRE : " "
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render an ER diagrams when useMaxWidth is true (default)', () => {
renderGraph(
`
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
`,
{ er: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
expect(svg).to.have.attr('height', '465');
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
// use within because the absolute value can be slightly different depending on the environment ±5%
expect(maxWidthValue).to.be.within(140 * 0.95, 140 * 1.05);
});
});
it('should render an ER when useMaxWidth is false', () => {
renderGraph(
`
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
`,
{ er: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
const width = parseFloat(svg.attr('width'));
// use within because the absolute value can be slightly different depending on the environment ±5%
expect(width).to.be.within(140 * 0.95, 140 * 1.05);
expect(svg).to.have.attr('height', '465');
expect(svg).to.not.have.attr('style');
});
});
it('should render entities that have no relationships', () => {
renderGraph(
`
],
{logLevel : 1}
erDiagram
DEAD_PARROT
HERMIT
RECLUSE
SOCIALITE }o--o{ SOCIALITE : "interacts with"
RECLUSE }o--o{ SOCIALITE : avoids
`,
{ er: { useMaxWidth: false } }
);
cy.get('svg');
});
it('should render entities with and without attributes', () => {
renderGraph(
`
erDiagram
BOOK { string title }
AUTHOR }|..|{ BOOK : writes
BOOK { float price }
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities and attributes with big and small entity names', () => {
renderGraph(
`
erDiagram
PRIVATE_FINANCIAL_INSTITUTION {
string name
int turnover
}
PRIVATE_FINANCIAL_INSTITUTION ||..|{ EMPLOYEE : employs
EMPLOYEE { bool officer_of_firm }
`,
{ logLevel: 1 }
);
cy.get('svg');
});
it('should render entities with keys and comments', () => {
renderGraph(
`
erDiagram
BOOK { string title PK "comment"}
`,
{ logLevel: 1 }
);
cy.get('svg');
});

View File

@@ -0,0 +1,641 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
describe('Flowchart v2', () => {
it('1: should render a simple flowchart', () => {
imgSnapshotTest(
`flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{}
);
});
it('2: should render a simple flowchart with diagramPadding set to 0', () => {
imgSnapshotTest(
`flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
%% this is a comment
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { diagramPadding: 0 } }
);
});
it('3: a link with correct arrowhead to a subgraph', () => {
imgSnapshotTest(
`flowchart TD
P1
P1 -->P1.5
subgraph P1.5
P2
P2.5(( A ))
P3
end
P2 --> P4
P3 --> P6
P1.5 --> P5
`,
{ flowchart: { diagramPadding: 0 } }
);
});
it('4: Length of edges', () => {
imgSnapshotTest(
`flowchart TD
L1 --- L2
L2 --- C
M1 ---> C
R1 .-> R2
R2 <.-> C
C -->|Label 1| E1
C <-- Label 2 ---> E2
C ----> E3
C <-...-> E4
C ======> E5
`,
{ flowchart: { diagramPadding: 0 } }
);
});
it('5: should render escaped without html labels', () => {
imgSnapshotTest(
`flowchart TD
a["<strong>Haiya</strong>"]---->b
`,
{ htmlLabels: false, flowchart: { htmlLabels: false } }
);
});
it('6: should render non-escaped with html labels', () => {
imgSnapshotTest(
`flowchart TD
a["<strong>Haiya</strong>"]===>b
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('7: should render a flowchart when useMaxWidth is true (default)', () => {
renderGraph(
`flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
expect(svg).to.have.attr('height');
// use within because the absolute value can be slightly different depending on the environment ±5%
const height = parseFloat(svg.attr('height'));
expect(height).to.be.within(446 * 0.95, 446 * 1.05);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
expect(maxWidthValue).to.be.within(290 * 0.95 - 1, 290 * 1.05);
});
});
it('8: should render a flowchart when useMaxWidth is false', () => {
renderGraph(
`flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
// use within because the absolute value can be slightly different depending on the environment ±5%
expect(height).to.be.within(446 * 0.95, 446 * 1.05);
expect(width).to.be.within(290 * 0.95 - 1, 290 * 1.05);
expect(svg).to.not.have.attr('style');
});
});
it('V2 - 16: Render Stadium shape', () => {
imgSnapshotTest(
` flowchart TD
A([stadium shape test])
A -->|Get money| B([Go shopping])
B --> C([Let me think...<br />Do I want something for work,<br />something to spend every free second with,<br />or something to get around?])
C -->|One| D([Laptop])
C -->|Two| E([iPhone])
C -->|Three| F([Car<br/>wroom wroom])
click A "index.html#link-clicked" "link test"
click B testClick "click test"
classDef someclass fill:#f96;
class A someclass;
class C someclass;
`,
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
it('50: handle nested subgraphs in reverse order', () => {
imgSnapshotTest(
`flowchart LR
a -->b
subgraph A
B
end
subgraph B
b
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('51: handle nested subgraphs in reverse order', () => {
imgSnapshotTest(
`flowchart LR
a -->b
subgraph A
B
end
subgraph B
b
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('52: handle nested subgraphs in several levels', () => {
imgSnapshotTest(
`flowchart TB
b-->B
a-->c
subgraph O
A
end
subgraph B
c
end
subgraph A
a
b
B
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('53: handle nested subgraphs with edges in and out', () => {
imgSnapshotTest(
`flowchart TB
internet
nat
routeur
lb1
lb2
compute1
compute2
subgraph project
routeur
nat
subgraph subnet1
compute1
lb1
end
subgraph subnet2
compute2
lb2
end
end
internet --> routeur
routeur --> subnet1 & subnet2
subnet1 & subnet2 --> nat --> internet
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('54: handle nested subgraphs with outgoing links', () => {
imgSnapshotTest(
`flowchart TD
subgraph main
subgraph subcontainer
subcontainer-child
end
subcontainer-child--> subcontainer-sibling
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('55: handle nested subgraphs with outgoing links 2', () => {
imgSnapshotTest(
`flowchart TD
subgraph one[One]
subgraph sub_one[Sub One]
_sub_one
end
subgraph sub_two[Sub Two]
_sub_two
end
_one
end
%% here, either the first or the second one
sub_one --> sub_two
_one --> b
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('56: handle nested subgraphs with outgoing links 3', () => {
imgSnapshotTest(
`flowchart TB
subgraph container_Beta
process_C-->Process_D
end
subgraph container_Alpha
process_A-->process_B
process_A-->|messages|process_C
end
process_B-->|via_AWSBatch|container_Beta
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('57: handle nested subgraphs with outgoing links 4', () => {
imgSnapshotTest(
`flowchart LR
subgraph A
a -->b
end
subgraph B
b
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('57: handle nested subgraphs with outgoing links 2', () => {
imgSnapshotTest(
`flowchart TB
c1-->a2
subgraph one
a1-->a2
end
subgraph two
b1-->b2
end
subgraph three
c1-->c2
end
one --> two
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('57.x: handle nested subgraphs with outgoing links 5', () => {
imgSnapshotTest(
`%% this does not produce the desired result
flowchart TB
subgraph container_Beta
process_C-->Process_D
end
subgraph container_Alpha
process_A-->process_B
process_B-->|via_AWSBatch|container_Beta
process_A-->|messages|process_C
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('58: handle styling with style expressions', () => {
imgSnapshotTest(
`
flowchart LR
id1(Start)-->id2(Stop)
style id1 fill:#f9f,stroke:#333,stroke-width:4px
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('59: handle styling of subgraphs and links', () => {
imgSnapshotTest(
`
flowchart TD
A[Christmas] ==> D
A[Christmas] -->|Get money| B(Go shopping)
A[Christmas] ==> C
subgraph T ["Test"]
A
B
C
end
classDef Test fill:#F84E68,stroke:#333,color:white;
class A,T Test
classDef TestSub fill:green;
class T TestSub
linkStyle 0,1 color:orange, stroke: orange;
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('60: handle styling for all node shapes - v2', () => {
imgSnapshotTest(
`
flowchart LR
A[red text] -->|default style| B(blue text)
C([red text]) -->|default style| D[[blue text]]
E[(red text)] -->|default style| F((blue text))
G>red text] -->|default style| H{blue text}
I{{red text}} -->|default style| J[/blue text/]
K[\\ red text\\] -->|default style| L[/blue text\\]
M[\\ red text/] -->|default style| N[blue text];
linkStyle default color:Sienna;
style A stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style B stroke:#0000ff,fill:#ccccff,color:#0000ff;
style C stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style D stroke:#0000ff,fill:#ccccff,color:#0000ff;
style E stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style F stroke:#0000ff,fill:#ccccff,color:#0000ff;
style G stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style H stroke:#0000ff,fill:#ccccff,color:#0000ff;
style I stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style J stroke:#0000ff,fill:#ccccff,color:#0000ff;
style K stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style L stroke:#0000ff,fill:#ccccff,color:#0000ff;
style M stroke:#ff0000,fill:#ffcccc,color:#ff0000;
style N stroke:#0000ff,fill:#ccccff,color:#0000ff;
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose', logLevel: 2 }
);
});
it('61: fontawesome icons in edge labels', () => {
imgSnapshotTest(
`
flowchart TD
C -->|fa:fa-car Car| F[fa:fa-car Car]
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('62: should render styled subgraphs', () => {
imgSnapshotTest(
`
flowchart TB
A
B
subgraph foo[Foo SubGraph]
C
D
end
subgraph bar[Bar SubGraph]
E
F
end
G
A-->B
B-->C
C-->D
B-->D
D-->E
E-->A
E-->F
F-->D
F-->G
B-->G
G-->D
style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred
style bar fill:#999,stroke-width:10px,stroke:#0F0,color:blue
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('63: title on subgraphs should be themable', () => {
imgSnapshotTest(
`
%%{init:{"theme":"base", "themeVariables": {"primaryColor":"#411d4e", "titleColor":"white", "darkMode":true}}}%%
flowchart LR
subgraph A
a --> b
end
subgraph B
i -->f
end
A --> B
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('65: text-color from classes', () => {
imgSnapshotTest(
`
flowchart LR
classDef dark fill:#000,stroke:#000,stroke-width:4px,color:#fff
Lorem --> Ipsum --> Dolor
class Lorem,Dolor dark
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('66: More nested subgraph cases (TB)', () => {
imgSnapshotTest(
`
flowchart TB
subgraph two
b1
end
subgraph three
c2
end
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('67: More nested subgraph cases (RL)', () => {
imgSnapshotTest(
`
flowchart RL
subgraph two
b1
end
subgraph three
c2
end
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('68: More nested subgraph cases (BT)', () => {
imgSnapshotTest(
`
flowchart BT
subgraph two
b1
end
subgraph three
c2
end
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('69: More nested subgraph cases (LR)', () => {
imgSnapshotTest(
`
flowchart LR
subgraph two
b1
end
subgraph three
c2
end
three --> two
two --> c2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('70: Handle nested subgraph cases (TB) link out and link between subgraphs', () => {
imgSnapshotTest(
`
flowchart TB
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('71: Handle nested subgraph cases (RL) link out and link between subgraphs', () => {
imgSnapshotTest(
`
flowchart RL
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('72: Handle nested subgraph cases (BT) link out and link between subgraphs', () => {
imgSnapshotTest(
`
flowchart BT
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('74: Handle nested subgraph cases (RL) link out and link between subgraphs', () => {
imgSnapshotTest(
`
flowchart RL
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('74: Handle labels for multiple edges from and to the same couple of nodes', () => {
imgSnapshotTest(
`
flowchart RL
subgraph one
a1 -- l1 --> a2
a1 -- l2 --> a2
end
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('76: handle unicode encoded character with HTML labels true', () => {
imgSnapshotTest(
`flowchart TB
a{{"Lorem 'ipsum' dolor 'sit' amet, 'consectetur' adipiscing 'elit'."}}
--> b{{"Lorem #quot;ipsum#quot; dolor #quot;sit#quot; amet,#quot;consectetur#quot; adipiscing #quot;elit#quot;."}}
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('2050: handling of different rendering direction in subgraphs', () => {
imgSnapshotTest(
`
flowchart LR
subgraph TOP
direction TB
subgraph B1
direction RL
i1 -->f1
end
subgraph B2
direction BT
i2 -->f2
end
end
A --> TOP --> B
B1 --> B2
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
});

View File

@@ -1,7 +1,6 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
describe('Flowchart', () => {
describe('Graph', () => {
it('1: should render a simple flowchart no htmlLabels', () => {
imgSnapshotTest(
`graph TD
@@ -11,7 +10,7 @@ describe('Flowchart', () => {
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -24,7 +23,7 @@ describe('Flowchart', () => {
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { htmlLabels: true } }
{ flowchart: { htmlLabels: true }, fontFamily: 'courier' }
);
});
@@ -38,7 +37,7 @@ describe('Flowchart', () => {
C -->|Two| E[iPhone]
C -->|Three| F[Car]
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -53,7 +52,7 @@ describe('Flowchart', () => {
C -->|Two| E[\\iPhone\\]
C -->|Three| F[Car]
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -69,7 +68,7 @@ describe('Flowchart', () => {
classDef processHead fill:#888888,color:white,font-weight:bold,stroke-width:3px,stroke:#001f3f
class 1A,1B,D,E processHead
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -98,7 +97,7 @@ describe('Flowchart', () => {
35(SAM.CommonFA.PopulationFME)-->39(SAM.CommonFA.ChargeDetails)
36(SAM.CommonFA.PremetricCost)-->39(SAM.CommonFA.ChargeDetails)
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -169,7 +168,7 @@ describe('Flowchart', () => {
9a072290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002
9a072290_1ec3_e711_8c5a_005056ad0002-->71082290_1ec3_e711_8c5a_005056ad0002
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -178,7 +177,7 @@ describe('Flowchart', () => {
`
graph TB;subgraph "number as labels";1;end;
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -190,7 +189,7 @@ describe('Flowchart', () => {
a1-->a2
end
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -202,7 +201,7 @@ describe('Flowchart', () => {
a1-->a2
end
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -234,10 +233,10 @@ describe('Flowchart', () => {
B-->G
G-->D
style foo fill:#F99,stroke-width:2px,stroke:#F0F
style bar fill:#999,stroke-width:10px,stroke:#0F0
style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred
style bar fill:#999,stroke-width:10px,stroke:#0F0,color:blue
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -339,7 +338,7 @@ describe('Flowchart', () => {
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A;
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4FC27B48-A6F9-460A-A675-021F5854FE22;
`,
{}
{ fontFamily: 'courier' }
);
});
@@ -356,7 +355,8 @@ describe('Flowchart', () => {
{
listUrl: false,
listId: 'color styling',
logLevel: 0
fontFamily: 'courier',
logLevel: 0,
}
);
});
@@ -379,7 +379,8 @@ describe('Flowchart', () => {
{
listUrl: false,
listId: 'color styling',
logLevel: 0
fontFamily: 'courier',
logLevel: 0,
}
);
});
@@ -394,7 +395,7 @@ describe('Flowchart', () => {
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -413,7 +414,7 @@ describe('Flowchart', () => {
class A someclass;
class C someclass;
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -430,7 +431,7 @@ describe('Flowchart', () => {
linkStyle 1 stroke:DarkGray,stroke-width:2px
linkStyle 2 stroke:DarkGray,stroke-width:2px
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -439,7 +440,7 @@ describe('Flowchart', () => {
`graph LR
a --> b --> c
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -448,7 +449,7 @@ describe('Flowchart', () => {
`graph LR
a --> b & c--> d
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -458,7 +459,7 @@ describe('Flowchart', () => {
A[ h ] -- hello --> B[" test "]:::exClass & C --> D;
classDef exClass background:#bbb,border:1px solid red;
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -480,7 +481,7 @@ describe('Flowchart', () => {
click B testClick "click test"
classDef someclass fill:#f96;
class A someclass;`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -494,7 +495,7 @@ describe('Flowchart', () => {
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { nodeSpacing: 50 } }
{ flowchart: { nodeSpacing: 50 }, fontFamily: 'courier' }
);
});
@@ -508,7 +509,7 @@ describe('Flowchart', () => {
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { rankSpacing: '100' } }
{ flowchart: { rankSpacing: '100' }, fontFamily: 'courier' }
);
});
@@ -521,7 +522,7 @@ describe('Flowchart', () => {
linkStyle 1 stroke:greenyellow,stroke-width:2px
style C fill:greenyellow,stroke:green,stroke-width:4px
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -529,20 +530,22 @@ describe('Flowchart', () => {
imgSnapshotTest(
`graph TB
TITLE["Link Click Events<br>(click the nodes below)"]
A[link test]
B[anchor test]
C[mailto test]
D[other protocol test]
E[script test]
TITLE --> A & B & C & D & E
click A "https://mermaid-js.github.io/mermaid/#/" "link test"
click B "#link-clicked" "anchor test"
click C "mailto:user@user.user" "mailto test"
click D "notes://do-your-thing/id" "other protocol test"
click E "javascript:alert('test')" "script test"
A["link test (open in same tab)"]
B["link test (open in new tab)"]
C[anchor test]
D[mailto test]
E[other protocol test]
F[script test]
TITLE --> A & B & C & D & E & F
click A "https://mermaid-js.github.io/mermaid/#/" "link test (open in same tab)"
click B "https://mermaid-js.github.io/mermaid/#/" "link test (open in new tab)" _blank
click C "#link-clicked"
click D "mailto:user@user.user" "mailto test"
click E "notes://do-your-thing/id" "other protocol test"
click F "javascript:alert('test')" "script test"
`,
{ securityLevel: 'loose' }
);
{ securityLevel: 'loose', fontFamily: 'courier' }
);
});
it('26: Set text color of nodes and links according to styles when html labels are enabled', () => {
@@ -581,7 +584,7 @@ describe('Flowchart', () => {
click B "index.html#link-clicked" "link test"
click D testClick "click test"
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -613,7 +616,7 @@ describe('Flowchart', () => {
class A myClass1
class D myClass2
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -637,7 +640,7 @@ describe('Flowchart', () => {
classDef redBg fill:#622;
classDef whiteTxt color: white;
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -649,7 +652,7 @@ describe('Flowchart', () => {
eat --> sleep
work --> eat
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
@@ -668,7 +671,224 @@ describe('Flowchart', () => {
class A someclass;
class C someclass;
`,
{ flowchart: { htmlLabels: false } }
{ flowchart: { htmlLabels: false }, fontFamily: 'courier' }
);
});
it('33: should render a simple flowchart with diagramPadding set to 0', () => {
imgSnapshotTest(
`graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
%% this is a comment
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { diagramPadding: 0 } }
);
});
it('34: testing the label width in percy', () => {
imgSnapshotTest(
`graph TD
A[Christmas]
`,
{}
);
});
it('35: should honor minimum edge length as specified by the user', () => {
imgSnapshotTest(
`graph TD
L1 --- L2
L2 --- C
M1 ---> C
R1 .-> R2
R2 <.-> C
C -->|Label 1| E1
C -- Label 2 ---> E2
C ----> E3
C -----> E4
C ======> E5
`,
{}
);
});
it('36: should render escaped without html labels', () => {
imgSnapshotTest(
`graph TD
a["<strong>Haiya</strong>"]-->b
`,
{ htmlLabels: false, flowchart: { htmlLabels: false } }
);
});
it('37: should render non-escaped with html labels', () => {
imgSnapshotTest(
`graph TD
a["<strong>Haiya</strong>"]-->b
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('38: should render a flowchart when useMaxWidth is true (default)', () => {
renderGraph(
`graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
expect(svg).to.have.attr('height');
// use within because the absolute value can be slightly different depending on the environment ±5%
const height = parseFloat(svg.attr('height'));
expect(height).to.be.within(446 * 0.95, 446 * 1.05);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
expect(maxWidthValue).to.be.within(300 * 0.95, 300 * 1.05);
});
});
it('39: should render a flowchart when useMaxWidth is false', () => {
renderGraph(
`graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
{ flowchart: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
// use within because the absolute value can be slightly different depending on the environment ±5%
expect(height).to.be.within(446 * 0.95, 446 * 1.05);
expect(width).to.be.within(300 * 0.95, 300 * 1.05);
expect(svg).to.not.have.attr('style');
});
});
it('58: handle styling with style expressions', () => {
imgSnapshotTest(
`
graph LR
id1(Start)-->id2(Stop)
style id1 fill:#f9f,stroke:#333,stroke-width:4px
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('60: handle styling for all node shapes', () => {
imgSnapshotTest(
`
graph LR
A[red text] -->|default style| B(blue text)
C([red text]) -->|default style| D[[blue text]]
E[(red text)] -->|default style| F((blue text))
G>red text] -->|default style| H{blue text}
I{{red text}} -->|default style| J[/blue text/]
linkStyle default color:Sienna;
style A stroke:#ff0000,fill:#ffcccc,color:#ff0000
style B stroke:#0000ff,fill:#ccccff,color:#0000ff
style C stroke:#ff0000,fill:#ffcccc,color:#ff0000
style D stroke:#0000ff,fill:#ccccff,color:#0000ff
style E stroke:#ff0000,fill:#ffcccc,color:#ff0000
style F stroke:#0000ff,fill:#ccccff,color:#0000ff
style G stroke:#ff0000,fill:#ffcccc,color:#ff0000
style H stroke:#0000ff,fill:#ccccff,color:#0000ff
style I stroke:#ff0000,fill:#ffcccc,color:#ff0000
style J stroke:#0000ff,fill:#ccccff,color:#0000ff
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('61: fontawesome icons in edge labels', () => {
imgSnapshotTest(
`
graph TD
C -->|fa:fa-car Car| F[fa:fa-car Car]
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('62: fontawesome icons in edge labels', () => {
imgSnapshotTest(
`
graph TB
subgraph bar[Bar]
F
end
style bar fill:#999,stroke-width:10px,stroke:#0F0,color:blue
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('63: fontawesome icons in edge labels', () => {
imgSnapshotTest(
`
graph TB
A
B
subgraph foo[Foo SubGraph]
C
D
end
subgraph bar[Bar SubGraph]
E
F
end
G
A-->B
B-->C
C-->D
B-->D
D-->E
E-->A
E-->F
F-->D
F-->G
B-->G
G-->D
style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred
style bar fill:#999,stroke-width:10px,stroke:#0F0,color:blue
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('64: fontawesome icons in edge labels', () => {
imgSnapshotTest(
`
%%{init:{"theme":"base", "themeVariables": {"primaryColor":"#411d4e", "titleColor":"white", "darkMode":true}}}%%
flowchart LR
subgraph A
a --> b
end
subgraph B
i -->f
end
A --> B
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
it('65: text-color from classes', () => {
imgSnapshotTest(
`
flowchart LR
classDef dark fill:#000,stroke:#000,stroke-width:4px,color:#fff
Lorem --> Ipsum --> Dolor
class Lorem,Dolor dark
`,
{ htmlLabels: true, flowchart: { htmlLabels: true }, securityLevel: 'loose' }
);
});
});

View File

@@ -1,7 +1,9 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('Gantt diagram', () => {
beforeEach(() => {
cy.clock(new Date('1010-10-10').getTime());
});
it('should render a gantt chart', () => {
imgSnapshotTest(
`
@@ -160,4 +162,133 @@ describe('Gantt diagram', () => {
{}
);
});
it('should render a gantt diagram when useMaxWidth is true (default)', () => {
renderGraph(
`
gantt
dateFormat YYYY-MM-DD
axisFormat %d/%m
title Adding GANTT diagram to mermaid
excludes weekdays 2014-01-10
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
`,
{ gantt: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
expect(svg).to.have.attr('height');
// use within because the absolute value can be slightly different depending on the environment ±5%
const height = parseFloat(svg.attr('height'));
expect(height).to.be.within(484 * 0.95, 484 * 1.05);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
expect(maxWidthValue).to.be.within(984 * 0.95, 984 * 1.05);
});
});
it('should render a gantt diagram when useMaxWidth is false', () => {
renderGraph(
`
gantt
dateFormat YYYY-MM-DD
axisFormat %d/%m
title Adding GANTT diagram to mermaid
excludes weekdays 2014-01-10
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
`,
{ gantt: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
// use within because the absolute value can be slightly different depending on the environment ±5%
expect(height).to.be.within(484 * 0.95, 484 * 1.05);
expect(width).to.be.within(984 * 0.95, 984 * 1.05);
expect(svg).to.not.have.attr('style');
});
});
it('should render a gantt diagram with data labels at the top when topAxis is true', () => {
imgSnapshotTest(
`
gantt
dateFormat YYYY-MM-DD
axisFormat %d/%m
title Adding GANTT diagram to mermaid
excludes weekdays 2014-01-10
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
`,
{ gantt: { topAxis: true } }
);
});
});

View File

@@ -1,4 +1,3 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util.js';
describe('Sequencediagram', () => {

View File

@@ -1,4 +1,3 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util.js';
describe('Sequencediagram', () => {

View File

@@ -1,5 +1,4 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('User journey diagram', () => {
it('Simple test', () => {
@@ -28,4 +27,40 @@ section Order from website
{}
);
});
it('should render a user journey diagram when useMaxWidth is true (default)', () => {
renderGraph(
`journey
title E-Commerce
section Order from website
Add to cart: 5: Me
section Checkout from website
Add payment details: 5: Me
`,
{ journey: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
expect(svg).to.have.attr('height');
const height = parseFloat(svg.attr('height'));
expect(height).to.eq(565);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
expect(maxWidthValue).to.eq(700);
});
});
it('should render a user journey diagram when useMaxWidth is false', () => {
imgSnapshotTest(
`journey
title E-Commerce
section Order from website
Add to cart: 5: Me
section Checkout from website
Add payment details: 5: Me
`,
{ journey: { useMaxWidth: false } }
);
});
});

View File

@@ -1,5 +1,4 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util.js';
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('Pie Chart', () => {
it('should render a simple pie diagram', () => {
@@ -37,4 +36,43 @@ describe('Pie Chart', () => {
);
cy.get('svg');
});
it('should render a pie diagram when useMaxWidth is true (default)', () => {
renderGraph(
`
pie title Sports in Sweden
"Bandy" : 40
"Ice-Hockey" : 80
"Football" : 90
`,
{ pie: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
expect(svg).to.have.attr('height');
const height = parseFloat(svg.attr('height'));
expect(height).to.eq(450);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
expect(maxWidthValue).to.eq(984);
});
});
it('should render a pie diagram when useMaxWidth is false', () => {
renderGraph(
`
pie title Sports in Sweden
"Bandy" : 40
"Ice-Hockey" : 80
"Football" : 90
`,
{ pie: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
expect(height).to.eq(450);
expect(width).to.eq(984);
expect(svg).to.not.have.attr('style');
});
});
});

View File

@@ -0,0 +1,49 @@
import { imgSnapshotTest, renderGraph } from '../../helpers/util.js';
describe('Requirement diagram', () => {
it('sample', () => {
imgSnapshotTest(
`
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
`,
{}
);
cy.get('svg');
});
});

View File

@@ -1,6 +1,6 @@
/// <reference types="Cypress" />
import { imgSnapshotTest } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
context('Sequence diagram', () => {
it('should render a simple sequence diagram', () => {
@@ -29,7 +29,7 @@ context('Sequence diagram', () => {
Alice -->> John: Parallel message 2
end
`,
{}
{ sequence: { actorFontFamily: 'courier' } }
);
});
it('should handle different line breaks', () => {
@@ -52,6 +52,26 @@ context('Sequence diagram', () => {
{}
);
});
it('should handle line breaks and wrap annotations', () => {
imgSnapshotTest(
`
sequenceDiagram
participant Alice
participant Bob
participant John as John<br/>Second Line
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
Note right of John: John thinks a long<br/>long time, so long<br/>that the text does<br/>not fit on a row.
Bob-->Alice: Checking with John...
Note over John:wrap: John looks like he's still thinking, so Bob prods him a bit.
Bob-x John: Hey John -<br/>we're still waiting to know<br/>how you're doing
Note over John:nowrap: John's trying hard not to break his train of thought.
Bob-x John:wrap: John! Are you still debating about how you're doing? How long does it take??
Note over John: After a few more moments, John<br/>finally snaps out of it.
`,
{}
);
});
it('should render loops with a slight margin', () => {
imgSnapshotTest(
`
@@ -92,7 +112,7 @@ context('Sequence diagram', () => {
Alice->>Bob: I'm short
Bob->>Alice: Short as well
`,
{ sequence: { actorFontSize: 18, actorFontFamily: 'Arial' } }
{ sequence: { actorFontSize: 18, actorFontFamily: 'times' } }
);
});
it('should render notes aligned to the left when configured', () => {
@@ -126,6 +146,41 @@ context('Sequence diagram', () => {
participant A as Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
A->>Bob: Hola
Bob-->A: Pasten !
`,
{ logLevel: 0 }
);
});
it('should wrap (inline) long actor descriptions', () => {
imgSnapshotTest(
`
sequenceDiagram
participant A as wrap:Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
A->>Bob: Hola
Bob-->A: Pasten !
`,
{ logLevel: 0 }
);
});
it('should wrap (directive) long actor descriptions', () => {
imgSnapshotTest(
`
%%{init: {'config': {'wrap': true }}}%%
sequenceDiagram
participant A as Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
A->>Bob: Hola
Bob-->A: Pasten !
`,
{}
);
});
it('should be possible to use actor symbols instead of boxes', () => {
imgSnapshotTest(
`
sequenceDiagram
actor Alice
actor Bob
Alice->>Bob: Hi Bob
Bob->>Alice: Hi Alice
`,
{}
);
@@ -141,6 +196,17 @@ context('Sequence diagram', () => {
{}
);
});
it('should render long notes wrapped (inline) left of actor', () => {
imgSnapshotTest(
`
sequenceDiagram
Alice->>Bob: Hola
Note left of Alice:wrap: Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
Bob->>Alice: I'm short though
`,
{}
);
});
it('should render long notes right of actor', () => {
imgSnapshotTest(
`
@@ -152,6 +218,17 @@ context('Sequence diagram', () => {
{}
);
});
it('should render long notes wrapped (inline) right of actor', () => {
imgSnapshotTest(
`
sequenceDiagram
Alice->>Bob: Hola
Note right of Alice:wrap: Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
Bob->>Alice: I'm short though
`,
{}
);
});
it('should render long notes over actor', () => {
imgSnapshotTest(
`
@@ -163,6 +240,17 @@ context('Sequence diagram', () => {
{}
);
});
it('should render long notes wrapped (inline) over actor', () => {
imgSnapshotTest(
`
sequenceDiagram
Alice->>Bob: Hola
Note over Alice:wrap: Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
Bob->>Alice: I'm short though
`,
{}
);
});
it('should render long messages from an actor to the left to one to the right', () => {
imgSnapshotTest(
`
@@ -173,6 +261,16 @@ context('Sequence diagram', () => {
{}
);
});
it('should render long messages wrapped (inline) from an actor to the left to one to the right', () => {
imgSnapshotTest(
`
sequenceDiagram
Alice->>Bob:wrap:Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
Bob->>Alice: I'm short though
`,
{}
);
});
it('should render long messages from an actor to the right to one to the left', () => {
imgSnapshotTest(
`
@@ -183,6 +281,16 @@ context('Sequence diagram', () => {
{}
);
});
it('should render long messages wrapped (inline) from an actor to the right to one to the left', () => {
imgSnapshotTest(
`
sequenceDiagram
Alice->>Bob: I'm short
Bob->>Alice:wrap: Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
`,
{}
);
});
});
context('background rects', () => {
it('should render a single and nested rects', () => {
@@ -216,6 +324,69 @@ context('Sequence diagram', () => {
{}
);
});
it('should render a single and nested opt with long test overflowing', () => {
imgSnapshotTest(
`
sequenceDiagram
participant A
participant B
participant C
participant D
participant E
participant G
A ->>+ B: Task 1
opt this is an opt with a long title that will overflow
B ->>+ C: Task 2
C -->>- B: Return
end
A ->> D: Task 3
opt this is another opt with a long title that will overflow
D ->>+ E: Task 4
opt this is a nested opt with a long title that will overflow
E ->>+ G: Task 5
G -->>- E: Return
end
E ->> E: Task 6
end
D -->> A: Complete
`,
{}
);
});
it('should render a single and nested opt with long test wrapping', () => {
imgSnapshotTest(
`
%%{init: { 'config': { 'wrap': true } } }%%
sequenceDiagram
participant A
participant B
participant C
participant D
participant E
participant G
A ->>+ B: Task 1
opt this is an opt with a long title that will overflow
B ->>+ C: Task 2
C -->>- B: Return
end
A ->> D: Task 3
opt this is another opt with a long title that will overflow
D ->>+ E: Task 4
opt this is a nested opt with a long title that will overflow
E ->>+ G: Task 5
G -->>- E: Return
end
E ->> E: Task 6
end
D -->> A: Complete
`,
{}
);
});
it('should render rect around and inside loops', () => {
imgSnapshotTest(
`
@@ -327,5 +498,196 @@ context('Sequence diagram', () => {
{}
);
});
it('should render dark theme from init directive and configure font size 24 font', () => {
imgSnapshotTest(
`
%%{init: {'theme': 'dark', 'config': {'fontSize': 24}}}%%
sequenceDiagram
Alice->>John: Hello John, how are you?
Alice->>John: John, can you hear me?
John-->>Alice: Hi Alice, I can hear you!
John-->>Alice: I feel great!
`,
{}
);
});
it('should render with wrapping enabled', () => {
imgSnapshotTest(
`
%%{init: { 'config': { 'wrap': true }}}%%
sequenceDiagram
participant A as Alice, the talkative one
A->>John: Hello John, how are you today? I'm feeling quite verbose today.
A->>John: John, can you hear me? If you are not available, we can talk later.
John-->>A: Hi Alice, I can hear you! I was finishing up an important meeting.
John-->>A: I feel great! I was not ignoring you. I am sorry you had to wait for a response.
`,
{}
);
});
it('should render with an init directive', () => {
imgSnapshotTest(
`%%{init: { "theme": "dark", 'config': { "fontFamily": "Menlo", "fontSize": 18, "fontWeight": 400, "wrap": true }}}%%
sequenceDiagram
Alice->>Bob: Hello Bob, how are you? If you are not available right now, I can leave you a message. Please get back to me as soon as you can!
Note left of Alice: Bob thinks
Bob->>Alice: Fine!`,
{}
);
});
});
context('directives', () => {
it('should override config with directive settings', () => {
imgSnapshotTest(
`
%%{init: { "config": { "mirrorActors": true }}}%%
sequenceDiagram
Alice->>Bob: I'm short
note left of Alice: config set to mirrorActors: false<br/>directive set to mirrorActors: true
Bob->>Alice: Short as well
`,
{
logLevel: 0,
sequence: { mirrorActors: false, noteFontSize: 18, noteFontFamily: 'Arial' },
}
);
});
it('should override config with directive settings', () => {
imgSnapshotTest(
`
%%{init: { "config": { "mirrorActors": false, "wrap": true }}}%%
sequenceDiagram
Alice->>Bob: I'm short
note left of Alice: config: mirrorActors=true<br/>directive: mirrorActors=false
Bob->>Alice: Short as well
`,
{ logLevel: 0, sequence: { mirrorActors: true, noteFontSize: 18, noteFontFamily: 'Arial' } }
);
});
});
context('links', () => {
it('should support actor links and properties EXPERIMENTAL: USE WITH CAUTION', () => {
//Be aware that the syntax for "properties" is likely to be changed.
imgSnapshotTest(
`
%%{init: { "config": { "mirrorActors": true, "forceMenus": true }}}%%
sequenceDiagram
participant a as Alice
participant j as John
note right of a: Hello world!
properties a: {"class": "internal-service-actor", "type": "@clock"}
properties j: {"class": "external-service-actor", "type": "@computer"}
links a: {"Repo": "https://www.contoso.com/repo", "Swagger": "https://www.contoso.com/swagger"}
links j: {"Repo": "https://www.contoso.com/repo"}
links a: {"Dashboard": "https://www.contoso.com/dashboard", "On-Call": "https://www.contoso.com/oncall"}
link a: Contacts @ https://contacts.contoso.com/?contact=alice@contoso.com
a->>j: Hello John, how are you?
j-->>a: Great!
`,
{ logLevel: 0, sequence: { mirrorActors: true, noteFontSize: 18, noteFontFamily: 'Arial' } }
);
});
it('should support actor links and properties when not mirrored EXPERIMENTAL: USE WITH CAUTION', () => {
//Be aware that the syntax for "properties" is likely to be changed.
imgSnapshotTest(
`
%%{init: { "config": { "mirrorActors": false, "forceMenus": true, "wrap": true }}}%%
sequenceDiagram
participant a as Alice
participant j as John
note right of a: Hello world!
properties a: {"class": "internal-service-actor", "type": "@clock"}
properties j: {"class": "external-service-actor", "type": "@computer"}
links a: {"Repo": "https://www.contoso.com/repo", "Swagger": "https://www.contoso.com/swagger"}
links j: {"Repo": "https://www.contoso.com/repo"}
links a: {"Dashboard": "https://www.contoso.com/dashboard", "On-Call": "https://www.contoso.com/oncall"}
a->>j: Hello John, how are you?
j-->>a: Great!
`,
{
logLevel: 0,
sequence: { mirrorActors: false, noteFontSize: 18, noteFontFamily: 'Arial' },
}
);
});
});
context('svg size', () => {
it('should render a sequence diagram when useMaxWidth is true (default)', () => {
renderGraph(
`
sequenceDiagram
participant Alice
participant Bob
participant John as John<br/>Second Line
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: Bob thinks a long<br/>long time, so long<br/>that the text does<br/>not fit on a row.
Bob-->Alice: Checking with John...
alt either this
Alice->>John: Yes
else or this
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end
`,
{ sequence: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
expect(svg).to.have.attr('height');
const height = parseFloat(svg.attr('height'));
expect(height).to.be.within(920, 960);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
// use within because the absolute value can be slightly different depending on the environment ±5%
expect(maxWidthValue).to.be.within(820 * 0.95, 820 * 1.05);
});
});
it('should render a sequence diagram when useMaxWidth is false', () => {
renderGraph(
`
sequenceDiagram
participant Alice
participant Bob
participant John as John<br/>Second Line
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: Bob thinks a long<br/>long time, so long<br/>that the text does<br/>not fit on a row.
Bob-->Alice: Checking with John...
alt either this
Alice->>John: Yes
else or this
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end
`,
{ sequence: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
expect(height).to.be.within(920, 960);
// use within because the absolute value can be slightly different depending on the environment ±5%
expect(width).to.be.within(820 * 0.95, 820 * 1.05);
expect(svg).to.not.have.attr('style');
});
});
});
});

View File

@@ -1,5 +1,4 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
describe('State diagram', () => {
it('v2 should render a simple info', () => {
@@ -7,7 +6,7 @@ describe('State diagram', () => {
`
info
`,
{ logLevel: 1 }
{ logLevel: 1, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -19,7 +18,7 @@ describe('State diagram', () => {
[*] --> State1
State1 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -31,7 +30,7 @@ describe('State diagram', () => {
[*] --> S1
state "Some long name" as S1
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -43,22 +42,22 @@ describe('State diagram', () => {
[*] --> S1
state "Some long name" as S1: The description
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
it('v2 should render a single state with short descr', () => {
it('v2 should render a single state with short descriptions', () => {
imgSnapshotTest(
`
stateDiagram-v2
state "A long long name" as long1
state "A" as longlonglongid
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
it('v2 should render a transition descrions with new lines', () => {
it('v2 should render a transition descriptions with new lines', () => {
imgSnapshotTest(
`
stateDiagram-v2
@@ -68,7 +67,7 @@ describe('State diagram', () => {
S1 --> S3: long line using <br>should work
S1 --> S4: long line using \\nshould work
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -82,7 +81,7 @@ describe('State diagram', () => {
notes.
end note
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -96,7 +95,7 @@ describe('State diagram', () => {
notes with . and in them.
end note
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -112,7 +111,7 @@ describe('State diagram', () => {
State1 --> State2 : With +,-
note left of State2 : This is the note +,-<br/>
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -128,7 +127,7 @@ describe('State diagram', () => {
And another line...
end note
`,
{}
{ logLevel: 0, fontFamily: 'courier' }
);
});
it('v2 should handle multiline notes with different line breaks', () => {
@@ -140,7 +139,7 @@ describe('State diagram', () => {
Line1<br>Line2<br/>Line3<br />Line4<br />Line5
end note
`,
{}
{ logLevel: 0, fontFamily: 'courier' }
);
});
@@ -155,7 +154,7 @@ describe('State diagram', () => {
State1 --> State2
State2 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -168,7 +167,7 @@ describe('State diagram', () => {
State1 --> State3
State1 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -184,7 +183,7 @@ describe('State diagram', () => {
State2 --> State3 : Transition 5
State1 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -197,11 +196,11 @@ describe('State diagram', () => {
XState2 : New line
XState1 --> XState2
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
it('v2 should render composit states', () => {
it('v2 should render composite states', () => {
imgSnapshotTest(
`
stateDiagram-v2
@@ -216,11 +215,11 @@ describe('State diagram', () => {
Configuring --> Idle : EvConfig EvConfig EvConfig EvConfig EvConfig
}
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
it('v2 should render multiple composit states', () => {
it('v2 should render multiple composite states', () => {
imgSnapshotTest(
`
stateDiagram-v2
@@ -246,10 +245,10 @@ describe('State diagram', () => {
}
}
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
});
it('v2 should render forks in composit states', () => {
it('v2 should render forks in composite states', () => {
imgSnapshotTest(
`
stateDiagram-v2
@@ -268,7 +267,7 @@ describe('State diagram', () => {
State4 --> [*]
}
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
});
it('v2 should render forks and joins', () => {
@@ -286,7 +285,7 @@ describe('State diagram', () => {
join_state --> State4
State4 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -310,7 +309,7 @@ describe('State diagram', () => {
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -329,7 +328,50 @@ describe('State diagram', () => {
}
);
});
it('v2 Simplest composit state', () => {
it('v2 it should be possibel to use a choice', () => {
imgSnapshotTest(
`
stateDiagram-v2
[*] --> Off
Off --> On
state MyChoice [[choice]]
On --> MyChoice
MyChoice --> Washing
MyChoice --> Drying
Washing --> Finished
Finished --> [*]
`,
{
logLevel: 0,
}
);
});
it('v2 width of compond state should grow with title if title is wider', () => {
imgSnapshotTest(
`
stateDiagram-v2
state "Long state name 2" as NotShooting {
a-->b
}
`,
{
logLevel: 0,
}
);
});
it('v2 state label with names in it', () => {
imgSnapshotTest(
`
stateDiagram-v2
Yswsii: Your state with spaces in it
[*] --> Yswsii
`,
{
logLevel: 0,
}
);
});
it('v2 Simplest composite state', () => {
imgSnapshotTest(
`
stateDiagram-v2
@@ -339,6 +381,7 @@ describe('State diagram', () => {
`,
{
logLevel: 0,
fontFamily: 'courier',
}
);
});
@@ -351,8 +394,104 @@ describe('State diagram', () => {
`,
{
logLevel: 0,
fontFamily: 'courier',
}
);
});
it('v2 should handle multiple notes added to one state', () => {
imgSnapshotTest(
`
stateDiagram-v2
MyState
note left of MyState : I am a leftie
note right of MyState : I am a rightie
`,
{
logLevel: 0,
fontFamily: 'courier',
}
);
});
it('v2 should handle different rendering directions in composite states', () => {
imgSnapshotTest(
`
stateDiagram-v2
direction LR
state A {
direction BT
a --> b
}
state C {
direction RL
c --> d
}
A --> C
`,
{
logLevel: 0,
fontFamily: 'courier',
}
);
});
it('v2 handle transition from one state in a composite state to a composite state', () => {
imgSnapshotTest(
`
stateDiagram-v2
state S1 {
sub1 -->sub2
}
state S2 {
sub4
}
S1 --> S2
sub1 --> sub4
`,
{
logLevel: 0,
fontFamily: 'courier',
}
);
});
it('v2 should render a state diagram when useMaxWidth is true (default)', () => {
renderGraph(
`
stateDiagram-v2
[*] --> State1
State1 --> [*]
`,
{ state: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
expect(svg).to.have.attr('height');
const height = parseFloat(svg.attr('height'));
expect(height).to.be.within(177, 178);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
// use within because the absolute value can be slightly different depending on the environment ±5%
expect(maxWidthValue).to.be.within(135 * 0.95, 135 * 1.05);
});
});
it('v2 should render a state diagram when useMaxWidth is false', () => {
renderGraph(
`
stateDiagram-v2
[*] --> State1
State1 --> [*]
`,
{ state: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
expect(height).to.be.within(177, 178);
// use within because the absolute value can be slightly different depending on the environment ±5%
expect(width).to.be.within(135 * 0.95, 135 * 1.05);
expect(svg).to.not.have.attr('style');
});
});
});

View File

@@ -1,5 +1,4 @@
/* eslint-env jest */
import { imgSnapshotTest } from '../../helpers/util';
import { imgSnapshotTest, renderGraph } from '../../helpers/util';
describe('State diagram', () => {
it('should render a simple state diagrams', () => {
@@ -9,7 +8,7 @@ describe('State diagram', () => {
[*] --> State1
State1 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -21,7 +20,7 @@ describe('State diagram', () => {
[*] --> S1
state "Some long name" as S1
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -33,22 +32,22 @@ describe('State diagram', () => {
[*] --> S1
state "Some long name" as S1: The description
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
it('should render a single state with short descr', () => {
it('should render a single state with short descriptions', () => {
imgSnapshotTest(
`
stateDiagram
state "A long long name" as long1
state "A" as longlonglongid
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
it('should render a transition descrions with new lines', () => {
it('should render a transition descriptions with new lines', () => {
imgSnapshotTest(
`
stateDiagram
@@ -58,7 +57,7 @@ describe('State diagram', () => {
S1 --> S3: long line using <br>should work
S1 --> S4: long line using \\nshould work
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -72,7 +71,7 @@ describe('State diagram', () => {
notes.
end note
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -86,7 +85,7 @@ describe('State diagram', () => {
notes with . and in them.
end note
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -102,7 +101,7 @@ describe('State diagram', () => {
State1 --> State2 : With +,-
note left of State2 : This is the note +,-<br/>
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -118,7 +117,7 @@ describe('State diagram', () => {
And another line...
end note
`,
{}
{ logLevel: 0, fontFamily: 'courier' }
);
});
it('should handle multiline notes with different line breaks', () => {
@@ -130,7 +129,7 @@ describe('State diagram', () => {
Line1<br>Line2<br/>Line3<br />Line4<br />Line5
end note
`,
{}
{ logLevel: 0, fontFamily: 'courier' }
);
});
@@ -145,7 +144,7 @@ describe('State diagram', () => {
State1 --> State2
State2 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -158,7 +157,7 @@ describe('State diagram', () => {
State1 --> State3
State1 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -174,7 +173,7 @@ describe('State diagram', () => {
State2 --> State3 : Transition 5
State1 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -187,11 +186,11 @@ describe('State diagram', () => {
XState2 : New line
XState1 --> XState2
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
it('should render composit states', () => {
it('should render composite states', () => {
imgSnapshotTest(
`
stateDiagram
@@ -206,7 +205,7 @@ describe('State diagram', () => {
Configuring --> Idle : EvConfig EvConfig EvConfig EvConfig EvConfig
}
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -236,7 +235,7 @@ describe('State diagram', () => {
}
}
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
});
it('should render forks in composit states', () => {
@@ -258,7 +257,7 @@ describe('State diagram', () => {
State4 --> [*]
}
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
});
it('should render forks and joins', () => {
@@ -276,11 +275,11 @@ describe('State diagram', () => {
join_state --> State4
State4 --> [*]
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
it('should render conurrency states', () => {
it('should render concurrency states', () => {
imgSnapshotTest(
`
stateDiagram
@@ -300,7 +299,7 @@ describe('State diagram', () => {
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
`,
{ logLevel: 0 }
{ logLevel: 0, fontFamily: 'courier' }
);
cy.get('svg');
});
@@ -316,10 +315,11 @@ describe('State diagram', () => {
`,
{
logLevel: 0,
fontFamily: 'courier',
}
);
});
it('Simplest composit state', () => {
it('Simplest composite state', () => {
imgSnapshotTest(
`
stateDiagram
@@ -329,6 +329,7 @@ describe('State diagram', () => {
`,
{
logLevel: 0,
fontFamily: 'courier',
}
);
});
@@ -341,8 +342,52 @@ describe('State diagram', () => {
`,
{
logLevel: 0,
fontFamily: 'courier',
}
);
});
it('should render a state diagram when useMaxWidth is true (default)', () => {
renderGraph(
`
stateDiagram
[*] --> State1
State1 --> [*]
`,
{ state: { useMaxWidth: true } }
);
cy.get('svg').should((svg) => {
expect(svg).to.have.attr('width', '100%');
expect(svg).to.have.attr('height');
const height = parseFloat(svg.attr('height'));
expect(height).to.be.within(176, 178);
const style = svg.attr('style');
expect(style).to.match(/^max-width: [\d.]+px;$/);
const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join(''));
// use within because the absolute value can be slightly different depending on the environment ±5%
// Todo investigate difference
// expect(maxWidthValue).to.be.within(112 * .95, 112 * 1.05);
expect(maxWidthValue).to.be.within(130, 140);
});
});
it('should render a state diagram when useMaxWidth is false', () => {
renderGraph(
`
stateDiagram
[*] --> State1
State1 --> [*]
`,
{ state: { useMaxWidth: false } }
);
cy.get('svg').should((svg) => {
const height = parseFloat(svg.attr('height'));
const width = parseFloat(svg.attr('width'));
expect(height).to.be.within(176, 178);
// use within because the absolute value can be slightly different depending on the environment ±5%
// Todo investigate difference
// expect(width).to.be.within(112 * .95, 112 * 1.05);
expect(width).to.be.within(130, 140);
expect(svg).to.not.have.attr('style');
});
});
});

View File

@@ -0,0 +1,279 @@
import { imgSnapshotTest } from '../../helpers/util.js';
describe('Pie Chart', () => {
// beforeEach(()=>{
// cy.clock((new Date('2014-06-09')).getTime());
// });
['default', 'forest', 'dark', 'neutral'].forEach((theme) => {
describe(theme, () => {
it('should render a pie diagram', () => {
imgSnapshotTest(
`
pie title Sports in Sweden
"Bandy" : 40
"Ice-Hockey" : 80
"Football" : 90
`,
{ theme }
);
cy.get('svg');
});
it('should render a flowchart diagram', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0} }%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
`,
{ theme }
);
cy.get('svg');
});
it('should render a new flowchart diagram', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0, 'theme': '${theme}'} }%%
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[Another]
C ==>|One| D[Laptop]
C x--x|Two| E[iPhone]
C o--o|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
`,
{ theme }
);
cy.get('svg');
});
it('should render a sequence diagram', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0, 'theme': '${theme}'} }%%
sequenceDiagram
autonumber
par Action 1
Alice->>John: Hello John, how are you?
and Action 2
Alice->>Bob: Hello Bob, how are you?
end
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
Note right of John: John is perceptive
John-->>-Alice: I feel great!
loop Every minute
John-->Alice: Great!
end
`,
{ theme }
);
cy.get('svg');
});
it('should render a class diagram', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0, 'theme': '${theme}'} }%%
classDiagram
Animal "*" <|-- "1" Duck
Animal "1" <|-- "10" Fish
Animal <|-- Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
classA <|-- classB
classC *-- classD
classE o-- classF
classG <-- classH
classI -- classJ
classK <.. classL
classM <|.. classN
classO .. classP
classA --|> classB : Inheritance
classC --* classD : Composition
classE --o classF : Aggregation
classG --> classH : Association
classI -- classJ : Link(Solid)
classK ..> classL : Dependency
classM ..|> classN : Realization
classO .. classP : Link(Dashed)
`,
{ theme }
);
cy.get('svg');
});
it('should render a state diagram', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0, 'theme': '${theme}'} }%%
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse
note right of SomethingElse : This is the note to the right.
`,
{ theme }
);
cy.get('svg');
});
it('should render a state diagram (v2)', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0, 'theme': '${theme}'} }%%
stateDiagram-v2
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse2
note right of SomethingElse2 : This is the note to the right.
`,
{ theme }
);
cy.get('svg');
});
it('should render a er diagram', () => {
imgSnapshotTest(
`
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
`,
{ theme }
);
cy.get('svg');
});
it('should render a user journey diagram', () => {
imgSnapshotTest(
`
%%{init: { 'logLevel': 0, 'theme': '${theme}'} }%%
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
`,
{ theme }
);
cy.get('svg');
});
it('should render a gantt diagram', () => {
cy.clock(new Date('2014-01-06').getTime());
imgSnapshotTest(
`
gantt
dateFormat :YYYY-MM-DD
title :Adding GANTT diagram functionality to mermaid
excludes :excludes the named dates/days from being included in a charted task..
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page :20h
Add another diagram to demo page :48h
`,
{ theme }
);
cy.get('svg');
});
});
});
});

View File

@@ -1,10 +1,61 @@
import mermaid from '../../dist/mermaid.core'
import mermaid from '../../dist/mermaid.core';
let code = `flowchart LR
Power_Supply --> Transmitter_A
Power_Supply --> Transmitter_B
Transmitter_A --> D
Transmitter_B --> D`;
let code2 = `gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d`;
const code3 = `flowchart TD
A(<img scr='https://iconscout.com/ms-icon-310x310.png' width='20' height='20' />)
B(<b>Bold text!</b>)`;
if (location.href.match('test-html-escaping')) {
code = code3;
}
mermaid.initialize({
theme: 'forest',
gantt: { axisFormatter: [
['%Y-%m-%d', (d) => {
return d.getDay() === 1
}]
] }
})
theme: 'default',
// fontFamily: '"Lucida Console", Monaco, monospace',
startOnLoad: false,
securityLevel: 'loose',
flowchart: {
htmlLabels: true,
},
gantt: {
axisFormatter: [
[
'%Y-%m-%d',
(d) => {
return d.getDay() === 1;
},
],
],
},
});
mermaid.render(
'the-id-of-the-svg',
code,
(svg) => {
console.log(svg);
const elem = document.querySelector('#graph-to-be');
elem.innerHTML = svg;
}
// ,document.querySelector('#tmp')
);

139
cypress/platform/class.html Normal file
View File

@@ -0,0 +1,139 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
background: rgb(221, 208, 208);
/*background:#333;*/
font-family: 'Arial';
}
h1 { color: white;}
.mermaid2 {
display: none;
}
.customCss > rect, .customCss{
fill:#FF0000 !important;
stroke:#FFFF00 !important;
stroke-width:4px !important;
}
</style>
</head>
<body>
<h1>info below</h1>
<div class="mermaid" style="width: 100%; height: 20%;">
%%{init: {'theme': 'base', 'fontFamily': 'courier', 'themeVariables': { 'primaryColor': '#fff000'}}}%%
classDiagram
class BankAccount{
+String owner
+BigDecimal balance
+deposit(amount) bool
+withdrawl(amount) int
}
cssClass "BankAccount" customCss
</div>
<div class="mermaid" style="width: 100%; height: 20%;">
%%{init: {'theme': 'base', 'fontFamily': 'courier', 'themeVariables': { 'primaryColor': '#fff000'}}}%%
classDiagram-v2
class BankAccount{
+String owner
+BigDecimal balance
+deposit(amount) bool
+withdrawl(amount) int
}
cssClass "BankAccount" customCss
</div>
<div class="mermaid2" style="width: 100%; height: 20%;">
%%{init: {'theme': 'base', 'fontFamily': 'courier', 'themeVariables': { 'primaryColor': '#fff000'}}}%%
classDiagram
class BankAccount{
+String owner
+BigDecimal balance
+deposit(amount) bool
+withdrawl(amount) int
}
Class01~T~ <|-- AveryLongClass : Cool
Class03~T~ *-- Class04~T~
Class01 : size()
Class01 : int chimp
Class01 : int gorilla
Class08 <--> C2: Cool label
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
test()
}
callback Class01 "callback" "A Tooltip"
</div>
<div class="mermaid2" style="width: 100%; height: 20%;">
flowchart TB
a_a(Aftonbladet) --> b_b[gorilla]:::apa --> c_c{chimp}:::apa -->a_a
a_a --> c --> d_d --> c_c
classDef apa fill:#f9f,stroke:#333,stroke-width:4px;
class a_a apa;
click a_a "http://www.aftonbladet.se" "apa"
</div>
<div class="mermaid2" style="width: 100%; height: 20%;">
classDiagram-v2
classA -- classB : Inheritance
classA -- classC : link
classC -- classD : link
classB -- classD
classA --|> classB : Inheritance
classC --* classD : Composition
classE --o classF : Aggregation
classG --> classH : Association
classI -- classJ : Link(Solid)
classK ..> classL : Dependency
classM ..|> classN : Realization
classO .. classP : Link(Dashed)
classA : +attr1
classA : attr2
classA : method1()
&lt;&lt;interface&gt;&gt; classB
classB : method2() int
Customer "1" --> "*" Ticket
Student "1" --> "1..*" Course
Galaxy --> "many" Star : Contains
&lt;&lt;interface&gt;&gt; Customer
class Shape
callback Shape "callbackFunction" "This is a tooltip for a callback"
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'default',
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'linear', "htmlLabels": true },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"arial", sans-serif',
// themeVariables: {
// fontFamily: '"arial", sans-serif',
// },
curve: 'linear',
securityLevel: 'loose'
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -5,8 +5,14 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">
<style>
.mermaid2 {
display: none;
}
</style>
</head>
<body>
<div style="display: flex">
<div id="FirstLine" class="mermaid">
graph TB
Function-->URL
@@ -15,9 +21,38 @@
</div>
<div id="FirstLine" class="mermaid">
graph TB
1Function-->2URL
1Function--->2URL
click 1Function clickByFlow "Add a div"
click 2URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
</div>
<div id="FirstLine" class="mermaid">
flowchart TB
Function-->URL
click Function clickByFlow "Add a div"
click URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>" _self
</div>
<div id="FirstLine" class="mermaid">
flowchart TB
1Function--->2URL
click 1Function clickByFlow "Add a div"
click 2URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>" _self
</div>
<div id="FirstLine" class="mermaid">
classDiagram
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
class ShapeCallback
callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
</div>
<div id="FirstLine" class="mermaid">
classDiagram-v2
class ShapeLink2
link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
class ShapeCallback2
callback ShapeCallback2 "clickByClass" "This is a tooltip for a callback"
</div>
</div>
<div class="mermaid">
@@ -60,7 +95,38 @@
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
</div>
<div style="display: flex">
<div id="FirstLine" class="mermaid">
graph TB
FunctionArg-->URL
click FunctionArg call clickByFlowArg(ARGUMENT) "Add a div"
click URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
</div>
<div id="FirstLine" class="mermaid">
flowchart TB
FunctionArg-->URL
click FunctionArg call clickByFlowArg(ARGUMENT) "Add a div"
click URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
</div>
<div id="FirstLine" class="mermaid">
classDiagram
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
class ShapeCallback
click ShapeCallback call clickByClass(123) "This is a tooltip for a callback"
</div>
<div id="FirstLine" class="mermaid">
classDiagram-v2
class ShapeLink2
link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
class ShapeCallback2
click ShapeCallback2 call clickByClass(123) "This is a tooltip for a callback"
</div>
</div>
<script src="./mermaid.js"></script>
<script>
function clickByFlow(elemName) {
@@ -71,6 +137,14 @@
document.getElementsByTagName('body')[0].appendChild(div)
}
function clickByFlowArg(argument) {
const div = document.createElement('div')
div.className = 'created-by-click-2'
div.style = 'padding: 20px; background: green; color: white;'
div.innerText = 'Clicked By Flow: ' + argument
document.getElementsByTagName('body')[0].appendChild(div)
}
function clickByGantt(arg1, arg2, arg3) {
const div = document.createElement('div')
div.className = 'created-by-gant-click'
@@ -82,6 +156,14 @@
document.getElementsByTagName('body')[0].appendChild(div)
}
function clickByClass(arg) {
const div = document.createElement('div')
div.className = 'created-by-class-click'
div.style = 'padding: 20px; background: purple; color: white;'
div.innerText = 'Clicked By Class' + (arg?arg:'')
document.getElementsByTagName('body')[0].appendChild(div)
}
mermaid.initialize({ startOnLoad: true, securityLevel: 'loose', logLevel: 1 });
</script>
</body>

View File

@@ -4,13 +4,16 @@
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
background: rgb(221, 208, 208);
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
}
h1 { color: white;}
h1 { color: grey;}
.mermaid2 {
display: none;
}
@@ -18,263 +21,155 @@
</head>
<body>
<h1>info below</h1>
<div class="mermaid2" style="width: 100%; height: 20%;">
flowchart LR
a --> b
subgraph b [Test]
c --> d -->e
end
</div>
<div class="mermaid2" style="width: 100%; height: 20%;">
flowchart LR
a --> b
subgraph id1 [Test]
a --apa--> c
b
c-->b
b-->H
end
G-->H
G-->c
</div>
<div class="flex">
<div class="mermaid2" style="width: 50%; height: 20%;">
flowchart LR
A{{A}}-->B{{B}};
click A callback "Tooltip"
click B "http://www.github.com" "This is a link"
</div>
<div class="mermaid2" style="width: 50%; height: 20%;">
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
</div>
<div class="mermaid2" style="width: 50%; height: 20%;">
stateDiagram-v2
[*]-->TV
state TV {
state fork_state &lt;&lt;fork&gt;&gt;
[*] --> fork_state
fork_state --> State2
fork_state --> State3
state join_state &lt;&lt;join&gt;&gt;
State2 --> join_state
State3 --> join_state
join_state --> State4
State4 --> [*]
}
</div>
<div class="mermaid mermaid-apa" style="width: 100%; height: 20%;">
stateDiagram-v2
[*] --> Still
Still --> [*]
</div>
<div class="mermaid2" style="width: 100%; height: 100%;">
stateDiagram-v2
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
</div>
<div class="mermaid2" style="width: 100%; height: 100%;">
stateDiagram-v2
[*] --> First
First --> Third
First --> sec
state First {
[*] --> fir
fir --> [*]
}
state Second {
[*] --> sec
sec --> [*]
}
state Third {
[*] --> thi
thi --> [*]
}
thi --> sec
</div>
<div class="mermaid2" style="width: 100%; height: 100%;">
flowchart TD
subgraph A
a
flowchart BT
subgraph two
b1
end
subgraph B
b
subgraph three
c1-->c2
end
subgraph C
subgraph D
d
c1 --apa apa apa--> b1
two --> c2
</div>
<div class="mermaid2" style="width: 50%; height: 200px;">
sequenceDiagram
Alice->>Bob:Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
Bob->>Alice: I'm short though
</div>
<div class="mermaid2" style="width: 50%; height: 200px;">
%%{init: {'securityLevel': 'loose'}}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{{Let me think...<br />Do I want something for work,<br />something to spend every free second with,<br />or something to get around?}}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[Car]
click A "index.html#link-clicked" "link test"
click B callback "click test"
classDef someclass fill:#f96;
class A someclass;
class C someclass;
</div>
<div class="mermaid2" style="width: 50%; height: 200px;">
flowchart BT
subgraph a
b1 -- ok --> b2
end
end
A -- oAo --o B
A --> C
</div>
<div class="mermaid2" style="width: 100%; height: 100%;">
flowchart TD
subgraph A
a
end
subgraph B
b
end
c-->A
c-->B
</div>
<div class="mermaid2" style="width: 100%; height: 100%;">
a -- sert --> c
c --> d
b1 --> d
a --asd123 --> d
</div>
<div class="mermaid2" style="width: 50%; height: 20%;">
stateDiagram-v2
[*] --> First
First --> Second
First --> Third
state First {
[*] --> fir
fir --> [*]
}
state Second {
[*] --> sec
sec --> [*]
}
state Third {
[*] --> thi
thi --> [*]
}
</div>
<div class="mermaid2" style="width: 100%; height: 100%;">
stateDiagram-v2
[*]-->TV
state TV {
[*] --> Off: Off to start with
On --> Off : Turn off
Off --> On : Turn on
}
TV--> Console
state Console {
[*] --> Off2: Off to start with
On2--> Off2 : Turn off
Off2 --> On2 : Turn on
On2-->Playing
state Playing {
Alive --> Dead
Dead-->Alive
}
}
state A {
B1 --> B2: ok
}
A --> C: sert
C --> D
B1 --> D
A --> D: asd123
</div>
<div style="display: flex;flex-direction:column;width: 100%; height: 100%">
<div class="mermaid2" style="width: 100%; height: 100%;">
stateDiagram-v2
state apa {
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
}
</div>
<div class="mermaid2" style="width: 50%; height: 40%;">
%% this does not produce the desired result
flowchart TB
subgraph container_Beta
process_C-->Process_D
end
subgraph container_Alpha
process_A-->process_B
process_B-->|via_AWSBatch|container_Beta
process_A-->|messages|process_C
end
</div>
<div class="mermaid2" style="width: 100%; height: 100%">
<div class="mermaid" style="width: 50%; height: 40%;">
flowchart TB
a --> b
a{{"Lorem 'ipsum' dolor 'sit' amet, 'consectetur' adipiscing 'elit'."}}
--> b{{"Lorem #quot;ipsum#quot; dolor #quot;sit#quot; amet,#quot;consectetur#quot; adipiscing #quot;elit#quot;."}}
subgraph id1 [Test]
a --apa--> c
b
c-->b
b-->H
end
G-->H
G-->id1
id1 --> I
I --> G
</div>
<div class="mermaid2" style="width: 100%; height: 100%">
flowchart RL
a --> b
subgraph id1 [Test]
a --apa--> c
b
c-->b
b-->H
end
G-->H
G-->id1
id1 --> I
I --> G
</div>
<div class="mermaid2" style="width: 100%; height: 100%">
flowchart RL
<div class="mermaid2" style="width: 50%; height: 50%;">
flowchart TB
internet
nat
routeur
lb1
lb2
compute1
compute2
subgraph project
routeur
nat
subgraph subnet1
compute1
lb1
end
subgraph subnet2
compute2
lb2
end
end
internet --> routeur
routeur --> subnet1 & subnet2
subnet1 & subnet2 --> nat --> internet
</div>
<div class="mermaid2" style="width: 50%; height: 50%;">
flowchart TD
subgraph id1 [Test]
a
end
b-->id1
</div>
<div class="mermaid2" style="width: 100%; height: 100%">
flowchart RL
subgraph one[One]
subgraph sub_one[Sub One]
_sub_one
end
end
subgraph id1 [Test1]
a
end
subgraph id2 [Test2]
b
end
a --> id2
a --> b
b-->id1
id1 --> id2
subgraph two[Two]
_two
end
sub_one --> two
</div>
new:
<div class="mermaid2" style="width: 100%; height: 100%">
flowchart LR
a <--> b
b o--o c
c x--x d
a21([In the box]) --> b2
b2((b2)) --o c2
c2(c2) --x d2 --> id1{{This is the text in the box}} --> A[(cylindrical<br />shape<br />test)]
</div>
old:
<div class="mermaid2" style="width: 100%; height: 100%">
graph LR
a((a)) --> b --> id1{{This is the text in the box}}
A[(cylindrical<br />shape<br />test)]
<div class="mermaid2" style="width: 50%; height: 50%;">
flowchart TD
subgraph one[One]
subgraph sub_one[Sub One]
_sub_one
end
subgraph sub_two[Sub Two]
_sub_two
end
_one
end
%% here, either the first or the second one
sub_one --> sub_two
_one --> b
</div>
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
// theme: 'dark',
// theme: 'forest',
// themeVariables:{primaryColor: '#ff0000'},
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'linear', "htmlLabels": false },
flowchart: { curve: 'cardinal', "htmlLabels": true },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
fontFamily: '"arial", sans-serif',
curve: 'linear',
securityLevel: 'loose'
curve: 'cardinal',
securityLevel: 'strict'
});
function callback(){alert('It worked');}
</script>

View File

@@ -0,0 +1,129 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
</style>
</head>
<body>
<h1>info below</h1>
<div class="flex">
<div class="mermaid2" style="width: 50%; height: 20%;">
flowchart BT
subgraph two
b1
end
subgraph three
c1-->c2
end
c1 --apa apa apa--> b1
two --> c2
</div>
<div class="mermaid2" style="width: 50%; height: 200px;">
sequenceDiagram
Alice->>Bob:Extremely utterly long line of longness which had preivously overflown the actor box as it is much longer than what it should be
Bob->>Alice: I'm short though
</div>
<div class="mermaid2" style="width: 50%; height: 200px;">
%%{init: {'securityLevel': 'loose'}}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{{Let me think...<br />Do I want something for work,<br />something to spend every free second with,<br />or something to get around?}}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[Car]
click A "index.html#link-clicked" "link test"
click B callback "click test"
classDef someclass fill:#f96;
class A someclass;
class C someclass;
</div>
<div class="mermaid2" style="width: 50%; height: 200px;">
flowchart BT
subgraph a
b1 -- ok --> b2
end
a -- sert --> c
c --> d
b1 --> d
a --asd123 --> d
</div>
<div class="mermaid2" style="width: 50%; height: 20%;">
stateDiagram-v2
state A {
B1 --> B2: ok
}
A --> C: sert
C --> D
B1 --> D
A --> D: asd123
</div>
</div>
<div class="mermaid2" style="width: 50%; height: 20%;">
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
flowchart LR
a -->b
subgraph A
B
end
subgraph B
b
end
</div>
<div class="mermaid" style="width: 50%; height: 20%;">
flowchart TB
subgraph A
b-->B
a-->c
end
subgraph B
c
end
</div>
<div class="mermaid2" style="width: 50%; height: 20%;">
sequenceDiagram
Alice->Bob: Hello Bob, how are you?
Note over Alice,Bob: Looks
Note over Bob,Alice: Looks back
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
// theme: 'forest',
// themeVariables:{primaryColor: '#ff0000'},
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'cardinal', "htmlLabels": false },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
fontFamily: '"arial", sans-serif',
curve: 'cardinal',
securityLevel: 'strict'
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -1,13 +1,20 @@
<html>
<head>
<meta charset="utf-8"/>
<!-- <meta charset="iso-8859-15"/> -->
<script src="/e2e.js"></script>
<link href="https://fonts.googleapis.com/css?family=Mansalva&display=swap" rel="stylesheet" />
<!-- <link href="https://fonts.googleapis.com/css?family=Mansalva&display=swap" rel="stylesheet" /> -->
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* font-family: 'Mansalva', cursive;*/
font-family: 'Mansalva', cursive;
/* font-family: 'Mansalva', cursive; */
/* font-family: 'arial'; */
/* font-family: "trebuchet ms", verdana, arial; */
}
/* div {
font-family: 'arial';
} */
/* .mermaid-main-font {
font-family: "trebuchet ms", verdana, arial;
font-family: var(--mermaid-font-family);
@@ -20,6 +27,9 @@
svg {
border: 2px solid darkred;
}
.exClass2 > rect, .exClass {
fill: greenyellow !important;
}
</style>
</head>
<body>
@@ -27,15 +37,16 @@
<script>
// Notice startOnLoad=false
// This prevents default handling in mermaid from render before the e2e logic is applied
mermaid.initialize({
startOnLoad: false,
useMaxWidth: true,
// "themeCSS": ":root { --mermaid-font-family: \"trebuchet ms\", verdana, arial;}",
// fontFamily: '\"trebuchet ms\", verdana, arial;'
// fontFamily: '"Comic Sans MS", "Comic Sans", cursive'
// fontFamily: '"Mansalva", cursive',
fontFamily: '"Noto Sans SC", sans-serif'
});
// mermaid.initialize({
// startOnLoad: false,
// useMaxWidth: true,
// // "themeCSS": ":root { --mermaid-font-family: \"trebuchet ms\", verdana, arial;}",
// // fontFamily: '\"trebuchet ms\", verdana, arial;'
// // fontFamily: '"Comic Sans MS", "Comic Sans", cursive'
// // fontFamily: '"Mansalva", cursive',
// // fontFamily: '"Noto Sans SC", sans-serif'
// fontFamily: '"Noto Sans SC", sans-serif'
// });
</script>
</body>
</html>

View File

@@ -0,0 +1,6 @@
const div = parent.document.createElement('div');
div.id = 'the-malware';
div.className = 'malware';
div.innerHTML = 'XSS Succeeded';
parent.document.getElementsByTagName('body')[0].appendChild(div);
throw new Error('XSS Succeded');

View File

@@ -0,0 +1,122 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">
<style>
.mermaid2 {
display: none;
}
</style>
</head>
<body>
<div style="display: flex">
<div id="FirstLine" class="mermaid">
graph TB
Function-->URL
click Function clickByFlow "Add a div"
click URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
</div>
<div id="FirstLine" class="mermaid2">
graph TB
1Function-->2URL
click 1Function clickByFlow "Add a div"
click 2URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
</div>
<div id="FirstLine" class="mermaid2">
classDiagram
class Test
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
class ShapeCallback
callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
</div>
<div id="FirstLine" class="mermaid">
classDiagram-v2
class ShapeCallback
callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
</div>
<div id="FirstLine" class="mermaid">
classDiagram-v2
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
</div>
</div>
<div class="mermaid2">
gantt
dateFormat YYYY-MM-DD
axisFormat %d/%m
title Adding GANTT diagram to mermaid
excludes weekdays 2014-01-10
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Clickable
Visit mermaidjs :active, cl1, 2014-01-07,2014-01-10
Calling a Callback (look at the console log) :cl2, after cl1, 3d
Calling a Callback with args :cl3, after cl1, 3d
click cl1 href "http://localhost:9000/webpackUsage.html"
click cl2 call clickByGantt()
click cl3 call clickByGantt("test1", test2, test3)
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
</div>
<script src="./mermaid.js"></script>
<script>
function clickByFlow(elemName) {
const div = document.createElement('div')
div.className = 'created-by-click'
div.style = 'padding: 20px; background: green; color: white;'
div.innerText = 'Clicked By Flow'
document.getElementsByTagName('body')[0].appendChild(div)
}
function clickByGantt(arg1, arg2, arg3) {
const div = document.createElement('div')
div.className = 'created-by-gant-click'
div.style = 'padding: 20px; background: green; color: white;'
div.innerText = 'Clicked By Gant'
if (arg1) div.innerText += ' ' + arg1;
if (arg2) div.innerText += ' ' + arg2;
if (arg3) div.innerText += ' ' + arg3;
document.getElementsByTagName('body')[0].appendChild(div)
}
function clickByClass() {
const div = document.createElement('div')
div.className = 'created-by-class-click'
div.style = 'padding: 20px; background: purple; color: white;'
div.innerText = 'Clicked By Class'
document.getElementsByTagName('body')[0].appendChild(div)
}
mermaid.initialize({ startOnLoad: true, securityLevel: 'loose', logLevel: 1 });
</script>
</body>
</html>

View File

@@ -0,0 +1,69 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
width: 100%;
}
h1 { color: grey;}
.mermaid2,.mermaid3 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
</style>
</head>
<body>
<div>info below</div>
<div class="flex flex-wrap">
<div class="mermaid" style="width: 100%; height: 20%;">
stateDiagram-v2
[*] --> S1
state "Some long name" as S1
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
// theme: 'dark',
theme: 'forest',
arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 2,
flowchart: { nodeSpacing: 10, curve: 'cardinal', htmlLabels: false },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorFontFamily: 'courier',actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
// fontFamily: 'courier',
state:{
nodeSpacing: 50,
rankSpacing: 50,
defaultRenderer: 'dagre-wrapper',
},
logLevel:0,
fontSize: 18,
curve: 'cardinal',
securityLevel: 'strict',
// themeVariables: {relationLabelColor: 'red'}
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -0,0 +1,93 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
.malware {
position: fixed;
bottom:0;
left:0;
right:0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<div>Security check</div>
<div class="flex">
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'forest',
arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
state: {
defaultRenderer: 'dagre-wrapper',
},
flowchart: {
// defaultRenderer: 'dagre-wrapper',
nodeSpacing: 10, curve: 'cardinal', htmlLabels: true
},
htmlLabels: false,
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorFontFamily: 'courier',actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
// fontFamily: 'courier',
fontSize: 18,
curve: 'basis',
securityLevel: 'strict',
startOnLoad: false
// themeVariables: {relationLabelColor: 'red'}
});
function callback(){alert('It worked');}
var diagram = "%%{init: {\"flowchart\": {\"htmlLabels\": \"false\"}} }%%\n";
diagram += "flowchart\n";
diagram += "A[\"<ifra";
diagram += "me srcdoc='<scrip";
diagram += "t src=http://localhost:9000/exploit.js>";
diagram += "</scr"
diagram += "ipt>'></iframe>\"]";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
document.querySelector('#res').innerHTML = res;
});
</script>
</body>
</html>

210
cypress/platform/knsv3.html Normal file
View File

@@ -0,0 +1,210 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
</style>
</head>
<body>
<div>info below</div>
<div class="flex">
<div class="mermaid2" style="width: 100%; height: 400px;">
%%{init: { "logLevel": 1, "er": {"fontSize":18 }} }%%
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
</div>
<div class="mermaid2" style="width: 50%; height: 400px;">
flowchart TD
A[Christmas] ==> D
A[Christmas] -->|Get money| B(Go shopping)
A[Christmas] ==> C
subgraph T ["Test"]
A
B
C
end
classDef Test fill:#F84E68,stroke:#333,color:white;
class A,T Test
classDef TestSub fill:green;
class T TestSub
linkStyle 0,1 color:orange, stroke: orange;
</div>
<div class="mermaid" style="width: 100%; height: 20%;">
flowchart TB
subgraph S1
sub1 -->sub2
end
subgraph S2
sub4
end
S1 --> S2
sub1 --> sub4
</div>
<div class="mermaid2" style="width: 100%; height: 20%;">
flowchart TB
c1-->a2
subgraph one
a1-->a2
end
subgraph two
b1-->b2
end
subgraph three
c1-->c2
end
one --> two
three --> two
two --> c2
</div>
<div class="mermaid2" style="width: 100%; height: 20%;">
stateDiagram-v2
state S1 {
sub1 -->sub2
}
state S2 {
sub4
}
S1 --> S2
sub1 --> sub4
</div>
<div class="mermaid2" style="width: 100%; height: 20%;">
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
</div>
<div class="mermaid2" style="width: 50%; height: 20%;">
flowchart LR
classDef dark fill:#000,stroke:#000,stroke-width:4px,color:#fff
Lorem --> Ipsum --> Dolor
class Lorem,Dolor dark
</div>
<div class="mermaid2" style="width: 50%; height: 20%;">
%%{init: {'theme': 'base' }}%%
%%{init2: { 'logLevel': 0, 'theme': 'forest'} }%%
flowchart TD
L1 --- L2
L2 --- C
M1 ---> C
R1 .-> R2
R2 <.-> C
C -->|Label 1| E1
C <-- Label 2 ---> E2
C ----> E3
C <-...-> E4
C ======> E5
</div>
<div class="mermaid2" style="width: 50%; height: 21%;">
flowchart LR
A[red text] -->|default style| B(blue text)
C([red text]) -->|default style| D[[blue text]]
E[(red text)] -->|default style| F((blue text))
G>red text] -->|default style| H{blue text}
I{{red text}} -->|default style| J[/blue text/]
K[
ed text] -->|default style| L[/blue text]
M[
ed text/] -->|default style| N[blue text]
linkStyle default color:Sienna;
style A stroke:#ff0000,fill:#ffcccc,color:#ff0000
style B stroke:#0000ff,fill:#ccccff,color:#0000ff
style C stroke:#ff0000,fill:#ffcccc,color:#ff0000
style D stroke:#0000ff,fill:#ccccff,color:#0000ff
style E stroke:#ff0000,fill:#ffcccc,color:#ff0000
style F stroke:#0000ff,fill:#ccccff,color:#0000ff
style G stroke:#ff0000,fill:#ffcccc,color:#ff0000
style H stroke:#0000ff,fill:#ccccff,color:#0000ff
style I stroke:#ff0000,fill:#ffcccc,color:#ff0000
style J stroke:#0000ff,fill:#ccccff,color:#0000ff
style K stroke:#ff0000,fill:#ffcccc,color:#ff0000
style L stroke:#0000ff,fill:#ccccff,color:#0000ff
style M stroke:#ff0000,fill:#ffcccc,color:#ff0000
style N stroke:#0000ff,fill:#ccccff,color:#0000ff
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'neutral',
arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { nodeSpacing: 10, curve: 'cardinal', htmlLabels: true },
htmlLabels: true,
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorFontFamily: 'courier',actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
// fontFamily: 'courier',
fontSize: 18,
curve: 'cardinal',
securityLevel: 'loose',
// themeVariables: {relationLabelColor: 'red'}
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -0,0 +1,31 @@
<html>
<head>
<script src="http://localhost:9000/mermaid.js"></script>
<script>
mermaid.initialize({
theme: 'base',
themeVariables: {
},
startOnLoad: true,
});
</script>
</head>
<body>
<h1>Example</h1>
<div class="mermaid">
%%{init:{"theme":"base", "sequence": {"mirrorActors":false},"themeVariables": {"actorBkg":"red"}}}%%
sequenceDiagram
Bert->>+Ernie: Start looking for the cookie!
Ernie-->>-Bert: Found it!
Note left of Ernie: Cookies are good
</div>
<div class="mermaid">
%%{init:{"theme":"base", "themeVariables": {}}}%%
sequenceDiagram
Bert->>+Ernie: Start looking for the cookie!
Ernie-->>-Bert: Found it!
Note left of Ernie: Cookies are good
</div>
</body>
</html>

View File

@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">
</head>
<body>
<div id="graph">
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.init({ startOnLoad: false });
mermaid.mermaidAPI.initialize();
try{
mermaid.mermaidAPI.render("graphDiv",
`>`);
} catch(e){}
mermaid.mermaidAPI.render("graphDiv",
`graph LR\n a --> b`, html => {
document.getElementById('graph').innerHTML=html;
});
</script>
</body>
</html>

View File

@@ -0,0 +1,289 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
background: #f4f4f4;
font-family: 'Arial';
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.height {
min-height: 600px;
height: 600px;
}
.height2 {
min-height: 600px;
height: 1300px;
}
.width {
width: 33%;
border: 1px solid blue;
padding: 10px;
}
</style>
</head>
<body>
<h1>Showcases of diagrams</h1>
<div class="flex flex-wrap">
<div class="mermaid width height">
%%{init2: {'securityLevel': 'loose', 'theme':'base'}}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height">
%%{init2: {'securityLevel': 'loose', 'theme':'base'}}%%
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[Another]
C ==>|One| D[Laptop]
C x--x|Two| E[iPhone]
C o--o|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height" >
%%{init2: {'securityLevel': 'loose', 'theme':'base'}}%%
sequenceDiagram
autonumber
par Action 1
Alice->>John: Hello John, how are you?
and Action 2
Alice->>Bob: Hello Bob, how are you?
end
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
Note right of John: John is perceptive
John-->>-Alice: I feel great!
loop Every minute
John-->Alice: Great!
end
</div>
<div class="mermaid width height" >
%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
classDiagram
Animal "1" <|-- Duck
Animal <|-- Fish
Animal <--o Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
</div>
<div class="mermaid width height">
gantt
dateFormat :YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
excludes :excludes the named dates/days from being included in a charted task..
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page :20h
Add another diagram to demo page :48h
</div>
<div class="mermaid width height2">
%%{init2: {'securityLevel': 'loose', 'theme':'base'}}%%
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse
note right of SomethingElse : This is the note to the right.
SomethingElse --> [*]
</div>
<div class="mermaid width height2">
%%{init: {'securityLevel': 'loose', 'theme':'base'}}%%
stateDiagram-v2
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse2
note right of SomethingElse2 : This is the note to the right.
SomethingElse2 --> [*]
</div>
<div class="mermaid width height2">
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
</div>
<div class="mermaid width height">
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
</div>
<div class="mermaid width height">
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'base',
// themeVariables:
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'cardinal', "htmlLabels": false },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
fontFamily: '"arial", sans-serif',
curve: 'cardinal',
securityLevel: 'strict'
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -0,0 +1,284 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
background: #f4f4f4;
background: #222;
font-family: 'Arial';
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.height {
min-height: 600px;
height: 600px;
}
.height2 {
min-height: 600px;
height: 1300px;
}
.width {
width: 33%;
border: 1px solid blue;
padding: 10px;
}
</style>
</head>
<body>
<h1>Showcases of diagrams</h1>
<div class="flex flex-wrap">
<div class="mermaid width height">
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height">
%%{init2: {'securityLevel': 'loose', 'theme':'base'}}%%
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[Another]
C ==>|One| D[Laptop]
C x--x|Two| E[iPhone]
C o--o|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height" >
sequenceDiagram
autonumber
par Action 1
Alice->>John: Hello John, how are you?
and Action 2
Alice->>Bob: Hello Bob, how are you?
end
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
Note right of John: John is perceptive
John-->>-Alice: I feel great!
loop Every minute
John-->Alice: Great!
end
</div>
<div class="mermaid width height" >
classDiagram
Animal "1" <|-- Duck
Animal <|-- Fish
Animal <--o Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
</div>
<div class="mermaid width height">
gantt
dateFormat :YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
excludes :excludes the named dates/days from being included in a charted task..
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page :20h
Add another diagram to demo page :48h
</div>
<div class="mermaid width height2">
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse
note right of SomethingElse : This is the note to the right.
SomethingElse --> [*]
</div>
<div class="mermaid width height2">
stateDiagram-v2
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse2
note right of SomethingElse2 : This is the note to the right.
SomethingElse2 --> [*]
</div>
<div class="mermaid width height2">
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
</div>
<div class="mermaid width height">
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
</div>
<div class="mermaid width height">
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'base',
themeVariables: { primaryColor: '#9400D3', darkMode: true, background: '#222', textColor:'white', primaryTextColor: '#f4f4f4', nodeBkg: '#ff0000', mainBkg:'#0000ff', tertiaryColor:'#ffffcc' },
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'cardinal', "htmlLabels": false },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
fontFamily: '"arial", sans-serif',
curve: 'cardinal',
// securityLevel: 'strict'
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -0,0 +1,280 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
background:#333;
font-family: 'Arial';
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.height {
min-height: 600px;
height: 600px;
}
.height2 {
min-height: 600px;
height: 1300px;
}
.width {
width: 33%;
border: 1px solid blue;
padding: 10px;
}
</style>
</head>
<body>
<h1>Showcases of diagrams</h1>
<div class="flex flex-wrap">
<div class="mermaid width height">
%%{init: {'theme': 'base', 'themeVariables':{'primaryColor': '#ff0000'}}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height">
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[Another]
C ==>|One| D[Laptop]
C x--x|Two| E[iPhone]
C o--o|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height" >
sequenceDiagram
autonumber
par Action 1
Alice->>John: Hello John, how are you?
and Action 2
Alice->>Bob: Hello Bob, how are you?
end
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
Note right of John: John is perceptive
John-->>-Alice: I feel great!
loop Every minute
John-->Alice: Great!
end
</div>
<div class="mermaid width height" >
%%{init: {'theme':'dark'}}%%
classDiagram
Animal "1" <|-- Duck
Animal <|-- Fish
Animal <--o Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
</div>
<div class="mermaid width height">
gantt
dateFormat :YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
excludes :excludes the named dates/days from being included in a charted task..
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page :20h
Add another diagram to demo page :48h
</div>
<div class="mermaid width height2">
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse
SomethingElse --> [*]
note right of SomethingElse : This is the note to the right.
</div>
<div class="mermaid width height2">
stateDiagram-v2
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse2
SomethingElse2 --> [*]
note right of SomethingElse2 : This is the note to the right.
</div>
<div class="mermaid width height2">
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
</div>
<div class="mermaid width height">
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
</div>
<div class="mermaid width height">
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'dark',
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'cardinal', "htmlLabels": true },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
fontFamily: '"arial", sans-serif',
curve: 'cardinal',
securityLevel: 'strict'
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -0,0 +1,275 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.height {
min-height: 600px;
height: 600px;
}
.height2 {
min-height: 600px;
height: 1300px;
}
.width {
width: 33%;
border: 1px solid blue;
padding: 10px;
}
</style>
</head>
<body>
<h1>Showcases of diagrams</h1>
<div class="flex flex-wrap">
<div class="mermaid width height">
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height">
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[Another]
C ==>|One| D[Laptop]
C x--x|Two| E[iPhone]
C o--o|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height" >
sequenceDiagram
autonumber
par Action 1
Alice->>John: Hello John, how are you?
and Action 2
Alice->>Bob: Hello Bob, how are you?
end
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
Note right of John: John is perceptive
John-->>-Alice: I feel great!
loop Every minute
John-->Alice: Great!
end
</div>
<div class="mermaid width height" >
classDiagram
Animal "1" <|-- Duck
Animal <|-- Fish
Animal <--o Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
</div>
<div class="mermaid width height">
gantt
dateFormat :YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
excludes :excludes the named dates/days from being included in a charted task..
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page :20h
Add another diagram to demo page :48h
</div>
<div class="mermaid width height2">
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse
note right of SomethingElse : This is the note to the right.
</div>
<div class="mermaid width height2">
stateDiagram-v2
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse2
note right of SomethingElse2 : This is the note to the right.
</div>
<div class="mermaid width height2">
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
</div>
<div class="mermaid width height">
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
</div>
<div class="mermaid width height">
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
// theme: 'dark',
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'cardinal', "htmlLabels": false },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
fontFamily: '"arial", sans-serif',
curve: 'cardinal',
securityLevel: 'strict'
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -0,0 +1,279 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.height {
min-height: 600px;
height: 600px;
}
.height2 {
min-height: 600px;
height: 1300px;
}
.width {
width: 33%;
border: 1px solid blue;
padding: 10px;
}
</style>
</head>
<body>
<h1>Showcases of diagrams</h1>
<div class="flex flex-wrap">
<div class="mermaid width height">
%%{init: {'theme': 'forest'}}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height">
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[Another]
C ==>|One| D[Laptop]
C x--x|Two| E[iPhone]
C o--o|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height" >
sequenceDiagram
autonumber
par Action 1
Alice->>John: Hello John, how are you?
and Action 2
Alice->>Bob: Hello Bob, how are you?
end
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
Note right of John: John is perceptive
John-->>-Alice: I feel great!
loop Every minute
John-->Alice: Great!
end
</div>
<div class="mermaid width height" >
%%{init: {'theme':'forest'}}%%
classDiagram
Animal "1" <|-- Duck
Animal <|-- Fish
Animal <--o Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
</div>
<div class="mermaid width height">
gantt
dateFormat :YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
excludes :excludes the named dates/days from being included in a charted task..
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page :20h
Add another diagram to demo page :48h
</div>
<div class="mermaid width height2">
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse
note right of SomethingElse : This is the note to the right.
SomethingElse --> [*]
</div>
<div class="mermaid width height2">
stateDiagram-v2
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse2
note right of SomethingElse2 : This is the note to the right.
</div>
<div class="mermaid width height2">
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
</div>
<div class="mermaid width height">
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
</div>
<div class="mermaid width height">
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'forest',
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'cardinal', "htmlLabels": false },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
fontFamily: '"arial", sans-serif',
curve: 'cardinal',
securityLevel: 'strict'
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -0,0 +1,278 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.height {
min-height: 600px;
height: 600px;
}
.height2 {
min-height: 600px;
height: 1300px;
}
.width {
width: 33%;
border: 1px solid blue;
padding: 10px;
}
</style>
</head>
<body>
<h1>Showcases of diagrams</h1>
<div class="flex flex-wrap">
<div class="mermaid width height">
%%{init: {'theme': 'neutral'}}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[/Another/]
C ==>|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height">
flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
B --> G[Another]
C ==>|One| D[Laptop]
C x--x|Two| E[iPhone]
C o--o|Three| F[fa:fa-car Car]
subgraph section
C
D
E
F
G
end
</div>
<div class="mermaid width height" >
sequenceDiagram
autonumber
par Action 1
Alice->>John: Hello John, how are you?
and Action 2
Alice->>Bob: Hello Bob, how are you?
end
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
Note right of John: John is perceptive
John-->>-Alice: I feel great!
loop Every minute
John-->Alice: Great!
end
</div>
<div class="mermaid width height" >
%%{init: {'theme':'neutral'}}%%
classDiagram
Animal "1" <|-- Duck
Animal <|-- Fish
Animal <--o Zebra
Animal : +int age
Animal : +String gender
Animal: +isMammal()
Animal: +mate()
class Duck{
+String beakColor
+swim()
+quack()
}
class Fish{
-int sizeInFeet
-canEat()
}
class Zebra{
+bool is_wild
+run()
}
</div>
<div class="mermaid width height">
gantt
dateFormat :YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
excludes :excludes the named dates/days from being included in a charted task..
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
section Documentation
Describe gantt syntax :active, a1, after des1, 3d
Add gantt diagram to demo page :after a1 , 20h
Add another diagram to demo page :doc1, after a1 , 48h
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page :20h
Add another diagram to demo page :48h
</div>
<div class="mermaid width height2">
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse
note right of SomethingElse : This is the note to the right.
</div>
<div class="mermaid width height2">
stateDiagram-v2
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
state SomethingElse {
A --> B
B --> A
}
Active --> SomethingElse2
note right of SomethingElse2 : This is the note to the right.
</div>
<div class="mermaid width height2">
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
</div>
<div class="mermaid width height">
journey
title My working day
section Go to work
Make tea: 5: Me
Go upstairs: 3: Me
Do work: 1: Me, Cat
section Go home
Go downstairs: 5: Me
Sit down: 5: Me
</div>
<div class="mermaid width height">
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req <- copies - test_entity2
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'neutral',
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
flowchart: { curve: 'cardinal', "htmlLabels": false },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
fontFamily: '"arial", sans-serif',
curve: 'cardinal',
securityLevel: 'strict'
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -0,0 +1,143 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
}
h1 {
color: #333;
font-size: 20px;
text-decoration: underline;
}
.mermaid2 {
display: none;
}
.dark {
background: #333;
}
.dark h1 {
color: #f4f4f4;
}
.size {
width: 33%;
height: 250px;
}
</style>
</head>
<body>
<div class="flex flex-wrap">
<div class="size">
<h1>Default</h1>
<div class="mermaid" >
%%{init: { 'logLevel': 0, 'theme': 'default'} }%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
</div>
</div>
<div class="size">
<h1>Forest</h1>
<div class="mermaid" >
%%{init: { 'logLevel': 1, 'theme': 'forest'} }%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
</div>
</div>
<div class="size">
<h1>Neutral</h1>
<div class="mermaid" >
%%{init: { 'logLevel': 1, 'theme': 'neutral'} }%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
</div>
</div>
<div class="size dark">
<h1>Dark</h1>
<div class="mermaid">
%%{init: { 'logLevel': 1, 'theme': 'dark'} }%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
</div>
</div>
<div class="size">
<h1>Base with overriding themeVariable</h1>
<div class="mermaid">
%%{init: { 'theme': 'base', 'themeVariables':{ 'primaryColor': '#ff0000'}}}%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
</div>
</div>
<div class="size">
<h1>Nothing set, should be Default</h1>
<div class="mermaid">
%%{init: { 'logLevel': 1} }%%
graph TD
A(Start) --> B[/Another/]
A[/Another/] --> C[End]
subgraph section
B
C
end
</div>
</div>
</div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
// theme: 'dark',
// theme: 'dark',
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
// flowchart: { useMaxWidth: true },
graph: { curve: 'cardinal', "htmlLabels": false },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },
// sequenceDiagram: { actorMargin: 300 } // deprecated
fontFamily: '"arial", sans-serif',
curve: 'cardinal',
securityLevel: 'strict',
});
function callback(){alert('It worked');}
</script>
</body>
</html>

View File

@@ -2,17 +2,18 @@ import { Base64 } from 'js-base64';
import mermaid2 from '../../src/mermaid';
/**
* ##contentLoaded
* Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and
* calls init for rendering the mermaid diagrams on the page.
* ##contentLoaded Callback function that is called when page is loaded. This functions fetches
* configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the page.
*/
const contentLoaded = function() {
const contentLoaded = function () {
let pos = document.location.href.indexOf('?graph=');
if (pos > 0) {
pos = pos + 7;
const graphBase64 = document.location.href.substr(pos);
const graphObj = JSON.parse(Base64.decode(graphBase64));
// const graph = 'hello'
if (graphObj.mermaid && graphObj.mermaid.theme === 'dark') {
document.body.style.background = '#3f3f3f';
}
console.log(graphObj);
if (Array.isArray(graphObj.code)) {
const numCodes = graphObj.code.length;
@@ -30,11 +31,37 @@ const contentLoaded = function() {
div.innerHTML = graphObj.code;
document.getElementsByTagName('body')[0].appendChild(div);
}
global.mermaid.initialize(graphObj.mermaid);
global.mermaid.init();
}
};
const contentLoadedApi = function() {
/**
* @param current
* @param update
*/
function merge(current, update) {
Object.keys(update).forEach(function (key) {
// if update[key] exist, and it's not a string or array,
// we go in one level deeper
if (
current.hasOwnProperty(key) && // eslint-disable-line
typeof current[key] === 'object' &&
!(current[key] instanceof Array)
) {
merge(current[key], update[key]);
// if update[key] doesn't exist in current, or it's a string
// or array, then assign/overwrite current[key] to update[key]
} else {
current[key] = update[key];
}
});
return current;
}
const contentLoadedApi = function () {
let pos = document.location.href.indexOf('?graph=');
if (pos > 0) {
pos = pos + 7;
@@ -54,7 +81,11 @@ const contentLoadedApi = function() {
divs[i] = div;
}
mermaid2.initialize(graphObj.mermaid);
const defaultE2eCnf = { theme: 'forest' };
const cnf = merge(defaultE2eCnf, graphObj.mermaid);
mermaid2.initialize(cnf);
for (let i = 0; i < numCodes; i++) {
mermaid2.render(
@@ -97,7 +128,7 @@ if (typeof document !== 'undefined') {
*/
window.addEventListener(
'load',
function() {
function () {
if (this.location.href.match('xss.html')) {
this.console.log('Using api');
contentLoadedApi();

View File

@@ -1,22 +1,17 @@
<!doctype html>
<html>
<head>
<style>
/* .mermaid {
font-family: "trebuchet ms", verdana, arial;;
} */
/* .mermaid {
font-family: 'arial';
} */
</style>
</head>
<body>
<div class="mermaid">
graph LR
A-->B
</div>
<div class="mermaid">
gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
section Section
A task :a1, 2014-01-01, 30d
Another task :after a1 , 20d
section Another
Task in sec :2014-01-12 , 12d
another task : 24d
</div>
<div id="graph-to-be"></div>
<script src="./bundle-test.js" charset="utf-8"></script>
</body>

105
cypress/platform/xss10.html Normal file
View File

@@ -0,0 +1,105 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
.malware {
position: fixed;
bottom:0;
left:0;
right:0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<div>Security check</div>
<div class="flex">
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'forest',
arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
state: {
defaultRenderer: 'dagre-d3',
},
flowchart: {
// defaultRenderer: 'dagre-wrapper',
nodeSpacing: 10, curve: 'cardinal', htmlLabels: true
},
htmlLabels: true,
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorFontFamily: 'courier',actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
// fontFamily: 'courier',
fontSize: 18,
curve: 'basis',
securityLevel: 'antiscript',
startOnLoad: false,
secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
// themeVariables: {relationLabelColor: 'red'}
});
function callback(){alert('It worked');}
function xssAttack(){
const div = document.createElement('div')
div.id = 'the-malware'
div.className = 'malware'
div.innerHTML = 'XSS Succeeded'
document.getElementsByTagName('body')[0].appendChild(div);
throw new Error('XSS Succeded');
}
var diagram = "classDiagram\n"
diagram += "class Square~<img/src";
diagram += "='1'/onerror=xssAttack()>~{\n";
diagram += "id A\n";
diagram += "}";
// var diagram = "stateDiagram-v2\n";
// diagram += "<img/src='1'/onerror"
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
</script>
</body>
</html>

103
cypress/platform/xss11.html Normal file
View File

@@ -0,0 +1,103 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
.malware {
position: fixed;
bottom:0;
left:0;
right:0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<div>Security check</div>
<div class="flex">
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'forest',
arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
state: {
defaultRenderer: 'dagre-d3',
},
flowchart: {
// defaultRenderer: 'dagre-wrapper',
nodeSpacing: 10, curve: 'cardinal', htmlLabels: true
},
htmlLabels: true,
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorFontFamily: 'courier',actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
// fontFamily: 'courier',
fontSize: 18,
curve: 'basis',
securityLevel: 'antiscript',
startOnLoad: false,
secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
// themeVariables: {relationLabelColor: 'red'}
});
function callback(){alert('It worked');}
function xssAttack(){
const div = document.createElement('div')
div.id = 'the-malware'
div.className = 'malware'
div.innerHTML = 'XSS Succeeded'
document.getElementsByTagName('body')[0].appendChild(div);
throw new Error('XSS Succeded');
}
var diagram = "stateDiagram-v2\n"
diagram += "s2 : This is a state description<img/src";
diagram += "='1'/onerror=xssAttack()>";
// var diagram = "stateDiagram-v2\n";
// diagram += "<img/src='1'/onerror"
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
</script>
</body>
</html>

103
cypress/platform/xss12.html Normal file
View File

@@ -0,0 +1,103 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
.malware {
position: fixed;
bottom:0;
left:0;
right:0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<div>Security check</div>
<div class="flex">
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'forest',
arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
state: {
defaultRenderer: 'dagre-d3',
},
flowchart: {
// defaultRenderer: 'dagre-wrapper',
nodeSpacing: 10, curve: 'cardinal', htmlLabels: true
},
htmlLabels: true,
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorFontFamily: 'courier',actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
// fontFamily: 'courier',
fontSize: 18,
curve: 'basis',
securityLevel: 'antiscript',
startOnLoad: false,
secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
// themeVariables: {relationLabelColor: 'red'}
});
function callback(){alert('It worked');}
function xssAttack(){
const div = document.createElement('div')
div.id = 'the-malware'
div.className = 'malware'
div.innerHTML = 'XSS Succeeded'
document.getElementsByTagName('body')[0].appendChild(div);
throw new Error('XSS Succeded');
}
var diagram = "stateDiagram-v2\n"
diagram += "s2 : A<img/src";
diagram += "='1'/onerror=xssAttack()>";
// var diagram = "stateDiagram-v2\n";
// diagram += "<img/src='1'/onerror"
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
</script>
</body>
</html>

103
cypress/platform/xss13.html Normal file
View File

@@ -0,0 +1,103 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
.malware {
position: fixed;
bottom:0;
left:0;
right:0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<div>Security check</div>
<div class="flex">
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'forest',
arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
state: {
defaultRenderer: 'dagre-d3',
},
flowchart: {
// defaultRenderer: 'dagre-wrapper',
nodeSpacing: 10, curve: 'cardinal', htmlLabels: true
},
htmlLabels: true,
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorFontFamily: 'courier',actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
// fontFamily: 'courier',
fontSize: 18,
curve: 'basis',
securityLevel: 'antiscript',
startOnLoad: false,
secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
// themeVariables: {relationLabelColor: 'red'}
});
function callback(){alert('It worked');}
function xssAttack(){
const div = document.createElement('div')
div.id = 'the-malware'
div.className = 'malware'
div.innerHTML = 'XSS Succeeded'
document.getElementsByTagName('body')[0].appendChild(div);
throw new Error('XSS Succeded');
}
var diagram = "stateDiagram-v2\n"
diagram += "if_state --> False: if n < 0<img/src";
diagram += "='1'/onerror=xssAttack()>";
// var diagram = "stateDiagram-v2\n";
// diagram += "<img/src='1'/onerror"
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
</script>
</body>
</html>

104
cypress/platform/xss14.html Normal file
View File

@@ -0,0 +1,104 @@
<html>
<head>
<link
href="https://fonts.googleapis.com/css?family=Montserrat&display=swap"
rel="stylesheet"
/>
<link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap" rel="stylesheet">
<style>
body {
/* background: rgb(221, 208, 208); */
/* background:#333; */
font-family: 'Arial';
/* font-size: 18px !important; */
}
h1 { color: grey;}
.mermaid2 {
display: none;
}
.mermaid svg {
/* font-size: 18px !important; */
}
.malware {
position: fixed;
bottom:0;
left:0;
right:0;
height: 150px;
background: red;
color: black;
display: flex;
display: flex;
justify-content: center;
align-items: center;
font-family: monospace;
font-size: 72px;
}
</style>
</head>
<body>
<div>Security check</div>
<div class="flex">
<div id="diagram" class="mermaid"></div>
<div id="res" class=""></div>
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
theme: 'forest',
arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 0,
state: {
defaultRenderer: 'dagre-d3',
},
flowchart: {
// defaultRenderer: 'dagre-wrapper',
nodeSpacing: 10, curve: 'cardinal', htmlLabels: true
},
htmlLabels: true,
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorFontFamily: 'courier',actorMargin: 50, showSequenceNumbers: false },
// sequenceDiagram: { actorMargin: 300 } // deprecated
// fontFamily: '"times", sans-serif',
// fontFamily: 'courier',
fontSize: 18,
curve: 'basis',
securityLevel: 'antiscript',
startOnLoad: false,
secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
// themeVariables: {relationLabelColor: 'red'}
});
function callback(){alert('It worked');}
function xssAttack(){
const div = document.createElement('div')
div.id = 'the-malware'
div.className = 'malware'
div.innerHTML = 'XSS Succeeded'
document.getElementsByTagName('body')[0].appendChild(div);
throw new Error('XSS Succeded');
}
var diagram = "classDiagram\n"
diagram += "classA <-- classB : <ifr";
diagram += "ame/srcdoc='<scr";
diagram += "ipt>parent.xssAttack(`XSS`)</";
diagram += "script>'>";
// var diagram = "stateDiagram-v2\n";
// diagram += "<img/src='1'/onerror"
// diagram += "=xssAttack()> --> B";
console.log(diagram);
// document.querySelector('#diagram').innerHTML = diagram;
mermaid.render('diagram', diagram, (res) => {
console.log(res);
document.querySelector('#res').innerHTML = res;
});
</script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More