Compare commits

..

425 Commits

Author SHA1 Message Date
Sidharth Vinod
6f05d4b05a fix: docs path in windows 2022-10-08 12:16:39 +08:00
Sidharth Vinod
ab5111e84f fix: Remove hard coded Path separator 2022-10-08 12:16:24 +08:00
Knut Sveidqvist
c99fd2baa9 Merge pull request #3598 from mermaid-js/lazy-load-import
Lazy load import
2022-10-07 16:06:48 +02:00
Knut Sveidqvist
646f76d343 Fix for broken test 2022-10-07 14:36:25 +02:00
Sidharth Vinod
868cb529aa Merge pull request #3595 from arpansaha13/develop
fix: pnpm clean in windows
2022-10-07 19:12:09 +08:00
lemontreejs
2d01548d02 fix: build npm-script 2022-10-07 16:03:32 +05:30
Knut Sveidqvist
047e15951a Fix for issue in classdiagram-v2 from the typescript updates 2022-10-07 12:17:35 +02:00
Knut Sveidqvist
802407c8ae Merge remote-tracking branch 'origin/develop' into lazy-load-import 2022-10-07 10:46:16 +02:00
lemontreejs
74c7a8585d fix: build npm-script 2022-10-07 14:14:28 +05:30
Knut Sveidqvist
439274c5ae chore: Cleanup 2022-10-07 10:40:01 +02:00
Arpan Saha
8c1046169f Merge branch 'mermaid-js:develop' into develop 2022-10-07 14:05:45 +05:30
Knut Sveidqvist
931120f73c Merge pull request #3574 from mermaid-js/sidv/fixE2E
fix(tests): E2E
2022-10-07 10:25:55 +02:00
Sidharth Vinod
1fb671c561 Merge branch 'develop' into sidv/fixE2E
* develop:
  fix: pnpm not found
2022-10-07 15:06:12 +08:00
Sidharth Vinod
acd9a8aefb Merge branch 'lazy-load-import' into sidv/fixE2E
* lazy-load-import:
  chore: cleanup
  fix: dynamic import
  fix: Filename in viewer.js
  fix: Import diagram
  Updated logic for diagram loading
  WIP
2022-10-07 15:02:47 +08:00
Sidharth Vinod
66bc844cc9 chore: cleanup 2022-10-07 14:53:16 +08:00
Sidharth Vinod
3e3de72093 fix: dynamic import 2022-10-07 14:51:37 +08:00
lemontreejs
00053b8e97 fix: module import in pie chart demo 2022-10-07 11:56:01 +05:30
Knut Sveidqvist
883d0d5039 Merge pull request #3592 from mermaid-js/lazy-load-import
Lazy load import
2022-10-06 18:19:19 +02:00
Knut Sveidqvist
e49825b7a3 Merge pull request #3589 from mermaid-js/sidv/fixLazyLoad
fix: Import diagram
2022-10-06 18:16:42 +02:00
Sidharth Vinod
9f286b46ff fix: Filename in viewer.js 2022-10-06 23:39:30 +08:00
Sidharth Vinod
803ea863fd fix: pnpm not found 2022-10-06 22:58:54 +08:00
Sidharth Vinod
d59f878020 fix: use async in render-after-error 2022-10-06 17:49:10 +08:00
Sidharth Vinod
646a96e5f0 Merge branch 'develop' into sidv/fixE2E
* develop:
  chore: Format COC.
2022-10-06 17:44:54 +08:00
Sidharth Vinod
77a1aea7b9 chore: Format COC. 2022-10-06 17:44:35 +08:00
Sidharth Vinod
f3f4672816 Merge branch 'develop' into sidv/fixE2E
* develop:
  Appended Contact Mail of Mermaid
  Added sttributes to CODE OF CONDUCT
  build(test): remove vitest from subpackages
  test: remove `import {it} from "vitest"`
  chore(docs): run `pnpm run docs:build`
  CODE_OF_CONDUCT Uploaded
2022-10-06 17:34:51 +08:00
Sidharth Vinod
b68a38443c Merge pull request #3587 from aloisklink/test/fix-unit-tests
Fix failing vitest unit tests
2022-10-06 17:33:57 +08:00
Sidharth Vinod
c919bef70e fix: Import diagram 2022-10-06 13:47:00 +08:00
Knut Sveidqvist
b1540d1491 Merge pull request #3578 from swoyam2609/develop
CODE_OF_CONDUCT Uploaded
2022-10-06 07:18:10 +02:00
Swoyam Siddharth Nayak
8ff40c152b Merge branch 'mermaid-js:develop' into develop 2022-10-06 10:37:22 +05:30
Swoyam Siddharth Nayak
51803f00fb Appended Contact Mail of Mermaid 2022-10-06 10:37:12 +05:30
Sidharth Vinod
fb4aefeae7 Merge pull request #3586 from aloisklink/chore/sync-docs
Sync `docs/` with `packages/mermaid/src/docs`
2022-10-06 12:58:14 +08:00
Sidharth Vinod
7d987e5877 Merge branch 'develop' into sidv/fixE2E
* develop:
  docs: Rebuild
2022-10-06 12:57:18 +08:00
Sidharth Vinod
816b6276a6 docs: Rebuild 2022-10-06 12:56:51 +08:00
Sidharth Vinod
836a026f63 Merge branch 'develop' into sidv/fixE2E
* develop:
  update demo diagrams to have lang, hr tags, src = mermaid.js where needed.
2022-10-06 12:41:58 +08:00
Swoyam Siddharth Nayak
dc9ddc77ea Merge branch 'mermaid-js:develop' into develop 2022-10-06 09:47:10 +05:30
Swoyam Siddharth Nayak
fdbd38ed5f Added sttributes to CODE OF CONDUCT 2022-10-06 09:46:57 +05:30
Alois Klink
1f39fde230 build(test): remove vitest from subpackages
Removes vitest from all subpackages so that vitest/`pnpm run test`
are only in the root mono-repo.

This is required, because otherwise the root vitest and the subpackage
vitest versions can otherwise be slightly different, which causes
issues when running unit tests:

```Snapshot cannot be used outside of test```

In the future, we may want to consider moving package specific
tests into `packages/*/test`, and instead running these tests
with `pnpm run --recursive`, so that tests are run in each package by
their own version of vitest. This is the way that most projects
do things (e.g. https://github.com/vitest-dev/vitest).
2022-10-06 00:56:54 +01:00
Alois Klink
c420224080 test: remove import {it} from "vitest"
We're getting a lot of vitest errors that say:
```Error: No test suite found in file```

I think this is because vitest is somehow
importing a different version the it/test function than the globally
inserted functions.

Removing the imports fixes this.
2022-10-06 00:48:50 +01:00
Alois Klink
b1f13cbb9a chore(docs): run pnpm run docs:build
It looks like the docs/ folder somehow got out of sync
with the packages/mermaid/src/docs folder.

Maybe it was due to a semantic merge conflict
(e.g. `git merge` didn't throw an error, but the merge was bad)
2022-10-06 00:08:00 +01:00
Knut Sveidqvist
0f2e0c2ab4 Updated logic for diagram loading 2022-10-05 22:03:05 +02:00
Alois Klink
d8af97c152 Merge pull request #3545 from weedySeaDragon/chore/update-demo-files-packages
chore: Update demo diagrams for monorepo
2022-10-05 21:03:03 +01:00
Swoyam Siddharth Nayak
528ebd8f12 CODE_OF_CONDUCT Uploaded 2022-10-05 16:47:35 +05:30
Knut Sveidqvist
c05c98c082 WIP 2022-10-05 13:14:05 +02:00
Sidharth Vinod
d8c7557ae5 fix: Docs 2022-10-05 16:05:27 +08:00
Sidharth Vinod
f9753fc621 chore: Update test URL 2022-10-05 16:04:26 +08:00
Sidharth Vinod
42b59a9e35 Merge remote-tracking branch 'upstream/develop' into sidv/fixE2E
* upstream/develop: (33 commits)
  Updated lockfile
  chore(deps-dev): update vite requirement from ^3.0.9 to ^3.1.4
  chore(deps-dev): update typescript requirement from ^4.8.3 to ^4.8.4
  chore(deps-dev): update @vitest/coverage-c8 requirement
  chore(deps-dev): update @typescript-eslint/eslint-plugin requirement
  chore(deps-dev): update esbuild requirement from ^0.15.8 to ^0.15.10
  chore(deps-dev): update @commitlint/config-conventional requirement
  chore(deps-dev): update eslint-plugin-jest requirement
  chore(deps-dev): update @applitools/eyes-cypress requirement
  chore(deps-dev): update jsdom requirement from ^20.0.0 to ^20.0.1
  chore(deps-dev): update vitest requirement from ^0.23.1 to ^0.23.4
  chore(deps-dev): update lint-staged requirement from ^13.0.0 to ^13.0.3
  chore(deps): update @types/node requirement from ^18.7.21 to ^18.8.1
  chore(deps-dev): update @typescript-eslint/parser requirement
  Fix postbuild script
  #3561 Adding cScale0-11 etc and usage of the colors from the mindmap diagram
  Fix for broken test
  Mindmap cleanup
  Using cose-bilkent layout algorithm for mindmaps
  chore(deps-dev): update husky requirement from ^8.0.0 to ^8.0.1
  ...
2022-10-05 14:58:40 +08:00
Sidharth Vinod
74bd576ebc fix(mermaid): Add await to render in init. 2022-10-05 14:52:04 +08:00
Sidharth Vinod
a017ffc3c9 fix(test): Rerender 2022-10-05 14:08:53 +08:00
Sidharth Vinod
d3a81f025a chore(tests): Interaction - cleanup 2022-10-04 16:59:05 +08:00
Sidharth Vinod
750f647b0d fix(tests): Interaction - Security strict, other 2022-10-04 16:55:46 +08:00
Sidharth Vinod
2a9e56439e fix(tests): Interaction test - Security loose. 2022-10-04 16:37:37 +08:00
Ashish Jain
e4bca33d00 Merge pull request #3562 from mermaid-js/3561_theme_color_scales
3561 theme color scales
2022-10-04 09:48:20 +02:00
Knut Sveidqvist
1528c03f85 Updated lockfile 2022-10-04 08:51:12 +02:00
Knut Sveidqvist
c73c68532a Merge pull request #3572 from mermaid-js/dependabot/npm_and_yarn/develop/commitlint/config-conventional-tw-17.1.0
chore(deps-dev): update @commitlint/config-conventional requirement from ^17.0.0 to ^17.1.0
2022-10-04 08:47:26 +02:00
Knut Sveidqvist
989c8969cb Merge pull request #3571 from mermaid-js/dependabot/npm_and_yarn/develop/eslint-plugin-jest-tw-27.1.0
chore(deps-dev): update eslint-plugin-jest requirement from ^27.0.4 to ^27.1.0
2022-10-04 08:47:12 +02:00
Knut Sveidqvist
ff2ff22d27 Merge pull request #3570 from mermaid-js/dependabot/npm_and_yarn/develop/vite-tw-3.1.4
chore(deps-dev): update vite requirement from ^3.0.9 to ^3.1.4
2022-10-04 08:46:58 +02:00
Knut Sveidqvist
5ef7bad1ce Merge pull request #3568 from mermaid-js/dependabot/npm_and_yarn/develop/applitools/eyes-cypress-tw-3.27.1
chore(deps-dev): update @applitools/eyes-cypress requirement from ^3.25.7 to ^3.27.1
2022-10-04 08:46:47 +02:00
dependabot[bot]
5e0c321510 chore(deps-dev): update vite requirement from ^3.0.9 to ^3.1.4
Updates the requirements on [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) to permit the latest version.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v3.1.4/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v3.1.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:44:04 +00:00
Knut Sveidqvist
f19fac97d1 Merge pull request #3573 from mermaid-js/dependabot/npm_and_yarn/develop/typescript-tw-4.8.4
chore(deps-dev): update typescript requirement from ^4.8.3 to ^4.8.4
2022-10-04 08:42:59 +02:00
Knut Sveidqvist
d04f73af7e Merge pull request #3569 from mermaid-js/dependabot/npm_and_yarn/develop/esbuild-tw-0.15.10
chore(deps-dev): update esbuild requirement from ^0.15.8 to ^0.15.10
2022-10-04 08:42:37 +02:00
Knut Sveidqvist
6ef3915fcc Merge pull request #3567 from mermaid-js/dependabot/npm_and_yarn/develop/vitest/coverage-c8-tw-0.23.4
chore(deps-dev): update @vitest/coverage-c8 requirement from ^0.23.2 to ^0.23.4
2022-10-04 08:42:21 +02:00
dependabot[bot]
87257153b9 chore(deps-dev): update typescript requirement from ^4.8.3 to ^4.8.4
Updates the requirements on [typescript](https://github.com/Microsoft/TypeScript) to permit the latest version.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.8.3...v4.8.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:35:42 +00:00
dependabot[bot]
02207087e4 chore(deps-dev): update @vitest/coverage-c8 requirement
Updates the requirements on [@vitest/coverage-c8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-c8) to permit the latest version.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v0.23.4/packages/coverage-c8)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-c8"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:35:03 +00:00
Knut Sveidqvist
b4417d47f1 Merge pull request #3566 from mermaid-js/dependabot/npm_and_yarn/develop/types/node-tw-18.8.1
chore(deps): update @types/node requirement from ^18.7.21 to ^18.8.1
2022-10-04 08:34:28 +02:00
Knut Sveidqvist
04e3674355 Merge pull request #3565 from mermaid-js/dependabot/npm_and_yarn/develop/typescript-eslint/eslint-plugin-tw-5.39.0
chore(deps-dev): update @typescript-eslint/eslint-plugin requirement from ^5.37.0 to ^5.39.0
2022-10-04 08:34:10 +02:00
dependabot[bot]
dbf8af06a4 chore(deps-dev): update @typescript-eslint/eslint-plugin requirement
Updates the requirements on [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.39.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:32:15 +00:00
dependabot[bot]
0bcdaa395f chore(deps-dev): update esbuild requirement from ^0.15.8 to ^0.15.10
Updates the requirements on [esbuild](https://github.com/evanw/esbuild) to permit the latest version.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.15.8...v0.15.10)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:31:45 +00:00
dependabot[bot]
7788d26ed4 chore(deps-dev): update @commitlint/config-conventional requirement
Updates the requirements on [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) to permit the latest version.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v17.1.0/@commitlint/config-conventional)

---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:31:24 +00:00
Knut Sveidqvist
b3002be08a Merge pull request #3564 from mermaid-js/dependabot/npm_and_yarn/develop/typescript-eslint/parser-tw-5.39.0
chore(deps-dev): update @typescript-eslint/parser requirement from ^5.37.0 to ^5.39.0
2022-10-04 08:31:19 +02:00
Knut Sveidqvist
813ceb0d96 Merge pull request #3558 from mermaid-js/dependabot/npm_and_yarn/develop/husky-tw-8.0.1
chore(deps-dev): update husky requirement from ^8.0.0 to ^8.0.1
2022-10-04 08:31:01 +02:00
dependabot[bot]
c39c3be39f chore(deps-dev): update eslint-plugin-jest requirement
Updates the requirements on [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) to permit the latest version.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v27.0.4...v27.1.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:30:56 +00:00
Knut Sveidqvist
9eb17c6e13 Merge pull request #3557 from mermaid-js/dependabot/npm_and_yarn/develop/vitest-tw-0.23.4
chore(deps-dev): update vitest requirement from ^0.23.1 to ^0.23.4
2022-10-04 08:30:47 +02:00
dependabot[bot]
a6e26ce5bb chore(deps-dev): update @applitools/eyes-cypress requirement
Updates the requirements on [@applitools/eyes-cypress](https://github.com/applitools/eyes.sdk.javascript1/tree/HEAD/js/packages/eyes-cypress) to permit the latest version.
- [Release notes](https://github.com/applitools/eyes.sdk.javascript1/releases)
- [Changelog](https://github.com/applitools/eyes.sdk.javascript1/blob/master/js/packages/eyes-cypress/CHANGELOG.md)
- [Commits](https://github.com/applitools/eyes.sdk.javascript1/commits/@applitools/eyes-cypress@3.27.1/js/packages/eyes-cypress)

---
updated-dependencies:
- dependency-name: "@applitools/eyes-cypress"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:30:45 +00:00
Knut Sveidqvist
b735a7911a Merge pull request #3556 from mermaid-js/dependabot/npm_and_yarn/develop/types/lodash-tw-4.14.186
chore(deps-dev): update @types/lodash requirement from ^4.14.185 to ^4.14.186
2022-10-04 08:30:30 +02:00
Knut Sveidqvist
2e342dace2 Merge pull request #3555 from mermaid-js/dependabot/npm_and_yarn/develop/types/express-tw-4.17.14
chore(deps-dev): update @types/express requirement from ^4.17.13 to ^4.17.14
2022-10-04 08:30:05 +02:00
Knut Sveidqvist
14369d3143 Merge pull request #3552 from mermaid-js/dependabot/npm_and_yarn/develop/jsdom-tw-20.0.1
chore(deps-dev): update jsdom requirement from ^20.0.0 to ^20.0.1
2022-10-04 08:29:09 +02:00
dependabot[bot]
b6b5202923 chore(deps-dev): update jsdom requirement from ^20.0.0 to ^20.0.1
Updates the requirements on [jsdom](https://github.com/jsdom/jsdom) to permit the latest version.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Changelog](https://github.com/jsdom/jsdom/blob/master/Changelog.md)
- [Commits](https://github.com/jsdom/jsdom/compare/20.0.0...20.0.1)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:28:33 +00:00
Knut Sveidqvist
808152211c Merge pull request #3553 from mermaid-js/dependabot/npm_and_yarn/develop/start-server-and-test-tw-1.14.0
chore(deps-dev): update start-server-and-test requirement from ^1.12.6 to ^1.14.0
2022-10-04 08:28:02 +02:00
Knut Sveidqvist
408e852018 Merge pull request #3551 from mermaid-js/dependabot/npm_and_yarn/develop/lint-staged-tw-13.0.3
chore(deps-dev): update lint-staged requirement from ^13.0.0 to ^13.0.3
2022-10-04 08:27:24 +02:00
Knut Sveidqvist
ef91b4fa0e Merge pull request #3559 from mermaid-js/minmaps
Mindmaps replacing rendering algoritm with cose-bilkent
2022-10-04 08:26:11 +02:00
dependabot[bot]
46d924ffc9 chore(deps-dev): update vitest requirement from ^0.23.1 to ^0.23.4
Updates the requirements on [vitest](https://github.com/vitest-dev/vitest) to permit the latest version.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/compare/v0.23.1...v0.23.4)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:25:37 +00:00
dependabot[bot]
f965f5643a chore(deps-dev): update lint-staged requirement from ^13.0.0 to ^13.0.3
Updates the requirements on [lint-staged](https://github.com/okonet/lint-staged) to permit the latest version.
- [Release notes](https://github.com/okonet/lint-staged/releases)
- [Commits](https://github.com/okonet/lint-staged/compare/v13.0.0...v13.0.3)

---
updated-dependencies:
- dependency-name: lint-staged
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 06:25:29 +00:00
Knut Sveidqvist
85f0f7d241 Merge branch 'emersonbottero-develop' into develop 2022-10-04 08:24:29 +02:00
Knut Sveidqvist
9468bffcbb Merge branch 'develop' of github.com:emersonbottero/mermaid into emersonbottero-develop 2022-10-04 08:23:36 +02:00
Knut Sveidqvist
bd44957302 Merge pull request #3544 from AndrewL-64/3304_unlabeled_exception
Fixed labelText undefined behavior
2022-10-04 07:25:14 +02:00
dependabot[bot]
7e3d57fc28 chore(deps): update @types/node requirement from ^18.7.21 to ^18.8.1
Updates the requirements on [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 05:25:01 +00:00
dependabot[bot]
4f5c707b56 chore(deps-dev): update @typescript-eslint/parser requirement
Updates the requirements on [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) to permit the latest version.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.39.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-04 05:24:13 +00:00
Knut Sveidqvist
2a37023a8d Merge pull request #3549 from mermaid-js/dependabot/npm_and_yarn/develop/vitest/ui-tw-0.23.4
chore(deps-dev): update @vitest/ui requirement from ^0.23.2 to ^0.23.4
2022-10-04 07:23:15 +02:00
Emerson Bottero
9901a73a2a Merge branch 'develop' of https://github.com/emersonbottero/mermaid into develop 2022-10-03 14:01:05 -03:00
Emerson Bottero
40a319fc5b Fix postbuild script 2022-10-03 12:11:00 -03:00
Knut Sveidqvist
8ee321fd7b #3561 Adding cScale0-11 etc and usage of the colors from the mindmap diagram 2022-10-03 14:51:13 +02:00
Knut Sveidqvist
05a594a492 Fix for broken test 2022-10-03 11:22:06 +02:00
Knut Sveidqvist
0a2804c641 Mindmap cleanup 2022-10-03 11:08:55 +02:00
Knut Sveidqvist
5079fa93b4 Using cose-bilkent layout algorithm for mindmaps 2022-10-03 10:05:12 +02:00
dependabot[bot]
eaf75fa149 chore(deps-dev): update husky requirement from ^8.0.0 to ^8.0.1
Updates the requirements on [husky](https://github.com/typicode/husky) to permit the latest version.
- [Release notes](https://github.com/typicode/husky/releases)
- [Commits](https://github.com/typicode/husky/compare/v8.0.0...v8.0.1)

---
updated-dependencies:
- dependency-name: husky
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 07:01:42 +00:00
dependabot[bot]
a6093e847e chore(deps-dev): update @types/lodash requirement
Updates the requirements on [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 07:01:30 +00:00
dependabot[bot]
0a6c7781c4 chore(deps-dev): update @types/express requirement
Updates the requirements on [@types/express](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/express) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/express)

---
updated-dependencies:
- dependency-name: "@types/express"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 07:01:26 +00:00
dependabot[bot]
0871f5c012 chore(deps-dev): update start-server-and-test requirement
Updates the requirements on [start-server-and-test](https://github.com/bahmutov/start-server-and-test) to permit the latest version.
- [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.14.0)

---
updated-dependencies:
- dependency-name: start-server-and-test
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 07:01:06 +00:00
dependabot[bot]
6f27c36186 chore(deps-dev): update @vitest/ui requirement from ^0.23.2 to ^0.23.4
Updates the requirements on [@vitest/ui](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui) to permit the latest version.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v0.23.4/packages/ui)

---
updated-dependencies:
- dependency-name: "@vitest/ui"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 07:00:41 +00:00
Knut Sveidqvist
383cbcf3a0 Merge branch 'develop' into minmaps 2022-10-03 07:02:25 +02:00
Knut Sveidqvist
56add0756f Lazy loading fix for example-diagram and mindmaps 2022-10-03 07:01:56 +02:00
Alois Klink
02a0f87562 Merge pull request #3541 from marcastel/patch-2
Corrected theme variables reference table layout
2022-10-03 02:11:57 +01:00
Alois Klink
feb1d34c1a style(docs): fix prettier issues (extra newline)
Fix prettier issues by running `pnpm run lint:fix`
2022-10-03 02:06:49 +01:00
Ashley Engelund (weedySeaDragon @ github)
fdb81be0a0 update demo diagrams to have lang, hr tags, src = mermaid.js where needed. 2022-10-02 13:51:25 -07:00
Andrew Liu
a4d1d86d7b Fixed labelText undefined behavior 2022-10-02 14:32:50 -04:00
JM Marcastel
ffe956e27b Corrected theme variables reference table layout
In replacement of #3540 which modified the generated file and not the source file.
2022-10-02 05:31:41 +02:00
Alois Klink
03190c1dec Merge pull request #3538 from elv-nate/patch-1
Fix typos in README.md
2022-09-30 22:20:14 +01:00
Nate Armstrong
92f1f2ffb6 Fix typos in README.md 2022-09-30 11:31:53 -07:00
Knut Sveidqvist
4d8d74a50d Merge pull request #3536 from aloisklink/build/fix-pre-commit-rules
Fix husky `pre-commit` rules
2022-09-30 09:07:12 +02:00
Knut Sveidqvist
0dc0de8f1d Merge pull request #3534 from aloisklink/build/fix-docsbuild-script
Fix `docs:build` and `docs:verify` scripts
2022-09-30 09:06:13 +02:00
Knut Sveidqvist
f5dc4d991f Merge pull request #3535 from aloisklink/docs/replace-yarn-with-pnpm
docs: replace `yarn` with `pnpm` in dev guide
2022-09-30 09:05:29 +02:00
Alois Klink
1f3a02559c build: lint-staged docs in packages/mermaid/src/…
When running lint-staged during git pre-commit scripts,
search for docs in the packages/mermaid/src/docs folder instead
of the original src/docs folder.
2022-09-29 20:11:26 +01:00
Alois Klink
70f94c3e44 chore(docs): run pnpm run docs:build
Updates the auto-generated warning to tell people
to edit packages/mermaid/src/docs instead of src/docs.
2022-09-29 20:02:16 +01:00
Alois Klink
b8eab08119 build(docs): fix pnpm run docs:{build,verify}
Our docs script was searching for docs in the src/docs folder,
which no longer exists.

Instead, it should be looking at the packages/mermaid/src/docs folder.
2022-09-29 20:00:15 +01:00
Alois Klink
794b714fac docs: replace yarn with pnpm in dev guide
With the new mono-repo move (PR #3531), development must
be done with `pnpm`.

Using `memaid` can still be done with `yarn`/`npm` however.
2022-09-29 19:59:02 +01:00
Knut Sveidqvist
2f4b4ba13b Merge pull request #3533 from mermaid-js/2979_arrow_alignment
Arrow tip aligned to edge of box
2022-09-29 20:49:22 +02:00
Alois Klink
1cdb0ff72c build: re-enable prepare script for husky setup
Re-enables the `pnpm run prepare` script.

The prepare script is automatically run when running
`pnpm install` locally.

It both:
  - Sets up husky/git pre-commit scripts
  - Builds the `packages/mermaid/dist` folder.
2022-09-29 19:48:54 +01:00
Alois Klink
9513e0e2d5 build: update pre-commit rules to use pnpm
Update husky and lint-staged to use pnpm instead of yarn.
2022-09-29 19:48:02 +01:00
Per Brolin
6ebfbb2f9e Arrow tip aligned to edge of box 2022-09-29 20:37:57 +02:00
pbrolin47
320e105ffe Merge pull request #3531 from mermaid-js/3061_making_a_monorepo
3061 making a monorepo
2022-09-29 19:52:40 +02:00
Knut Sveidqvist
96cde8a15a updated pnpm-lock file 2022-09-29 19:35:54 +02:00
Knut Sveidqvist
972d025578 Merge branch 'develop' into 3061_making_a_monorepo 2022-09-29 16:28:57 +02:00
Knut Sveidqvist
09bc7e0acd Merge remote-tracking branch 'origin/develop' into develop 2022-09-29 16:25:09 +02:00
Emerson Bottero
6191bb5f1b Merge branch 'develop' into develop 2022-09-28 22:47:48 -03:00
Emerson Bottero
d858cd677e chore: update yarn.lock 2022-09-28 22:16:01 -03:00
Emerson Bottero
2376d38e0e docs: improved search 2022-09-28 21:46:07 -03:00
Alois Klink
693616b00d ci(e2e): Skip pnpm cache if skipping cypress run
When running the e2e action from a fork, we prevent multi-processing
in the E2E cypress tests skipping runs that aren't
matrix.container == 1.

However, this means that the pnpm cache folder isn't created, causing
the cache action to throw an error.

To fix this, we also skip building Node/cache setup step.

Fixes: f60c7fff65
2022-09-28 20:19:08 +01:00
Alois Klink
30f6550e61 ci(e2e): remove headless arg from cypress run
Since [cypress-io/github-action v4.0.1][1], the headless argument
no longer exists.

Since Cypress v8.0.0, it didn't do anything, since this was the
default behaviour.

[1]: https://github.com/cypress-io/github-action/releases/tag/v4.0.1
2022-09-28 20:12:40 +01:00
Alois Klink
5cfbc9102e build(dev): Fix dev server not showing mermaid.js
When moving to the mono-repo,
`<script src="http://localhost:9000/mermaid.js"/>`
stopped working, since the vite dev server was exposing
the `./dist` folder, when the folder had moved to
the `./packages/mermaid/dist` folder.
2022-09-28 19:52:31 +01:00
Knut Sveidqvist
766bdde46b Fixed sample test 2022-09-28 17:53:01 +02:00
Knut Sveidqvist
f46f8752ca Adding example diagram as a template for a new diagram 2022-09-28 17:49:47 +02:00
Knut Sveidqvist
bed9b1bb99 Removed test folder 2022-09-28 17:17:32 +02:00
Knut Sveidqvist
053a20bd33 Returning the borders to the e2e tests 2022-09-28 15:33:33 +02:00
Knut Sveidqvist
be34e6145f Fix for tests 2022-09-28 14:53:16 +02:00
Knut Sveidqvist
f60c7fff65 Merge branch 'develop' into 3061_making_a_monorepo 2022-09-28 14:26:07 +02:00
Knut Sveidqvist
6292bebcd3 Updated version 2022-09-28 14:15:17 +02:00
Knut Sveidqvist
80c68d847c Merge pull request #3524 from ashleybartlett/feature/3078-support-dashes-in-participant-names
[sequenceDiagrams] Support dashes in participant names
2022-09-28 13:40:17 +02:00
Knut Sveidqvist
fed00be430 Merge pull request #3516 from weedySeaDragon/feature/3171--erDiagram-allow-chars-in-entity-name
feat: ER diagram: allow other chars in a quoted entity name
2022-09-28 13:29:54 +02:00
Knut Sveidqvist
ef527cb0fa Merge branch 'develop' into feature/3171--erDiagram-allow-chars-in-entity-name 2022-09-28 13:24:54 +02:00
Knut Sveidqvist
e1c63139b2 Merge pull request #3512 from weedySeaDragon/bug/3429_er-dark-theme-attribute-colors
fix: ER dark theme attribute colors
2022-09-28 13:18:11 +02:00
Knut Sveidqvist
edb30c9feb Merge branch 'develop' into bug/3429_er-dark-theme-attribute-colors 2022-09-28 13:17:00 +02:00
Knut Sveidqvist
66809ed972 Merge pull request #3513 from IanLee1521/patch-1
Mention obsidian has native support for mermaid
2022-09-28 13:12:54 +02:00
Knut Sveidqvist
c66d5cb890 Merge pull request #3523 from weedySeaDragon/chore/2904_fix-demo-charts-add-accTags
chore: fix demo chart pages
2022-09-28 13:12:15 +02:00
Knut Sveidqvist
fe8df78322 Clarification in the docs regarding directions in the subgraps for flowcharts. 2022-09-28 12:32:58 +02:00
Ashley Bartlett
7da6c0e867 Fix testing bug 2022-09-27 14:25:19 +10:00
Ashley Bartlett
0a0b6d51ba Add support for hyphens in participant names 2022-09-27 14:24:54 +10:00
Ashley Engelund (weedySeaDragon @ github)
7ed3c21a6d move charts to their pages; index page just a list to them 2022-09-26 18:16:36 -07:00
Ashley Engelund (weedySeaDragon @ github)
3d0214d453 new page for pie charts 2022-09-26 18:16:00 -07:00
Ashley Engelund (weedySeaDragon @ github)
d0e9de2744 new page for context charts 2022-09-26 18:15:29 -07:00
Ashley Engelund (weedySeaDragon @ github)
99264fab8a new page for git charts 2022-09-26 18:15:13 -07:00
Ashley Engelund (weedySeaDragon @ github)
d4519bb730 Merge remote-tracking branch 'origin/develop' into develop 2022-09-26 17:32:15 -07:00
Ashley Engelund (weedySeaDragon @ github)
6468c8e857 Merge remote-tracking branch 'MERMAID/develop' into develop 2022-09-26 17:31:56 -07:00
Knut Sveidqvist
982c1b4979 #3061 Lazy loading auto derived path 2022-09-26 14:22:21 +02:00
dependabot[bot]
503cbedc96 chore(deps-dev): bump @types/prettier from 2.7.0 to 2.7.1 (#3520)
Bumps [@types/prettier](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/prettier) from 2.7.0 to 2.7.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/prettier)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-26 13:28:16 +02:00
dependabot[bot]
a448409750 chore(deps-dev): bump eslint from 8.23.1 to 8.24.0 (#3521)
Bumps [eslint](https://github.com/eslint/eslint) from 8.23.1 to 8.24.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.23.1...v8.24.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-26 13:27:42 +02:00
Knut Sveidqvist
a928120bec #3061 Log handing and other fixes, error handling in diagram creation 2022-09-26 10:44:18 +02:00
weedySeaDragon
b3ca701b8d chore: update browsers list 2022-09-26 07:15:56 +00:00
mmorel-35
62e127f1b8 chore: update browsers list 2022-09-26 07:15:07 +00:00
Knut Sveidqvist
ebdec77c88 #3061 Fixing unit tests 2022-09-26 08:47:41 +02:00
Knut Sveidqvist
98ddc95648 Deoupling, inecting mermaid utilities in external diagram 2022-09-26 08:02:12 +02:00
Knut Sveidqvist
9566f51ca8 Commiton issue #3061 Injecting mermaid utilities in registered diagram 2022-09-26 08:01:23 +02:00
Sidharth Vinod
696164c9a6 Merge pull request #3519 from aloisklink/ci/fix-e2e-when-running-from-fork
ci(e2e): fix e2e action when running from fork
2022-09-26 07:57:11 +05:30
Alois Klink
493aac6885 Merge branch 'aloisklink/3061_monorepo-e2e-tests' into 3061_making_a_monorepo
Fixes most CI actions to support pnpm and the mono-repo.

It looks like there are some errors related to `mermaid-mindmap`
not being able to find `mermaid` or `mermaid/diagramAPI`
2022-09-25 20:36:52 +01:00
Alois Klink
56e1411d37 ci(e2e): fix e2e action when running from fork
PRs from forks don't have acess to the secrets.CYPRESS_RECORD_KEY.
Because of this, we need to disable `recording`.
2022-09-25 20:11:42 +01:00
Alois Klink
e0805b8272 ci(build): fix build CI to use pnpm
The packages/mermaid/dist build is now uploaded seperately from
the packages/mermaid-mindmap/dist build.
2022-09-25 20:02:23 +01:00
Alois Klink
e72059ba87 ci(e2e-applitools): fix applitools CI to use pnpm 2022-09-25 20:02:23 +01:00
Alois Klink
24d46fb936 ci(e2e): fix e2e tests CI to use pnpm
We need to upgrade cypress-io/github-action to v4.2.0
as that's the first version that supported pnpm.

See https://github.com/cypress-io/github-action/releases/tag/v4.2.0
2022-09-25 20:02:23 +01:00
Alois Klink
29c52ec4d4 chore: update pnpm-lock.yaml lockfile 2022-09-25 20:02:23 +01:00
Alois Klink
77831c424c ci(lint): fix lint tests CI to use pnpm 2022-09-25 20:02:23 +01:00
Alois Klink
d633ec62df ci(unit): fix unit tests CI to use pnpm 2022-09-25 20:02:23 +01:00
Alois Klink
69c13a6ecf build(docs): fix docs:build command for mono-repo 2022-09-25 20:02:23 +01:00
Alois Klink
69d05c454d style: ignore pnpm-lock.yaml from prettier
The `pnpm-lock.yaml` file is auto-generated by PNPM.
2022-09-25 19:52:27 +01:00
Alois Klink
97637da9e0 build: set "packageManager" to pnpm@7.12.2
The ["packageManager"][1] field list the package manager that
is expected to be used.

This is required by the `pnpm/action-setup` GitHub Action.

[1]: https://nodejs.org/api/packages.html#packagemanager
2022-09-25 19:22:48 +01:00
Alois Klink
535f555b13 test: fix unit tests in new mono-repo 2022-09-25 19:18:16 +01:00
Emerson Bottero
d8ee2bb850 docs: no footer 2022-09-25 11:53:08 -03:00
Emerson Bottero
609d28c6ee docs: added edit and team page 2022-09-25 11:22:34 -03:00
Emerson Bottero
eeafa8f5aa docs: added the fixed search again 2022-09-24 23:24:48 -03:00
Ashley Engelund (weedySeaDragon @ github)
ddc35fa9ce a few more wee changes to the ER demo 2022-09-24 16:50:02 -07:00
Ashley Engelund (weedySeaDragon @ github)
908f5afe0f Merge remote-tracking branch 'MERMAID/develop' into develop 2022-09-24 16:16:29 -07:00
Ashley Engelund (weedySeaDragon @ github)
5daa130857 er demo: clarify comment about name 2022-09-24 16:11:07 -07:00
Ashley Engelund (weedySeaDragon @ github)
c202b94a9a yarn install after merge with upstream/develop 2022-09-24 16:10:34 -07:00
Ashley Engelund (weedySeaDragon @ github)
ed0f22b037 Merge remote-tracking branch 'MERMAID/develop' into bug/er/allow-chars-in-entity-name
# Conflicts:
#	vite.config.cts
#	yarn.lock
2022-09-24 16:06:54 -07:00
Ashley Engelund (weedySeaDragon @ github)
eb1c6894f5 change demo ER diagram to include attributes, names with various chars 2022-09-24 16:05:59 -07:00
Ashley Engelund (weedySeaDragon @ github)
91091c614f store and reference entity by unique id, not name (elements, graph, etc.) 2022-09-24 16:05:20 -07:00
Ashley Engelund (weedySeaDragon @ github)
481b5cde0f (minor) fix ==; remove unused imports; fix typos; add comments 2022-09-24 16:02:55 -07:00
Ashley Engelund (weedySeaDragon @ github)
d328879329 add uuid; graph node ids can no longer be based on entity names; make unique id 2022-09-24 15:40:02 -07:00
Ashley Engelund (weedySeaDragon @ github)
3c1bad1792 er jison: allow more chars in Entity name; clean up spec 2022-09-24 15:38:06 -07:00
Emerson Bottero
5e4bcbdfa0 chore: fix Original Setup 2022-09-23 23:51:33 -03:00
Emerson Bottero
87911f4a56 docs: build working 2022-09-23 23:33:24 -03:00
Ashley Engelund (weedySeaDragon @ github)
9ec935f109 add ts-ignore for jison in vite.config.cts 2022-09-23 11:35:31 -07:00
Ashley Engelund (weedySeaDragon @ github)
4bedc49b4d define ENTITY_NAME that allows some non-alphanumeric chars; spec re-arrange 2022-09-23 11:34:52 -07:00
Knut Sveidqvist
af2b1945a3 Detector registering itself on load 2022-09-23 16:55:30 +02:00
Sidharth Vinod
c32e76a870 Merge branch 'sidv/3061_monorepo' into 3061_making_a_monorepo
* sidv/3061_monorepo:
  fix types for mermaid-mindmap
2022-09-23 17:52:11 +05:30
Sidharth Vinod
8dcbe83b0b fix types for mermaid-mindmap 2022-09-23 17:51:29 +05:30
Knut Sveidqvist
9fac7866f5 Merge pull request #3514 from mermaid-js/sidv/3061_monorepo
[WIP] Monorepo build
2022-09-23 14:14:07 +02:00
Sidharth Vinod
53bbf444e5 fix build 2022-09-23 17:39:08 +05:30
Knut Sveidqvist
1a46582e1e Merge pull request #3503 from mermaid-js/sidv/viteVitest
Build mermaid using Vite
2022-09-23 14:04:39 +02:00
Sidharth Vinod
913468a7b5 Merge branch 'sidv/viteVitest' into sidv/3061_monorepo
* sidv/viteVitest:
  fix: Core build
  fix: js-base64
  fix OutputOptions type
  fix: js-base64
  fix: json import, js-base64
  fix: json import
2022-09-23 17:29:35 +05:30
Sidharth Vinod
1e71798467 fix: Core build 2022-09-23 17:20:40 +05:30
Sidharth Vinod
8c63d002e7 fix: js-base64
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-09-23 16:53:11 +05:30
Sidharth Vinod
67b1e8dbe9 fix OutputOptions type 2022-09-23 16:00:27 +05:30
Sidharth Vinod
bc0be28f08 fix: js-base64
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-09-23 15:54:24 +05:30
Sidharth Vinod
eaa1602b1a fix: json import, js-base64
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-09-23 15:42:41 +05:30
Sidharth Vinod
2a86ced835 fix: json import
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-09-23 15:23:15 +05:30
Sidharth Vinod
ad49564ab5 vite build 2022-09-23 12:31:24 +05:30
Ian Lee
e8cef4aa81 Make corresponding change to docs/
Previously failed the linting CI job.
2022-09-22 23:58:17 -07:00
Ian Lee
56954067ab Mention obsidian has native support for mermaid 2022-09-22 23:31:30 -07:00
Ashley Engelund (weedySeaDragon @ github)
338ba704ba Merge remote-tracking branch 'MERMAID/develop' into develop 2022-09-22 23:28:24 -07:00
Sidharth Vinod
bf25be7cf0 Merge branch 'sidv/viteVitest' into sidv/3061_monorepo
* sidv/viteVitest:
  ts conversion
  cleanup
  remove esbuild
  fix: tests
  chore: Add recommended extensions
  Fix user-journey leaking css
  Add "Debug Current Test File" configuration for VSCode
  Fix unit test coverage
  Use vite for build
  Fix docs
  vite
  vite Server
  Cleanup
  Merge vitest & esbuild
  Merge vitest
  fix jison generation
  Vite
  Vite
2022-09-23 11:31:15 +05:30
Sidharth Vinod
404b718677 Merge branch '3061_making_a_monorepo' into sidv/3061_monorepo
* 3061_making_a_monorepo:
  Fixed paths for dev server
  Use of pnpm for the monorepo
  Use of pnpm for the monorepo
2022-09-23 11:23:38 +05:30
Sidharth Vinod
8a489176c3 ts conversion 2022-09-23 10:56:39 +05:30
Sidharth Vinod
f40f2a0b44 cleanup 2022-09-23 10:53:37 +05:30
Sidharth Vinod
d9406585c8 remove esbuild 2022-09-23 10:50:58 +05:30
Sidharth Vinod
9e35bf6e6f fix: tests 2022-09-23 10:40:56 +05:30
Sidharth Vinod
0d0de49231 Merge branch 'develop' into sidv/viteVitest
* develop:
  chore: Add recommended extensions
  Fix user-journey leaking css
  Add "Debug Current Test File" configuration for VSCode
2022-09-23 10:14:15 +05:30
Sidharth Vinod
dc53b2fde3 Merge pull request #3509 from pje/feature/3507_vscode_debug_test
Add "Debug Current Test File" configuration for VSCode
2022-09-23 10:13:00 +05:30
Sidharth Vinod
98d214fd60 chore: Add recommended extensions 2022-09-23 10:11:19 +05:30
Sidharth Vinod
adadc9ee26 Merge pull request #3510 from lishid/patch-2
Fix user-journey leaking css
2022-09-23 09:58:50 +05:30
Ashley Engelund (weedySeaDragon @ github)
777f888892 remove unused .attributeBoxText and oldAttributeBoxTextColor 2022-09-22 12:28:49 -07:00
Ashley Engelund (weedySeaDragon @ github)
84dfc8ee4b demos er.html add title, accDescription back in; simplify nearly to before 2022-09-22 12:26:36 -07:00
Ashley Engelund (weedySeaDragon @ github)
6f86047a8e theme-dark: change attributes background colors; base on lightened background color 2022-09-22 11:55:50 -07:00
Ashley Engelund (weedySeaDragon @ github)
2d7a289105 ER styles: replace hardcoded values with new options properties 2022-09-22 11:55:01 -07:00
Ashley Engelund (weedySeaDragon @ github)
353b62aa0a themes: define properties for ER diagrams, use the (old) hardcoded values 2022-09-22 11:53:57 -07:00
Ashley Engelund (weedySeaDragon @ github)
826cd67cc8 ER styles: define (old) hardcoded values for themes to use 2022-09-22 11:50:07 -07:00
Ashley Engelund (weedySeaDragon @ github)
9cb7054ff9 add attributes to demo ER diagram so attribute styles can be evaluated 2022-09-22 11:48:11 -07:00
Lishid
6309300eb6 Fix user-journey leaking css
This fixes a CSS syntax error that causes the CSS parser to soft-fail, which leads to the later CSS (custom styles) to not properly append the `#id` to them.
2022-09-22 12:48:23 -04:00
Patrick Ellis
0dce8f4104 Add "Debug Current Test File" configuration for VSCode
Just press F5 (or ⌘+⇧+P -> `Debug Current Test File`)
"
2022-09-22 12:33:09 -04:00
Sidharth Vinod
1c4eeb2d53 Fix unit test coverage 2022-09-22 15:45:44 +05:30
Sidharth Vinod
d6245fdbda Merge branch 'develop' into sidv/viteVitest
* develop: (30 commits)
  Fix docs
  Auto stash before merge of "develop" and "origin/develop"
  vite -> cts
  add lcov
  chore(deps-dev): bump esbuild from 0.15.6 to 0.15.8
  fix(docs): update link
  CI Concurrency 4
  Remove build
  Parallel e2e
  Revert "unify Jison tranformers"
  Update yarn.lock
  fix(docs): `mmd` detection
  Hope this fails
  Remove `docs:build` from postbuild.
  Add verification log
  This should fail CI
  chore(deps-dev): bump @types/lodash from 4.14.184 to 4.14.185
  Update integrations.md
  Add vitepress pluin
  Fix lint
  ...
2022-09-22 15:39:26 +05:30
Sidharth Vinod
aeb31fe1ae Use vite for build 2022-09-22 15:35:22 +05:30
Knut Sveidqvist
0e0a6c0f69 Fixed paths for dev server 2022-09-22 11:28:37 +02:00
Knut Sveidqvist
cccbb6939c Use of pnpm for the monorepo 2022-09-22 11:13:04 +02:00
Knut Sveidqvist
db31f61368 Use of pnpm for the monorepo 2022-09-22 11:12:57 +02:00
Emerson Bottero
a96c5ed83a docs: migrating to vitepress 2022-09-21 19:40:49 -03:00
Sidharth Vinod
ffbae081ff wip: esbuild Package 2022-09-22 00:02:53 +05:30
Ashley Engelund (weedySeaDragon @ github)
395cc29701 Merge remote-tracking branch 'MERMAID/develop' into develop 2022-09-21 09:29:28 -07:00
Sidharth Vinod
c93c7c75c9 Fix docs 2022-09-21 17:10:29 +05:30
Knut Sveidqvist
9b0d4a28ea Temp removaof some hursky rules etc for the build 2022-09-21 12:35:25 +02:00
Knut Sveidqvist
8dd82839cb Relocation of files 2022-09-21 11:03:33 +02:00
Knut Sveidqvist
24ef5f9fe4 Auto stash before merge of "develop" and "origin/develop" 2022-09-21 10:08:52 +02:00
Knut Sveidqvist
d08882d043 Merge pull request #3427 from mermaid-js/sidv/vitest
Vitest
2022-09-21 10:07:18 +02:00
Knut Sveidqvist
eea31a1046 Merge pull request #3498 from sidharthv96/sidv/parallelE2E
[DevOps] Parallel E2E
2022-09-21 09:15:07 +02:00
Sidharth Vinod
5d085fd3f6 Merge branch 'develop' into sidv/vitest
* develop:
  chore(deps-dev): bump esbuild from 0.15.6 to 0.15.8
2022-09-21 12:18:11 +05:30
Sidharth Vinod
30e2b08028 vite -> cts 2022-09-21 12:16:59 +05:30
Sidharth Vinod
533da47516 Merge branch 'develop' into sidv/vitest
* develop: (28 commits)
  fix(docs): update link
  Revert "unify Jison tranformers"
  Update yarn.lock
  Revert "fix(test): No esm exports"
  fix(test): No esm exports
  fix(docs): `mmd` detection
  Hope this fails
  unify Jison tranformers
  Fix jest
  Remove `docs:build` from postbuild.
  Add verification log
  This should fail CI
  fix: imports in HTML
  Revert "Add diagramAPI to outfile"
  Add `type: module` to package.json
  chore(deps-dev): bump @types/lodash from 4.14.184 to 4.14.185
  Update integrations.md
  Add vitepress pluin
  Update mermaid version
  Fix ports
  ...
2022-09-21 12:15:45 +05:30
Knut Sveidqvist
146c2e2dd9 Merge pull request #3490 from mermaid-js/dependabot/npm_and_yarn/develop/esbuild-0.15.8
chore(deps-dev): bump esbuild from 0.15.6 to 0.15.8
2022-09-21 08:45:08 +02:00
Sidharth Vinod
065756a90d Merge branch 'develop' into sidv/parallelE2E
* develop: (28 commits)
  fix(docs): update link
  Revert "unify Jison tranformers"
  Update yarn.lock
  Revert "fix(test): No esm exports"
  fix(test): No esm exports
  fix(docs): `mmd` detection
  Hope this fails
  unify Jison tranformers
  Fix jest
  Remove `docs:build` from postbuild.
  Add verification log
  This should fail CI
  fix: imports in HTML
  Revert "Add diagramAPI to outfile"
  Add `type: module` to package.json
  chore(deps-dev): bump @types/lodash from 4.14.184 to 4.14.185
  Update integrations.md
  Add vitepress pluin
  Update mermaid version
  Fix ports
  ...
2022-09-21 12:06:18 +05:30
Sidharth Vinod
6819fc05da add lcov 2022-09-21 12:02:28 +05:30
dependabot[bot]
bc14d56568 chore(deps-dev): bump esbuild from 0.15.6 to 0.15.8
Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.6 to 0.15.8.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.15.6...v0.15.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-21 06:18:23 +00:00
Knut Sveidqvist
01ca1cc8c7 Merge pull request #3493 from sidharthv96/sidv/testDocLint
Fix CI `docs:lint`
2022-09-21 08:15:13 +02:00
Knut Sveidqvist
f69ead5e08 Merge pull request #3489 from mermaid-js/dependabot/npm_and_yarn/develop/types/lodash-4.14.185
chore(deps-dev): bump @types/lodash from 4.14.184 to 4.14.185
2022-09-21 08:11:45 +02:00
Knut Sveidqvist
f29974628b Merge pull request #3476 from emersonbottero/patch-1
Add vitepress plugin
2022-09-21 08:10:27 +02:00
Knut Sveidqvist
ad2d098b52 Merge pull request #3452 from mermaid-js/sidv/removeWebpackBabel
Remove webpack & babel
2022-09-21 08:10:10 +02:00
Sidharth Vinod
247061919b fix(docs): update link 2022-09-21 11:17:03 +05:30
Sidharth Vinod
0c308134a9 Merge branch 'develop' into sidv/vitest
* develop: (23 commits)
  Revert #3475
  chore: updyaate browsers list
  Support EMPTYSTR in jison parser, add unit tests for git graph parser
  Use undefined to mean default tagging behavior
  feat(git): allow cherry-pick to suppress tag altogether
  Update src/diagrams/git/parser/gitGraph.jison
  fix(git): fix cherry-pick regex parsing error
  test(git): add basic parsing test for cherry-pick
  feat(git): cherry-pick keyword supports tag attribute
  ci(e2e-applitols): add applitools CI action
  Test docs:verify
  Cleanup docs
  Fixed Linting issues
  ci(e2e): re-enable e2e tests
  style: fix .github/workflow/e2e styling
  chore: upgrade cypress to v10
  fix(flowchart-v2): fix arrowMarkerAbsolute=true
  test(e2e): fix most arrowMarkerAbsolute tests
  text(e2e): give git tests consistent commit id
  test(e2e): widen flowchart width to within 10%
  ...
2022-09-21 11:11:46 +05:30
Sidharth Vinod
3982d19e57 Merge branch 'develop' into sidv/removeWebpackBabel
* develop:
  Revert #3475
  ci(e2e-applitols): add applitools CI action
2022-09-21 11:04:35 +05:30
Sidharth Vinod
55d706323d CI Concurrency 4 2022-09-21 10:42:27 +05:30
Sidharth Vinod
51df0a68cc Remove build 2022-09-21 10:41:47 +05:30
Sidharth Vinod
ca053e0a11 Parallel e2e 2022-09-21 10:36:38 +05:30
Sidharth Vinod
c260f7c20b Revert "unify Jison tranformers"
This reverts commit 135f2cc2fd.
2022-09-21 10:12:29 +05:30
Sidharth Vinod
9f0137a34d Update yarn.lock 2022-09-21 10:05:57 +05:30
Sidharth Vinod
7bd7bcf4b8 vite 2022-09-21 09:57:09 +05:30
Sidharth Vinod
36ad4a847e vite Server 2022-09-21 00:47:04 +05:30
Sidharth Vinod
5791fc9a4d Cleanup 2022-09-21 00:15:52 +05:30
Sidharth Vinod
d7093c4891 Merge branch 'sidv/vitestEsbuildOnly' into sidv/viteVitest
* sidv/vitestEsbuildOnly:
  Merge vitest & esbuild
  Merge vitest
  Revert "fix(test): No esm exports"
  fix(test): No esm exports
  unify Jison tranformers
  Fix jest
  fix: imports in HTML
  Revert "Add diagramAPI to outfile"
  Add `type: module` to package.json
  Update mermaid version
  Fix ports
  Fix mjs resolution
  Fix import errors
  fix: conflict
  ESM test
  Add local jison linting
  chore: cleanup
  chore: Remove webpack & babel dependencies
  feat: Remove webpack
2022-09-21 00:15:11 +05:30
Sidharth Vinod
506e427d56 Merge branch 'develop' into sidv/vite
* develop:
  Revert #3475
  chore: update browsers list
  Support EMPTYSTR in jison parser, add unit tests for git graph parser
  Use undefined to mean default tagging behavior
  feat(git): allow cherry-pick to suppress tag altogether
  Update src/diagrams/git/parser/gitGraph.jison
  fix(git): fix cherry-pick regex parsing error
  test(git): add basic parsing test for cherry-pick
  feat(git): cherry-pick keyword supports tag attribute
  ci(e2e-applitols): add applitools CI action
  Test docs:verify
  Cleanup docs
  Fixed Linting issues
  #3409 Clean up dead code
  #3409 Fixed the truncated tags issue
2022-09-21 00:13:14 +05:30
Sidharth Vinod
59f8f5f65e Merge vitest & esbuild 2022-09-21 00:01:48 +05:30
Sidharth Vinod
3b30232e88 Merge vitest 2022-09-20 23:51:21 +05:30
Sidharth Vinod
e0aae3e31f Revert "fix(test): No esm exports"
This reverts commit c21c026749.
2022-09-20 23:12:51 +05:30
Sidharth Vinod
c21c026749 fix(test): No esm exports 2022-09-20 23:10:05 +05:30
Sidharth Vinod
b9cb7e9898 fix(docs): mmd detection 2022-09-20 23:01:05 +05:30
Ashley Engelund (weedySeaDragon @ github)
1ea546a0a5 Merge remote-tracking branch 'MERMAID/develop' into develop
# Conflicts:
#	src/diagrams/git/gitGraphParserV2.spec.js
2022-09-20 10:25:18 -07:00
Sidharth Vinod
ffdf268ba2 Merge branch 'develop' into sidv/testDocLint
* develop:
  ci(e2e-applitols): add applitools CI action
2022-09-20 22:52:02 +05:30
Sidharth Vinod
f34008b71a Merge branch 'develop' into sidv/testDocLint
* develop:
  Revert #3475
2022-09-20 22:51:12 +05:30
Sidharth Vinod
8f009ed815 Hope this fails 2022-09-20 22:50:39 +05:30
Knut Sveidqvist
71d252f706 Merge pull request #3483 from aloisklink/ci/add-applitools-action
ci(e2e-applitols): add applitools CI action
2022-09-20 19:19:34 +02:00
Sidharth Vinod
135f2cc2fd unify Jison tranformers 2022-09-20 22:46:27 +05:30
Sidharth Vinod
b83f18327a Fix jest 2022-09-20 22:44:49 +05:30
Sidharth Vinod
d5fc319d4e Remove docs:build from postbuild. 2022-09-20 22:42:05 +05:30
Sidharth Vinod
c343e4a1e3 Add verification log 2022-09-20 22:31:53 +05:30
Sidharth Vinod
b72dad9c5b Revert #3475
Was an accidental merge.
2022-09-20 22:23:59 +05:30
Sidharth Vinod
2ada935842 This should fail CI 2022-09-20 22:20:18 +05:30
Sidharth Vinod
dab43da202 fix: imports in HTML 2022-09-20 22:13:49 +05:30
Sidharth Vinod
0a944a5de1 Revert "Add diagramAPI to outfile"
This reverts commit a87abc00c6.
2022-09-20 21:54:32 +05:30
Sidharth Vinod
bb824f1147 Merge branch 'sidv/esbuildFail' into sidv/webpackBabelRemoval
* sidv/esbuildFail:
  Update mermaid version
  Fix ports
  Fix mjs resolution
  Fix import errors
  fix: conflict
2022-09-20 21:31:42 +05:30
Sidharth Vinod
817a89df70 Merge branch 'develop' into sidv/removeWebpackBabel
* develop:
  chore: update browsers list
  Support EMPTYSTR in jison parser, add unit tests for git graph parser
  Use undefined to mean default tagging behavior
  feat(git): allow cherry-pick to suppress tag altogether
  Update src/diagrams/git/parser/gitGraph.jison
  fix(git): fix cherry-pick regex parsing error
  test(git): add basic parsing test for cherry-pick
  feat(git): cherry-pick keyword supports tag attribute
  Test docs:verify
  Cleanup docs
  Fixed Linting issues
2022-09-20 21:15:30 +05:30
Sidharth Vinod
827b3d47b7 Add type: module to package.json 2022-09-20 21:14:56 +05:30
Knut Sveidqvist
00c1732b9b Merge pull request #3475 from sidharthv96/sidv/testDocs
WIP: Fix docs:verify in CI
2022-09-20 17:42:36 +02:00
Ashish Jain
a266a9c539 Merge pull request #3479 from elliot-nelson/enelson/git-cherry-pick-tag
feat(git): cherry-pick keyword supports tag attribute
2022-09-20 17:38:01 +02:00
Alois Klink
48d94568ce fix(git): fix cherry-pick regex parsing error
I forgot to escape the `-` character in a regex statement.

Fixes: 1527956669
2022-09-19 09:53:42 -07:00
Alois Klink
95d92999bb test(git): add basic parsing test for cherry-pick
Currently, cherry-pick in gitGraphs only has e2e tests,
no parsing unit tests.
2022-09-19 09:53:42 -07:00
ashishj
51a94e6904 Fixed Linting issues 2022-09-19 09:53:42 -07:00
ashishj
43954b9500 #3409 Fixed the truncated tags issue 2022-09-19 09:53:42 -07:00
weedySeaDragon
636ff1c868 chore: update browsers list 2022-09-19 07:19:25 +00:00
Sidharth Vinod
7bf877d820 fix jison generation 2022-09-19 12:49:24 +05:30
mmorel-35
8e3f9868eb chore: update browsers list 2022-09-19 07:18:46 +00:00
dependabot[bot]
e83c79a169 chore(deps-dev): bump @types/lodash from 4.14.184 to 4.14.185
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.14.184 to 4.14.185.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-19 07:05:12 +00:00
Knut Sveidqvist
a6b83c9742 Merge pull request #3480 from aloisklink/fix/broken-cherry-pick-parsing
Fix broken cherry-pick parsing in gitgraph
2022-09-19 08:31:55 +02:00
Knut Sveidqvist
7635db4c1e Merge pull request #3454 from mermaid-js/3409_Truncated_Tags
3409 Fix for truncated tags in GitGraph
2022-09-19 08:28:41 +02:00
Elliot Nelson
183fc35fea Support EMPTYSTR in jison parser, add unit tests for git graph parser 2022-09-19 00:04:23 -04:00
Elliot Nelson
9cbacb0159 Use undefined to mean default tagging behavior 2022-09-18 16:25:10 -04:00
Elliot Nelson
f37ac53118 Merge remote-tracking branch 'aloisklink/fix/broken-cherry-pick-parsing' into enelson/git-cherry-pick-tag 2022-09-18 16:21:53 -04:00
Elliot Nelson
4e4b5ccf8d feat(git): allow cherry-pick to suppress tag altogether 2022-09-18 09:22:35 -04:00
Elliot Nelson
4f96116c43 Update src/diagrams/git/parser/gitGraph.jison
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-09-18 08:59:47 -04:00
Alois Klink
aba458b832 fix(git): fix cherry-pick regex parsing error
I forgot to escape the `-` character in a regex statement.

Fixes: 1527956669
2022-09-18 07:00:55 +01:00
Alois Klink
c39a6f27d4 test(git): add basic parsing test for cherry-pick
Currently, cherry-pick in gitGraphs only has e2e tests,
no parsing unit tests.
2022-09-18 06:59:44 +01:00
Elliot Nelson
ae920eaa93 feat(git): cherry-pick keyword supports tag attribute 2022-09-17 23:57:32 -04:00
Alois Klink
5c8fda3891 ci(e2e-applitols): add applitools CI action
Adds a [`workflow_dispatch`][1] GitHub Actions CI workflow
that performs an E2E Cypress rendering test with Applitools
integration.

If the APPLITOOLS_API_KEY secret is not set, this action fallsback to
just doing a normal E2E Cypress test without Applitools support.

[1]: https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow
2022-09-17 22:34:29 +01:00
Emerson Bottero
e1f399a06a Update integrations.md 2022-09-17 12:35:28 -03:00
Emerson Bottero
a481968ec1 Add vitepress pluin 2022-09-16 23:26:25 -03:00
Sidharth Vinod
c7ec44da09 Merge branch 'develop' into sidv/vite
* develop: (221 commits)
  cleanup
  Fix docs
  Fix coverage
  Fix for issues in errorhandling and class diagrams after refactoring
  Replace GoogleAnalytics with Plausible
  chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
  chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
  chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
  fix(git): support single character branch names
  Cleanup unused variables and some commented out code
  Cleanup fixing som lingering issues
  Remove extension
  Apply suggestions from code review
  ci(e2e): re-enable e2e tests
  style: fix .github/workflow/e2e styling
  chore: upgrade cypress to v10
  fix(flowchart-v2): fix arrowMarkerAbsolute=true
  test(e2e): fix most arrowMarkerAbsolute tests
  text(e2e): give git tests consistent commit id
  test(e2e): widen flowchart width to within 10%
  ...
2022-09-16 23:41:46 +05:30
Sidharth Vinod
22dbe49945 Merge branch 'develop' into sidv/esbuildFail
* develop:
  cleanup
  Fix docs
  Fix coverage
  Fix for issues in errorhandling and class diagrams after refactoring
  Replace GoogleAnalytics with Plausible
  fix(git): support single character branch names
  Cleanup unused variables and some commented out code
  ci(e2e): re-enable e2e tests
  style: fix .github/workflow/e2e styling
  chore: upgrade cypress to v10
  fix(flowchart-v2): fix arrowMarkerAbsolute=true
  test(e2e): fix most arrowMarkerAbsolute tests
  text(e2e): give git tests consistent commit id
  test(e2e): widen flowchart width to within 10%
  test(e2e): fix failing xss9 test
2022-09-16 23:25:55 +05:30
Sidharth Vinod
25ed9063f2 Merge branch 'develop' into sidv/removeWebpackBabel
* develop: (77 commits)
  cleanup
  Fix docs
  Fix coverage
  Fix for issues in errorhandling and class diagrams after refactoring
  Replace GoogleAnalytics with Plausible
  chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
  chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
  chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
  fix(git): support single character branch names
  Cleanup unused variables and some commented out code
  Cleanup fixing som lingering issues
  Remove extension
  Apply suggestions from code review
  ci(e2e): re-enable e2e tests
  style: fix .github/workflow/e2e styling
  chore: upgrade cypress to v10
  fix(flowchart-v2): fix arrowMarkerAbsolute=true
  test(e2e): fix most arrowMarkerAbsolute tests
  text(e2e): give git tests consistent commit id
  test(e2e): widen flowchart width to within 10%
  ...
2022-09-16 23:24:17 +05:30
Alois Klink
e8eb2ab03f Merge pull request #3459 from aloisklink/chore/update-cypress
Update Cypress to v10 and fix E2E errors
2022-09-16 17:32:10 +01:00
Sidharth Vinod
48fb5b3f28 Test docs:verify 2022-09-16 19:55:30 +05:30
Sidharth Vinod
27e40248ff Cleanup docs 2022-09-16 19:39:38 +05:30
Sidharth Vinod
98506d888c Fix lint 2022-09-16 18:45:12 +05:30
Sidharth Vinod
be7ab54a09 Fix lint 2022-09-16 18:42:15 +05:30
Sidharth Vinod
5a2ca03fff Merge branch 'sidv/esbuild' into sidv/vitest
* sidv/esbuild: (115 commits)
  cleanup
  Fix docs
  Fix coverage
  Fix for issues in errorhandling and class diagrams after refactoring
  Replace GoogleAnalytics with Plausible
  chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
  chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
  chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
  fix(git): support single character branch names
  Cleanup unused variables and some commented out code
  Cleanup fixing som lingering issues
  Remove extension
  Apply suggestions from code review
  chore(deps-dev): bump eslint-plugin-jest from 27.0.1 to 27.0.4 (#3458)
  chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3457)
  chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 (#3445)
  chore(deps-dev): bump @babel/preset-env from 7.18.10 to 7.19.0 (#3442)
  chore(deps-dev): bump @typescript-eslint/parser from 5.36.1 to 5.37.0 (#3451)
  chore(deps-dev): bump @babel/core from 7.18.13 to 7.19.0 (#3447)
  chore(deps-dev): bump jest-environment-jsdom from 29.0.2 to 29.0.3 (#3441)
  ...
2022-09-16 18:38:22 +05:30
Knut Sveidqvist
37eb0454fd Merge pull request #3386 from mermaid-js/sidv/esbuild
ESBuild
2022-09-16 15:01:39 +02:00
Sidharth Vinod
bb413d555e cleanup 2022-09-16 18:22:46 +05:30
Sidharth Vinod
2579bf1ad9 Merge branch 'develop' into sidv/esbuild
* develop:
  Fix docs
2022-09-16 18:16:45 +05:30
Sidharth Vinod
0605bce887 Fix docs 2022-09-16 18:12:52 +05:30
Sidharth Vinod
6452ccc220 Merge branch 'develop' into sidv/esbuild
* develop:
  Fix for issues in errorhandling and class diagrams after refactoring
2022-09-16 18:09:39 +05:30
Sidharth Vinod
2693c9b024 Fix coverage 2022-09-16 18:09:24 +05:30
Knut Sveidqvist
38d9795191 Merge pull request #3470 from mermaid-js/fix_for_error_handling
Fix for issues in errorhandling and class diagrams after refactoring
2022-09-16 14:13:07 +02:00
Knut Sveidqvist
9c88c785cb Fix for issues in errorhandling and class diagrams after refactoring 2022-09-16 14:05:15 +02:00
Sidharth Vinod
2f41013740 Merge branch 'develop' into sidv/esbuild
* develop:
  Replace GoogleAnalytics with Plausible
  fix(git): support single character branch names
  Cleanup unused variables and some commented out code
  Release 9.1.7
  Fix for broken rendering test
  Fix for issue #3428, load the configured diagrams even when initialize has not been called.
  #3395 Renabling the error graph which is rendered on error
  #3395 Fix for lopp stopping at first failure
2022-09-16 17:30:07 +05:30
Knut Sveidqvist
2d9f25b163 Merge pull request #3469 from mermaid-js/sidv/mergeRelease
Merge release 9.1.7
2022-09-16 11:22:35 +02:00
ashishj
4c5d813e58 Fixed Linting issues 2022-09-16 09:25:22 +02:00
Knut Sveidqvist
10d9b88965 Merge pull request #3466 from mermaid-js/sidv/removeGA
Replace GoogleAnalytics with Plausible
2022-09-16 08:54:38 +02:00
Knut Sveidqvist
207235ea83 Merge pull request #3464 from aloisklink/fix/3463-support-single-char-branch-names
fix(git): support single character branch names
2022-09-16 08:53:12 +02:00
Knut Sveidqvist
97ab62514c Merge pull request #3461 from mermaid-js/mindmap_warning
Cleanup unused variables and some commented out code
2022-09-16 08:44:01 +02:00
Sidharth Vinod
790922b938 Update mermaid version 2022-09-15 23:02:04 +05:30
Sidharth Vinod
08af10d439 Merge branch 'sidv/esbuild' into sidv/esbuildFail
* sidv/esbuild:
  chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
  chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
  chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
  Cleanup fixing som lingering issues
  Apply suggestions from code review
  chore: fix eslint warnings
  chore: Turn off eslint rules in spec, demos, etc.
2022-09-15 23:01:24 +05:30
Sidharth Vinod
73d02b2582 Merge branch 'develop' into sidv/esbuild
* develop: (56 commits)
  chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
  chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
  chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
  Cleanup fixing som lingering issues
  Apply suggestions from code review
  chore(deps-dev): bump eslint-plugin-jest from 27.0.1 to 27.0.4 (#3458)
  chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3457)
  chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 (#3445)
  chore(deps-dev): bump @babel/preset-env from 7.18.10 to 7.19.0 (#3442)
  chore(deps-dev): bump @typescript-eslint/parser from 5.36.1 to 5.37.0 (#3451)
  chore(deps-dev): bump @babel/core from 7.18.13 to 7.19.0 (#3447)
  chore(deps-dev): bump jest-environment-jsdom from 29.0.2 to 29.0.3 (#3441)
  chore(deps-dev): bump babel-jest from 29.0.2 to 29.0.3 (#3448)
  chore(deps-dev): bump eslint from 8.23.0 to 8.23.1
  chore: fix eslint warnings
  chore: Turn off eslint rules in spec, demos, etc.
  chore(deps-dev): bump typescript from 4.8.2 to 4.8.3 (#3446)
  chore(deps): bump actions/checkout from 2 to 3 (#3449)
  change wording of console log message (use comma)
  Moving out tests from mermaid.spec.js
  ...
2022-09-15 23:00:24 +05:30
Sidharth Vinod
5c2a45cd4d Replace GoogleAnalytics with Plausible 2022-09-15 17:48:00 +05:30
dependabot[bot]
064c3134e5 chore(deps): bump dompurify from 2.3.10 to 2.4.0 (#3444)
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.3.10 to 2.4.0.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.3.10...2.4.0)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-15 07:42:28 +02:00
dependabot[bot]
6340c157e8 chore(deps): bump stylis from 4.1.1 to 4.1.2 (#3439)
Bumps [stylis](https://github.com/thysultan/stylis.js) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/thysultan/stylis.js/releases)
- [Commits](https://github.com/thysultan/stylis.js/compare/v4.1.1...v4.1.2)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-15 07:42:13 +02:00
dependabot[bot]
e9239f83e9 chore(deps-dev): bump webpack-dev-server from 4.10.1 to 4.11.0 (#3450)
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.10.1 to 4.11.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.10.1...v4.11.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>
Tested-by: Alois Klink <19716675+aloisklink@users.noreply.github.com>
2022-09-15 01:55:27 +01:00
Alois Klink
59c69600e8 fix(git): support single character branch names
In gitGraph, add support branch names that only have a single
character.

The branch regex is checking for a starting character, and an
ending character, so it currently needs at least two characters.

I've wrapped everything except the first character in a `()?` to fix
this.

There are some really complicated regexes that do match what
valid git branches are (see https://stackoverflow.com/a/12093994), but
I'm reluctant to add them in, since it will be a pain to test all
the different edgecases.

Hopefully https://github.com/mermaid-js/mermaid/pull/3432 might be used
in the future to make a better gitgraph parser!
2022-09-15 01:05:11 +01:00
Sidharth Vinod
811f838a2d Fix ports 2022-09-14 14:33:38 +05:30
Sidharth Vinod
b4af820ed1 Fix mjs resolution 2022-09-14 12:04:22 +05:30
Sidharth Vinod
ac629c91d6 Fix import errors 2022-09-14 12:01:47 +05:30
Sidharth Vinod
bb413e0022 Merge branch 'sidv/esbuild' into sidv/esbuildFail
* sidv/esbuild:
  Remove extension
2022-09-14 11:36:20 +05:30
Sidharth Vinod
a7fa40ecda Remove extension 2022-09-14 11:35:49 +05:30
Sidharth Vinod
d83c9f5a70 Merge branch 'sidv/mergeRelease' into sidv/esbuildFail
* sidv/mergeRelease:
  chore(deps-dev): bump eslint-plugin-jest from 27.0.1 to 27.0.4 (#3458)
  chore(deps-dev): bump @typescript-eslint/eslint-plugin (#3457)
  chore(deps-dev): bump concurrently from 7.3.0 to 7.4.0 (#3445)
  chore(deps-dev): bump @babel/preset-env from 7.18.10 to 7.19.0 (#3442)
  chore(deps-dev): bump @typescript-eslint/parser from 5.36.1 to 5.37.0 (#3451)
  chore(deps-dev): bump @babel/core from 7.18.13 to 7.19.0 (#3447)
  chore(deps-dev): bump jest-environment-jsdom from 29.0.2 to 29.0.3 (#3441)
  chore(deps-dev): bump babel-jest from 29.0.2 to 29.0.3 (#3448)
  chore(deps-dev): bump eslint from 8.23.0 to 8.23.1
  Release 9.1.7
  Fix for broken rendering test
  Fix for issue #3428, load the configured diagrams even when initialize has not been called.
2022-09-14 11:14:23 +05:30
Sidharth Vinod
539ee49594 Merge remote-tracking branch 'origin/release/9.1.7' into sidv/mergeRelease
* origin/release/9.1.7:
  Release 9.1.7
  Fix for broken rendering test
  Fix for issue #3428, load the configured diagrams even when initialize has not been called.
2022-09-14 11:11:12 +05:30
Alois Klink
20d22a6468 ci(e2e): re-enable e2e tests
I've removed the coverage upload bit, since although the
[@cypress/code-coverage][1] plugin is pretty easy to setup,
it requires babel, which we're about to remove and replace
with ESBuild.
2022-09-14 04:15:52 +01:00
Alois Klink
c5033b92b4 style: fix .github/workflow/e2e styling
Uses prettier to fix e2e style issues.
2022-09-14 04:15:52 +01:00
Alois Klink
625ec813b9 chore: upgrade cypress to v10
Cypress v10 had some minor breaking changes,
(e.g. the cypress/plugins folder dissapeared)
so I had to change some things.

It looks like the Cypress was previously reverted in [dee9cfe][1],
due to applitools not working properly,
but I think my changes fix this, so it should be okay.

[1]: dee9cfea85
2022-09-14 04:15:52 +01:00
Alois Klink
595f7680e9 fix(flowchart-v2): fix arrowMarkerAbsolute=true
The if-check for arrowMarkerAbsolute in the flowchart-v2 code is in
dagre-wrapper. Unfortunately, I can't seem to find a way to find the
local conf (e.g. the one set via `flowRenderer.setConf()`, so instead
I'm using global mermaid config from `src/config`.

Flowchart v1 arrowMarkerAbsolute=true is still broken, but I'm not
really sure how to fix that.
2022-09-14 04:15:52 +01:00
Alois Klink
6e7037bafd test(e2e): fix most arrowMarkerAbsolute tests
The arrows between flowcharts do not have the class edgePath.

Instead, I'm loading all `<path>`s within the `<g class='edgePaths'>`
2022-09-14 04:15:52 +01:00
Alois Klink
a25c9a30d0 text(e2e): give git tests consistent commit id
gitGraph render tests are currently using random commit ids,
which causes visual regression tests to fail.

I couldn't find a way to make the random commit IDs consistent
(JavaScript/Cypress doesn't seem to have a random.seed() function),
so I've just hardcoded all the commit ids.
2022-09-14 04:15:52 +01:00
Alois Klink
05b8a6e77f test(e2e): widen flowchart width to within 10%
Widen flowchart width acceptable values to within 10% of 300px.
On my local environment, I'm getting 283px, which is 5.5% of 300px.
2022-09-14 04:15:52 +01:00
Alois Klink
f05c790248 test(e2e): fix failing xss9 test
Fixes xx9 test to continue running even if JavaScript throws an
exception.
2022-09-14 04:15:52 +01:00
Knut Sveidqvist
0c0468123f Release 9.1.7 2022-09-13 19:55:34 +02:00
ashishj
50da58afe0 Fix for broken rendering test 2022-09-13 19:18:12 +02:00
ashishj
8c4808a681 #3409 Clean up dead code 2022-09-13 18:27:25 +02:00
ashishj
d60ce53e05 #3409 Fixed the truncated tags issue 2022-09-13 18:23:24 +02:00
Sidharth Vinod
a7f0b2ba21 Merge branch 'develop' into sidv/esbuildFail
* develop: (40 commits)
  chore(deps-dev): bump typescript from 4.8.2 to 4.8.3 (#3446)
  chore(deps): bump actions/checkout from 2 to 3 (#3449)
  change wording of console log message (use comma)
  Moving out tests from mermaid.spec.js
  Fix for issue with setting the loglevel via numbers
  chore: update browsers list
  Limiting the interaction between the mermaid diagram and Mermaid to the diagramAPI
  Fix for broken tests
  chore(docs): Remove edit this page
  fix(git): support unusual prefixes in branch name
  formatting
  eslint fixes
  Creating detectors and moving out diagram specific code from the diagramAPI
  add eslint-disable no-console for file
  fix: Run precommit hook for doc.mts changes too
  chore: Updated doc files
  fix: Formatting issue
  (formatting only) sort imports just to force a new CI lint check
  ci: re-enable coveralls coverage upload
  build(dev-deps): remove unused `coveralls`
  ...
2022-09-13 15:59:18 +05:30
Sidharth Vinod
c5bba0b153 fix: conflict 2022-09-13 15:57:42 +05:30
Sidharth Vinod
94868e48cb ESM test 2022-09-13 12:46:29 +05:30
Sidharth Vinod
e7ac2368c3 Add local jison linting 2022-09-13 12:46:14 +05:30
Sidharth Vinod
bbaf2c2f20 chore: cleanup 2022-09-13 11:32:39 +05:30
Sidharth Vinod
ecd175dd38 chore: Remove webpack & babel dependencies 2022-09-13 11:31:42 +05:30
Sidharth Vinod
5434cfc89d feat: Remove webpack 2022-09-13 11:26:44 +05:30
Sidharth Vinod
a87abc00c6 Add diagramAPI to outfile 2022-09-13 11:25:14 +05:30
Sidharth Vinod
d8735060dc Disable minimization on non min files. 2022-09-12 11:55:40 +05:30
Sidharth Vinod
681f4bb803 Keep webpack as default build option 2022-09-12 11:41:50 +05:30
Sidharth Vinod
e740325d84 Unify webpack build 2022-09-12 11:41:26 +05:30
Sidharth Vinod
a3bda3c559 Merge pull request #3437 from aloisklink/esbuild-backwards-compatible-core-js
Esbuild: backwards-compatible `mermaid.core.mjs`
2022-09-12 10:55:38 +05:30
Alois Klink
3f76eb0ac2 docs: update mermaid.core.* JSDoc
Fix typo and add that `mermaid.core.*` is compatible with Vite.
2022-09-12 06:21:57 +01:00
Sidharth Vinod
0e504f30b9 Merge branch 'develop' into sidv/esbuild
* develop:
  Suppress errors
  Introduce stricter linting
  Introduce stricter linting
2022-09-12 09:49:31 +05:30
Alois Klink
5554725f63 build: change package export to mermaid.core.mjs
`mermaid.core.mjs` should be the default export.
This is because it does not bundle `node_modules/`, allowing users of
mermaid to bundle dependencies themselves,
using Webpack/ESBuild/others.
2022-09-11 21:56:32 +01:00
Alois Klink
37aaca0090 build: convert core build to unbundled ESM
The `mermaid.core.js` build was previously a UMD build that did not
have `node_modules` bundled.

This was designed for users to add `mermaid` to their own apps,
then bundle with Webpack/ESBuild.
Hence the bundle test in `cypress/platform/bundle-test.js`.

As ESBuild does not support UMD, I've switched the `mermaid.core.js`
to instead use ESM, as Mermaid now requires ESM
(due to d3 requiring ESM). All modern bundlers also support ESM.
2022-09-11 21:56:30 +01:00
Alois Klink
48a899f7a9 build: remove main function from .jison files
When converting a `.jison` file into a CommonJS module,
jison by default adds a main() function that calls `require("fs");`

Even though the main function is never used in the browser,
because `fs` is a Node.JS only module, this causes some esbuild issues.

To disable this, we can just set an empty main to the jison generator.
2022-09-11 21:56:26 +01:00
Sidharth Vinod
5148acb20f Specify iife format 2022-09-09 17:49:11 +05:30
Sidharth Vinod
c8d3c3ac4f Correct name umd -> iife 2022-09-09 17:48:09 +05:30
Sidharth Vinod
1029ce4527 fix: Add .core build. 2022-09-09 17:32:13 +05:30
Knut Sveidqvist
0f56c9a85d Fix for issue #3428, load the configured diagrams even when initialize has not been called. 2022-09-09 13:37:37 +02:00
Knut Sveidqvist
ffcb73ad5f Merge pull request #3434 from mermaid-js/sidv/memoize
Fix memoize
2022-09-09 13:34:31 +02:00
Sidharth Vinod
d2e7b1e56f fix: Support treeshaking 2022-09-09 16:58:48 +05:30
Sidharth Vinod
b1770d3d06 Merge branch 'sidv/esbuild' into sidv/memoize
* sidv/esbuild:
2022-09-09 16:37:29 +05:30
Sidharth Vinod
8e2287a86d Merge branch 'develop' into sidv/esbuild
* develop: (22 commits)
  fix: Tsconfig
  ci: lint .jison files for any console.log()
  refactor: remove `console.log` in c4Diagram.jison
  style: forbid using `console` in mermaid src code
  Add tests for other boundary properties
  Add first test for Boundary
  Test all different types of systems
  Introduce shape list in test
  Add tests for C4 System
  Make test grouping more explicit
  Copy tests from Person to PersonExt
  Add test for link to Person_Ext
  Add question on Person_Ext
  Add test for structure of Person_Ext
  Add test for alias
  Add test for label
  Add test for description
  Add test for $tags
  Add test for $link
  Add test for $sprite
  ...
2022-09-09 16:36:46 +05:30
Sidharth Vinod
5aae45dc97 fix: Use lodash memoize 2022-09-09 16:34:57 +05:30
Sidharth Vinod
1c6328cc1b Merge branch 'develop' into sidv/memoize
* develop: (22 commits)
  fix: Tsconfig
  ci: lint .jison files for any console.log()
  refactor: remove `console.log` in c4Diagram.jison
  style: forbid using `console` in mermaid src code
  Add tests for other boundary properties
  Add first test for Boundary
  Test all different types of systems
  Introduce shape list in test
  Add tests for C4 System
  Make test grouping more explicit
  Copy tests from Person to PersonExt
  Add test for link to Person_Ext
  Add question on Person_Ext
  Add test for structure of Person_Ext
  Add test for alias
  Add test for label
  Add test for description
  Add test for $tags
  Add test for $link
  Add test for $sprite
  ...
2022-09-09 16:02:37 +05:30
Sidharth Vinod
8a476f882d Remove native memoize 2022-09-09 16:02:26 +05:30
Sidharth Vinod
056d5200c6 Fix postbuild 2022-09-07 21:06:35 +05:30
Sidharth Vinod
86cbf85358 Merge branch 'develop' into sidv/esbuild
* develop:
  Update prettier
  chore: Run postbuild with prepare
  (formatting) prettier fix
  Removed warnings in the grammar oand some console logging
  unmangle sentence about doc changes committed and showing up on docsify site
  change references from /docs to /src/docs; rework doc section in CONTRIBUTING
2022-09-07 21:03:07 +05:30
Sidharth Vinod
407927c8ec Fix test 2022-09-07 18:04:43 +05:30
Sidharth Vinod
5905787bea Fix tsconfig 2022-09-07 13:43:29 +05:30
Sidharth Vinod
a61d95a005 Add doc 2022-09-07 13:42:39 +05:30
Sidharth Vinod
18201d326c Fix formatting 2022-09-07 13:39:36 +05:30
Sidharth Vinod
c7ba253e7c Cleanup 2022-09-07 13:34:56 +05:30
Sidharth Vinod
f27dff2186 Trim down vite config 2022-09-07 12:52:48 +05:30
Sidharth Vinod
0ee0862fae Add coverage 2022-09-07 12:47:39 +05:30
Sidharth Vinod
d2df7173e3 Merge branch 'sidv/esbuild' into sidv/vitest
* sidv/esbuild:
  Fix doc formatting
  Fix mermaidAPI mock
2022-09-07 12:06:51 +05:30
Sidharth Vinod
a61c17c1a9 Fix doc formatting 2022-09-07 12:02:59 +05:30
Sidharth Vinod
853b676d48 Merge branch 'develop' into sidv/esbuild
* develop: (37 commits)
  fix JSDOC @param, @returns; fixed a few minor typos in comments
  Update after lint comments
  Regenerate the directive docs as I changed them
  chore(deps-dev): bump typescript from 4.7.4 to 4.8.2
  Update duplicate copy pasted directive description
  chore(deps-dev): bump babel-jest from 29.0.1 to 29.0.2
  Lint fixes
  Removing requirement to add ids for nodes with a shape
  Merged typescript changes
  Updated with cloud and bang shapes
  Adding cloud and bang shapes
  fix(git): support numeric branch names
  Fix for unit tests after refactoring
  Documenting classes and icons
  Startingpoint for the documentation
  Some theming/styling fixes
  Adding some rendering tests
  ...
2022-09-07 11:57:33 +05:30
Sidharth Vinod
51dbdb933c Fix mermaidAPI mock
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-09-07 11:56:31 +05:30
Sidharth Vinod
766e111ac1 Fix mindmap import 2022-09-07 11:27:20 +05:30
Sidharth Vinod
004ea9872b Merge branch 'develop' into sidv/vitest
* develop: (37 commits)
  fix JSDOC @param, @returns; fixed a few minor typos in comments
  Update after lint comments
  Regenerate the directive docs as I changed them
  chore(deps-dev): bump typescript from 4.7.4 to 4.8.2
  Update duplicate copy pasted directive description
  chore(deps-dev): bump babel-jest from 29.0.1 to 29.0.2
  Lint fixes
  Removing requirement to add ids for nodes with a shape
  Merged typescript changes
  Updated with cloud and bang shapes
  Adding cloud and bang shapes
  fix(git): support numeric branch names
  Fix for unit tests after refactoring
  Documenting classes and icons
  Startingpoint for the documentation
  Some theming/styling fixes
  Adding some rendering tests
  ...
2022-09-07 11:25:39 +05:30
Sidharth Vinod
bf4607cf08 test: Migrate to vitest from jest 2022-09-07 11:24:40 +05:30
Sidharth Vinod
3a179170bb Surface jison errors
Co-authored-by: Alois Klink <alois@aloisklink.com>
2022-09-06 20:23:46 +05:30
Sidharth Vinod
a0fa8df0f1 Merge branch 'develop' into sidv/esbuild
* develop:
  chore(deps-dev): bump @types/dompurify from 2.3.3 to 2.3.4
  chore(deps-dev): bump jest-environment-jsdom from 29.0.1 to 29.0.2
2022-09-05 22:07:37 +05:30
Sidharth Vinod
f9bf53551f Merge branch 'develop' into sidv/esbuild
* develop: (50 commits)
  Build docs
  chore: update browsers list
  Fix pre
  Fix mermaid code formatting in html
  Prettier pass
  Fix XSS htmls
  fix #3407 Replace `div` with `pre` and format
  Add change in `src/docs`
  Fix lint issue
  build: run `build:prod` on `yarn prepare`
  Build documentation
  Fix typo
  Fix typo in documentation
  Fix doc
  Add files only when running from lint-staged
  Add files only when running from lint-staged
  Fix configuration doc
  Prettier Pass
  Add dotfiles
  Prettier
  ...
2022-09-05 20:31:44 +05:30
Knut Sveidqvist
e5212c25f5 Merge pull request #3398 from mermaid-js/3395_fix_error_handling
Re-enabling error graph
2022-09-05 15:13:49 +02:00
Knut Sveidqvist
5584fef1b0 #3395 Renabling the error graph which is rendered on error 2022-09-02 14:05:31 +02:00
Knut Sveidqvist
98f37d64ea #3395 Fix for lopp stopping at first failure 2022-09-02 12:45:22 +02:00
Sidharth Vinod
99923fcd0f Test - esbuild 2022-09-02 11:08:14 +05:30
Sidharth Vinod
e06a7587ac Vite 2022-09-02 09:27:25 +05:30
Sidharth Vinod
04f18630f3 use same esbuild in webpack 2022-09-02 00:48:34 +05:30
Sidharth Vinod
f1fa91a51c fix flowchart jison 2022-09-02 00:46:02 +05:30
Sidharth Vinod
53fe35e37e Add webpack build 2022-09-02 00:36:01 +05:30
Sidharth Vinod
6be05e9948 Esbuild with types 2022-09-02 00:34:03 +05:30
Sidharth Vinod
84bf79f72b Fix export 2022-09-01 23:39:30 +05:30
Sidharth Vinod
904eccc4fa Vite 2022-09-01 23:38:13 +05:30
Sidharth Vinod
01562528b7 Typescript 2022-09-01 22:45:10 +05:30
Sidharth Vinod
fe3bb0b6c0 Typescript 2022-09-01 20:41:31 +05:30
Sidharth Vinod
7aeb60f42a Merge branch 'develop' into sidv/esbuild
* develop: (50 commits)
  Typo fix
  Fix repo URL
  Revert flowchart change
  Revert flowchart change
  Fix TODO Qs
  chore(deps-dev): bump @commitlint/cli from 17.1.1 to 17.1.2
  chore(deps-dev): bump terser-webpack-plugin from 5.3.5 to 5.3.6
  chore(deps-dev): bump webpack-dev-server from 4.10.0 to 4.10.1
  Fix gitGraph findLane function error
  Update dependabot.yml
  Replacing replaceAll with replace
  Rework 'parseDuration' as a pure duration parsing
  Supports duration in decimal
  Create a more consistent 'parseDuration'
  Remove `@ts-ignore`s.
  Fix svgDraw return types
  ...
2022-09-01 20:38:21 +05:30
Sidharth Vinod
d67e2723c6 Serve 2022-09-01 13:38:02 +05:30
Sidharth Vinod
1206ec43ac Remove jisonloader 2022-09-01 00:12:20 +05:30
Sidharth Vinod
965df4fdf4 ESBuild 2022-08-31 23:59:32 +05:30
Sidharth Vinod
4f0e18b088 Esbuild 2022-08-31 23:16:57 +05:30
477 changed files with 30880 additions and 16573 deletions

View File

@@ -3,3 +3,4 @@ dist/**
docs/Setup.md
cypress.config.js
cypress/plugins/index.js
coverage

View File

@@ -20,26 +20,32 @@ jobs:
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
cache: yarn
cache: pnpm
node-version: ${{ matrix.node-version }}
- name: Install Yarn
run: npm i yarn --global
- name: Install Packages
run: |
yarn install --frozen-lockfile
pnpm install --frozen-lockfile
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- name: Run Build
run: yarn build
run: pnpm run build
- name: Upload Build as Artifact
- name: Upload Mermaid Build as Artifact
uses: actions/upload-artifact@v3
with:
name: dist
path: dist
name: mermaid-build
path: packages/mermaid/dist
- name: Upload Mermaid Mindmap Build as Artifact
uses: actions/upload-artifact@v3
with:
name: mermaid-mindmap-build
path: packages/mermaid-mindmap/dist

44
.github/workflows/e2e vendored
View File

@@ -1,44 +0,0 @@
name: E2E
on: [push, pull_request]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- uses: actions/checkout@v3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
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
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- name: Upload Coverage to Coveralls
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: e2e

72
.github/workflows/e2e-applitools.yml vendored Normal file
View File

@@ -0,0 +1,72 @@
name: E2E (Applitools)
on:
workflow_dispatch:
# Because we want to limit Applitools usage, so we only want to start this
# workflow on rare occasions/manually.
inputs:
parent_branch:
required: true
type: string
default: master
description: 'Parent branch to use for PRs'
permissions:
contents: read
env:
# on PRs from forks, this secret will always be empty, for security reasons
USE_APPLI: ${{ secrets.APPLITOOLS_API_KEY && 'true' || '' }}
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- if: ${{ ! env.USE_APPLI }}
name: Warn if not using Applitools
run: |
echo "::error,title=Not using Applitols::APPLITOOLS_API_KEY is empty, disabling Applitools for this run."
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
cache: pnpm
node-version: ${{ matrix.node-version }}
- name: Install Packages
run: |
pnpm install --frozen-lockfile
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- if: ${{ env.USE_APPLI }}
name: Notify applitools of new batch
# Copied from docs https://applitools.com/docs/topics/integrations/github-integration-ci-setup.html
run: curl -L -d '' -X POST "$APPLITOOLS_SERVER_URL/api/externals/github/push?apiKey=$APPLITOOLS_API_KEY&CommitSha=$GITHUB_SHA&BranchName=${APPLITOOLS_BRANCH}$&ParentBranchName=$APPLITOOLS_PARENT_BRANCH"
env:
# e.g. mermaid-js/mermaid/my-branch
APPLITOOLS_BRANCH: ${{ github.repository }}/${{ github.ref_name }}
APPLITOOLS_PARENT_BRANCH: ${{ github.inputs.parent_branch }}
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }}
APPLITOOLS_SERVER_URL: 'https://eyesapi.applitools.com'
- name: Run E2E Tests
run: pnpm run e2e
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
# Mermaid applitools.config.js uses this to pick batch name.
APPLI_BRANCH: ${{ github.ref_name }}
APPLITOOLS_BATCH_ID: ${{ github.sha }}
# e.g. mermaid-js/mermaid/my-branch
APPLITOOLS_BRANCH: ${{ github.repository }}/${{ github.ref_name }}
APPLITOOLS_PARENT_BRANCH: ${{ github.inputs.parent_branch }}
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }}
APPLITOOLS_SERVER_URL: 'https://eyesapi.applitools.com'

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

@@ -0,0 +1,46 @@
name: E2E
on: [push, pull_request]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [16.x]
containers: [1, 2, 3, 4]
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
# Need to skip setup if Cypress run is skipped, otherwise an error
# is thrown since the pnpm cache step fails
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
with:
cache: pnpm
node-version: ${{ matrix.node-version }}
# Install NPM dependencies, cache them correctly
# and run all Cypress tests
- name: Cypress run
uses: cypress-io/github-action@v4
# If CYPRESS_RECORD_KEY is set, run in parallel on all containers
# Otherwise (e.g. if running from fork), we run on a single container only
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
with:
start: pnpm run dev
wait-on: 'http://localhost:9000'
# Disable recording if we don't have an API key
# e.g. if this action was run from a fork
record: ${{ secrets.CYPRESS_RECORD_KEY != '' }}
parallel: ${{ secrets.CYPRESS_RECORD_KEY != '' }}
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}

View File

@@ -20,38 +20,23 @@ jobs:
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
cache: yarn
cache: pnpm
node-version: ${{ matrix.node-version }}
- name: Install Yarn
run: npm i yarn --global
- name: Install Packages
run: |
yarn install --frozen-lockfile
pnpm install --frozen-lockfile
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- name: Run Linting
run: yarn lint
run: pnpm run lint
- name: Verify Docs
run: yarn docs:verify
- name: Check no `console.log()` in .jison files
# ESLint can't parse .jison files directly
# In the future, it might be worth making a `eslint-plugin-jison`, so
# that this will be built into the `yarn lint` command.
run: |
shopt -s globstar
mkdir -p tmp/
for jison_file in src/**/*.jison; do
outfile="tmp/$(basename -- "$jison_file" .jison)-jison.js"
echo "Converting $jison_file to $outfile"
# default module-type (CJS) always adds a console.log()
yarn jison "$jison_file" --outfile "$outfile" --module-type "amd"
done
yarn eslint --no-eslintrc --rule no-console:error --parser "@babel/eslint-parser" "./tmp/*-jison.js"
run: pnpm run docs:verify

View File

@@ -14,24 +14,24 @@ jobs:
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
# uses version from "packageManager" field in package.json
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
cache: yarn
cache: pnpm
node-version: ${{ matrix.node-version }}
- name: Install Yarn
run: npm i yarn --global
- name: Install Packages
run: |
yarn install --frozen-lockfile
pnpm install --frozen-lockfile
env:
CYPRESS_CACHE_FOLDER: .cache/Cypress
- name: Run Unit Tests
run: |
yarn ci --coverage
pnpm run ci --coverage
- name: Upload Coverage to Coveralls
# it feels a bit weird to use @master, but that's what the docs use

8
.gitignore vendored
View File

@@ -12,7 +12,11 @@ token
package-lock.json
.vscode/
# ignore files in /.vscode/ except for launch.json and extensions.json
/.vscode/**
!/.vscode/launch.json
!/.vscode/extensions.json
cypress/platform/current.html
cypress/platform/experimental.html
local/
@@ -26,3 +30,5 @@ cypress/snapshots/
# eslint --cache file
.eslintcache
.tsbuildinfo
tsconfig.tsbuildinfo

View File

@@ -1,4 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn pre-commit
pnpm run pre-commit

View File

@@ -1,5 +1,6 @@
{
"src/docs/**": ["yarn docs:build --git"],
"src/docs.mts": ["yarn docs:build --git"],
"*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"]
"packages/mermaid/src/docs/**": ["pnpm run docs:build --git"],
"packages/mermaid/src/docs.mts": ["pnpm run docs:build --git"],
"*.{ts,js,json,html,md,mts}": ["eslint --fix", "prettier --write"],
"*.jison": ["pnpm run lint:jison"]
}

View File

@@ -1,3 +1,6 @@
dist
cypress/platform/xss3.html
.cache
.cache
coverage
# Autogenerated by PNPM
pnpm-lock.yaml

142
.vite/build.ts Normal file
View File

@@ -0,0 +1,142 @@
import { build, InlineConfig } from 'vite';
import { resolve } from 'path';
import { fileURLToPath } from 'url';
import jisonPlugin from './jisonPlugin.js';
import pkg from '../package.json' assert { type: 'json' };
const { dependencies } = pkg;
const watch = process.argv.includes('--watch');
const __dirname = fileURLToPath(new URL('.', import.meta.url));
type OutputOptions = Exclude<
Exclude<InlineConfig['build'], undefined>['rollupOptions'],
undefined
>['output'];
const packageOptions = {
mermaid: {
name: 'mermaid',
packageName: 'mermaid',
file: 'mermaid.ts',
},
'mermaid-mindmap': {
name: 'mermaid-mindmap',
packageName: 'mermaid-mindmap',
file: 'diagram-definition.ts',
},
'mermaid-mindmap-detector': {
name: 'mermaid-mindmap-detector',
packageName: 'mermaid-mindmap',
file: 'detector.ts',
},
'mermaid-example-diagram': {
name: 'mermaid-example-diagram',
packageName: 'mermaid-example-diagram',
file: 'diagram-definition.ts',
},
'mermaid-example-diagram-detector': {
name: 'mermaid-example-diagram-detector',
packageName: 'mermaid-example-diagram',
file: 'detector.ts',
},
};
interface BuildOptions {
minify: boolean | 'esbuild';
core?: boolean;
watch?: boolean;
entryName: keyof typeof packageOptions;
}
export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions): InlineConfig => {
const external = ['require', 'fs', 'path'];
console.log(entryName, packageOptions[entryName]);
const { name, file, packageName } = packageOptions[entryName];
let output: OutputOptions = [
{
name,
format: 'esm',
sourcemap: true,
entryFileNames: `${name}.esm${minify ? '.min' : ''}.mjs`,
},
{
name,
format: 'umd',
sourcemap: true,
entryFileNames: `${name}${minify ? '.min' : ''}.js`,
},
];
if (core) {
// Core build is used to generate file without bundled dependencies.
// This is used by downstream projects to bundle dependencies themselves.
external.push(...Object.keys(dependencies));
// This needs to be an array. Otherwise vite will build esm & umd with same name and overwrite esm with umd.
output = [
{
name,
format: 'esm',
sourcemap: true,
entryFileNames: `${name}.core.mjs`,
},
];
}
const config: InlineConfig = {
configFile: false,
build: {
emptyOutDir: false,
outDir: resolve(__dirname, `../packages/${packageName}/dist`),
lib: {
entry: resolve(__dirname, `../packages/${packageName}/src/${file}`),
name,
// the proper extensions will be added
fileName: name,
},
minify,
rollupOptions: {
external,
output,
},
},
resolve: {
extensions: ['.jison', '.js', '.ts', '.json'],
},
plugins: [jisonPlugin()],
};
if (watch && config.build) {
config.build.watch = {
include: [
'packages/mermaid-mindmap/src/**',
'packages/mermaid/src/**',
'packages/mermaid-example-diagram/src/**',
],
};
}
return config;
};
const buildPackage = async (entryName: keyof typeof packageOptions) => {
return Promise.allSettled([
build(getBuildConfig({ minify: false, entryName })),
build(getBuildConfig({ minify: 'esbuild', entryName })),
build(getBuildConfig({ minify: false, core: true, entryName })),
]);
};
const main = async () => {
const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[];
for (const pkg of packageNames) {
await buildPackage(pkg);
}
};
if (watch) {
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid' }));
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-mindmap' }));
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
} else {
void main();
}

17
.vite/jisonPlugin.ts Normal file
View File

@@ -0,0 +1,17 @@
import { transformJison } from './jisonTransformer.js';
const fileRegex = /\.(jison)$/;
export default function jison() {
return {
name: 'jison',
transform(src: string, id: string) {
if (fileRegex.test(id)) {
return {
code: transformJison(src),
map: null, // provide source map if available
};
}
},
};
}

17
.vite/jisonTransformer.ts Normal file
View File

@@ -0,0 +1,17 @@
// @ts-ignore No typings for jison
import jison from 'jison';
export const transformJison = (src: string): string => {
// @ts-ignore No typings for jison
const parser = new jison.Generator(src, {
moduleType: 'js',
'token-stack': true,
});
const source = parser.generate({ moduleMain: '() => {}' });
const exporter = `
parser.parser = parser;
export { parser };
export default parser;
`;
return `${source} ${exporter}`;
};

28
.vite/server.ts Normal file
View File

@@ -0,0 +1,28 @@
import express from 'express';
import { createServer as createViteServer } from 'vite';
// import { getBuildConfig } from './build';
async function createServer() {
const app = express();
// Create Vite server in middleware mode
const vite = await createViteServer({
configFile: './vite.config.ts',
server: { middlewareMode: true },
appType: 'custom', // don't include Vite's default HTML handling middlewares
});
app.use(express.static('./packages/mermaid/dist'));
app.use(express.static('./packages/mermaid-example-diagram/dist'));
app.use(express.static('./packages/mermaid-mindmap/dist'));
app.use(vite.middlewares);
app.use(express.static('demos'));
app.use(express.static('cypress/platform'));
app.listen(9000, () => {
console.log(`Listening on http://localhost:9000`);
});
}
// build(getBuildConfig({ minify: false, watch: true }));
createServer();

6
.vite/tsconfig.json Normal file
View File

@@ -0,0 +1,6 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"module": "ES2022"
}
}

8
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,8 @@
{
"recommendations": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"zixuanchen.vitest-explorer",
"luniclynx.bison"
]
}

17
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,17 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug Current Test File",
"autoAttachChildProcesses": true,
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
"args": ["run", "${relativeFile}"],
"smartStep": true,
"console": "integratedTerminal"
}
]
}

View File

@@ -1,25 +0,0 @@
const { Generator } = require('jison');
const validate = require('schema-utils');
const schema = {
title: 'Jison Parser options',
type: 'object',
properties: {
'token-stack': {
type: 'boolean',
},
debug: {
type: 'boolean',
},
},
additionalProperties: false,
};
module.exports = function jisonLoader(source) {
const options = this.getOptions();
(validate.validate || validate)(schema, options, {
name: 'Jison Loader',
baseDataPath: 'options',
});
return new Generator(source, options).generate();
};

View File

@@ -1,45 +0,0 @@
import { merge, mergeWithCustomize, customizeObject } from 'webpack-merge';
import nodeExternals from 'webpack-node-externals';
import baseConfig from './webpack.config.base';
export default (_env, args) => {
switch (args.mode) {
case 'development':
return [
baseConfig,
merge(baseConfig, {
externals: [nodeExternals()],
output: {
filename: '[name].core.js',
},
}),
];
case 'production':
return [
// umd
merge(baseConfig, {
output: {
filename: '[name].min.js',
},
}),
// esm
mergeWithCustomize({
customizeObject: customizeObject({
'output.library': 'replace',
}),
})(baseConfig, {
experiments: {
outputModule: true,
},
output: {
library: {
type: 'module',
},
filename: '[name].esm.min.mjs',
},
}),
];
default:
throw new Error('No matching configuration was found!');
}
};

View File

@@ -1,58 +0,0 @@
import path from 'path';
export const resolveRoot = (...relativePath) => path.resolve(__dirname, '..', ...relativePath);
export default {
amd: false, // https://github.com/lodash/lodash/issues/3052
target: 'web',
entry: {
mermaid: './src/mermaid',
},
resolve: {
extensions: ['.wasm', '.mjs', '.js', '.ts', '.json', '.jison'],
fallback: {
fs: false, // jison generated code requires 'fs'
path: require.resolve('path-browserify'),
},
},
output: {
path: resolveRoot('./dist'),
filename: '[name].js',
library: {
name: 'mermaid',
type: 'umd',
export: 'default',
},
globalObject: 'typeof self !== "undefined" ? self : this',
},
module: {
rules: [
{
test: /\.ts$/,
use: 'ts-loader',
exclude: /node_modules/,
},
{
test: /\.js$/,
include: [resolveRoot('./src'), resolveRoot('./node_modules/dagre-d3-renderer/lib')],
use: {
loader: 'babel-loader',
},
},
{
// load scss to string
test: /\.scss$/,
use: ['css-to-string-loader', 'css-loader', 'sass-loader'],
},
{
test: /\.jison$/,
use: {
loader: path.resolve(__dirname, './loaders/jison.js'),
options: {
'token-stack': true,
},
},
},
],
},
devtool: 'source-map',
};

View File

@@ -1,37 +0,0 @@
import baseConfig, { resolveRoot } from './webpack.config.base';
import { merge } from 'webpack-merge';
export default merge(baseConfig, {
mode: 'development',
entry: {
mermaid: './src/mermaid',
e2e: './cypress/platform/viewer.js',
'bundle-test': './cypress/platform/bundle-test.js',
},
output: {
globalObject: 'window',
},
devServer: {
compress: true,
port: 9000,
static: [
{ directory: resolveRoot('cypress', 'platform') },
{ directory: resolveRoot('dist') },
{ directory: resolveRoot('demos') },
],
},
externals: {
mermaid: 'mermaid',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
},
},
],
},
});

128
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at security@mermaid.live
.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@@ -11,8 +11,8 @@ Here are a few things to know to get you started on the right path.
```bash
git clone git@github.com:mermaid-js/mermaid.git
cd mermaid
yarn
yarn test
pnpm install
pnpm test
```
## Committing code
@@ -103,7 +103,7 @@ This is important so that, if someone else does a change to the grammar that doe
This tests the rendering and visual appearance of the diagram. This ensures that the rendering of that feature in the e2e will be reviewed in the release process going forward. Less chance that it breaks!
To start working with the e2e tests, run `yarn dev` to start the dev server, after that start cypress by running `cypress open` in the mermaid folder. (Make sure you have path to cypress in order, the binary is located in node_modules/.bin).
To start working with the e2e tests, run `pnpm run dev` to start the dev server, after that start cypress by running `pnpm exec cypress open` in the mermaid folder.
The rendering tests are very straightforward to create. There is a function imgSnapshotTest. This function takes a diagram in text form, the mermaid options and renders that diagram in cypress.

View File

@@ -1,5 +1,22 @@
# 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)
# Whoa, whats going on here?
We are transforming the Mermaid repository to a so called mono-repo. This is a part of the effort to decouple the diagrams from the core of mermaid. This will:
- Make it possible to select which diagrams to include on your site
- Open up for lazy loading
- Make it possible to add diagrams from outside of the Mermaid repository
- Separate the release flow between different diagrams and the Mermaid core
As such be aware of some changes..
# We use pnpm now
# The source code has moved
It is now located in the src folder for each respective package located as subfolders in packages.
English | [简体中文](./README.zh-CN.md)
<img src="./img/header.png" alt="" />

5
V10-BreakingChanges.md Normal file
View File

@@ -0,0 +1,5 @@
# A collection of updates that change the behaviour
## Lazy loading and asynchronisity
- Invalid dates are rendered as syntax error instead of returning best guess or the current date

View File

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

View File

@@ -1,4 +1,7 @@
let NewD3 = function () {
// @ts-nocheck TODO: Fix TS
import { vi } from 'vitest';
const NewD3 = function () {
/**
*
*/
@@ -56,9 +59,9 @@ export const MockD3 = (name, parent) => {
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);
elem.lower = vi.fn(() => elem);
elem.attr = vi.fn(() => elem);
elem.text = vi.fn(() => elem);
elem.style = vi.fn(() => elem);
return elem;
};

3
__mocks__/dagre-d3.ts Normal file
View File

@@ -0,0 +1,3 @@
import { vi } from 'vitest';
// export const render = vi.fn();

View File

@@ -0,0 +1,3 @@
module.exports = function (txt: string) {
return txt;
};

View File

@@ -1,16 +0,0 @@
module.exports = {
testConcurrency: 1,
// browser: [
// // Add browsers with different viewports
// { width: 800, height: 600, name: 'chrome' },
// { width: 700, height: 500, name: 'firefox' },
// { width: 1600, height: 1200, name: 'ie11' },
// { width: 1024, height: 768, name: 'edgechromium' },
// { width: 800, height: 600, name: 'safari' },
// // Add mobile emulation devices in Portrait mode
// { deviceName: 'iPhone X', screenOrientation: 'portrait' },
// { deviceName: 'Pixel 2', screenOrientation: 'portrait' },
// ],
// // set batch name to the configuration
// batchName: 'Ultrafast Batch',
};

19
applitools.config.js Normal file
View File

@@ -0,0 +1,19 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { defineConfig } = require('cypress');
module.exports = defineConfig({
testConcurrency: 1,
browser: [
// Add browsers with different viewports
// { width: 800, height: 600, name: 'chrome' },
// { width: 700, height: 500, name: 'firefox' },
// { width: 1600, height: 1200, name: 'ie11' },
// { width: 1024, height: 768, name: 'edgechromium' },
// { width: 800, height: 600, name: 'safari' },
// // Add mobile emulation devices in Portrait mode
// { deviceName: 'iPhone X', screenOrientation: 'portrait' },
// { deviceName: 'Pixel 2', screenOrientation: 'portrait' },
],
// set batch name to the configuration
batchName: `Mermaid ${process.env.APPLI_BRANCH ?? "'no APPLI_BRANCH set'"}`,
});

View File

@@ -1,10 +0,0 @@
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: 'defaults, ie >= 11, current node',
},
],
],
};

View File

@@ -2,21 +2,21 @@
const { defineConfig } = require('cypress');
const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin');
require('@applitools/eyes-cypress')(module);
module.exports = defineConfig({
projectId: 'n2sma2',
e2e: {
specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}',
specPattern: 'cypress/integration/**/*.{js,jsx,ts,tsx}',
setupNodeEvents(on, config) {
addMatchImageSnapshotPlugin(on, config);
// copy any needed variables from process.env to config.env
config.env.useAppli = process.env.USE_APPLI ? true : false;
config.env.codeBranch = process.env.APPLI_BRANCH;
// do not forget to return the changed config object!
return config;
},
supportFile: 'cypress/support/index.js',
},
video: false,
});
require('@applitools/eyes-cypress')(module);

View File

@@ -1 +0,0 @@
Cr24

View File

@@ -1,4 +1,6 @@
import { Base64 } from 'js-base64';
const utf8ToB64 = (str) => {
return window.btoa(unescape(encodeURIComponent(str)));
};
export const mermaidUrl = (graphStr, options, api) => {
const obj = {
@@ -6,7 +8,7 @@ export const mermaidUrl = (graphStr, options, api) => {
mermaid: options,
};
const objStr = JSON.stringify(obj);
let url = 'http://localhost:9000/e2e.html?graph=' + Base64.encodeURI(objStr);
let url = 'http://localhost:9000/e2e.html?graph=' + utf8ToB64(objStr);
if (api) {
url = 'http://localhost:9000/xss.html?graph=' + graphStr;
}
@@ -44,15 +46,13 @@ export const imgSnapshotTest = (graphStr, _options, api = false, validation) =>
}
const useAppli = Cypress.env('useAppli');
//const useAppli = false;
const branch = Cypress.env('codeBranch');
cy.log('Hello ' + useAppli ? 'Appli' : 'image-snapshot');
const name = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
if (useAppli) {
cy.eyesOpen({
appName: 'Mermaid-' + branch,
appName: 'Mermaid',
testName: name,
batchName: branch,
});
}
@@ -96,15 +96,13 @@ export const urlSnapshotTest = (url, _options, api = false, validation) => {
options.fontSize = '16px';
}
const useAppli = Cypress.env('useAppli');
const branch = Cypress.env('codeBranch');
cy.log('Hello ' + useAppli ? 'Appli' : 'image-snapshot');
const name = (options.name || cy.state('runnable').fullTitle()).replace(/\s+/g, '-');
if (useAppli) {
cy.eyesOpen({
appName: 'Mermaid-' + branch,
appName: 'Mermaid',
testName: name,
batchName: branch,
});
}

View File

@@ -15,11 +15,13 @@ describe('Configuration', () => {
// 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')
.should('exist')
.and('include', 'url(#');
cy.get('.edgePaths').within(() => {
cy.get('path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(#');
});
});
it('should handle default value false of arrowMarkerAbsolute', () => {
renderGraph(
@@ -35,11 +37,13 @@ describe('Configuration', () => {
// 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')
.should('exist')
.and('include', 'url(#');
cy.get('.edgePaths').within(() => {
cy.get('path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(#');
});
});
it('should handle arrowMarkerAbsolute explicitly set to false', () => {
renderGraph(
@@ -57,11 +61,13 @@ describe('Configuration', () => {
// 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')
.should('exist')
.and('include', 'url(#');
cy.get('.edgePaths').within(() => {
cy.get('path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(#');
});
});
it('should handle arrowMarkerAbsolute explicitly set to "false" as false', () => {
renderGraph(
@@ -79,15 +85,17 @@ describe('Configuration', () => {
// 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')
.should('exist')
.and('include', 'url(#');
cy.get('.edgePaths').within(() => {
cy.get('path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(#');
});
});
it('should handle arrowMarkerAbsolute set to true', () => {
renderGraph(
`graph TD
`flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
@@ -99,11 +107,13 @@ describe('Configuration', () => {
}
);
cy.get('.edgePath path')
.first()
.should('have.attr', 'marker-end')
.should('exist')
.and('include', 'url(http://localhost');
cy.get('.edgePaths').within(() => {
cy.get('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';

View File

@@ -1,266 +1,180 @@
describe('Interaction', () => {
describe('Interaction - security level loose', () => {
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#flowchart-Function-4').click();
describe('Security level loose', () => {
beforeEach(() => {
cy.visit('http://localhost:9000/click_security_loose.html');
});
it('Graph: should handle a click on a node with a bound function', () => {
cy.contains('FunctionTest1').parents('.node').click();
cy.get('.created-by-click').should('have.text', 'Clicked By Flow');
});
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#flowchart-FunctionArg-28').click();
cy.contains('FunctionArgTest2').parents('.node').click();
cy.get('.created-by-click-2').should('have.text', 'Clicked By Flow: ARGUMENT');
});
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[id="flowchart-FunctionArg-34"]').click();
cy.contains('2FunctionArg').parents('.node').click();
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-5').click();
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
it('Graph: should handle a click on a node with a bound url', () => {
// When there is a URL, cy.contains selects the a tag instead of the span. The .node is a child of a, so we have to use find instead of parent.
cy.contains('URLTest1').find('.node').click();
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
});
});
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="flowchart-2URL-11"]').click();
cy.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
it('Graph: should handle a click on a node with a bound url where the node starts with a number', () => {
cy.contains('2URL').find('.node').click();
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.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-16').click();
cy.contains('FunctionTest2').parents('.node').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-22"]').click();
cy.contains('10Function').parents('.node').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-17').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', () => {
cy.contains('URLTest2').find('.node').click();
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.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-23"]').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', () => {
cy.contains('20URL').find('.node').click();
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
});
});
it('should handle a click on a task with a bound URL clicking on the rect', () => {
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.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
cy.get('rect#cl1').click({ force: true });
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
});
});
it('should handle a click on a task with a bound URL clicking on the text', () => {
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.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
cy.get('text#cl1-text').click({ force: true });
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
});
});
it('should handle a click on a task with a bound function without args', () => {
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 });
it('should handle a click on a task with a bound function without args', () => {
cy.get('rect#cl2').click({ force: true });
cy.get('.created-by-gant-click').should('have.text', 'Clicked By Gant cl2');
});
it('should handle a click on a task 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('rect#cl3').click({ force: true });
it('should handle a click on a task with a bound function with args', () => {
cy.get('rect#cl3').click({ force: true });
cy.get('.created-by-gant-click').should('have.text', 'Clicked By Gant test1 test2 test3');
});
it('should handle a click on a task with a bound function without args', () => {
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('text#cl2-text').click({ force: true });
cy.get('.created-by-gant-click').should('have.text', 'Clicked By Gant cl2');
});
it('should handle a click on a task 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('text#cl3-text').click({ force: true });
it('should handle a click on a task with a bound function with args ', () => {
cy.get('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', () => {
beforeEach(() => {
cy.visit('http://localhost:9000/click_security_strict.html');
});
it('should handle a click on a node without a bound function', () => {
const url = 'http://localhost:9000/click_security_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('g#flowchart-Function-4').click();
cy.contains('Function1').parents('.node').click();
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="flowchart-1Function-10"]').click();
// cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow');
cy.contains('1Function').parents('.node').click();
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#flowchart-URL-5').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', () => {
cy.contains('URL1').find('.node').click();
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
});
});
it('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_strict.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('g[id="flowchart-2URL-11"]').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', () => {
cy.contains('2URL').find('.node').click();
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
});
});
it('should handle a click on a task with a bound URL clicking on the rect', () => {
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.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
cy.get('rect#cl1').click({ force: true });
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
});
});
it('should handle a click on a task with a bound URL clicking on the text', () => {
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.location().should((location) => {
expect(location.href).to.eq('http://localhost:9000/webpackUsage.html');
cy.get('text#cl1-text').click({ force: true });
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
});
});
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('rect#cl2').click({ force: true });
// cy.get('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2');
it('should handle a click on a task with a bound function', () => {
cy.get('rect#cl2').click({ force: true });
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('.created-by-gant-click').should('not.have.text', 'Clicked By Gant cl2');
it('should handle a click on a task with a bound function', () => {
cy.get('text#cl2-text').click({ force: true });
cy.get('.created-by-gant-click').should('not.exist');
});
});
describe('Interaction - security level other, missspelling', () => {
beforeEach(() => {
cy.visit('http://localhost:9000/click_security_other.html');
});
it('should handle a click on a node with a bound function', () => {
const url = 'http://localhost:9000/click_security_other.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('g#flowchart-Function-4').click();
// cy.get('.created-by-click').should('not.have.text', 'Clicked By Flow');
cy.contains('Function1').parents('.node').click();
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_other.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('g[id="flowchart-1Function-10"]').click();
cy.get('.created-by-click').should('not.exist');
cy.contains('1Function').parents('.node').click();
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_other.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('g#flowchart-URL-5').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', () => {
cy.contains('URL1').find('.node').click();
cy.location().should(({ href }) => {
expect(href).to.eq('http://localhost:9000/empty.html');
});
});
it('should handle a click on a task with a bound function', () => {
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('rect#cl2').click({ force: true });
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_other.html';
cy.viewport(1440, 1024);
cy.visit(url);
cy.get('body').find('text#cl2-text').click({ force: true });
it('should handle a click on a task with a bound function', () => {
cy.get('text#cl2-text').click({ force: true });
cy.get('.created-by-gant-click').should('not.exist');
});
});

View File

@@ -15,7 +15,7 @@ describe('XSS', () => {
it('should not allow tags in the css', () => {
const str =
'eyJjb2RlIjoiJSV7aW5pdDogeyAnZm9udEZhbWlseSc6ICdcXFwiPjwvc3R5bGU-PGltZyBzcmM9eCBvbmVycm9yPXhzc0F0dGFjaygpPid9IH0lJVxuZ3JhcGggTFJcbiAgICAgQSAtLT4gQiIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0IiwiZmxvd2NoYXJ0Ijp7Imh0bWxMYWJlbHMiOmZhbHNlfX0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9';
'eyJjb2RlIjoiJSV7aW5pdDogeyAnZm9udEZhbWlseSc6ICdcXFwiPjwvc3R5bGU+PGltZyBzcmM9eCBvbmVycm9yPXhzc0F0dGFjaygpPid9IH0lJVxuZ3JhcGggTFJcbiAgICAgQSAtLT4gQiIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0IiwiZmxvd2NoYXJ0Ijp7Imh0bWxMYWJlbHMiOmZhbHNlfX0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9';
const url = mermaidUrl(
str,
@@ -81,6 +81,9 @@ describe('XSS', () => {
cy.get('#the-malware').should('not.exist');
});
it('should not allow manipulating antiscript to run javascript using onerror in state diagrams with dagre d3', () => {
cy.on('uncaught:exception', (_err, _runnable) => {
return false; // continue rendering even if there if mermaid throws an error
});
cy.visit('http://localhost:9000/xss9.html');
cy.wait(1000);
cy.get('#the-malware').should('not.exist');

View File

@@ -745,13 +745,13 @@ describe('Graph', () => {
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%
// use within because the absolute value can be slightly different depending on the environment ±10%
// 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);
expect(maxWidthValue).to.be.within(300 * 0.9, 300 * 1.1);
});
});
it('39: should render a flowchart when useMaxWidth is false', () => {
@@ -768,9 +768,9 @@ describe('Graph', () => {
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%
// use within because the absolute value can be slightly different depending on the environment ±10%
// expect(height).to.be.within(446 * 0.95, 446 * 1.05);
expect(width).to.be.within(300 * 0.95, 300 * 1.05);
expect(width).to.be.within(300 * 0.9, 300 * 1.1);
expect(svg).to.not.have.attr('style');
});
});

View File

@@ -92,7 +92,7 @@ describe('Gantt diagram', () => {
{}
);
});
it('should render a gantt chart for issue #1060', () => {
it('should FAIL redering a gantt chart for issue #1060 with invalid date', () => {
imgSnapshotTest(
`
gantt

View File

@@ -180,7 +180,48 @@ describe('Git Graph diagram', () => {
{}
);
});
it('11: should render a gitgraph with cherry pick commit with custom tag', () => {
imgSnapshotTest(
`
gitGraph
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
checkout main
commit id:"TWO"
cherry-pick id:"A" tag: "snapshot"
commit id:"THREE"
checkout develop
commit id:"C"
`,
{}
);
});
it('11: should render a gitgraph with cherry pick commit with no tag', () => {
imgSnapshotTest(
`
gitGraph
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
checkout main
commit id:"TWO"
cherry-pick id:"A" tag: ""
commit id:"THREE"
checkout develop
commit id:"C"
`,
{}
);
});
it('11: should render a simple gitgraph with two cherry pick commit', () => {
imgSnapshotTest(
`
@@ -207,48 +248,48 @@ describe('Git Graph diagram', () => {
{}
);
});
it('12: should render commits for more than 8 branches', () => {
imgSnapshotTest(
`
gitGraph
checkout main
commit
%% Make sure to manually set the ID of all commits, for consistent visual tests
commit id: "1-abcdefg"
checkout main
branch branch1
commit
commit id: "2-abcdefg"
checkout main
merge branch1
branch branch2
commit
commit id: "3-abcdefg"
checkout main
merge branch2
branch branch3
commit
commit id: "4-abcdefg"
checkout main
merge branch3
branch branch4
commit
commit id: "5-abcdefg"
checkout main
merge branch4
branch branch5
commit
commit id: "6-abcdefg"
checkout main
merge branch5
branch branch6
commit
commit id: "7-abcdefg"
checkout main
merge branch6
branch branch7
commit
commit id: "8-abcdefg"
checkout main
merge branch7
branch branch8
commit
commit id: "9-abcdefg"
checkout main
merge branch8
branch branch9
commit
commit id: "10-abcdefg"
`,
{}
);

View File

@@ -1,4 +1,4 @@
import mermaid from '../../dist/mermaid.core';
import mermaid from '../../packages/mermaid/src/mermaid';
let code = `flowchart LR
Power_Supply --> Transmitter_A

View File

@@ -13,42 +13,42 @@
</head>
<body>
<div style="display: flex">
<pre id="FirstLine" class="mermaid">
<pre class="mermaid">
graph TB
Function-->URL
click Function clickByFlow "Add a div"
click URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
FunctionTest1-->URLTest1
click FunctionTest1 clickByFlow "Add a div"
click URLTest1 "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid">
<pre class="mermaid">
graph TB
1Function--->2URL
click 1Function clickByFlow "Add a div"
click 2URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click 2URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid">
<pre 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
FunctionTest2-->URLTest2
click FunctionTest2 clickByFlow "Add a div"
click URLTest2 "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>" _self
</pre>
<pre id="FirstLine" class="mermaid">
<pre 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
10Function--->20URL
click 10Function clickByFlow "Add a div"
click 20URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>" _self
</pre>
<pre id="FirstLine" class="mermaid">
<pre class="mermaid">
classDiagram
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback
callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
</pre>
<pre id="FirstLine" class="mermaid">
<pre class="mermaid">
classDiagram-v2
class ShapeLink2
link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink2 "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback2
callback ShapeCallback2 "clickByClass" "This is a tooltip for a callback"
</pre>
@@ -85,7 +85,7 @@
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 cl1 href "http://localhost:9000/empty.html"
click cl2 call clickByGantt()
click cl3 call clickByGantt("test1", test2, test3)
@@ -95,31 +95,31 @@
Add another diagram to demo page : 48h
</pre>
<div style="display: flex">
<pre id="FirstLine" class="mermaid">
<pre 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>"
FunctionArgTest2-->URL
click FunctionArgTest2 call clickByFlowArg(ARGUMENT) "Add a div"
click URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid">
<pre 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>"
2FunctionArg-->URL
click 2FunctionArg call clickByFlowArg(ARGUMENT) "Add a div"
click URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid">
<pre class="mermaid">
classDiagram
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback
click ShapeCallback call clickByClass(123) "This is a tooltip for a callback"
</pre>
<pre id="FirstLine" class="mermaid">
<pre class="mermaid">
classDiagram-v2
class ShapeLink2
link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink2 "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback2
click ShapeCallback2 call clickByClass(123) "This is a tooltip for a callback"
</pre>

View File

@@ -9,15 +9,15 @@
<body>
<pre 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>"
Function1-->URL1
click Function1 clickByFlow "Add a div"
click URL1 "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid">
graph TB
1Function-->2URL
click 1Function clickByFlow "Add a div"
click 2URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click 2URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre class="mermaid">
@@ -50,7 +50,7 @@
Visit mermaidjs :active, cl1, 2014-01-07,2014-01-10
Calling a Callback (look at the console log) :cl2, after cl1, 3d
click cl1 href "http://localhost:9000/webpackUsage.html"
click cl1 href "http://localhost:9000/empty.html"
click cl2 call clickByGantt("test", test, test)
section Last section

View File

@@ -17,38 +17,38 @@
graph TB
Function-->URL
click Function clickByFlow "Add a div"
click URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid">
graph TB
1Function--->2URL
click 1Function clickByFlow "Add a div"
click 2URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click 2URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre 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
click URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>" _self
</pre>
<pre 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
click 2URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>" _self
</pre>
<pre id="FirstLine" class="mermaid">
classDiagram
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback
callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
</pre>
<pre id="FirstLine" class="mermaid">
classDiagram-v2
class ShapeLink2
link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink2 "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback2
callback ShapeCallback2 "clickByClass" "This is a tooltip for a callback"
</pre>
@@ -85,7 +85,7 @@
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 cl1 href "http://localhost:9000/empty.html"
click cl2 call clickByGantt()
click cl3 call clickByGantt("test1", test2, test3)
@@ -99,19 +99,19 @@
graph TB
FunctionArg-->URL
click FunctionArg call clickByFlowArg(ARGUMENT) "Add a div"
click URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre 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>"
click URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid">
classDiagram
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback
click ShapeCallback call clickByClass(123) "This is a tooltip for a callback"
</pre>
@@ -119,7 +119,7 @@
<pre id="FirstLine" class="mermaid">
classDiagram-v2
class ShapeLink2
link ShapeLink2 "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink2 "http://localhost:9000/empty.html" "This is a tooltip for a link"
class ShapeCallback2
click ShapeCallback2 call clickByClass(123) "This is a tooltip for a callback"
</pre>

View File

@@ -9,15 +9,15 @@
<body>
<pre 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>"
Function1-->URL1
click Function1 clickByFlow "Add a div"
click URL1 "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid">
graph TB
1Function-->2URL
click 1Function clickByFlow "Add a div"
click 2URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click 2URL "http://localhost:9000/empty.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre class="mermaid">
@@ -51,7 +51,7 @@
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 cl1 href "http://localhost:9000/empty.html"
click cl2 call clickByGantt()
click cl3 call clickByGantt("test1", test2, test3)

View File

@@ -2,7 +2,7 @@
<head>
<meta charset="utf-8" />
<!-- <meta charset="iso-8859-15"/> -->
<script src="/e2e.js"></script>
<script src="./viewer.js" type="module"></script>
<!-- <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"
@@ -37,7 +37,7 @@
</style>
</head>
<body>
<script src="./mermaid.js"></script>
<!-- <script src="./mermaid.js"></script> -->
<script>
// Notice startOnLoad=false
// This prevents default handling in mermaid from render before the e2e logic is applied

View File

@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Empty</title>
</head>
<body></body>
</html>

View File

@@ -30,7 +30,31 @@
</head>
<body>
<h1>info below</h1>
<pre class="mermaid" style="width: 100%; height: 20%">
%%{init: { "logLevel": "debug", "theme": "default" , "gitGraph" : {"showBranches":"false","rotateCommitLabel":"true"},"themeVariables": {
"gitBranchLabel0": "#ff0000",
"gitBranchLabel1": "#00ff00",
"gitBranchLabel2": "#0000ff",
"git0": "#550055"
} } }%%
gitGraph
commit
branch develop
commit
commit
branch release/1.0.0
checkout release/1.0.0
commit tag:"1.0.0-beta1"
checkout develop
commit
commit
commit
commit
checkout release/1.0.0
merge develop tag: "1.0.0-beta2"
</pre>
<pre class="mermaid2" style="width: 100%; height: 20%">
%%{init: { "logLevel": "debug", "theme": "default" , "gitGraph" : {"showBranches":"false"},"themeVariables": {
"gitBranchLabel0": "#ff0000",
"gitBranchLabel1": "#00ff00",
@@ -131,6 +155,7 @@
// arrowMarkerAbsolute: true,
// themeCSS: '.edgePath .path {stroke: red;} .arrowheadPath {fill: red;}',
logLevel: 1,
gitGraph: { rotateCommitLabel: false },
flowchart: { curve: 'linear', htmlLabels: true },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50, showSequenceNumbers: true },

View File

@@ -6,6 +6,10 @@
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
/>
<link
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
@@ -38,7 +42,19 @@
</style>
</head>
<body>
<pre class="mermaid" style="width: 50%">
<pre class="mermaid2" style="width: 50%">
flowchart LR
subgraph one
direction LR
A[myClass1] --> B[default]
subgraph two
direction BT
C[myClass2] --> D[default]
end
end
</pre>
<pre class="mermaid2" style="width: 50%">
flowchart LR
classDef aPID stroke:#4e4403,fill:#fdde29,color:#4e4403,rx:5px,ry:5px;
classDef crm stroke:#333333,fill:#DCDCDC,color:#333333,rx:5px,ry:5px;
@@ -71,9 +87,33 @@ flowchart TD
end
end
</pre>
<pre class="mermaid" style="width: 50%">
<pre class="mermaid2" style="width: 50%">
flowchart TD
id
release-branch[Create Release Branch]:::relClass
develop-branch[Update Develop Branch]:::relClass
github-release-draft[GitHub Release Draft]:::relClass
trigger-pipeline[Trigger Jenkins pipeline]:::fixClass
github-release[GitHub Release]:::postClass
build-ready --> release-branch
build-ready --> develop-branch
release-branch --> jenkins-release-build
jenkins-release-build --> github-release-draft
jenkins-release-build --> install-release
install-release --> verify-release
jenkins-release-build --> announce
github-release-draft --> github-release
verify-release --> verify-check
verify-check -- Yes --> github-release
verify-check -- No --> release-fix
release-fix --> release-branch-pr
verify-check -- No --> delete-artifacts
release-branch-pr --> trigger-pipeline
delete-artifacts --> trigger-pipeline
trigger-pipeline --> jenkins-release-build
</pre>
<pre class="mermaid2" style="width: 50%">
flowchart LR
@@ -99,7 +139,7 @@ flowchart TD
class A someclass;
class C someclass;
</pre>
<pre class="mermaid" style="width: 50%">
<pre class="mermaid2" style="width: 50%">
sequenceDiagram
title: My Sequence Diagram Title
accTitle: My Acc Sequence Diagram
@@ -109,14 +149,14 @@ flowchart TD
John-->>Alice: Great!
Alice-)John: See you later!
</pre>
<pre class="mermaid" style="width: 50%">
<pre class="mermaid2" style="width: 50%">
graph TD
A -->|000| B
B -->|111| C
linkStyle 1 stroke:#ff3,stroke-width:4px,color:red;
</pre>
<pre class="mermaid" style="width: 100%">
<pre class="mermaid2" style="width: 100%">
journey
accTitle: My User Journey Diagram
accDescr: My User Journey Diagram Description
@@ -130,10 +170,10 @@ graph TD
Go downstairs: 5: Me
Sit down: 5: Me
</pre>
<pre class="mermaid" style="width: 100%">
<pre class="mermaid2" style="width: 100%">
info
</pre>
<pre class="mermaid" style="width: 100%">
<pre class="mermaid2" style="width: 100%">
requirementDiagram
accTitle: My req Diagram
accDescr: My req Diagram Description
@@ -174,7 +214,7 @@ requirementDiagram
test_req - contains -> test_req3
test_req <- copies - test_entity2
</pre>
<pre class="mermaid" style="width: 100%">
<pre class="mermaid2" style="width: 100%">
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
@@ -206,7 +246,7 @@ gantt
Add gantt diagram to demo page :20h
Add another diagram to demo page :48h
</pre>
<pre class="mermaid" style="width: 100%">
<pre class="mermaid2" style="width: 100%">
stateDiagram
state Active {
Idle
@@ -234,7 +274,7 @@ stateDiagram
end
B ->> A: Return
</pre>
<pre class="mermaid" style="width: 100%">
<pre class="mermaid2" style="width: 100%">
classDiagram
accTitle: My class diagram
accDescr: My class diagram Description
@@ -259,7 +299,7 @@ class Class10 {
A->>Bob: Hola
Bob-->A: Pasten !
</pre>
<pre class="mermaid" style="width: 100%">
<pre class="mermaid2" style="width: 100%">
gitGraph
commit id: "ZERO"
branch develop
@@ -288,7 +328,7 @@ flowchart TD
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
</pre>
<pre class="mermaid" style="width: 100%">
<pre class="mermaid2" style="width: 100%">
classDiagram
Animal "1" <|-- Duck
Animal <|-- Fish
@@ -311,7 +351,7 @@ flowchart TD
+run()
}
</pre>
<pre class="mermaid" style="width: 100%">
<pre class="mermaid2" style="width: 100%">
erDiagram
CAR ||--o{ NAMED-DRIVER : allows
CAR {
@@ -327,6 +367,7 @@ flowchart TD
}
</pre>
<!-- <script src="./mermaid.js"></script> -->
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
@@ -344,6 +385,7 @@ flowchart TD
htmlLabels: false,
fontFamily: 'courier',
},
lazyLoadedDiagrams: ['./mermaid-mindmap-detector.js'],
});
function callback() {
alert('It worked');
@@ -357,6 +399,11 @@ flowchart TD
document.getElementsByTagName('body')[0].appendChild(div);
}
mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
};
</script>
</body>
</html>

View File

@@ -6,6 +6,10 @@
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
/>
<link
href="https://cdn.jsdelivr.net/npm/@mdi/font@6.9.96/css/materialdesignicons.min.css"
rel="stylesheet"
/>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"
@@ -25,6 +29,12 @@
}
.mermaid svg {
/* font-size: 18px !important; */
background-color: #eee;
background-image: radial-gradient(#fff 1%, transparent 11%),
radial-gradient(#fff 1%, transparent 11%);
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
background-repeat: repeat;
}
.malware {
position: fixed;
@@ -45,32 +55,82 @@
</head>
<body>
<div>Security check</div>
<div class="flex">
<pre id="diagram" class="mermaid">
sequenceDiagram
Nothing:Valid;
</pre>
<div id="res" class=""></div>
</div>
<pre id="diagram" class="mermaid">
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
</pre>
<pre id="diagram" class="mermaid2">
mindmap
root
A
B
C
D
E
A2
B2
C2
D2
E2
child1((Circle))
grandchild 1
grandchild 2
child2(Round rectangle)
grandchild 3
grandchild 4
child3[Square]
grandchild 5
::icon(mdi mdi-fire)
gc6((grand<br/>child 6))
::icon(mdi mdi-fire)
gc7((grand<br/>grand<br/>child 8))
</pre>
<pre id="diagram" class="mermaid2">
example-diagram
</pre>
<!-- <div id="cy"></div> -->
<!-- <script src="http://localhost:9000/packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script> -->
<!-- <script src="./mermaid-example-diagram-detector.js"></script> -->
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
<script src="./mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
startOnLoad: false,
// themeVariables: {relationLabelColor: 'red'}
theme: 'forest',
startOnLoad: true,
logLevel: 0,
// basePath: './packages/',
// themeVariables: { darkMode: true },
lazyLoadedDiagrams: [
'./mermaid-mindmap-detector.esm.mjs',
'./mermaid-example-diagram-detector.esm.mjs',
],
// lazyLoadedDiagrams: ['../../mermaid-mindmap/registry.ts'],
});
function callback() {
alert('It worked');
}
// document.querySelector('#diagram').innerHTML = diagram;
try {
mermaid.initThrowsErrors(undefined, '#diagram');
} catch (err) {
console.log('Caught error:', err);
}
mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
};
</script>
</body>
</html>

82
cypress/platform/per.html Normal file
View File

@@ -0,0 +1,82 @@
<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>
<pre id="diagram" class="mermaid">
flowchart LR
A-->B
</pre
>
<pre id="diagram" class="mermaid2">
mindmap
root
ch1
ch2
</pre
>
<script src="./packages/mermaid-mindmap/dist/mermaid-mindmap-detector.js"></script>
<script src="./packages/mermaid-mindmap/dist/mermaid-example-diagram-detector.js"></script>
<script src="./packages/mermaid/dist/mermaid.js"></script>
<script>
mermaid.parseError = function (err, hash) {
// console.error('Mermaid error: ', err);
};
mermaid.initialize({
startOnLoad: true,
logLevel: 0,
basePath: './packages/',
// themeVariables: {relationLabelColor: 'red'}
});
function callback() {
alert('It worked');
}
mermaid.parseError = function (err, hash) {
console.error('In parse error:');
console.error(err);
};
</script>
</body>
</html>

View File

@@ -14,15 +14,16 @@
mermaid.init({ startOnLoad: false });
mermaid.mermaidAPI.initialize({ securityLevel: 'strict' });
(async () => {
try {
console.log('rendering');
await mermaid.mermaidAPI.render('graphDiv', `>`);
} catch (e) {}
try {
console.log('rendering');
mermaid.mermaidAPI.render('graphDiv', `>`);
} catch (e) {}
mermaid.mermaidAPI.render('graphDiv', `graph LR\n a --> b`, (html) => {
document.getElementById('graph').innerHTML = html;
});
await mermaid.mermaidAPI.render('graphDiv', `graph LR\n a --> b`, (html) => {
document.getElementById('graph').innerHTML = html;
});
})();
</script>
</body>
</html>

View File

@@ -17,11 +17,12 @@
rerender('XMas');
function rerender(text) {
var graphText = `graph TD
const graphText = `graph TD
A[${text}] -->|Get money| B(Go shopping)`;
var graph = mermaid.mermaidAPI.render('id', graphText);
console.log('\x1b[35m%s\x1b[0m', '>> graph', graph);
document.getElementById('graph').innerHTML = graph;
mermaid.mermaidAPI.render('id', graphText).then((svg) => {
console.log('\x1b[35m%s\x1b[0m', '>> graph', svg);
document.getElementById('graph').innerHTML = svg;
});
}
</script>
<button id="rerender" onclick="rerender('Saturday')">Rerender</button>

View File

@@ -1,16 +1,20 @@
import { Base64 } from 'js-base64';
import mermaid2 from '../../src/mermaid';
import mermaid2 from '../../packages/mermaid/src/mermaid';
function b64ToUtf8(str) {
return decodeURIComponent(escape(window.atob(str)));
}
/**
* ##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.
* configuration for mermaid rendering and calls init for rendering the mermaid diagrams on the
* page.
*/
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 graphObj = JSON.parse(b64ToUtf8(graphBase64));
if (graphObj.mermaid && graphObj.mermaid.theme === 'dark') {
document.body.style.background = '#3f3f3f';
}
@@ -32,8 +36,10 @@ const contentLoaded = function () {
document.getElementsByTagName('body')[0].appendChild(div);
}
global.mermaid.initialize(graphObj.mermaid);
global.mermaid.init();
graphObj.mermaid.lazyLoadedDiagrams = ['/mermaid-mindmap-detector.esm.mjs'];
mermaid2.initialize(graphObj.mermaid);
mermaid2.init();
}
};
@@ -66,7 +72,7 @@ const contentLoadedApi = function () {
if (pos > 0) {
pos = pos + 7;
const graphBase64 = document.location.href.substr(pos);
const graphObj = JSON.parse(Base64.decode(graphBase64));
const graphObj = JSON.parse(b64ToUtf8(graphBase64));
// const graph = 'hello'
if (Array.isArray(graphObj.code)) {
const numCodes = graphObj.code.length;

View File

@@ -12,6 +12,8 @@
</head>
<body>
<div id="graph-to-be"></div>
<script src="./bundle-test.js" charset="utf-8"></script>
<script type="module" charset="utf-8">
import './bundle-test.js';
</script>
</body>
</html>

View File

@@ -1,6 +1,6 @@
<html>
<head>
<script src="/e2e.js"></script>
<script src="./viewer.js" type="module"></script>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<style>
.malware {

View File

@@ -1,33 +0,0 @@
/* eslint-disable @typescript-eslint/no-var-requires */
// ***********************************************************
// This example plugins/index.js can be used to load plugins
//
// You can change the location of this file or turn off loading
// the plugins file with the 'pluginsFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/plugins-guide
// ***********************************************************
// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)
// module.exports = (on, config) => {
// // `on` is used to hook into various events Cypress emits
// // `config` is the resolved Cypress config
// }
const { addMatchImageSnapshotPlugin } = require('cypress-image-snapshot/plugin');
require('@applitools/eyes-cypress')(module);
module.exports = (on, config) => {
addMatchImageSnapshotPlugin(on, config);
// copy any needed variables from process.env to config.env
config.env.useAppli = process.env.USE_APPLI ? true : false;
config.env.codeBranch = process.env.APPLI_BRANCH;
// do not forget to return the changed config object!
return config;
};
require('@applitools/eyes-cypress')(module);

View File

@@ -17,8 +17,6 @@ import '@applitools/eyes-cypress/commands';
// Import commands.js using ES2015 syntax:
import './commands';
// import '@percy/cypress';
import '@applitools/eyes-cypress/commands';
// Alternatively you can use CommonJS syntax:
// require('./commands')

303
demos/c4context.html Normal file
View File

@@ -0,0 +1,303 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>C4 Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
/*font-family: 'Courier New', Courier, monospace !important;*/
}
</style>
</head>
<body>
<h1>C4 context diagram demos</h1>
<pre class="mermaid">
C4Context
accTitle: C4 context demo
accDescr: Many large C4 diagrams
title System Context diagram for Internet Banking System
Enterprise_Boundary(b0, "BankBoundary0") {
Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.")
Person(customerB, "Banking Customer B")
Person_Ext(customerC, "Banking Customer C", "desc")
Person(customerD, "Banking Customer D", "A customer of the bank, <br/> with personal bank accounts.")
System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.")
Enterprise_Boundary(b1, "BankBoundary") {
SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
System_Boundary(b2, "BankBoundary2") {
System(SystemA, "Banking System A")
System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.")
}
System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.")
SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.")
Boundary(b3, "BankBoundary3", "boundary") {
SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.")
SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.")
}
}
}
BiRel(customerA, SystemAA, "Uses")
BiRel(SystemAA, SystemE, "Uses")
Rel(SystemAA, SystemC, "Sends e-mails", "SMTP")
Rel(SystemC, customerA, "Sends e-mails to")
UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red")
UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5")
UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10")
UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50")
UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20")
UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
</pre>
<hr />
<pre class="mermaid">
C4Container
title Container diagram for Internet Banking System
System_Ext(email_system, "E-Mail System", "The internal Microsoft Exchange system", $tags="v1.0")
Person(customer, Customer, "A customer of the bank, with personal bank accounts", $tags="v1.0")
Container_Boundary(c1, "Internet Banking") {
Container(spa, "Single-Page App", "JavaScript, Angular", "Provides all the Internet banking functionality to customers via their web browser")
Container_Ext(mobile_app, "Mobile App", "C#, Xamarin", "Provides a limited subset of the Internet banking functionality to customers via their mobile device")
Container(web_app, "Web Application", "Java, Spring MVC", "Delivers the static content and the Internet banking SPA")
ContainerDb(database, "Database", "SQL Database", "Stores user registration information, hashed auth credentials, access logs, etc.")
ContainerDb_Ext(backend_api, "API Application", "Java, Docker Container", "Provides Internet banking functionality via API")
}
System_Ext(banking_system, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
Rel(customer, web_app, "Uses", "HTTPS")
UpdateRelStyle(customer, web_app, $offsetY="60", $offsetX="90")
Rel(customer, spa, "Uses", "HTTPS")
UpdateRelStyle(customer, spa, $offsetY="-40")
Rel(customer, mobile_app, "Uses")
UpdateRelStyle(customer, mobile_app, $offsetY="-30")
Rel(web_app, spa, "Delivers")
UpdateRelStyle(web_app, spa, $offsetX="130")
Rel(spa, backend_api, "Uses", "async, JSON/HTTPS")
Rel(mobile_app, backend_api, "Uses", "async, JSON/HTTPS")
Rel_Back(database, backend_api, "Reads from and writes to", "sync, JDBC")
Rel(email_system, customer, "Sends e-mails to")
UpdateRelStyle(email_system, customer, $offsetX="-45")
Rel(backend_api, email_system, "Sends e-mails using", "sync, SMTP")
UpdateRelStyle(backend_api, email_system, $offsetY="-60")
Rel(backend_api, banking_system, "Uses", "sync/async, XML/HTTPS")
UpdateRelStyle(backend_api, banking_system, $offsetY="-50", $offsetX="-140")
</pre>
<hr />
<pre class="mermaid">
C4Component
title Component diagram for Internet Banking System - API Application
Container(spa, "Single Page Application", "javascript and angular", "Provides all the internet banking functionality to customers via their web browser.")
Container(ma, "Mobile App", "Xamarin", "Provides a limited subset ot the internet banking functionality to customers via their mobile mobile device.")
ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
System_Ext(mbs, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")
Container_Boundary(api, "API Application") {
Component(sign, "Sign In Controller", "MVC Rest Controller", "Allows users to sign in to the internet banking system")
Component(accounts, "Accounts Summary Controller", "MVC Rest Controller", "Provides customers with a summary of their bank accounts")
Component(security, "Security Component", "Spring Bean", "Provides functionality related to singing in, changing passwords, etc.")
Component(mbsfacade, "Mainframe Banking System Facade", "Spring Bean", "A facade onto the mainframe banking system.")
Rel(sign, security, "Uses")
Rel(accounts, mbsfacade, "Uses")
Rel(security, db, "Read & write to", "JDBC")
Rel(mbsfacade, mbs, "Uses", "XML/HTTPS")
}
Rel_Back(spa, sign, "Uses", "JSON/HTTPS")
Rel(spa, accounts, "Uses", "JSON/HTTPS")
Rel(ma, sign, "Uses", "JSON/HTTPS")
Rel(ma, accounts, "Uses", "JSON/HTTPS")
UpdateRelStyle(spa, sign, $offsetY="-40")
UpdateRelStyle(spa, accounts, $offsetX="40", $offsetY="40")
UpdateRelStyle(ma, sign, $offsetX="-90", $offsetY="40")
UpdateRelStyle(ma, accounts, $offsetY="-40")
UpdateRelStyle(sign, security, $offsetX="-160", $offsetY="10")
UpdateRelStyle(accounts, mbsfacade, $offsetX="140", $offsetY="10")
UpdateRelStyle(security, db, $offsetY="-40")
UpdateRelStyle(mbsfacade, mbs, $offsetY="-40")
</pre>
<hr />
<pre class="mermaid">
C4Dynamic
title Dynamic diagram for Internet Banking System - API Application
ContainerDb(c4, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
Container(c1, "Single-Page Application", "JavaScript and Angular", "Provides all of the Internet banking functionality to customers via their web browser.")
Container_Boundary(b, "API Application") {
Component(c3, "Security Component", "Spring Bean", "Provides functionality Related to signing in, changing passwords, etc.")
Component(c2, "Sign In Controller", "Spring MVC Rest Controller", "Allows users to sign in to the Internet Banking System.")
}
Rel(c1, c2, "Submits credentials to", "JSON/HTTPS")
Rel(c2, c3, "Calls isAuthenticated() on")
Rel(c3, c4, "select * from users where username = ?", "JDBC")
UpdateRelStyle(c1, c2, $textColor="red", $offsetY="-40")
UpdateRelStyle(c2, c3, $textColor="red", $offsetX="-40", $offsetY="60")
UpdateRelStyle(c3, c4, $textColor="red", $offsetY="-40", $offsetX="10")
</pre>
<hr />
<pre class="mermaid">
C4Deployment
title Deployment Diagram for Internet Banking System - Live
Deployment_Node(mob, "Customer's mobile device", "Apple IOS or Android"){
Container(mobile, "Mobile App", "Xamarin", "Provides a limited subset of the Internet Banking functionality to customers via their mobile device.")
}
Deployment_Node(comp, "Customer's computer", "Mircosoft Windows or Apple macOS"){
Deployment_Node(browser, "Web Browser", "Google Chrome, Mozilla Firefox,<br/> Apple Safari or Microsoft Edge"){
Container(spa, "Single Page Application", "JavaScript and Angular", "Provides all of the Internet Banking functionality to customers via their web browser.")
}
}
Deployment_Node(plc, "Big Bank plc", "Big Bank plc data center"){
Deployment_Node(dn, "bigbank-api*** x8", "Ubuntu 16.04 LTS"){
Deployment_Node(apache, "Apache Tomcat", "Apache Tomcat 8.x"){
Container(api, "API Application", "Java and Spring MVC", "Provides Internet Banking functionality via a JSON/HTTPS API.")
}
}
Deployment_Node(bb2, "bigbank-web*** x4", "Ubuntu 16.04 LTS"){
Deployment_Node(apache2, "Apache Tomcat", "Apache Tomcat 8.x"){
Container(web, "Web Application", "Java and Spring MVC", "Delivers the static content and the Internet Banking single page application.")
}
}
Deployment_Node(bigbankdb01, "bigbank-db01", "Ubuntu 16.04 LTS"){
Deployment_Node(oracle, "Oracle - Primary", "Oracle 12c"){
ContainerDb(db, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
}
}
Deployment_Node(bigbankdb02, "bigbank-db02", "Ubuntu 16.04 LTS") {
Deployment_Node(oracle2, "Oracle - Secondary", "Oracle 12c") {
ContainerDb(db2, "Database", "Relational Database Schema", "Stores user registration information, hashed authentication credentials, access logs, etc.")
}
}
}
Rel(mobile, api, "Makes API calls to", "json/HTTPS")
Rel(spa, api, "Makes API calls to", "json/HTTPS")
Rel_U(web, spa, "Delivers to the customer's web browser")
Rel(api, db, "Reads from and writes to", "JDBC")
Rel(api, db2, "Reads from and writes to", "JDBC")
Rel_R(db, db2, "Replicates data to")
UpdateRelStyle(spa, api, $offsetY="-40")
UpdateRelStyle(web, spa, $offsetY="-40")
UpdateRelStyle(api, db, $offsetY="-20", $offsetX="5")
UpdateRelStyle(api, db2, $offsetX="-40", $offsetY="-20")
UpdateRelStyle(db, db2, $offsetY="-10")
</pre>
<hr />
<script src="./mermaid.js"></script>
<script>
const ALLOWED_TAGS = [
'a',
'b',
'blockquote',
'br',
'dd',
'div',
'dl',
'dt',
'em',
'foreignObject',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'h7',
'h8',
'hr',
'i',
'li',
'ul',
'ol',
'p',
'pre',
'span',
'strike',
'strong',
'table',
'tbody',
'td',
'tfoot',
'th',
'thead',
'tr',
];
mermaid.initialize({
theme: 'forest',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',
flowchart: { curve: 'basis' },
gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50 },
dompurifyConfig: {
USE_PROFILES: {
svg: true,
},
ADD_TAGS: ALLOWED_TAGS,
ADD_ATTR: ['transform-origin'],
},
// sequenceDiagram: { actorMargin: 300 } // deprecated
});
</script>
<script>
function testClick(nodeId) {
console.log('clicked', nodeId);
var originalBgColor = document.querySelector('body').style.backgroundColor;
document.querySelector('body').style.backgroundColor = 'yellow';
setTimeout(function () {
document.querySelector('body').style.backgroundColor = originalBgColor;
}, 100);
}
</script>
<script>
const testLineEndings = (test, input) => {
try {
mermaid.render(test, input, () => {
//no-op
});
} catch (err) {
console.error('Error in %s:\n\n%s', test, err);
}
};
testLineEndings('CR', 'graph LR\rsubgraph CR\rA --> B\rend');
testLineEndings('LF', 'graph LR\nsubgraph LF\nA --> B\nend');
testLineEndings('CRLF', 'graph LR\r\nsubgraph CRLF\r\nA --> B\r\nend');
</script>
</body>
</html>

View File

@@ -1,9 +1,9 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<title>Class diagrams Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
@@ -14,36 +14,134 @@
</head>
<body>
<h1>Class diagram demos</h1>
<pre class="mermaid">
classDiagram
title Animal Diagram
accDescription The animal class diagram
Animal <|-- Duck
Animal <|-- 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()
}
accTitle: Demo Class Diagram
accDescr: This class diagram show the abstract Animal class, and 3 classes that inherit from it: Duck, Fish, and Zebra.
Animal <|-- Duck
Animal <|-- 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()
}
</pre>
<hr />
<pre class="mermaid">
classDiagram
Class01 <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03 "0" *-- "0..n" Class04
Class05 "1" o-- "many" Class06
Class07 .. Class08
Class09 "many" --> "1" C2 : Where am i?
Class09 "0" --* "1..n" 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
size()
}
</pre>
<hr />
<pre class="mermaid">
classDiagram
class Class01~T~
Class01 : #size()
Class01 : -int chimp
Class01 : +int gorilla
class Class10~T~ {
&lt;&lt;service&gt;&gt;
int id
size()
}
</pre>
<hr />
<pre class="mermaid">
classDiagram
Class01~T~ <|-- AveryLongClass : Cool
&lt;&lt;interface&gt;&gt; Class01
Class03~T~ "0" *-- "0..n" Class04
Class05 "1" o-- "many" Class06
Class07~T~ .. Class08
Class09 "many" --> "1" C2 : Where am i?
Class09 "0" --* "1..n" 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
size()
}
</pre>
<hr />
<pre class="mermaid">
classDiagram
Interface1 ()-- Interface1Impl
</pre>
<hr />
<pre class="mermaid">
classDiagram
direction LR
Animal ()-- Dog
Dog : bark()
Dog : species()
</pre>
<hr />
<pre class="mermaid">
classDiagram
direction RL
Fruit ()-- Apple
Apple : color()
Apple : -int leafCount()
Fruit ()-- Pineapple
Pineapple : color()
Pineapple : -int leafCount()
Pineapple : -int spikeCount()
</pre>
<hr />
<script src="./mermaid.js"></script>
<script>
mermaid.initialize({
theme: 'forest',
theme: 'default',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',

View File

@@ -1,9 +1,9 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<title>Data Flow Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
@@ -13,12 +13,16 @@
</style>
</head>
<body>
<h2>Data Flow Diagram Example</h2>
<h1>Data Flow Diagram demos</h1>
<pre class="mermaid">
flowchart LR
accTitle: A simple linear flowchart.
accDescr: A Database has input to a circle System has output to a square Customer.
DataStore[|borders:tb|Database] -->|input| Process((System)) -->|output| Entity[Customer];
</pre>
<hr />
<h2>Borders Example</h2>
<pre class="mermaid">
flowchart TD

View File

@@ -1,32 +1,65 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<title>ER diagram | Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
font-family: 'Courier New', Courier, monospace !important;
}
.diagram-title {
fill: red;
font-size: 24pt;
}
</style>
</head>
<body>
<pre class="mermaid">
erDiagram
title This is a title
accDescription Test a description
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
%% title This is a title
%% accDescription Test a description
"Person . CUSTOMER"||--o{ ORDER : places
ORDER ||--|{ "€£LINE_ITEM ¥" : contains
"Person . CUSTOMER" }|..|{ "Address//StreetAddress::[DELIVERY ADDRESS]" : uses
"Address//StreetAddress::[DELIVERY ADDRESS]" {
int customerID FK
string line1 "this is the first address line comment"
string line2
string city
string region
string state
string postal_code
string country
}
"a_~`!@#$^&*()-_=+[]{}|/;:'.?¡⁄™€£‹¢›∞fi§‡•°ª·º‚≠±œŒ∑„®†ˇ¥Á¨ˆˆØπ∏“«»åÅßÍ∂΃ϩ˙Ó∆Ô˚¬Ò…ÚæÆΩ¸≈π˛çÇ√◊∫ı˜µÂ≤¯≥˘÷¿" {
string name "this is an entity with an absurd name just to show characters that are now acceptable as long as the name is in double quotes"
}
"€£LINE_ITEM ¥" {
int orderID FK
int currencyId FK
number price
number quantity
number adjustment
number final_price
}
</pre>
<script src="./mermaid.js"></script>
<script>
<script type="module">
mermaid.initialize({
theme: 'forest',
theme: 'default',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
@@ -15,10 +15,12 @@
<body>
<h1>Comparison "graph vs. flowchart"</h1>
<h2>Sample 1</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
accTitle: This is a complicated flow
accDescr: This is the descriptoin for the complicated flow.
sid-B3655226-6C29-4D00-B685-3D5C734DC7E1["
提交申请
@@ -114,6 +116,7 @@
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A;
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4FC27B48-A6F9-460A-A675-021F5854FE22;
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -213,37 +216,36 @@
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A;
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4FC27B48-A6F9-460A-A675-021F5854FE22;
</pre>
<hr />
<h2>Sample 2</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TD
title What to buy
accDescription Options of what to buy with Christmas money
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me thinksssssx<br/>sssssssssssssssssssuuu<br />tttsssssssssssssssssssssss}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[Car]
accTitle: What to buy
accDescr: Options of what to buy with Christmas money
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me thinksssssx<br/>sssssssssssssssssssuuu<br />tttsssssssssssssssssssssss}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[Car]
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
flowchart TD
title What to buy
accDescription Options of what to buy with Christmas money
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me thinksssssx<br/>sssssssssssssssssssuuu<br />tttsssssssssssssssssssssss}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[Car]
accTitle: What to buy
accDescr: Options of what to buy with Christmas money
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me thinksssssx<br/>sssssssssssssssssssuuu<br />tttsssssssssssssssssssssss}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[Car]
</pre>
<hr />
<h2>Sample 3</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TD
@@ -254,6 +256,7 @@
C -->|Two| E[\iPhone\]
C -->|Three| F[Car]
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -265,10 +268,9 @@
C -->|Two| E[\iPhone\]
C -->|Three| F[Car]
</pre>
<hr />
<h2>Sample 4</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
@@ -293,6 +295,7 @@
35(SAM.CommonFA.PopulationFME)-->39(SAM.CommonFA.ChargeDetails)
36(SAM.CommonFA.PremetricCost)-->39(SAM.CommonFA.ChargeDetails)
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -318,10 +321,9 @@
35(SAM.CommonFA.PopulationFME)-->39(SAM.CommonFA.ChargeDetails)
36(SAM.CommonFA.PremetricCost)-->39(SAM.CommonFA.ChargeDetails)
</pre>
<hr />
<h2>Sample 5</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TD
@@ -388,6 +390,7 @@
9a072290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002
9a072290_1ec3_e711_8c5a_005056ad0002-->71082290_1ec3_e711_8c5a_005056ad0002
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -455,10 +458,9 @@
9a072290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002
9a072290_1ec3_e711_8c5a_005056ad0002-->71082290_1ec3_e711_8c5a_005056ad0002
</pre>
<hr />
<h2>Sample 6</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TB
@@ -466,6 +468,7 @@
a1-->a2
end
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -474,10 +477,9 @@
a1-->a2
end
</pre>
<hr />
<h2>Sample 7</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TB
@@ -508,6 +510,7 @@
style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred
style bar fill:#999,stroke-width:10px,stroke:#0F0,color:blue
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -539,10 +542,9 @@
style foo fill:#F99,stroke-width:2px,stroke:#F0F,color:darkred
style bar fill:#999,stroke-width:10px,stroke:#0F0,color:blue
</pre>
<hr />
<h2>Sample 8</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
@@ -559,6 +561,7 @@
3000"
style 456ac9b0d15a8b7f1e71073221059886 fill:#f9f,stroke:#333,stroke-width:4px
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -576,10 +579,9 @@
3000"
style 456ac9b0d15a8b7f1e71073221059886 fill:#f9f,stroke:#333,stroke-width:4px
</pre>
<hr />
<h2>Sample 9</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TD
@@ -594,6 +596,7 @@
class A someclass;
class C someclass;
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -609,10 +612,9 @@
class A someclass;
class C someclass;
</pre>
<hr />
<h2>Sample 10</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TD
@@ -628,6 +630,7 @@
class A someclass;
class C someclass;
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -644,10 +647,9 @@
class A someclass;
class C someclass;
</pre>
<hr />
<h2>Sample 11</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
@@ -663,6 +665,7 @@
class A someclass;
class C someclass;
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -679,10 +682,9 @@
class A someclass;
class C someclass;
</pre>
<hr />
<h2>Sample 12</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
@@ -702,6 +704,7 @@
classDef someclass fill:#f96;
class A someclass;
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -722,10 +725,9 @@
classDef someclass fill:#f96;
class A someclass;
</pre>
<hr />
<h2>Sample 13</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
@@ -739,6 +741,7 @@
linkStyle 1 stroke:DarkGray,stroke-width:2px
linkStyle 2 stroke:DarkGray,stroke-width:2px
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -753,10 +756,9 @@
linkStyle 1 stroke:DarkGray,stroke-width:2px
linkStyle 2 stroke:DarkGray,stroke-width:2px
</pre>
<hr />
<h2>Sample 14</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
@@ -766,6 +768,7 @@
linkStyle 1 stroke:greenyellow,stroke-width:2px
style C fill:greenyellow,stroke:green,stroke-width:4px
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -776,10 +779,9 @@
linkStyle 1 stroke:greenyellow,stroke-width:2px
style C fill:greenyellow,stroke:green,stroke-width:4px
</pre>
<hr />
<h2>Sample 15</h2>
<h2>Sample 15</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TB
@@ -798,6 +800,7 @@
click E "notes://do-your-thing/id" "other protocol test"
click F "javascript:alert('test')" "script test"
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -817,10 +820,9 @@
click E "notes://do-your-thing/id" "other protocol test"
click F "javascript:alert('test')" "script test"
</pre>
<hr />
<h2>Sample 16</h2>
<h2>Sample 16</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
@@ -837,6 +839,7 @@
click B "flowchart.html#link-clicked" "link test"
click D testClick "click test"
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -854,10 +857,9 @@
click B "flowchart.html#link-clicked" "link test"
click D testClick "click test"
</pre>
<hr />
<h2>Sample 17</h2>
<h2>Sample 17</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TD
@@ -870,6 +872,7 @@
class A myClass1
class D myClass2
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -883,10 +886,9 @@
class A myClass1
class D myClass2
</pre>
<hr />
<h2>Sample 18</h2>
<h2>Sample 18</h2>
<h3>graph</h3>
<pre class="mermaid">
graph LR
@@ -934,6 +936,7 @@
style M2 stroke:#0000ff,fill:#ccccff,color:#0000ff
style N2 stroke:#0000ff,fill:#ccccff,color:#0000ff
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -982,10 +985,9 @@
style M2 stroke:#0000ff,fill:#ccccff,color:#0000ff
style N2 stroke:#0000ff,fill:#ccccff,color:#0000ff
</pre>
<hr />
<h2>Sample 19</h2>
<h2>Sample 19</h2>
<h3>graph</h3>
<pre class="mermaid">
graph TB
@@ -1033,6 +1035,7 @@
style M2 stroke:#0000ff,fill:#ccccff,color:#0000ff
style N2 stroke:#0000ff,fill:#ccccff,color:#0000ff
</pre>
<hr />
<h3>flowchart</h3>
<pre class="mermaid">
@@ -1084,9 +1087,418 @@
style N2 stroke:#0000ff,fill:#ccccff,color:#0000ff
style O2 stroke:#0000ff,fill:#ccccff,color:#0000ff
</pre>
<hr />
<hr />
<pre class="mermaid">
graph LR
sid-B3655226-6C29-4D00-B685-3D5C734DC7E1["
提交申请
熊大
"];
class sid-B3655226-6C29-4D00-B685-3D5C734DC7E1 node-executed;
sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A["
负责人审批
强子
"];
class sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A node-executed;
sid-E27C0367-E6D6-497F-9736-3CDC21FDE221["
DBA审批
强子
"];
class sid-E27C0367-E6D6-497F-9736-3CDC21FDE221 node-executed;
sid-BED98281-9585-4D1B-934E-BD1AC6AC0EFD["
SA审批
阿美
"];
class sid-BED98281-9585-4D1B-934E-BD1AC6AC0EFD node-executed;
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7["
主管审批
光头强
"];
class sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7 node-executed;
sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89["
DBA确认
强子
"];
class sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89 node-executed;
sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937["
SA确认
阿美
"];
class sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937 node-executed;
sid-4FC27B48-A6F9-460A-A675-021F5854FE22["
结束
"];
class sid-4FC27B48-A6F9-460A-A675-021F5854FE22 node-executed;
sid-19DD9E9F-98C1-44EE-B604-842AFEE76F1E["
SA执行1
强子
"];
class sid-19DD9E9F-98C1-44EE-B604-842AFEE76F1E node-executed;
sid-6C2120F3-D940-4958-A067-0903DCE879C4["
SA执行2
强子
"];
class sid-6C2120F3-D940-4958-A067-0903DCE879C4 node-executed;
sid-9180E2A0-5C4B-435F-B42F-0D152470A338["
DBA执行1
强子
"];
class sid-9180E2A0-5C4B-435F-B42F-0D152470A338 node-executed;
sid-03A2C3AC-5337-48A5-B154-BB3FD0EC8DAD["
DBA执行3
强子
"];
class sid-03A2C3AC-5337-48A5-B154-BB3FD0EC8DAD node-executed;
sid-D5E1F2F4-306C-47A2-BF74-F66E3D769756["
DBA执行2
强子
"];
class sid-D5E1F2F4-306C-47A2-BF74-F66E3D769756 node-executed;
sid-8C3F2F1D-F014-4F99-B966-095DC1A2BD93["
DBA执行4
强子
"];
class sid-8C3F2F1D-F014-4F99-B966-095DC1A2BD93 node-executed;
sid-1897B30A-9C5C-4D5B-B80B-76A038785070["
负责人确认
梁静茹
"];
class sid-1897B30A-9C5C-4D5B-B80B-76A038785070 node-executed;
sid-B3655226-6C29-4D00-B685-3D5C734DC7E1-->sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7;
sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A-->sid-1897B30A-9C5C-4D5B-B80B-76A038785070;
sid-E27C0367-E6D6-497F-9736-3CDC21FDE221-->sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89;
sid-BED98281-9585-4D1B-934E-BD1AC6AC0EFD-->sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937;
sid-19DD9E9F-98C1-44EE-B604-842AFEE76F1E-->sid-6C2120F3-D940-4958-A067-0903DCE879C4;
sid-9180E2A0-5C4B-435F-B42F-0D152470A338-->sid-D5E1F2F4-306C-47A2-BF74-F66E3D769756;
sid-03A2C3AC-5337-48A5-B154-BB3FD0EC8DAD-->sid-8C3F2F1D-F014-4F99-B966-095DC1A2BD93;
sid-6C2120F3-D940-4958-A067-0903DCE879C4-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A;
sid-1897B30A-9C5C-4D5B-B80B-76A038785070-->sid-4FC27B48-A6F9-460A-A675-021F5854FE22;
sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937-->sid-19DD9E9F-98C1-44EE-B604-842AFEE76F1E;
sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89-->sid-9180E2A0-5C4B-435F-B42F-0D152470A338;
sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89-->sid-03A2C3AC-5337-48A5-B154-BB3FD0EC8DAD;
sid-D5E1F2F4-306C-47A2-BF74-F66E3D769756-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A;
sid-8C3F2F1D-F014-4F99-B966-095DC1A2BD93-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A;
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-BED98281-9585-4D1B-934E-BD1AC6AC0EFD;
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-E27C0367-E6D6-497F-9736-3CDC21FDE221;
sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937-->sid-6C2120F3-D940-4958-A067-0903DCE879C4;
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A;
sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4FC27B48-A6F9-460A-A675-021F5854FE22;
</pre>
<hr />
<pre class="mermaid">
graph TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me thinksssssx<br />sssssssssssssssssssuuu<br />tttsssssssssssssssssssssss}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[Car]
</pre>
<hr />
<pre class="mermaid">
graph TD
A[/Christmas\]
A -->|Get money| B[\Go shopping/]
B --> C{Let me thinksssss<br />ssssssssssssssssssssss<br />sssssssssssssssssssssssssss}
C -->|One| D[/Laptop/]
C -->|Two| E[\iPhone\]
C -->|Three| F[Car]
</pre>
<hr />
<pre class="mermaid">
graph LR
47(SAM.CommonFA.FMESummary)-->48(SAM.CommonFA.CommonFAFinanceBudget)
37(SAM.CommonFA.BudgetSubserviceLineVolume)-->48(SAM.CommonFA.CommonFAFinanceBudget)
35(SAM.CommonFA.PopulationFME)-->47(SAM.CommonFA.FMESummary)
41(SAM.CommonFA.MetricCost)-->47(SAM.CommonFA.FMESummary)
44(SAM.CommonFA.MetricOutliers)-->47(SAM.CommonFA.FMESummary)
46(SAM.CommonFA.MetricOpportunity)-->47(SAM.CommonFA.FMESummary)
40(SAM.CommonFA.OPVisits)-->47(SAM.CommonFA.FMESummary)
38(SAM.CommonFA.CommonFAFinanceRefund)-->47(SAM.CommonFA.FMESummary)
43(SAM.CommonFA.CommonFAFinancePicuDays)-->47(SAM.CommonFA.FMESummary)
42(SAM.CommonFA.CommonFAFinanceNurseryDays)-->47(SAM.CommonFA.FMESummary)
45(SAM.CommonFA.MetricPreOpportunity)-->46(SAM.CommonFA.MetricOpportunity)
35(SAM.CommonFA.PopulationFME)-->45(SAM.CommonFA.MetricPreOpportunity)
41(SAM.CommonFA.MetricCost)-->45(SAM.CommonFA.MetricPreOpportunity)
41(SAM.CommonFA.MetricCost)-->44(SAM.CommonFA.MetricOutliers)
39(SAM.CommonFA.ChargeDetails)-->43(SAM.CommonFA.CommonFAFinancePicuDays)
39(SAM.CommonFA.ChargeDetails)-->42(SAM.CommonFA.CommonFAFinanceNurseryDays)
39(SAM.CommonFA.ChargeDetails)-->41(SAM.CommonFA.MetricCost)
39(SAM.CommonFA.ChargeDetails)-->40(SAM.CommonFA.OPVisits)
35(SAM.CommonFA.PopulationFME)-->39(SAM.CommonFA.ChargeDetails)
36(SAM.CommonFA.PremetricCost)-->39(SAM.CommonFA.ChargeDetails)
</pre>
<hr />
<pre class="mermaid">
graph TD
9e122290_1ec3_e711_8c5a_005056ad0002("fa:fa-creative-commons My System | Test Environment")
82072290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Shared Business Logic Server:Service 1")
db052290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Shared Business Logic Server:Service 2")
4e112290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Shared Report Server:Service 1")
30122290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Shared Report Server:Service 2")
5e112290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Dedicated Test Business Logic Server:Service 1")
c1112290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Dedicated Test Business Logic Server:Service 2")
b7042290_1ec3_e711_8c5a_005056ad0002("fa:fa-circle [DBServer\SharedDbInstance].[SupportDb]")
8f102290_1ec3_e711_8c5a_005056ad0002("fa:fa-circle [DBServer\SharedDbInstance].[DevelopmentDb]")
0e102290_1ec3_e711_8c5a_005056ad0002("fa:fa-circle [DBServer\SharedDbInstance].[TestDb]")
07132290_1ec3_e711_8c5a_005056ad0002("fa:fa-circle [DBServer\SharedDbInstance].[SharedReportingDb]")
c7072290_1ec3_e711_8c5a_005056ad0002("fa:fa-server Shared Business Logic Server")
ca122290_1ec3_e711_8c5a_005056ad0002("fa:fa-server Shared Report Server")
68102290_1ec3_e711_8c5a_005056ad0002("fa:fa-server Dedicated Test Business Logic Server")
f4112290_1ec3_e711_8c5a_005056ad0002("fa:fa-database [DBServer\SharedDbInstance]")
d6072290_1ec3_e711_8c5a_005056ad0002("fa:fa-server DBServer")
71082290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs DBServer\:MSSQLSERVER")
c0102290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs DBServer\:SQLAgent")
9a072290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs DBServer\:SQLBrowser")
1d0a2290_1ec3_e711_8c5a_005056ad0002("fa:fa-server VmHost1")
200a2290_1ec3_e711_8c5a_005056ad0002("fa:fa-server VmHost2")
1c0a2290_1ec3_e711_8c5a_005056ad0002("fa:fa-server VmHost3")
9e122290_1ec3_e711_8c5a_005056ad0002-->82072290_1ec3_e711_8c5a_005056ad0002
9e122290_1ec3_e711_8c5a_005056ad0002-->db052290_1ec3_e711_8c5a_005056ad0002
9e122290_1ec3_e711_8c5a_005056ad0002-->4e112290_1ec3_e711_8c5a_005056ad0002
9e122290_1ec3_e711_8c5a_005056ad0002-->30122290_1ec3_e711_8c5a_005056ad0002
9e122290_1ec3_e711_8c5a_005056ad0002-->5e112290_1ec3_e711_8c5a_005056ad0002
9e122290_1ec3_e711_8c5a_005056ad0002-->c1112290_1ec3_e711_8c5a_005056ad0002
82072290_1ec3_e711_8c5a_005056ad0002-->b7042290_1ec3_e711_8c5a_005056ad0002
82072290_1ec3_e711_8c5a_005056ad0002-->8f102290_1ec3_e711_8c5a_005056ad0002
82072290_1ec3_e711_8c5a_005056ad0002-->0e102290_1ec3_e711_8c5a_005056ad0002
82072290_1ec3_e711_8c5a_005056ad0002-->c7072290_1ec3_e711_8c5a_005056ad0002
db052290_1ec3_e711_8c5a_005056ad0002-->c7072290_1ec3_e711_8c5a_005056ad0002
db052290_1ec3_e711_8c5a_005056ad0002-->82072290_1ec3_e711_8c5a_005056ad0002
4e112290_1ec3_e711_8c5a_005056ad0002-->b7042290_1ec3_e711_8c5a_005056ad0002
4e112290_1ec3_e711_8c5a_005056ad0002-->8f102290_1ec3_e711_8c5a_005056ad0002
4e112290_1ec3_e711_8c5a_005056ad0002-->0e102290_1ec3_e711_8c5a_005056ad0002
4e112290_1ec3_e711_8c5a_005056ad0002-->07132290_1ec3_e711_8c5a_005056ad0002
4e112290_1ec3_e711_8c5a_005056ad0002-->ca122290_1ec3_e711_8c5a_005056ad0002
30122290_1ec3_e711_8c5a_005056ad0002-->ca122290_1ec3_e711_8c5a_005056ad0002
30122290_1ec3_e711_8c5a_005056ad0002-->4e112290_1ec3_e711_8c5a_005056ad0002
5e112290_1ec3_e711_8c5a_005056ad0002-->8f102290_1ec3_e711_8c5a_005056ad0002
5e112290_1ec3_e711_8c5a_005056ad0002-->68102290_1ec3_e711_8c5a_005056ad0002
c1112290_1ec3_e711_8c5a_005056ad0002-->68102290_1ec3_e711_8c5a_005056ad0002
c1112290_1ec3_e711_8c5a_005056ad0002-->5e112290_1ec3_e711_8c5a_005056ad0002
b7042290_1ec3_e711_8c5a_005056ad0002-->f4112290_1ec3_e711_8c5a_005056ad0002
8f102290_1ec3_e711_8c5a_005056ad0002-->f4112290_1ec3_e711_8c5a_005056ad0002
0e102290_1ec3_e711_8c5a_005056ad0002-->f4112290_1ec3_e711_8c5a_005056ad0002
07132290_1ec3_e711_8c5a_005056ad0002-->f4112290_1ec3_e711_8c5a_005056ad0002
c7072290_1ec3_e711_8c5a_005056ad0002-->1d0a2290_1ec3_e711_8c5a_005056ad0002
ca122290_1ec3_e711_8c5a_005056ad0002-->200a2290_1ec3_e711_8c5a_005056ad0002
68102290_1ec3_e711_8c5a_005056ad0002-->1c0a2290_1ec3_e711_8c5a_005056ad0002
f4112290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002
f4112290_1ec3_e711_8c5a_005056ad0002-->71082290_1ec3_e711_8c5a_005056ad0002
f4112290_1ec3_e711_8c5a_005056ad0002-->c0102290_1ec3_e711_8c5a_005056ad0002
f4112290_1ec3_e711_8c5a_005056ad0002-->9a072290_1ec3_e711_8c5a_005056ad0002
d6072290_1ec3_e711_8c5a_005056ad0002-->1c0a2290_1ec3_e711_8c5a_005056ad0002
71082290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002
c0102290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002
c0102290_1ec3_e711_8c5a_005056ad0002-->71082290_1ec3_e711_8c5a_005056ad0002
9a072290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002
9a072290_1ec3_e711_8c5a_005056ad0002-->71082290_1ec3_e711_8c5a_005056ad0002
</pre>
<hr />
<pre class="mermaid">
graph TB
subgraph One
a1-->a2
end
</pre>
<hr />
<pre class="mermaid">
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
</pre>
<hr />
<pre class="mermaid">
graph LR
456ac9b0d15a8b7f1e71073221059886[1051 AAA fa:fa-check]
f7f580e11d00a75814d2ded41fe8e8fe[1141 BBB fa:fa-check]
81dc9bdb52d04dc20036dbd8313ed055[1234 CCC fa:fa-check]
456ac9b0d15a8b7f1e71073221059886 -->|Node| f7f580e11d00a75814d2ded41fe8e8fe
f7f580e11d00a75814d2ded41fe8e8fe -->|Node| 81dc9bdb52d04dc20036dbd8313ed055
click 456ac9b0d15a8b7f1e71073221059886 "/admin/user/view?id=1051" "AAA
6000"
click f7f580e11d00a75814d2ded41fe8e8fe "/admin/user/view?id=1141" "BBB
600"
click 81dc9bdb52d04dc20036dbd8313ed055 "/admin/user/view?id=1234" "CCC
3000"
style 456ac9b0d15a8b7f1e71073221059886 fill:#f9f,stroke:#333,stroke-width:4px
</pre>
<hr />
<pre class="mermaid">
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 testClick "click test"
classDef someclass fill:#f96;
class A someclass;
class C someclass;
</pre>
<hr />
<pre class="mermaid">
graph 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;
</pre>
<hr />
<pre class="mermaid">
graph LR
A[[subroutine 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;
</pre>
<hr />
<pre class="mermaid">
graph LR
A[(cylindrical<br />shape<br />test)]
A -->|Get money| B1[(Go shopping 1)]
A -->|Get money| B2[(Go shopping 2)]
A -->|Get money| B3[(Go shopping 3)]
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?)]
B1 --> C
B2 --> C
B3 --> C
C -->|One| D[(Laptop)]
C -->|Two| E[(iPhone)]
C -->|Three| F[(Car)]
click A "index.html#link-clicked" "link test"
click B testClick "click test"
classDef someclass fill:#f96;
class A someclass;
</pre>
<hr />
<pre class="mermaid">
graph LR
A1[Multi<br>Line] -->|Multi<br>Line| B1(Multi<br>Line)
C1[Multi<br />Line] -->|Multi<br />Line| D1(Multi<br />Line)
E1[Multi<br />Line] -->|Multi<br />Line| F1(Multi<br />Line)
A2[Multi<br>Line] -->|Multi<br>Line| B2(Multi<br>Line)
C2[Multi<br />Line] -->|Multi<br />Line| D2(Multi<br />Line)
E2[Multi<br />Line] -->|Multi<br />Line| F2(Multi<br />Line)
linkStyle 0 stroke:DarkGray,stroke-width:2px
linkStyle 1 stroke:DarkGray,stroke-width:2px
linkStyle 2 stroke:DarkGray,stroke-width:2px
</pre>
<hr />
<pre class="mermaid">
graph LR
A(( )) -->|step 1| B(( ))
B(( )) -->|step 2| C(( ))
C(( )) -->|step 3| D(( ))
linkStyle 1 stroke:greenyellow,stroke-width:2px
style C fill:greenyellow,stroke:green,stroke-width:4px
</pre>
<hr />
<pre class="mermaid">
graph TB
TITLE["Link Click Events<br>(click the nodes below)"]
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"
</pre>
<hr />
<pre class="mermaid">
graph LR
A[red<br>text] -->|red<br>text| B(blue<br>text)
C[/red<br />text/] -->|blue<br />text| D{blue<br />text}
E{{default<br />style}} -->|default<br />style| F([default<br />style])
linkStyle default color:Sienna;
linkStyle 0 color:red;
linkStyle 1 stroke:DarkGray,stroke-width:2px,color:#0000ff
style A color:red;
style B color:blue;
style C stroke:#ff0000,fill:#ffcccc,color:#ff0000
style D stroke:#0000ff,fill:#ccccff,color:#0000ff
click B "index.html#link-clicked" "link test"
click D testClick "click test"
</pre>
<hr />
<pre class="mermaid">
graph TD
A[myClass1] --> B[default] & C[default]
B[default] & C[default] --> D[myClass2]
classDef default stroke-width:2px,fill:none,stroke:silver
classDef node color:red
classDef myClass1 color:#0000ff
classDef myClass2 stroke:#0000ff,fill:#ccccff
class A myClass1
class D myClass2
</pre>
<hr />
<h1 id="link-clicked">Anchor for "link-clicked" test</h1>
<script src="./mermaid.js"></script>

View File

@@ -1,9 +1,9 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<title>Gantt | Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
@@ -13,22 +13,174 @@
</head>
<body>
<h1>Gantt chart diagram demos</h1>
<!-- accDescription Tasks for Q4 -->
<pre class="mermaid">
gantt
title A Gantt Diagram
accDescription Remaining Q4 Tasks
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
gantt
title A Gantt Diagram
accTitle: A simple sample gantt diagram
accDescr: 2 sections with 2 tasks each, from 2014
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
</pre>
<hr />
<pre class="mermaid">
gantt
title Airworks roadmap
dateFormat YYYY-MM-DD
axisFormat %m-%d %a
excludes weekends, 2021-10-01,2021-10-04,2021-10-05,2021-10-06,2021-10-07
includes 2021-10-09
</pre
>
section Airworks 3.4.1
开发 :b, 2021-10-07, 5d
测试 :after b, 4d
OK :milestore
section Airworks 3.4.2
开发 :a, 2021-10-09, 4d
测试 :after a, 4d
</pre>
<hr />
<pre class="mermaid">
gantt
title Exclusive end dates (Manual date should end on 3d)
dateFormat YYYY-MM-DD
axisFormat %d
section Section1
2 Days: 1, 2019-01-01,2d
Manual Date: 2, 2019-01-01,2019-01-03
</pre>
<hr />
<pre class="mermaid">
gantt
title Inclusive end dates (Manual date should end on 4th)
dateFormat YYYY-MM-DD
axisFormat %d
inclusiveEndDates
section Section1
2 Days: 1, 2019-01-01,2d
Manual Date: 2, 2019-01-01,2019-01-03
</pre>
<hr />
<pre class="mermaid">
gantt
title Hide today marker (vertical line should not be visible)
dateFormat YYYY-MM-DD
axisFormat %d
todayMarker off
section Section1
Today: 1, -1h
</pre>
<hr />
<pre class="mermaid">
gantt
title Style today marker (vertical line should be 5px wide and half-transparent blue)
dateFormat YYYY-MM-DD
axisFormat %d
todayMarker stroke-width:5px,stroke:#00f,opacity:0.5
section Section1
Today: 1, -1h
</pre>
<hr />
<pre class="mermaid">
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
click cl1 href "https://mermaidjs.github.io/"
click cl2 call ganttTestClick("test", test, test)
section Last section
Describe gantt syntax :after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
</pre>
<hr />
<pre class="mermaid">
gantt
dateFormat YYYY-MM-DD
axisFormat %d/%m
title GANTT diagram with multiline section titles
excludes weekdays 2014-01-10
section A section<br>multiline
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<br />multiline
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<br />multiline
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<br />multiline
Describe gantt syntax : after doc1, 3d
Add gantt diagram to demo page : 20h
Add another diagram to demo page : 48h
</pre>
<hr />
<script>
function ganttTestClick(a, b, c) {
console.log('a:', a);
console.log('b:', b);
console.log('c:', c);
}
function testClick(nodeId) {
console.log('clicked', nodeId);
var originalBgColor = document.querySelector('body').style.backgroundColor;
document.querySelector('body').style.backgroundColor = 'yellow';
setTimeout(function () {
document.querySelector('body').style.backgroundColor = originalBgColor;
}, 100);
}
</script>
<script src="./mermaid.js"></script>
<script>

95
demos/git.html Normal file
View File

@@ -0,0 +1,95 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Git Graphs Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>
<body>
<h1>Git diagram demo</h1>
<pre class="mermaid">
gitGraph:
options
{
"nodeSpacing": 50,
"nodeRadius": 5
}
end
branch master
commit
branch newbranch
checkout newbranch
commit
commit
checkout master
commit
commit
merge newbranch
</pre>
<script src="./mermaid.js"></script>
<script>
const ALLOWED_TAGS = [
'a',
'b',
'blockquote',
'br',
'dd',
'div',
'dl',
'dt',
'em',
'foreignObject',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'h7',
'h8',
'hr',
'i',
'li',
'ul',
'ol',
'p',
'pre',
'span',
'strike',
'strong',
'table',
'tbody',
'td',
'tfoot',
'th',
'thead',
'tr',
];
mermaid.initialize({
theme: 'default',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',
flowchart: { curve: 'basis' },
gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50 },
dompurifyConfig: {
USE_PROFILES: {
svg: true,
},
ADD_TAGS: ALLOWED_TAGS,
ADD_ATTR: ['transform-origin'],
},
});
</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
@@ -14,17 +14,20 @@
</head>
<body>
<h1>Journey diagram demo</h1>
<pre class="mermaid">
journey
title My day
accDescription A user journey diagram of a typical day in my life
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
journey
title My working day
accTitle: Very simple journey demo
accDescr: 2 main sections: work and home, each with just a few tasks
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>
<script src="./mermaid.js"></script>

53
demos/pie.html Normal file
View File

@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="en">
<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>
div.mermaid {
/* font-family: 'trebuchet ms', verdana, arial; */
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>
<body>
<h1>Pie chart demos</h1>
<pre class="mermaid">
pie title Pets adopted by volunteers
accTitle: simple pie char demo
accDescr: pie chart with 3 sections: dogs, cats, rats. Most are dogs.
"Dogs" : 386
"Cats" : 85
"Rats" : 15
</pre>
<hr />
<pre class="mermaid">
pie
title Key elements in Product X
accTitle: Key elements in Product X
accDescr: This is a pie chart showing the key elements in Product X.
"Calcium" : 42.96
"Potassium" : 50.05
"Magnesium" : 10.01
"Iron" : 5
</pre>
<script type="module">
import mermaid from '../packages/mermaid';
mermaid.initialize({
theme: 'forest',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',
// flowchart: { curve: 'basis' },
// gantt: { axisFormat: '%m/%d/%Y' },
sequence: { actorMargin: 50 },
// sequenceDiagram: { actorMargin: 300 } // deprecated
});
</script>
</body>
</html>

View File

@@ -1,9 +1,9 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<title>Requirements Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
@@ -14,9 +14,12 @@
</head>
<body>
<h1>Requirement diagram demos</h1>
<pre class="mermaid">
requirementDiagram
title This is a title
accTitle: Requirments demo in black and white
accDescr: A series of requirement boxes showing relationships among them. Has meaningless task names
requirement test_req {
id: 1
text: the test text.
@@ -84,11 +87,82 @@
test_req <- copies - test_entity2
</pre
>
<hr />
<pre class="mermaid">
requirementDiagram
requirement An Example {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement Random Name {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement Something Else {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
interfaceRequirement test_req4 {
id: 1.2.1
text: the fourth test text.
risk: medium
verifymethod: analysis
}
physicalRequirement test_req5 {
id: 1.2.2
text: the fifth test text.
risk: medium
verifymethod: analysis
}
designConstraint test_req6 {
id: 1.2.3
text: really long text to test overflow. really long text to test overflow. really long text to test overflow.
risk: medium
verifymethod: analysis
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
element test_entity3 {
type: "test suite"
docRef: github.com/all_the_tests
}
test_entity - satisfies -> Random Name
An Example - traces -> Random Name
An Example - contains -> Something Else
Something Else - contains -> test_req4
test_req4 - derives -> test_req5
test_req5 - refines -> test_req6
test_entity3 - verifies -> test_req5
An Example <- copies - test_entity2
</pre>
<script src="./mermaid.js"></script>
<script>
mermaid.initialize({
theme: 'forest',
theme: 'neutral',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
@@ -14,51 +14,124 @@
</head>
<body>
<h1>Sequence diagram demos</h1>
<pre class="mermaid">
sequenceDiagram
title: FancySequenceDiagram
accDescription Test a description
participant Alice
participant Bob
participant John as John<br />Second Line
autonumber 10 10
rect rgb(200, 220, 100)
rect rgb(200, 255, 200)
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
end
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
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 - 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.
end
autonumber off
alt either this
Alice->>+John: Yes
John-->>-Alice: OK
else or this
autonumber
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
autonumber 200
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end
accTitle: test the accTitle
accDescr: Test a description
participant Alice
participant Bob
participant John as John<br />Second Line
autonumber 10 10
rect rgb(200, 220, 100)
rect rgb(200, 255, 200)
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
end
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
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 - 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.
end
autonumber off
alt either this
Alice->>+John: Yes
John-->>-Alice: OK
else or this
autonumber
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
autonumber 200
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end
</pre>
<hr />
<pre class="mermaid">
sequenceDiagram
accTitle: Sequence diagram title is here
accDescr: Hello friends
participant Alice
participant Bob
participant John as John<br />Second Line
rect rgb(200, 220, 100)
rect rgb(200, 255, 200)
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
end
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
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 - 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.
end
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
</pre>
<hr />
<pre class="mermaid">
sequenceDiagram
participant 1 as multiline<br>using #lt;br#gt;
participant 2 as multiline<br />using #lt;br/#gt;
participant 3 as multiline<br />using #lt;br /#gt;
participant 4 as multiline<br />using #lt;br /#gt;
1->>2: multiline<br>using #lt;br#gt;
note right of 2: multiline<br>using #lt;br#gt;
2->>3: multiline<br />using #lt;br/#gt;
note right of 3: multiline<br />using #lt;br/#gt;
3->>4: multiline<br />using #lt;br /#gt;
note right of 4: multiline<br />using #lt;br /#gt;
4->>1: multiline<br />using #lt;br /#gt;
note right of 1: multiline<br />using #lt;br /#gt;
</pre>
<hr />
<pre class="mermaid">
sequenceDiagram
autonumber
Alice->>John: Hello John,<br>how are you?
autonumber 50 10
Alice->>John: John,<br />can you hear me?
John-->>Alice: Hi Alice,<br />I can hear you!
autonumber off
John-->>Alice: I feel great!
</pre>
<hr />
<script src="./mermaid.js"></script>
<script>
mermaid.initialize({
theme: 'forest',
theme: 'base',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',

View File

@@ -1,9 +1,9 @@
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<title>States Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
@@ -14,24 +14,69 @@
</head>
<body>
<h1>State diagram demos</h1>
<pre class="mermaid">
stateDiagram
title This is a title
accDescription This is an accessible description
State1
accTitle: This is the accessible title
accDescr:This is an accessible description
State1 --> State2
</pre>
<hr />
<pre class="mermaid">
stateDiagram-v2
title This is a title
accDescription This is an accessible description
State1
accTitle: This is the accessible title
accDescr: This is an accessible description
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
</pre>
<hr />
<pre class="mermaid">
stateDiagram
accTitle: very very simple state
accDescr: This is a state diagram showing one state
State1
</pre>
<hr />
<pre class="mermaid">
stateDiagram
[*] --> First
state First {
[*] --> second
second --> [*]
}
</pre>
<pre class="mermaid">
stateDiagram
State1: The state with a note
note right of State1
Important information! You can write
notes.
end note
State1 --> State2
note left of State2 : This is the note to the left.
</pre>
<pre class="mermaid">
stateDiagram
State1
note right of State1
Line1<br>Line2<br />Line3<br />Line4<br />Line5
end note
</pre>
<script src="./mermaid.js"></script>
<script>
mermaid.initialize({
theme: 'forest',
theme: 'base',
// themeCSS: '.node rect { fill: red; }',
logLevel: 3,
securityLevel: 'loose',

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Version 8.6.0 Changes
@@ -77,7 +77,19 @@ When deployed within code, init is called before the graph/diagram description.
**for example**:
```mmd
```mermaid-example
%%{init: {"theme": "default", "logLevel": 1 }}%%
graph LR
a-->b
b-->c
c-->d
d-->e
e-->f
f-->g
g-->
```
```mermaid
%%{init: {"theme": "default", "logLevel": 1 }}%%
graph LR
a-->b

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Change Log
@@ -42,7 +42,13 @@ It is also possible to override site-wide theme settings locally, for a specific
**Following is an example:**
```mmd
```mermaid-example
%%{init: {'theme':'base'}}%%
graph TD
a --> b
```
```mermaid
%%{init: {'theme':'base'}}%%
graph TD
a --> b
@@ -58,7 +64,25 @@ The easiest way to make a custom theme is to start with the base theme, and just
Here is an example of overriding `primaryColor` and giving everything a different look, using `%%init%%`.
```mmd
```mermaid-example
%%{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
```
```mermaid
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#ff0000'}}}%%
graph TD
A[Christmas] -->|Get money| B(Go shopping)

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Configuration

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# About Mermaid
@@ -49,7 +49,15 @@ In our release process we rely heavily on visual regression tests using [applito
### [Flowchart](./flowchart.md?id=flowcharts-basic-syntax)
```mmd
```mermaid-example
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
```
```mermaid
graph TD;
A-->B;
A-->C;
@@ -61,7 +69,21 @@ graph TD;
### [Sequence diagram](./sequenceDiagram.md)
```mmd
```mermaid-example
sequenceDiagram
participant Alice
participant Bob
Alice->>John: Hello John, how are you?
loop Healthcheck
John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts <br/>prevail!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
```
```mermaid
sequenceDiagram
participant Alice
participant Bob
@@ -79,7 +101,20 @@ sequenceDiagram
### [Gantt diagram](./gantt.md)
```mmd
```mermaid-example
gantt
dateFormat YYYY-MM-DD
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
```
```mermaid
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram to mermaid
@@ -96,7 +131,24 @@ Future task2 : des4, after des3, 5d
### [Class diagram](./classDiagram.md)
```mmd
```mermaid-example
classDiagram
Class01 <|-- AveryLongClass : Cool
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
```
```mermaid
classDiagram
Class01 <|-- AveryLongClass : Cool
Class03 *-- Class04
@@ -145,7 +197,15 @@ Class08 <--> C2: Cool label
### [Entity Relationship Diagram - :exclamation: experimental](./entityRelationshipDiagram.md)
```mmd
```mermaid-example
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
```
```mermaid
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
@@ -157,7 +217,19 @@ erDiagram
### [User Journey Diagram](./user-journey.md)
```mmd
```mermaid-example
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
```
```mermaid
journey
title My working day
section Go to work
@@ -275,7 +347,7 @@ Update version number in `package.json`.
npm publish
```
The above command generates files into the `dist` folder and publishes them to npmjs.org.
The above command generates files into the `dist` folder and publishes them to \<npmjs.org>.
## Related projects
@@ -291,7 +363,7 @@ Detailed information about how to contribute can be found in the [contribution g
## Security and safe diagrams
For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitise the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes.
For public sites, it can be precarious to retrieve text from users on the internet, storing that content for presentation in a browser at a later stage. The reason is that the user content can contain embedded malicious scripts that will run when the data is presented. For Mermaid this is a risk, specially as mermaid diagrams contain many characters that are used in html which makes the standard sanitation unusable as it also breaks the diagrams. We still make an effort to sanitize the incoming code and keep refining the process but it is hard to guarantee that there are no loop holes.
As an extra level of security for sites with external users we are happy to introduce a new security level in which the diagram is rendered in a sandboxed iframe preventing JavaScript in the code from being executed. This is a great step forward for better security.

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Summary

View File

@@ -1,16 +1,13 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
## mermaidAPI
Edit this
Page[\[N|Solid\](img/GitHub-Mark-32px.png)][1]
This is the API to be used when optionally handling the integration with the web page, instead of
using the default integration provided by mermaid.js.
The core of this api is the [**render**][2] function which, given a graph
The core of this api is the [**render**][1] function which, given a graph
definition as text, renders the graph/diagram and returns an svg element for the graph.
It is then up to the user of the API to make use of the svg, either insert it somewhere in the
@@ -21,7 +18,7 @@ In addition to the render function, a number of behavioral configuration options
## Configuration
**Configuration methods in Mermaid version 8.6.0 have been updated, to learn more\[[click
here][3]].**
here][2]].**
## **What follows are config instructions for older versions**
@@ -36,7 +33,7 @@ htmlLabels:true, curve:'cardinal', },
}; mermaid.initialize(config); </script> </pre>
A summary of all options and their defaults is found [here][4].
A summary of all options and their defaults is found [here][3].
A description of each option follows below.
## theme
@@ -77,15 +74,15 @@ Theme , the CSS style sheet
| Parameter | Description | Type | Required | Values |
| ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ |
| securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' |
| securityLevel | Level of trust for parsed diagram | string | Required | `sandbox`, `strict`, `loose`, `antiscript` |
**Notes**:
- **strict**: (**default**) tags in text are encoded, click functionality is disabled
- **loose**: tags in text are allowed, click functionality is enabled
- **antiscript**: html tags in text are allowed, (only script element is removed), click
- **`strict`**: (**default**) tags in text are encoded, click functionality is disabled
- **`loose`**: tags in text are allowed, click functionality is enabled
- **`antiscript`**: html tags in text are allowed, (only script element is removed), click
functionality is enabled
- **sandbox**: With this security level all rendering takes place in a sandboxed iframe. This
- **`sandbox`**: With this security level all rendering takes place in a sandboxed iframe. This
prevent any JavaScript from running in the context. This may hinder interactive functionality
of the diagram like scripts, popups in sequence diagram or links to other tabs/targets etc.
@@ -124,11 +121,11 @@ Default value: \['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
This option controls if the generated ids of nodes in the SVG are generated randomly or based
on a seed. If set to false, the IDs are generated based on the current date and thus are not
deterministic. This is the default behaviour.
deterministic. This is the default behavior.
**Notes**:
This matters if your files are checked into sourcecontrol e.g. git and should not change unless
This matters if your files are checked into source control e.g. git and should not change unless
content is changed.
Default value: false
@@ -215,16 +212,16 @@ Default value: true
### defaultRenderer
| Parameter | Description | Type | Required | Values |
| --------------- | ----------- | ------- | -------- | ----------------------- |
| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
| Parameter | Description | Type | Required | Values |
| --------------- | ----------- | ------- | -------- | --------------------------- |
| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` |
**Notes:**
Decides which rendering engine that is to be used for the rendering. Legal values are:
dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid
Default value: 'dagre-d3'
Default value: `dagre-wrapper`
## sequence
@@ -367,7 +364,8 @@ Default value: true
**Notes:**
This will display arrows that start and begin at the same node as right angles, rather than a curve
This will display arrows that start and begin at the same node as right angles, rather than a
curve
Default value: false
@@ -719,7 +717,8 @@ Default value: true
**Notes:**
This will display arrows that start and begin at the same node as right angles, rather than a curves
This will display arrows that start and begin at the same node as right angles, rather than a
curves
Default value: false
@@ -738,16 +737,16 @@ Default value: true
## defaultRenderer
| Parameter | Description | Type | Required | Values |
| --------------- | ----------- | ------- | -------- | ----------------------- |
| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
| Parameter | Description | Type | Required | Values |
| --------------- | ----------- | ------- | -------- | --------------------------- |
| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` |
**Notes**:
Decides which rendering engine that is to be used for the rendering. Legal values are:
dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid
Default value: 'dagre-d3'
Default value: `dagre-d3`
## useMaxWidth
@@ -764,16 +763,16 @@ Default value: true
## defaultRenderer
| Parameter | Description | Type | Required | Values |
| --------------- | ----------- | ------- | -------- | ----------------------- |
| defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
| Parameter | Description | Type | Required | Values |
| --------------- | ----------- | ------- | -------- | --------------------------- |
| defaultRenderer | See notes | boolean | 4 | `dagre-d3`, `dagre-wrapper` |
**Notes:**
Decides which rendering engine that is to be used for the rendering. Legal values are:
dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
`dagre-d3` `dagre-wrapper` - wrapper for `dagre` implemented in mermaid
Default value: 'dagre-d3'
Default value: `dagre-d3`
## er
@@ -995,7 +994,7 @@ Default value: 4
| --------------- | ----------- | ------- | -------- | ------------------ |
| c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |
**Notes:** How many boundarys to place in each row.
**Notes:** How many boundaries to place in each row.
Default value: 2
@@ -1411,10 +1410,10 @@ This sets the auto-wrap padding for the diagram (sides only)
### Parameters
- `text` **[string][5]**
- `parseError` **[Function][6]?**
- `text` **[string][4]**
- `parseError` **[Function][5]?**
Returns **[boolean][7]**
Returns **[boolean][6]**
## setSiteConfig
@@ -1433,7 +1432,7 @@ function _Default value: At default, will mirror Global Config_
- `conf` **MermaidConfig** The base currentConfig to use as siteConfig
Returns **[object][8]** The siteConfig
Returns **[object][7]** The siteConfig
## getSiteConfig
@@ -1445,7 +1444,7 @@ Returns **[object][8]** The siteConfig
**Notes**: Returns **any** values in siteConfig.
Returns **[object][8]** The siteConfig
Returns **[object][7]** The siteConfig
## setConfig
@@ -1484,10 +1483,10 @@ $(function () {
### Parameters
- `id` **[string][5]** The id of the element to be rendered
- `text` **[string][5]** The graph definition
- `cb` **function (svgCode: [string][5], bindFunctions: function (element: [Element][9]): void): void**
- `container` **[Element][9]** Selector to element in which a div with the graph temporarily will be
- `id` **[string][4]** The id of the element to be rendered
- `text` **[string][4]** The graph definition
- `cb` **function (svgCode: [string][4], bindFunctions: function (element: [Element][8]): void): void**
- `container` **[Element][8]** Selector to element in which a div with the graph temporarily will be
inserted. If one is provided a hidden div will be inserted in the body of the page instead. The
element will be removed when rendering is completed.
@@ -1526,7 +1525,7 @@ Pushes in a directive to the configuration
### Parameters
- `directive` **[object][8]** The directive to push in
- `directive` **[object][7]** The directive to push in
## reset
@@ -1620,12 +1619,11 @@ Returns **void**
</script>
```
[1]: https://github.com/mermaid-js/mermaid/blob/develop/src/mermaidAPI.js
[2]: Setup.md?id=render
[3]: 8.6.0_docs.md
[4]: #mermaidapi-configuration-defaults
[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
[9]: https://developer.mozilla.org/docs/Web/API/Element
[1]: Setup.md?id=render
[2]: 8.6.0_docs.md
[3]: #mermaidapi-configuration-defaults
[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
[8]: https://developer.mozilla.org/docs/Web/API/Element

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Tutorials

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
- Getting started

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
- 📔 Introduction

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Accessibility Options
@@ -19,7 +19,7 @@ The diagram authors can now add the accessibility options in the diagram definit
- `accTitle: "Your Accessibility Title"` or
- `accDescr: "Your Accessibility Description"`
**When these two options are defined, they will add a coressponding `<title>` and `<desc>` tag in the SVG.**
**When these two options are defined, they will add a corresponding `<title>` and `<desc>` tag in the SVG.**
Let us take a look at the following example with a flowchart diagram:

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Breaking changes

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# C4 Diagrams
@@ -220,7 +220,7 @@ The following unfinished features are not supported in the short term.
- - \[x] RelIndex \* Compatible with C4-Plantuml syntax, but ignores the index parameter. The sequence number is determined by the order in which the rel statements are written.
- \[ ] Custom tags/stereotypes support and skinparam updates
- \[ ] Custom tags/stereotypes support and skin param updates
- - \[ ] AddElementTag(tagStereo, ?bgColor, ?fontColor, ?borderColor, ?shadowing, ?shape, ?sprite, ?techn, ?legendText, ?legendSprite): Introduces a new element tag. The styles of the tagged elements are updated and the tag is displayed in the calculated legend.

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Class diagrams
@@ -336,7 +336,12 @@ classE o-- classF : aggregation
Relations can logically represent an N:M association:
```mmd
```mermaid-example
classDiagram
Animal <|--|> Zebra
```
```mermaid
classDiagram
Animal <|--|> Zebra
```
@@ -468,7 +473,17 @@ class Color{
Comments can be entered within a class diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text until the next newline will be treated as a comment, including any class diagram syntax.
```mmd
```mermaid-example
classDiagram
%% This whole line is a comment classDiagram class Shape <<interface>>
class Shape{
<<interface>>
noOfVertices
draw()
}
```
```mermaid
classDiagram
%% This whole line is a comment classDiagram class Shape <<interface>>
class Shape{
@@ -538,7 +553,15 @@ You would define these actions on a separate line after all classes have been de
_URL Link:_
```mmd
```mermaid-example
classDiagram
class Shape
link Shape "https://www.github.com" "This is a tooltip for a link"
class Shape2
click Shape2 href "https://www.github.com" "This is a tooltip for a link"
```
```mermaid
classDiagram
class Shape
link Shape "https://www.github.com" "This is a tooltip for a link"
@@ -548,7 +571,15 @@ click Shape2 href "https://www.github.com" "This is a tooltip for a link"
_Callback:_
```mmd
```mermaid-example
classDiagram
class Shape
callback Shape "callbackFunction" "This is a tooltip for a callback"
class Shape2
click Shape2 call callbackFunction() "This is a tooltip for a callback"
```
```mermaid
classDiagram
class Shape
callback Shape "callbackFunction" "This is a tooltip for a callback"
@@ -660,14 +691,27 @@ It is also possible to attach a class to a list of nodes in one statement:
A shorter form of adding a class is to attach the classname to the node using the `:::` operator:
```mmd
```mermaid-example
classDiagram
class Animal:::cssClass
```
```mermaid
classDiagram
class Animal:::cssClass
```
Or:
```mmd
```mermaid-example
classDiagram
class Animal:::cssClass {
-int sizeInFeet
-canEat()
}
```
```mermaid
classDiagram
class Animal:::cssClass {
-int sizeInFeet

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Configuration

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Development and Contribution 🙌
@@ -72,9 +72,8 @@ This tests the rendering and visual appearance of the diagrams. This ensures tha
To start working with the e2e tests:
1. Run `yarn dev` to start the dev server
2. Start **Cypress** by running `cypress open` in the **mermaid** folder.
(Make sure you have path to Cypress in order, the binary is located in `node_modules/.bin`).
1. Run `pnpm run dev` to start the dev server
2. Start **Cypress** by running `pnpm exec cypress open` in the **mermaid** folder.
The rendering tests are very straightforward to create. There is a function `imgSnapshotTest`, which takes a diagram in text form and the mermaid options, and it renders that diagram in Cypress.

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
---
@@ -397,7 +397,15 @@ graph TB
If you describe the same diagram using the the basic syntax, it will take four lines:
```mmd
```mermaid-example
graph TB
A --> C
A --> D
B --> C
B --> D
```
```mermaid
graph TB
A --> C
A --> D
@@ -740,7 +748,13 @@ Beginner's tip—here's a full example of using interactive links in HTML:
Comments can be entered within a flow diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text until the next newline will be treated as a comment, including all punctuation and any flow syntax.
```mmd
```mermaid-example
graph LR
%% this is a comment A -- text --> B{node}
A -- text --> B -- text2 --> C
```
```mermaid
graph LR
%% this is a comment A -- text --> B{node}
A -- text --> B -- text2 --> C

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Directives

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Entity Relationship Diagrams
@@ -114,7 +114,13 @@ Cardinality is a property that describes how many elements of another entity can
Relationships may be classified as either _identifying_ or _non-identifying_ and these are rendered with either solid or dashed lines respectively. This is relevant when one of the entities in question can not have independent existence without the other. For example a firm that insures people to drive cars might need to store data on `NAMED-DRIVER`s. In modelling this we might start out by observing that a `CAR` can be driven by many `PERSON` instances, and a `PERSON` can drive many `CAR`s - both entities can exist without the other, so this is a non-identifying relationship that we might specify in Mermaid as: `PERSON }|..|{ CAR : "driver"`. Note the two dots in the middle of the relationship that will result in a dashed line being drawn between the two entities. But when this many-to-many relationship is resolved into two one-to-many relationships, we observe that a `NAMED-DRIVER` cannot exist without both a `PERSON` and a `CAR` - the relationships become identifying and would be specified using hyphens, which translate to a solid line:
```mmd
```mermaid-example
erDiagram
CAR ||--o{ NAMED-DRIVER : allows
PERSON ||--o{ NAMED-DRIVER : is
```
```mermaid
erDiagram
CAR ||--o{ NAMED-DRIVER : allows
PERSON ||--o{ NAMED-DRIVER : is

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Examples

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Frequently Asked Questions

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Flowcharts - Basic Syntax
@@ -403,7 +403,15 @@ word of warning, one could go overboard with this making the flowchart harder to
markdown form. The Swedish word `lagom` comes to mind. It means, not too much and not too little.
This goes for expressive syntaxes as well.
```mmd
```mermaid-example
flowchart TB
A --> C
A --> D
B --> C
B --> D
```
```mermaid
flowchart TB
A --> C
A --> D
@@ -671,6 +679,8 @@ flowchart LR
B1 --> B2
```
**A clarification is in order here.** The direction statement affects the layout of a subgraph but only as long as it does not have any links leading in or out of it. The reason for this is that if you have links in or out then the graph of nodes is not longer the set of nodes in the subgraph but actually the set of nodes of the parent including the ones in the subgraph. One can see it as that the direction of the container gets injected in the subgraph with a link.
## Interaction
It is possible to bind a click event to a node, the click can lead to either a javascript callback or to a link which will be opened in a new browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`.
@@ -778,7 +788,13 @@ Beginner's tip—a full example using interactive links in a html context:
Comments can be entered within a flow diagram, which will be ignored by the parser. Comments need to be on their own line, and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any flow syntax
```mmd
```mermaid-example
flowchart LR
%% this is a comment A -- text --> B{node}
A -- text --> B -- text2 --> C
```
```mermaid
flowchart LR
%% this is a comment A -- text --> B{node}
A -- text --> B -- text2 --> C

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Gantt diagrams
@@ -234,7 +234,21 @@ More info in: https://github.com/mbostock/d3/wiki/Time-Formatting
Comments can be entered within a gantt chart, which will be ignored by the parser. Comments need to be on their own line and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax
```mmd
```mermaid-example
gantt
title A Gantt Diagram
%% this is a comment
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
```
```mermaid
gantt
title A Gantt Diagram
%% this is a comment

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Gitgraph Diagrams

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.--><head>
<!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.--><head>
<meta charset="UTF-8" />
<title>
mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams,
@@ -21,22 +21,13 @@
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.9.0/css/all.min.css"
/>
<script src="//cdn.jsdelivr.net/npm/mermaid@9.1.6/dist/mermaid.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script>
<!-- <script src="http://localhost:9000/mermaid.js"></script> -->
<script>
// prettier-ignore
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-153180559-1', 'auto');
if (location) {
ga('send', 'pageview', location.hash);
}
</script>
<script
defer=""
data-domain="mermaid-js.github.io"
src="https://plausible.io/js/plausible.js"
></script>
<script>
var require = {
paths: { vs: 'https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.29.1/min/vs' },

View File

@@ -1,4 +1,4 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.
# Integrations
@@ -19,6 +19,7 @@ They also serve as proof of concept, for the variety of things that can be built
- [Joplin](https://joplinapp.org) (**Native support**)
- [Notion](https://notion.so) (**Native support**)
- [Observable](https://observablehq.com/@observablehq/mermaid) (**Native support**)
- [Obsidian](https://help.obsidian.md/How+to/Format+your+notes#Diagram) (**Native support**)
- [GitBook](https://gitbook.com)
- [Mermaid Plugin](https://github.com/JozoVilcek/gitbook-plugin-mermaid)
- [Markdown with Mermaid CLI](https://github.com/miao1007/gitbook-plugin-mermaid-cli)
@@ -32,7 +33,7 @@ They also serve as proof of concept, for the variety of things that can be built
- [Mermaid Macro](https://www.redmine.org/plugins/redmine_mermaid_macro)
- [redmine-mermaid](https://github.com/styz/redmine_mermaid)
- [markdown-for-mermaid-plugin](https://github.com/jamieh-mongolian/markdown-for-mermaid-plugin)
- [Jetsbrain IDE eg Pycharm](https://www.jetbrains.com/go/guide/tips/mermaid-js-support-in-markdown/)
- [JetBrains IDE eg Pycharm](https://www.jetbrains.com/go/guide/tips/mermaid-js-support-in-markdown/)
- [mermerd](https://github.com/KarnerTh/mermerd)
## CRM/ERP/Similar
@@ -51,6 +52,8 @@ They also serve as proof of concept, for the variety of things that can be built
## CMS
- [VitePress](https://vitepress.vuejs.org/)
- [Plugin for Mermaid.js](https://emersonbottero.github.io/vitepress-plugin-mermaid/)
- [VuePress](https://vuepress.vuejs.org/)
- [Plugin for Mermaid.js](https://github.com/eFrane/vuepress-plugin-mermaidjs)
- [Grav CMS](https://getgrav.org/)

View File

@@ -1 +1 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.

View File

@@ -1,6 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in src/docs.--><head>
<!--# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT. Please edit the corresponding file in packages/mermaid/src/docs.--><head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />

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