diff --git a/.github/labeller.yml b/.github/labeller.yml index 0d55a674..9e9e6ea0 100644 --- a/.github/labeller.yml +++ b/.github/labeller.yml @@ -1,6 +1,7 @@ i18n: - - i18n/* + - changed-files: + - any-glob-to-any-file: i18n/* documentation: - - "*.md" - - exampleSite/content/* + - changed-files: + - any-glob-to-any-file: "**/*.md" diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index f80187c9..300172c4 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -22,6 +22,7 @@ jobs: uses: peaceiris/actions-hugo@v2 with: hugo-version: "latest" + extended: true - name: Build working-directory: ./exampleSite diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml index 8fb77bf9..c52986cc 100644 --- a/.github/workflows/label.yml +++ b/.github/workflows/label.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Label - uses: actions/labeler@v4 + uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" configuration-path: .github/labeller.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 38d46976..49d87531 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -10,7 +10,7 @@ jobs: issues: write pull-requests: write steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: days-before-stale: 120 days-before-close: 30 diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index f9c5c78e..51067c93 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -19,6 +19,7 @@ jobs: uses: peaceiris/actions-hugo@v2 with: hugo-version: "latest" + extended: true - name: Build working-directory: ./exampleSite diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..1bc6419e --- /dev/null +++ b/.prettierignore @@ -0,0 +1,8 @@ +/assets/css/compiled/ +/assets/lib/ + +/layouts/_default/_markup/*.html +/layouts/shortcodes/figure.html +/layouts/shortcodes/screenshot.html + +/exampleSite/content/docs/version-2/lighthouse.html diff --git a/.prettierrc b/.prettierrc index 15acafac..7b975db1 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,5 +1,5 @@ { - "plugins": ["prettier-plugin-go-template"], + "plugins": ["prettier-plugin-go-template", "prettier-plugin-tailwindcss"], "goTemplateBracketSpacing": true, "htmlWhitespaceSensitivity": "css", "printWidth": 100, @@ -9,7 +9,7 @@ "trailingComma": "es5", "overrides": [ { - "files": ["*.html"], + "files": ["*.html", "layouts/_default/*.json"], "options": { "parser": "go-template" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c8527d6..a4408087 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,44 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +## [2.8.0] - 2024-01-22 + +### Added + +- Quicklink support ([#646](https://github.com/jpanther/congo/pull/646)) +- Automatic support for WebP images ([#693](https://github.com/jpanther/congo/pull/693)) +- Warning when building if links to Markdown files cannot be resolved ([#691](https://github.com/jpanther/congo/pull/691)) +- Ability to share articles to Telegram and Line ([#719](https://github.com/jpanther/congo/pull/719)) +- New icons for `line`, `google-scholar`, `mendeley` and `weibo` ([#719](https://github.com/jpanther/congo/pull/719), [#755](https://github.com/jpanther/congo/pull/755), [#756](https://github.com/jpanther/congo/pull/756)) +- Weibo sharing links ([#756](https://github.com/jpanther/congo/pull/756)) +- Support for Tailwind '950' colour variants ([#751](https://github.com/jpanther/congo/pull/751)) +- Table of contents will now scroll if taller than the browser height ([#733](https://github.com/jpanther/congo/pull/733)) +- External URL article stubs now auto-redirect if leaf pages are generated ([#778](https://github.com/jpanther/congo/pull/778)) +- Korean translation ([#731](https://github.com/jpanther/congo/pull/731)) +- Chinese translation of Example site and Docs ([#776](https://github.com/jpanther/congo/pull/776)) + +### Changed + +- ⚠️ Hugo extended version is now required when building sites +- ⚠️ Author params block in language configuration has been moved to `params.author` ([#704](https://github.com/jpanther/congo/pull/704)) +- Refactored image logic into a new `picture.html` partial ([#693](https://github.com/jpanther/congo/pull/693)) +- Upgrade to ChartJS v4.4.1 ([#736](https://github.com/jpanther/congo/pull/736)) +- Upgrade to Tailwind v3.4.1 ([#737](https://github.com/jpanther/congo/pull/737), [#752](https://github.com/jpanther/congo/pull/752), [#759](https://github.com/jpanther/congo/pull/759), [#774](https://github.com/jpanther/congo/pull/774)) +- Upgrade to Mermaid v10.7.0 ([#782](https://github.com/jpanther/congo/pull/782)) +- Updated Japanese translation ([#750](https://github.com/jpanther/congo/pull/750)) + +### Fixed + +- Hamburger menu is not dismissed when links are clicked ([#705](https://github.com/jpanther/congo/pull/705)) +- KaTeX, table and code elements wider than the page are not formatted correctly ([#753](https://github.com/jpanther/congo/pull/753)) +- 'ß' character is output at the top of articles ([#764](https://github.com/jpanther/congo/pull/764)) +- Article metadata element is output when there is no metadata to display ([#786](https://github.com/jpanther/congo/pull/786)) +- Header elements not vertically centered when using locale switcher ([#788](https://github.com/jpanther/congo/pull/788)) + +### Removed + +- Fathom Analytics custom domain parameter, as this is no longer supported by Fathom + ## [2.7.6] - 2023-11-26 ### Fixed @@ -803,7 +841,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Advanced customisation using simple Tailwind colour definitions and styles - Fully documented -[Unreleased]: https://github.com/jpanther/congo/compare/v2.7.6...HEAD +[Unreleased]: https://github.com/jpanther/congo/compare/v2.8.0...HEAD +[2.8.0]: https://github.com/jpanther/congo/compare/v2.7.6...v2.8.0 [2.7.6]: https://github.com/jpanther/congo/compare/v2.7.5...v2.7.6 [2.7.5]: https://github.com/jpanther/congo/compare/v2.7.4...v2.7.5 [2.7.4]: https://github.com/jpanther/congo/compare/v2.7.3...v2.7.4 diff --git a/assets/css/compiled/main.css b/assets/css/compiled/main.css index 8b8868aa..2ab2d499 100644 --- a/assets/css/compiled/main.css +++ b/assets/css/compiled/main.css @@ -1,6 +1,6 @@ -/*! Congo v2.7.6 | MIT License | https://github.com/jpanther/congo */ +/*! Congo v2.8.0 | MIT License | https://github.com/jpanther/congo */ -/*! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com */ +/*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com */ /* 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) @@ -32,9 +32,11 @@ 4. Use the user's configured `sans` font-family by default. 5. Use the user's configured `sans` font-feature-settings by default. 6. Use the user's configured `sans` font-variation-settings by default. +7. Disable tap highlights on iOS */ -html { +html, +:host { line-height: 1.5; /* 1 */ -webkit-text-size-adjust: 100%; @@ -44,12 +46,14 @@ html { -o-tab-size: 4; tab-size: 4; /* 3 */ - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ font-feature-settings: normal; /* 5 */ font-variation-settings: normal; /* 6 */ + -webkit-tap-highlight-color: transparent; + /* 7 */ } /* @@ -121,8 +125,10 @@ strong { } /* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. +1. Use the user's configured `mono` font-family by default. +2. Use the user's configured `mono` font-feature-settings by default. +3. Use the user's configured `mono` font-variation-settings by default. +4. Correct the odd `em` font sizing in all browsers. */ code, @@ -131,8 +137,12 @@ samp, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ - font-size: 1em; + font-feature-settings: normal; /* 2 */ + font-variation-settings: normal; + /* 3 */ + font-size: 1em; + /* 4 */ } /* @@ -1094,32 +1104,32 @@ body:has(#menu-controller:checked) { /* RTL support */ -:is([dir="rtl"] .prose blockquote) { +.prose blockquote:where([dir="rtl"], [dir="rtl"] *) { border-left-width: 0px; border-right-width: 4px; padding-right: 1rem; } -:is([dir="rtl"] .prose ul > li),:is([dir="rtl"] -.prose ol > li) { +.prose ul > li:where([dir="rtl"], [dir="rtl"] *), +.prose ol > li:where([dir="rtl"], [dir="rtl"] *) { margin-right: 1.75rem; padding-left: 0px; padding-right: 0.5rem; } -:is([dir="rtl"] .prose ol > li):before,:is([dir="rtl"] -.prose ul > li):before { +.prose ol > li:where([dir="rtl"], [dir="rtl"] *):before, +.prose ul > li:where([dir="rtl"], [dir="rtl"] *):before { left: auto; right: 0.25rem; } -:is([dir="rtl"] .prose thead td:first-child),:is([dir="rtl"] -.prose thead th:first-child) { +.prose thead td:first-child:where([dir="rtl"], [dir="rtl"] *), +.prose thead th:first-child:where([dir="rtl"], [dir="rtl"] *) { padding-right: 0px; } -:is([dir="rtl"] .prose thead td:last-child),:is([dir="rtl"] -.prose thead th:last-child) { +.prose thead td:last-child:where([dir="rtl"], [dir="rtl"] *), +.prose thead th:last-child:where([dir="rtl"], [dir="rtl"] *) { padding-left: 0px; } @@ -1131,6 +1141,12 @@ body:has(#menu-controller:checked) { /* Table of Contents */ +.toc { + max-height: 100vh; + overflow-y: auto; + padding-bottom: 50px; +} + .toc ul, .toc li { list-style-type: none; @@ -1154,7 +1170,7 @@ body:has(#menu-controller:checked) { color: rgba(var(--color-neutral-400), var(--tw-text-opacity)); } -:is([dir="rtl"] .toc ul > li) { +.toc ul > li:where([dir="rtl"], [dir="rtl"] *) { margin-right: 0px; } @@ -1225,6 +1241,28 @@ body:has(#menu-controller:checked) { opacity: 0.05; } +/* Fix long KaTeX equations on mobile (see https://katex.org/docs/issues.html#css-customization) */ + +.katex-display { + overflow: auto hidden; +} + +/* Fix long tables breaking out of article on mobile */ + +table { + display: block; + overflow: auto; +} + +/* Fix long inline code sections breaking out of article on mobile */ + +code { + word-wrap: break-word; + /* All browsers since IE 5.5+ */ + overflow-wrap: break-word; + /* Renamed property in CSS3 draft spec */ +} + /* -- Chroma Highlight -- */ /* Background */ @@ -1760,10 +1798,6 @@ body:has(#menu-controller:checked) { top: 5rem; } -.top-8 { - top: 2rem; -} - .top-\[100vh\] { top: 100vh; } @@ -1962,22 +1996,14 @@ body:has(#menu-controller:checked) { height: 3rem; } -.h-2 { - height: 0.5rem; -} - -.h-24 { - height: 6rem; -} - -.h-36 { - height: 9rem; -} - .h-8 { height: 2rem; } +.h-auto { + height: auto; +} + .h-full { height: 100%; } @@ -2776,38 +2802,6 @@ body:has(#menu-controller:checked) { opacity: 1; } -:is([dir="ltr"] .ltr\:right-0) { - right: 0px; -} - -:is([dir="ltr"] .ltr\:block) { - display: block; -} - -:is([dir="ltr"] .ltr\:inline) { - display: inline; -} - -:is([dir="ltr"] .ltr\:hidden) { - display: none; -} - -:is([dir="rtl"] .rtl\:left-0) { - left: 0px; -} - -:is([dir="rtl"] .rtl\:block) { - display: block; -} - -:is([dir="rtl"] .rtl\:inline) { - display: inline; -} - -:is([dir="rtl"] .rtl\:hidden) { - display: none; -} - :is(.dark .dark\:inline) { display: inline; } @@ -2953,12 +2947,6 @@ body:has(#menu-controller:checked) { color: rgba(var(--color-primary-400), var(--tw-text-opacity)); } -@media print { - .print\:hidden { - display: none; - } -} - @media (min-width: 640px) { .sm\:mb-0 { margin-bottom: 0px; @@ -3099,3 +3087,41 @@ body:has(#menu-controller:checked) { width: 20%; } } + +.ltr\:right-0:where([dir="ltr"], [dir="ltr"] *) { + right: 0px; +} + +.ltr\:block:where([dir="ltr"], [dir="ltr"] *) { + display: block; +} + +.ltr\:inline:where([dir="ltr"], [dir="ltr"] *) { + display: inline; +} + +.ltr\:hidden:where([dir="ltr"], [dir="ltr"] *) { + display: none; +} + +.rtl\:left-0:where([dir="rtl"], [dir="rtl"] *) { + left: 0px; +} + +.rtl\:block:where([dir="rtl"], [dir="rtl"] *) { + display: block; +} + +.rtl\:inline:where([dir="rtl"], [dir="rtl"] *) { + display: inline; +} + +.rtl\:hidden:where([dir="rtl"], [dir="rtl"] *) { + display: none; +} + +@media print { + .print\:hidden { + display: none; + } +} diff --git a/assets/css/main.css b/assets/css/main.css index d23b285e..ea31a90f 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -1,4 +1,4 @@ -/*! Congo v2.7.6 | MIT License | https://github.com/jpanther/congo */ +/*! Congo v2.8.0 | MIT License | https://github.com/jpanther/congo */ @tailwind base; @tailwind components; @@ -59,6 +59,12 @@ body:has(#menu-controller:checked) { } /* Table of Contents */ +.toc { + max-height: 100vh; + overflow-y: auto; + padding-bottom: 50px; +} + .toc ul, .toc li { @apply list-none px-0 leading-snug; @@ -96,6 +102,23 @@ body:has(#menu-controller:checked) { @apply absolute -z-10 opacity-5; } +/* Fix long KaTeX equations on mobile (see https://katex.org/docs/issues.html#css-customization) */ +.katex-display { + overflow: auto hidden; +} + +/* Fix long tables breaking out of article on mobile */ +table { + display: block; + overflow: auto; +} + +/* Fix long inline code sections breaking out of article on mobile */ +code { + word-wrap: break-word; /* All browsers since IE 5.5+ */ + overflow-wrap: break-word; /* Renamed property in CSS3 draft spec */ +} + /* -- Chroma Highlight -- */ /* Background */ .chroma { diff --git a/assets/css/schemes/avocado.css b/assets/css/schemes/avocado.css index 911e895d..b9cb77e2 100644 --- a/assets/css/schemes/avocado.css +++ b/assets/css/schemes/avocado.css @@ -12,6 +12,7 @@ --color-neutral-700: 68, 64, 60; --color-neutral-800: 41, 37, 36; --color-neutral-900: 28, 25, 23; + --color-neutral-950: 12, 10, 9; /* Lime */ --color-primary-50: 247, 254, 231; --color-primary-100: 236, 252, 203; @@ -23,6 +24,7 @@ --color-primary-700: 77, 124, 15; --color-primary-800: 63, 98, 18; --color-primary-900: 54, 83, 20; + --color-primary-950: 26, 46, 5; /* Emerald */ --color-secondary-50: 236, 253, 245; --color-secondary-100: 209, 250, 229; @@ -34,4 +36,5 @@ --color-secondary-700: 4, 120, 87; --color-secondary-800: 6, 95, 70; --color-secondary-900: 6, 78, 59; + --color-secondary-950: 2, 44, 34; } diff --git a/assets/css/schemes/cherry.css b/assets/css/schemes/cherry.css index 14567e6d..2d647298 100644 --- a/assets/css/schemes/cherry.css +++ b/assets/css/schemes/cherry.css @@ -12,6 +12,7 @@ --color-neutral-700: 64, 64, 64; --color-neutral-800: 38, 38, 38; --color-neutral-900: 23, 23, 23; + --color-neutral-950: 10, 10, 10; /* Rose */ --color-primary-50: 255, 241, 242; --color-primary-100: 255, 228, 230; @@ -23,6 +24,7 @@ --color-primary-700: 190, 18, 60; --color-primary-800: 159, 18, 57; --color-primary-900: 136, 19, 55; + --color-primary-950: 76, 5, 25; /* Green */ --color-secondary-50: 240, 253, 244; --color-secondary-100: 220, 252, 231; @@ -34,4 +36,5 @@ --color-secondary-700: 21, 128, 61; --color-secondary-800: 22, 101, 52; --color-secondary-900: 20, 83, 45; + --color-secondary-950: 5, 46, 22; } diff --git a/assets/css/schemes/congo.css b/assets/css/schemes/congo.css index 375ef7b3..8b18d0a5 100644 --- a/assets/css/schemes/congo.css +++ b/assets/css/schemes/congo.css @@ -12,6 +12,7 @@ --color-neutral-700: 63, 63, 70; --color-neutral-800: 39, 39, 42; --color-neutral-900: 24, 24, 27; + --color-neutral-950: 3, 7, 18; /* Violet */ --color-primary-50: 245, 243, 255; --color-primary-100: 237, 233, 254; @@ -23,6 +24,7 @@ --color-primary-700: 109, 40, 217; --color-primary-800: 91, 33, 182; --color-primary-900: 76, 29, 149; + --color-primary-950: 46, 16, 101; /* Fuchsia */ --color-secondary-50: 253, 244, 255; --color-secondary-100: 250, 232, 255; @@ -34,4 +36,5 @@ --color-secondary-700: 162, 28, 175; --color-secondary-800: 134, 25, 143; --color-secondary-900: 112, 26, 117; + --color-secondary-950: 74, 4, 78; } diff --git a/assets/css/schemes/fire.css b/assets/css/schemes/fire.css index ed69d5cb..01efdb99 100644 --- a/assets/css/schemes/fire.css +++ b/assets/css/schemes/fire.css @@ -12,6 +12,7 @@ --color-neutral-700: 68, 64, 60; --color-neutral-800: 41, 37, 36; --color-neutral-900: 28, 25, 23; + --color-neutral-950: 12, 10, 9; /* Orange */ --color-primary-50: 255, 247, 237; --color-primary-100: 255, 237, 213; @@ -23,6 +24,7 @@ --color-primary-700: 194, 65, 12; --color-primary-800: 154, 52, 18; --color-primary-900: 124, 45, 18; + --color-primary-950: 69, 10, 10; /* Rose */ --color-secondary-50: 255, 241, 242; --color-secondary-100: 255, 228, 230; @@ -34,4 +36,5 @@ --color-secondary-700: 190, 18, 60; --color-secondary-800: 159, 18, 57; --color-secondary-900: 136, 19, 55; + --color-secondary-950: 76, 5, 25; } diff --git a/assets/css/schemes/ocean.css b/assets/css/schemes/ocean.css index 1644570d..32e8138c 100644 --- a/assets/css/schemes/ocean.css +++ b/assets/css/schemes/ocean.css @@ -12,6 +12,7 @@ --color-neutral-700: 51, 65, 85; --color-neutral-800: 30, 41, 59; --color-neutral-900: 15, 23, 42; + --color-neutral-950: 2, 6, 23; /* Blue */ --color-primary-50: 239, 246, 255; --color-primary-100: 219, 234, 254; @@ -23,6 +24,7 @@ --color-primary-700: 29, 78, 216; --color-primary-800: 30, 64, 175; --color-primary-900: 30, 58, 138; + --color-primary-950: 23, 37, 8; /* Cyan */ --color-secondary-50: 236, 254, 255; --color-secondary-100: 207, 250, 254; @@ -34,4 +36,5 @@ --color-secondary-700: 14, 116, 144; --color-secondary-800: 21, 94, 117; --color-secondary-900: 22, 78, 99; + --color-secondary-950: 8, 51, 69; } diff --git a/assets/css/schemes/sapphire.css b/assets/css/schemes/sapphire.css index fce9d916..94632b18 100644 --- a/assets/css/schemes/sapphire.css +++ b/assets/css/schemes/sapphire.css @@ -12,6 +12,7 @@ --color-neutral-700: 51, 65, 85; --color-neutral-800: 30, 41, 59; --color-neutral-900: 15, 23, 42; + --color-neutral-950: 10, 10, 10; /* Indigo */ --color-primary-50: 238, 242, 255; --color-primary-100: 224, 231, 255; @@ -23,6 +24,7 @@ --color-primary-700: 67, 56, 202; --color-primary-800: 55, 48, 163; --color-primary-900: 49, 46, 129; + --color-primary-950: 30, 27, 75; /* Pink */ --color-secondary-50: 253, 242, 248; --color-secondary-100: 252, 231, 243; @@ -34,4 +36,5 @@ --color-secondary-700: 190, 24, 93; --color-secondary-800: 157, 23, 77; --color-secondary-900: 131, 24, 67; + --color-secondary-950: 80, 7, 36; } diff --git a/assets/css/schemes/slate.css b/assets/css/schemes/slate.css index 54831e86..4f73ee70 100644 --- a/assets/css/schemes/slate.css +++ b/assets/css/schemes/slate.css @@ -12,6 +12,7 @@ --color-neutral-700: 55, 65, 81; --color-neutral-800: 31, 41, 55; --color-neutral-900: 17, 24, 39; + --color-neutral-950: 17, 24, 39; /* Slate */ --color-primary-50: 248, 250, 252; --color-primary-100: 241, 245, 249; @@ -23,6 +24,7 @@ --color-primary-700: 51, 65, 85; --color-primary-800: 30, 41, 59; --color-primary-900: 15, 23, 42; + --color-primary-950: 2, 6, 23; /* Gray */ --color-secondary-50: 249, 250, 251; --color-secondary-100: 243, 244, 246; @@ -34,4 +36,5 @@ --color-secondary-700: 55, 65, 81; --color-secondary-800: 31, 41, 55; --color-secondary-900: 17, 24, 39; + --color-secondary-950: 10, 10, 10; } diff --git a/assets/icons/google-scholar.svg b/assets/icons/google-scholar.svg new file mode 100644 index 00000000..1862f540 --- /dev/null +++ b/assets/icons/google-scholar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/line.svg b/assets/icons/line.svg new file mode 100644 index 00000000..b0669293 --- /dev/null +++ b/assets/icons/line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/mendeley.svg b/assets/icons/mendeley.svg new file mode 100644 index 00000000..dbd2ed86 --- /dev/null +++ b/assets/icons/mendeley.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/weibo.svg b/assets/icons/weibo.svg new file mode 100644 index 00000000..aa295622 --- /dev/null +++ b/assets/icons/weibo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/js/menu.js b/assets/js/menu.js new file mode 100644 index 00000000..4d674e29 --- /dev/null +++ b/assets/js/menu.js @@ -0,0 +1,6 @@ +/* + Closes the hamburger menu when a link is clicked. +*/ +function close_menu() { + document.getElementById("menu-controller").checked = false; +} diff --git a/assets/js/quicklink.js b/assets/js/quicklink.js new file mode 100644 index 00000000..014d4ce0 --- /dev/null +++ b/assets/js/quicklink.js @@ -0,0 +1,3 @@ +window.addEventListener("load", () => { + quicklink.listen(); +}); diff --git a/assets/js/search.js b/assets/js/search.js index 4a47ba58..5add4984 100644 --- a/assets/js/search.js +++ b/assets/js/search.js @@ -133,6 +133,7 @@ function executeQuery(term) { let resultsHTML = ""; if (results.length > 0) { + // prettier-ignore resultsHTML = results.map(function (value, key) { return `
a?1:i>=a?0:NaN}function v6e(){var i=arguments[0];return arguments[0]=this,i.apply(null,arguments),this}function m6e(){return Array.from(this)}function y6e(){for(var i=this._groups,a=0,f=i.length;a 0&&_<1?0:b,new Xv(b,E,_,i.opacity)}function Mke(i,a,f,p){return arguments.length===1?gMt(i):new Xv(i,a,f,p??1)}function Xv(i,a,f,p){this.h=+i,this.s=+a,this.l=+f,this.opacity=+p}_P(Xv,Mke,MU(U7,{brighter(i){return i=i==null?DU:Math.pow(DU,i),new Xv(this.h,this.s,this.l*i,this.opacity)},darker(i){return i=i==null?SP:Math.pow(SP,i),new Xv(this.h,this.s,this.l*i,this.opacity)},rgb(){var i=this.h%360+(this.h<0)*360,a=isNaN(i)||isNaN(this.s)?0:this.s,f=this.l,p=f+(f<.5?f:1-f)*a,w=2*f-p;return new v0(c1t(i>=240?i-240:i+120,w,p),c1t(i,w,p),c1t(i<120?i+240:i-120,w,p),this.opacity)},clamp(){return new Xv(pMt(this.h),PU(this.s),PU(this.l),OU(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const i=OU(this.opacity);return`${i===1?"hsl(":"hsla("}${pMt(this.h)}, ${PU(this.s)*100}%, ${PU(this.l)*100}%${i===1?")":`, ${i})`}`}}));function pMt(i){return i=(i||0)%360,i<0?i+360:i}function PU(i){return Math.max(0,Math.min(1,i||0))}function c1t(i,a,f){return(i<60?a+(f-a)*i/60:i<180?f:i<240?a+(f-a)*(240-i)/60:a)*255}const Dke=Math.PI/180,Ike=180/Math.PI,FU=18,bMt=.96422,wMt=1,vMt=.82521,mMt=4/29,TA=6/29,yMt=3*TA*TA,Oke=TA*TA*TA;function xMt(i){if(i instanceof u3)return new u3(i.l,i.a,i.b,i.opacity);if(i instanceof b5)return kMt(i);i instanceof v0||(i=lMt(i));var a=f1t(i.r),f=f1t(i.g),p=f1t(i.b),w=u1t((.2225045*a+.7168786*f+.0606169*p)/wMt),m,b;return a===f&&f===p?m=b=w:(m=u1t((.4360747*a+.3850649*f+.1430804*p)/bMt),b=u1t((.0139322*a+.0971045*f+.7141733*p)/vMt)),new u3(116*w-16,500*(m-w),200*(w-b),i.opacity)}function Pke(i,a,f,p){return arguments.length===1?xMt(i):new u3(i,a,f,p??1)}function u3(i,a,f,p){this.l=+i,this.a=+a,this.b=+f,this.opacity=+p}_P(u3,Pke,MU(U7,{brighter(i){return new u3(this.l+FU*(i??1),this.a,this.b,this.opacity)},darker(i){return new u3(this.l-FU*(i??1),this.a,this.b,this.opacity)},rgb(){var i=(this.l+16)/116,a=isNaN(this.a)?i:i+this.a/500,f=isNaN(this.b)?i:i-this.b/200;return a=bMt*l1t(a),i=wMt*l1t(i),f=vMt*l1t(f),new v0(h1t(3.1338561*a-1.6168667*i-.4906146*f),h1t(-.9787684*a+1.9161415*i+.033454*f),h1t(.0719453*a-.2289914*i+1.4052427*f),this.opacity)}}));function u1t(i){return i>Oke?Math.pow(i,1/3):i/yMt+mMt}function l1t(i){return i>TA?i*i*i:yMt*(i-mMt)}function h1t(i){return 255*(i<=.0031308?12.92*i:1.055*Math.pow(i,1/2.4)-.055)}function f1t(i){return(i/=255)<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)}function Fke(i){if(i instanceof b5)return new b5(i.h,i.c,i.l,i.opacity);if(i instanceof u3||(i=xMt(i)),i.a===0&&i.b===0)return new b5(NaN,0 a&&(f=i,i=a,a=f),function(p){return Math.max(i,Math.min(a,p))}}function IEe(i,a,f){var p=i[0],w=i[1],m=a[0],b=a[1];return w 2?OEe:IEe,_=A=null,B}function B(N){return N==null||isNaN(N=+N)?m:(_||(_=E(i.map(p),a,f)))(p(b(N)))}return B.invert=function(N){return b(w((A||(A=E(a,i.map(p),Qv)))(N)))},B.domain=function(N){return arguments.length?(i=Array.from(N,MEe),I()):i.slice()},B.range=function(N){return arguments.length?(a=Array.from(N),I()):a.slice()},B.rangeRound=function(N){return a=Array.from(N),f=Uke,I()},B.clamp=function(N){return arguments.length?(b=N?!0:SA,I()):b!==SA},B.interpolate=function(N){return arguments.length?(f=N,I()):f},B.unknown=function(N){return arguments.length?(m=N,B):m},function(N,R){return p=N,w=R,I()}}function QMt(){return PEe()(SA,SA)}function FEe(i,a,f,p){var w=t1t(i,a,f),m;switch(p=WU(p??",f"),p.type){case"s":{var b=Math.max(Math.abs(i),Math.abs(a));return p.precision==null&&!isNaN(m=SEe(w,b))&&(p.precision=m),WMt(p,b)}case"":case"e":case"g":case"p":case"r":{p.precision==null&&!isNaN(m=AEe(w,Math.max(Math.abs(i),Math.abs(a))))&&(p.precision=m-(p.type==="e"));break}case"f":case"%":{p.precision==null&&!isNaN(m=_Ee(w))&&(p.precision=m-(p.type==="%")*2);break}}return UMt(p)}function NEe(i){var a=i.domain;return i.ticks=function(f){var p=a();return Axe(p[0],p[p.length-1],f??10)},i.tickFormat=function(f,p){var w=a();return FEe(w[0],w[w.length-1],f??10,p)},i.nice=function(f){f==null&&(f=10);var p=a(),w=0,m=p.length-1,b=p[w],E=p[m],_,A,I=10;for(E0;){if(A=Jft(b,E,f),A===_)return p[w]=b,p[m]=E,a(p);if(A>0)b=Math.floor(b/A)*A,E=Math.ceil(E/A)*A;else if(A<0)b=Math.ceil(b*A)/A,E=Math.floor(E*A)/A;else break;_=A}return i},i}function AA(){var i=QMt();return i.copy=function(){return XMt(i,AA())},KU.apply(i,arguments),NEe(i)}function BEe(i,a){i=i.slice();var f=0,p=i.length-1,w=i[f],m=i[p],b;return m
/gi,YTe=i=>i?ZDt(i).replace(/\\n/g,"#br#").split("#br#"):[""],XDt=i=>lW.sanitize(i),QDt=(i,a)=>{var f;if(((f=a.flowchart)==null?void 0:f.htmlLabels)!==!1){const p=a.securityLevel;p==="antiscript"||p==="strict"?i=XDt(i):p!=="loose"&&(i=ZDt(i),i=i.replace(/
{f+=zIt(w,a),a=w});const p=f/2;return adt(i,p)}function oSe(i){return i.length===1?i[0]:aSe(i)}const qIt=(i,a=2)=>{const f=Math.pow(10,a);return Math.round(i*f)/f},adt=(i,a)=>{let f,p=a;for(const w of i){if(f){const m=zIt(w,f);if(m
=1)return{x:w.x,y:w.y};if(b>0&&b<1)return{x:qIt((1-b)*f.x+b*w.x,5),y:qIt((1-b)*f.y+b*w.y,5)}}}f=w}throw new Error("Could not find a suitable point for the given distance")},cSe=(i,a,f)=>{Ut.info(`our points ${JSON.stringify(a)}`),a[0]!==f&&(a=a.reverse());const w=adt(a,25),m=i?10:5,b=Math.atan2(a[0].y-w.y,a[0].x-w.x),E={x:0,y:0};return E.x=Math.sin(b)*m+(a[0].x+w.x)/2,E.y=-Math.cos(b)*m+(a[0].y+w.y)/2,E};function uSe(i,a,f){const p=structuredClone(f);Ut.info("our points",p),a!=="start_left"&&a!=="start_right"&&p.reverse();const w=25+i,m=adt(p,w),b=10+i*.5,E=Math.atan2(p[0].y-m.y,p[0].x-m.x),_={x:0,y:0};return a==="start_left"?(_.x=Math.sin(E+Math.PI)*b+(p[0].x+m.x)/2,_.y=-Math.cos(E+Math.PI)*b+(p[0].y+m.y)/2):a==="end_right"?(_.x=Math.sin(E-Math.PI)*b+(p[0].x+m.x)/2-5,_.y=-Math.cos(E-Math.PI)*b+(p[0].y+m.y)/2-5):a==="end_left"?(_.x=Math.sin(E)*b+(p[0].x+m.x)/2-5,_.y=-Math.cos(E)*b+(p[0].y+m.y)/2-5):(_.x=Math.sin(E)*b+(p[0].x+m.x)/2,_.y=-Math.cos(E)*b+(p[0].y+m.y)/2),_}function im(i){let a="",f="";for(const p of i)p!==void 0&&(p.startsWith("color:")||p.startsWith("text-align:")?f=f+p+";":a=a+p+";");return{style:a,labelStyle:f}}let HIt=0;const VIt=()=>(HIt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+HIt);function lSe(i){let a="";const f="0123456789abcdef",p=f.length;for(let w=0;wlSe(i.length),hSe=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}},fSe=function(i,a){const f=a.text.replace(Kr.lineBreakRegex," "),[,p]=VA(a.fontSize),w=i.append("text");w.attr("x",a.x),w.attr("y",a.y),w.style("text-anchor",a.anchor),w.style("font-family",a.fontFamily),w.style("font-size",p),w.style("font-weight",a.fontWeight),w.attr("fill",a.fill),a.class!==void 0&&w.attr("class",a.class);const m=w.append("tspan");return m.attr("x",a.x+a.textMargin*2),m.attr("fill",a.fill),m.text(f),w},UIt=jA((i,a,f)=>{if(!i||(f=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:" 0?N[st]+" "+at:ldt(at,/&\f/g,N[st])))&&(_[et++]=bt);return hdt(i,a,f,w===0?KIt:E,_,A,I)}function MSe(i,a,f){return hdt(i,a,f,YIt,udt(xSe()),sF(i,2,-2),0)}function eOt(i,a,f,p){return hdt(i,a,f,XIt,sF(i,0,p),sF(i,p+1,-1),p)}function pdt(i,a){for(var f="",p=ZIt(i),w=0;w {let f=Z1({},i),p={};for(const w of a)aOt(w),p=Z1(p,w);if(f=Z1(f,p),p.theme&&p.theme in T5){const w=Z1({},rOt),m=Z1(w.themeVariables||{},p.themeVariables);f.theme&&f.theme in T5&&(f.themeVariables=T5[f.theme].getThemeVariables(m))}return aF=f,cOt(aF),aF},ISe=i=>(fp=Z1({},WA),fp=Z1(fp,i),i.theme&&T5[i.theme]&&(fp.themeVariables=T5[i.theme].getThemeVariables(i.themeVariables)),jW(fp,YA),fp),OSe=i=>{rOt=Z1({},i)},PSe=i=>(fp=Z1(fp,i),jW(fp,YA),fp),iOt=()=>Z1({},fp),sOt=i=>(cOt(i),Z1(aF,i),Fd()),Fd=()=>Z1({},aF),aOt=i=>{i&&(["secure",...fp.secure??[]].forEach(a=>{Object.hasOwn(i,a)&&(Ut.debug(`Denied attempt to modify a secure key ${a}`,i[a]),delete i[a])}),Object.keys(i).forEach(a=>{a.startsWith("__")&&delete i[a]}),Object.keys(i).forEach(a=>{typeof i[a]=="string"&&(i[a].includes("<")||i[a].includes(">")||i[a].includes("url(data:"))&&delete i[a],typeof i[a]=="object"&&aOt(i[a])}))},FSe=i=>{mW(i),i.fontFamily&&(!i.themeVariables||!i.themeVariables.fontFamily)&&(i.themeVariables={fontFamily:i.fontFamily}),YA.push(i),jW(fp,YA)},$W=(i=fp)=>{YA=[],jW(i,YA)},NSe={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},oOt={},BSe=i=>{oOt[i]||(Ut.warn(NSe[i]),oOt[i]=!0)},cOt=i=>{i&&(i.lazyLoadedDiagrams||i.loadExternalDiagramsAtStartup)&&BSe("LAZY_LOAD_DEPRECATED")},uOt="c4",RSe={id:uOt,detector:i=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>nIe);return{id:uOt,diagram:i}}},lOt="flowchart",jSe={id:lOt,detector:(i,a)=>{var f,p;return((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="dagre-wrapper"||((p=a==null?void 0:a.flowchart)==null?void 0:p.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>cze);return{id:lOt,diagram:i}}},hOt="flowchart-v2",$Se={id:hOt,detector:(i,a)=>{var f,p,w;return((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="dagre-d3"||((p=a==null?void 0:a.flowchart)==null?void 0:p.defaultRenderer)==="elk"?!1:/^\s*graph/.test(i)&&((w=a==null?void 0:a.flowchart)==null?void 0:w.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>uze);return{id:hOt,diagram:i}}},fOt="er",zSe={id:fOt,detector:i=>/^\s*erDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Fze);return{id:fOt,diagram:i}}},dOt="gitGraph",qSe={id:dOt,detector:i=>/^\s*gitGraph/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>aqe);return{id:dOt,diagram:i}}},gOt="gantt",HSe={id:gOt,detector:i=>/^\s*gantt/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Kqe);return{id:gOt,diagram:i}}},pOt="info",VSe={id:pOt,detector:i=>/^\s*info/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Qqe);return{id:pOt,diagram:i}}},bOt="pie",GSe={id:bOt,detector:i=>/^\s*pie/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>rHe);return{id:bOt,diagram:i}}},wOt="quadrantChart",USe={id:wOt,detector:i=>/^\s*quadrantChart/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>mHe);return{id:wOt,diagram:i}}},vOt="xychart",WSe={id:vOt,detector:i=>/^\s*xychart-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>HHe);return{id:vOt,diagram:i}}},mOt="requirement",YSe={id:mOt,detector:i=>/^\s*requirement(Diagram)?/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>JHe);return{id:mOt,diagram:i}}},yOt="sequence",KSe={id:yOt,detector:i=>/^\s*sequenceDiagram/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>iGe);return{id:yOt,diagram:i}}},xOt="class",XSe={id:xOt,detector:(i,a)=>{var f;return((f=a==null?void 0:a.class)==null?void 0:f.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>AGe);return{id:xOt,diagram:i}}},kOt="classDiagram",QSe={id:kOt,detector:(i,a)=>{var f;return/^\s*classDiagram/.test(i)&&((f=a==null?void 0:a.class)==null?void 0:f.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>PGe);return{id:kOt,diagram:i}}},EOt="state",ZSe={id:EOt,detector:(i,a)=>{var f;return((f=a==null?void 0:a.state)==null?void 0:f.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(i)},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>xUe);return{id:EOt,diagram:i}}},TOt="stateDiagram",JSe={id:TOt,detector:(i,a)=>{var f;return!!(/^\s*stateDiagram-v2/.test(i)||/^\s*stateDiagram/.test(i)&&((f=a==null?void 0:a.state)==null?void 0:f.defaultRenderer)==="dagre-wrapper")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>$Ue);return{id:TOt,diagram:i}}},COt="journey",tAe={id:COt,detector:i=>/^\s*journey/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>sWe);return{id:COt,diagram:i}}},eAe=function(i,a){for(let f of a)i.attr(f[0],f[1])},nAe=function(i,a,f){let p=new Map;return f?(p.set("width","100%"),p.set("style",`max-width: ${a}px;`)):(p.set("height",i),p.set("width",a)),p},k0=function(i,a,f,p){const w=nAe(a,f,p);eAe(i,w)},fT=function(i,a,f,p){const w=a.node().getBBox(),m=w.width,b=w.height;Ut.info(`SVG bounds: ${m}x${b}`,w);let E=0,_=0;Ut.info(`Graph bounds: ${E}x${_}`,i),E=m+f*2,_=b+f*2,Ut.info(`Calculated bounds: ${E}x${_}`),k0(a,_,E,p);const A=`${w.x-f} ${w.y-f} ${w.width+2*f} ${w.height+2*f}`;a.attr("viewBox",A)},zW={},rAe=(i,a,f)=>{let p="";return i in zW&&zW[i]?p=zW[i](f):Ut.warn(`No theme found for ${i}`),` & {
+`).map(function(F,R){return R===0?F:""+I+F}).join(`
+`)),b+=B+g[_+1]}),b}var X0=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function JT(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var oOt={exports:{}};(function(i,a){(function(f,g){i.exports=g()})(X0,function(){var f=1e3,g=6e4,w=36e5,v="millisecond",b="second",E="minute",_="hour",S="day",I="week",B="month",F="quarter",R="year",q="date",X="Invalid Date",rt=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,at=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,ut={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(V){var Nt=["th","st","nd","rd"],Dt=V%100;return"["+V+(Nt[(Dt-20)%10]||Nt[Dt]||Nt[0])+"]"}},pt=function(V,Nt,Dt){var jt=String(V);return!jt||jt.length>=Nt?V:""+Array(Nt+1-jt.length).join(Dt)+V},yt={s:pt,z:function(V){var Nt=-V.utcOffset(),Dt=Math.abs(Nt),jt=Math.floor(Dt/60),Ct=Dt%60;return(Nt<=0?"+":"-")+pt(jt,2,"0")+":"+pt(Ct,2,"0")},m:function V(Nt,Dt){if(Nt.date() {a!==void 0&&(gY[i]=a)},UPe=HPe;let Cgt="",_gt="",Sgt="";const Agt=i=>Ed(i,h0()),Wg=()=>{Cgt="",Sgt="",_gt=""},ng=i=>{Cgt=Agt(i).replace(/^\s+/g,"")},Yg=()=>Cgt,Xg=i=>{Sgt=Agt(i).replace(/\n\s+/g,`
+`)},Qg=()=>Sgt,y2=i=>{_gt=Agt(i)},Jg=()=>_gt,WFt=Object.freeze(Object.defineProperty({__proto__:null,clear:Wg,getAccDescription:Qg,getAccTitle:Yg,getDiagramTitle:Jg,setAccDescription:Xg,setAccTitle:ng,setDiagramTitle:y2},Symbol.toStringTag,{value:"Module"})),GPe=Wt,KPe=s0t,Re=h0,WPe=SFt,YFt=tM,YPe=i=>Ed(i,Re()),XFt=g8,XPe=()=>WFt,pY={},bY=(i,a,f)=>{var g;if(pY[i])throw new Error(`Diagram ${i} already registered.`);pY[i]=a,f&&DNt(i,f),VPe(i,a.styles),(g=a.injectUtils)==null||g.call(a,GPe,KPe,Re,YPe,XFt,XPe(),()=>{})},Lgt=i=>{if(i in pY)return pY[i];throw new QPe(i)};class QPe extends Error{constructor(a){super(`Diagram ${a} not found.`)}}const wY=i=>{var w;const{securityLevel:a}=Re();let f=xr("body");if(a==="sandbox"){const b=((w=xr(`#i${i}`).node())==null?void 0:w.contentDocument)??document;f=xr(b.body)}return f.select(`#${i}`)},QFt={draw:(i,a,f)=>{Wt.debug(`renering svg for syntax error
+`);const g=wY(a);g.attr("viewBox","0 0 2412 512"),Kg(g,100,512,!0);const w=g.append("g");w.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),w.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),w.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),w.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),w.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),w.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),w.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),w.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${f}`)}},JPe=QFt,ZPe={db:{},renderer:QFt,parser:{parser:{yy:{}},parse:()=>{}}},JFt="flowchart-elk",tNe={id:JFt,detector:(i,a)=>{var f;return!!(/^\s*flowchart-elk/.test(i)||/^\s*flowchart|graph/.test(i)&&((f=a==null?void 0:a.flowchart)==null?void 0:f.defaultRenderer)==="elk")},loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ctn);return{id:JFt,diagram:i}}},ZFt="timeline",eNe={id:ZFt,detector:i=>/^\s*timeline/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Stn);return{id:ZFt,diagram:i}}},tBt="mindmap",nNe={id:tBt,detector:i=>/^\s*mindmap/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>ren);return{id:tBt,diagram:i}}},eBt="sankey",rNe={id:eBt,detector:i=>/^\s*sankey-beta/.test(i),loader:async()=>{const{diagram:i}=await Promise.resolve().then(()=>Oen);return{id:eBt,diagram:i}}};let nBt=!1;const Mgt=()=>{nBt||(nBt=!0,bY("error",ZPe,i=>i.toLowerCase().trim()==="error"),bY("---",{db:{clear:()=>{}},styles:{},renderer:{draw:()=>{}},parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")}},init:()=>null},i=>i.toLowerCase().trimStart().startsWith("---")),MNt(TPe,BPe,FPe,SPe,LPe,MPe,DPe,PPe,NPe,tNe,_Pe,CPe,nNe,eNe,APe,jPe,RPe,$Pe,IPe,rNe,OPe))};class rBt{constructor(a,f={}){this.text=a,this.metadata=f,this.type="graph",this.text=nPe(a),this.text+=`
+`;const g=h0();try{this.type=KW(a,g)}catch(v){this.type="error",this.detectError=v}const w=Lgt(this.type);Wt.debug("Type "+this.type),this.db=w.db,this.renderer=w.renderer,this.parser=w.parser,this.parser.parser.yy=this.db,this.init=w.init,this.parse()}parse(){var f,g,w,v,b;if(this.detectError)throw this.detectError;(g=(f=this.db).clear)==null||g.call(f);const a=h0();(w=this.init)==null||w.call(this,a),this.metadata.title&&((b=(v=this.db).setDiagramTitle)==null||b.call(v,this.metadata.title)),this.parser.parse(this.text)}async render(a,f){await this.renderer.draw(this.text,a,f,this)}getParser(){return this.parser}getType(){return this.type}}const iNe=async(i,a={})=>{const f=KW(i,h0());try{Lgt(f)}catch{const w=cDe(f);if(!w)throw new LNt(`Diagram ${f} not found.`);const{id:v,diagram:b}=await w();bY(v,b)}return new rBt(i,a)};let Dgt=[];const sNe=i=>{Dgt.push(i)},aNe=()=>{Dgt.forEach(i=>{i()}),Dgt=[]};var oNe=VNt(Object.keys,Object);const cNe=oNe;var uNe=Object.prototype,lNe=uNe.hasOwnProperty;function iBt(i){if(!ZW(i))return cNe(i);var a=[];for(var f in Object(i))lNe.call(i,f)&&f!="constructor"&&a.push(f);return a}var hNe=g9(Vv,"DataView");const Igt=hNe;var fNe=g9(Vv,"Promise");const Ogt=fNe;var dNe=g9(Vv,"Set");const nM=dNe;var gNe=g9(Vv,"WeakMap");const Pgt=gNe;var sBt="[object Map]",pNe="[object Object]",aBt="[object Promise]",oBt="[object Set]",cBt="[object WeakMap]",uBt="[object DataView]",bNe=d9(Igt),wNe=d9(yF),mNe=d9(Ogt),vNe=d9(nM),yNe=d9(Pgt),v9=f9;(Igt&&v9(new Igt(new ArrayBuffer(1)))!=uBt||yF&&v9(new yF)!=sBt||Ogt&&v9(Ogt.resolve())!=aBt||nM&&v9(new nM)!=oBt||Pgt&&v9(new Pgt)!=cBt)&&(v9=function(i){var a=f9(i),f=a==pNe?i.constructor:void 0,g=f?d9(f):"";if(g)switch(g){case bNe:return uBt;case wNe:return sBt;case mNe:return aBt;case vNe:return oBt;case yNe:return cBt}return a});const rM=v9;var xNe="[object Map]",kNe="[object Set]",ENe=Object.prototype,TNe=ENe.hasOwnProperty;function LF(i){if(i==null)return!0;if(f8(i)&&(s1(i)||typeof i=="string"||typeof i.splice=="function"||WL(i)||eY(i)||KL(i)))return!i.length;var a=rM(i);if(a==xNe||a==kNe)return!i.size;if(ZW(i))return!iBt(i).length;for(var f in i)if(TNe.call(i,f))return!1;return!0}const CNe="graphics-document document";function _Ne(i,a){i.attr("role",CNe),a!==""&&i.attr("aria-roledescription",a)}function SNe(i,a,f,g){if(i.insert!==void 0){if(f){const w=`chart-desc-${g}`;i.attr("aria-describedby",w),i.insert("desc",":first-child").attr("id",w).text(f)}if(a){const w=`chart-title-${g}`;i.attr("aria-labelledby",w),i.insert("title",":first-child").attr("id",w).text(a)}}}const ANe=i=>i.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart();/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function lBt(i){return typeof i>"u"||i===null}function LNe(i){return typeof i=="object"&&i!==null}function MNe(i){return Array.isArray(i)?i:lBt(i)?[]:[i]}function DNe(i,a){var f,g,w,v;if(a)for(v=Object.keys(a),f=0,g=v.length;f >10)+55296,(i-65536&1023)+56320)}for(var ePt=new Array(256),nPt=new Array(256),ZA=0;ZA<256;ZA++)ePt[ZA]=tPt(ZA)?1:0,nPt[ZA]=tPt(ZA);function dMe(i,a){this.input=i,this.filename=a.filename||null,this.schema=a.schema||iMe,this.onWarning=a.onWarning||null,this.legacy=a.legacy||!1,this.json=a.json||!1,this.listener=a.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=i.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function rPt(i,a){var f={name:i.filename,buffer:i.input.slice(0,-1),position:i.position,line:i.line,column:i.position-i.lineStart};return f.snippet=tLe(f),new A5(a,f)}function Ss(i,a){throw rPt(i,a)}function WW(i,a){i.onWarning&&i.onWarning.call(null,rPt(i,a))}var iPt={YAML:function(a,f,p){var w,m,b;a.version!==null&&Ss(a,"duplication of %YAML directive"),p.length!==1&&Ss(a,"YAML directive accepts exactly one argument"),w=/^([0-9]+)\.([0-9]+)$/.exec(p[0]),w===null&&Ss(a,"ill-formed argument of the YAML directive"),m=parseInt(w[1],10),b=parseInt(w[2],10),m!==1&&Ss(a,"unacceptable YAML version of the document"),a.version=p[0],a.checkLineBreaks=b<2,b!==1&&b!==2&&WW(a,"unsupported YAML version of the document")},TAG:function(a,f,p){var w,m;p.length!==2&&Ss(a,"TAG directive accepts exactly two arguments"),w=p[0],m=p[1],QOt.test(w)||Ss(a,"ill-formed tag handle (first argument) of the TAG directive"),lk.call(a.tagMap,w)&&Ss(a,'there is a previously declared suffix for "'+w+'" tag handle'),ZOt.test(m)||Ss(a,"ill-formed tag prefix (second argument) of the TAG directive");try{m=decodeURIComponent(m)}catch{Ss(a,"tag prefix is malformed: "+m)}a.tagMap[w]=m}};function hk(i,a,f,p){var w,m,b,E;if(a -1}function Rb(i){return ck(i)?PIt(i):NOt(i)}var LIe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,MIe=/^\w*$/;function Udt(i,a){if(If(i))return!1;var f=typeof i;return f=="number"||f=="symbol"||f=="boolean"||i==null||vT(i)?!0:MIe.test(i)||!LIe.test(i)||a!=null&&i in Object(a)}var DIe=500;function IIe(i){var a=jA(i,function(p){return f.size===DIe&&f.clear(),p}),f=a.cache;return a}var OIe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,PIe=/\\(\\)?/g,FIe=IIe(function(i){var a=[];return i.charCodeAt(0)===46&&a.push(""),i.replace(OIe,function(f,p,w,m){a.push(w?m.replace(PIe,"$1"):p||f)}),a});const NIe=FIe;function fFt(i){return i==null?"":oFt(i)}function hY(i,a){return If(i)?i:Udt(i,a)?[i]:NIe(fFt(i))}var BIe=1/0;function gF(i){if(typeof i=="string"||vT(i))return i;var a=i+"";return a=="0"&&1/i==-BIe?"-0":a}function fY(i,a){a=hY(a,i);for(var f=0,p=a.length;i!=null&&f 0&&f(E)?a>1?dY(E,a-1,f,p,w):Wdt(w,E):p||(w[w.length]=E)}return w}function rL(i){var a=i==null?0:i.length;return a?dY(i,1):[]}function $Ie(i){return RIt(BIt(i,void 0,rL),i+"")}function zIe(i,a,f,p){var w=-1,m=i==null?0:i.length;for(p&&m&&(f=i[++w]);++w -1?w[m?a[b]:b]:void 0}}var iFe=Math.max;function sFe(i,a,f){var p=i==null?0:i.length;if(!p)return-1;var w=f==null?0:EIe(f);return w<0&&(w=iFe(p+w,0)),hFt(i,pk(a),w)}var aFe=rFe(sFe);const e0t=aFe;function RFt(i,a){var f=-1,p=ck(i)?Array(i.length):[];return pY(i,function(w,m,b){p[++f]=a(w,m,b)}),p}function Ff(i,a){var f=If(i)?nL:RFt;return f(i,pk(a))}function oFe(i,a){return i==null?i:tdt(i,t0t(a),uT)}function cFe(i,a){return i&&Jdt(i,t0t(a))}function uFe(i,a){return i>a}var lFe=Object.prototype,hFe=lFe.hasOwnProperty;function fFe(i,a){return i!=null&&hFe.call(i,a)}function za(i,a){return i!=null&&PFt(i,a,fFe)}function dFe(i,a){return nL(a,function(f){return i[f]})}function I5(i){return i==null?[]:dFe(i,Rb(i))}function Jh(i){return i===void 0}function jFt(i,a){return ia||m&&b&&_&&!E&&!A||p&&b&&_||!f&&_||!w)return 1;if(!p&&!m&&!A&&i=E)return _;var A=f[p];return _*(A=="desc"?-1:1)}}return i.index-a.index}function mFe(i,a,f){a.length?a=nL(a,function(m){return If(m)?function(b){return fY(b,m.length===1?m[0]:m)}:m}):a=[lT];var p=-1;a=nL(a,SW(pk));var w=RFt(i,function(m,b,E){var _=nL(a,function(A){return A(m)});return{criteria:_,index:++p,value:m}});return bFe(w,function(m,b){return vFe(m,b,f)})}function yFe(i,a){return pFe(i,a,function(f,p){return FFt(i,p)})}var xFe=$Ie(function(i,a){return i==null?{}:yFe(i,a)});const vF=xFe;var kFe=Math.ceil,EFe=Math.max;function TFe(i,a,f,p){for(var w=-1,m=EFe(kFe((a-i)/(f||1)),0),b=Array(m);m--;)b[p?m:++w]=i,i+=f;return b}function CFe(i){return function(a,f,p){return p&&typeof p!="number"&&nF(a,f,p)&&(f=p=void 0),a=lY(a),f===void 0?(f=a,a=0):f=lY(f),p=p===void 0?a
"},f),Kr.lineBreakRegex.test(i)))return i;const p=i.split(" "),w=[];let m="";return p.forEach((b,E)=>{const _=d3(`${b} `,f),A=d3(m,f);if(_>a){const{hyphenatedStrings:N,remainingWord:R}=dSe(b,a,"-",f);w.push(m,...N),m=R}else A+_>=a?(w.push(m),m=b):m=[m,b].filter(Boolean).join(" ");E+1===p.length&&w.push(m)}),w.filter(b=>b!=="").join(f.joinWith)},(i,a,f)=>`${i}${a}${f.fontSize}${f.fontWeight}${f.fontFamily}${f.joinWith}`),dSe=jA((i,a,f="-",p)=>{p=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},p);const w=[...i],m=[];let b="";return w.forEach((E,_)=>{const A=`${b}${E}`;if(d3(A,p)>=a){const B=_+1,N=w.length===B,R=`${A}${f}`;m.push(N?A:R),b=""}else b=A}),{hyphenatedStrings:m,remainingWord:b}},(i,a,f="-",p)=>`${i}${a}${f}${p.fontSize}${p.fontWeight}${p.fontFamily}`);function odt(i,a){return cdt(i,a).height}function d3(i,a){return cdt(i,a).width}const cdt=jA((i,a)=>{const{fontSize:f=12,fontFamily:p="Arial",fontWeight:w=400}=a;if(!i)return{width:0,height:0};const[,m]=VA(f),b=["sans-serif",p],E=i.split(Kr.lineBreakRegex),_=[],A=yr("body");if(!A.remove)return{width:0,height:0,lineHeight:0};const I=A.append("svg");for(const N of b){let R=0;const z={width:0,height:0,lineHeight:0};for(const W of E){const et=hSe();et.text=W||jIt;const st=fSe(I,et).style("font-size",m).style("font-weight",w).style("font-family",N),at=(st._groups||st)[0][0].getBBox();if(at.width===0&&at.height===0)throw new Error("svg element not in render tree");z.width=Math.round(Math.max(z.width,at.width)),R=Math.round(at.height),z.height+=R,z.lineHeight=Math.round(Math.max(z.lineHeight,R))}_.push(z)}I.remove();const B=isNaN(_[1].height)||isNaN(_[1].width)||isNaN(_[1].lineHeight)||_[0].height>_[1].height&&_[0].width>_[1].width&&_[0].lineHeight>_[1].lineHeight?0:1;return _[B]},(i,a)=>`${i}${a.fontSize}${a.fontWeight}${a.fontFamily}`);class gSe{constructor(a=!1,f){this.count=0,this.count=f?f.length:0,this.next=a?()=>this.count++:()=>Date.now()}}let OW;const pSe=function(i){return OW=OW||document.createElement("div"),i=escape(i).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),OW.innerHTML=i,unescape(OW.textContent)};function WIt(i){return"str"in i}const bSe=(i,a,f,p)=>{var m;if(!p)return;const w=(m=i.node())==null?void 0:m.getBBox();w&&i.append("text").text(p).attr("x",w.x+w.width/2).attr("y",-f).attr("class",a)},VA=i=>{if(typeof i=="number")return[i,i+"px"];const a=parseInt(i??"",10);return Number.isNaN(a)?[void 0,void 0]:i===String(a)?[a,i+"px"]:[a,i]};function rF(i,a){return IW({},i,a)}const $a={assignWithDepth:Z1,wrapLabel:UIt,calculateTextHeight:odt,calculateTextWidth:d3,calculateTextDimensions:cdt,cleanAndMerge:rF,detectInit:eSe,detectDirective:$It,isSubstringInArray:rSe,interpolateToCurve:ew,calcLabelPosition:oSe,calcCardinalityPosition:cSe,calcTerminalLabelPosition:uSe,formatUrl:iSe,getStylesFromArray:im,generateId:VIt,random:GIt,runFunc:sSe,entityDecode:pSe,insertTitle:bSe,parseFontSize:VA,InitIDGenerator:gSe};var YIt="comm",KIt="rule",XIt="decl",wSe="@import",vSe="@keyframes",mSe=Math.abs,udt=String.fromCharCode;function QIt(i){return i.trim()}function ldt(i,a,f){return i.replace(a,f)}function ySe(i,a){return i.indexOf(a)}function iF(i,a){return i.charCodeAt(a)|0}function sF(i,a,f){return i.slice(a,f)}function uk(i){return i.length}function ZIt(i){return i.length}function PW(i,a){return a.push(i),i}var FW=1,GA=1,JIt=0,nw=0,Of=0,UA="";function hdt(i,a,f,p,w,m,b){return{value:i,root:a,parent:f,type:p,props:w,children:m,line:FW,column:GA,length:b,return:""}}function xSe(){return Of}function kSe(){return Of=nw>0?iF(UA,--nw):0,GA--,Of===10&&(GA=1,FW--),Of}function sm(){return Of=nw=0;)(b=g[w])&&(v&&b.compareDocumentPosition(v)^4&&v.parentNode.insertBefore(b,v),v=b);return this}function eCe(i){i||(i=nCe);function a(B,F){return B&&F?i(B.__data__,F.__data__):!B-!F}for(var f=this._groups,g=f.length,w=new Array(g),v=0;v
rt).right(b,F);if(R===b.length)return i.every(u0t(S/z0t,I/z0t,B));if(R===0)return NL.every(Math.max(u0t(S,I,B),1));const[q,X]=b[F/b[R-1][2]53)return null;"w"in Ae||(Ae.w=1),"Z"in Ae?(Dn=V0t(aF(Ae.y,0,1)),oe=Dn.getUTCDay(),Dn=oe>4||oe===0?CW.ceil(Dn):CW(Dn),Dn=q0t.offset(Dn,(Ae.V-1)*7),Ae.y=Dn.getUTCFullYear(),Ae.m=Dn.getUTCMonth(),Ae.d=Dn.getUTCDate()+(Ae.w+6)%7):(Dn=H0t(aF(Ae.y,0,1)),oe=Dn.getDay(),Dn=oe>4||oe===0?iF.ceil(Dn):iF(Dn),Dn=s9.offset(Dn,(Ae.V-1)*7),Ae.y=Dn.getFullYear(),Ae.m=Dn.getMonth(),Ae.d=Dn.getDate()+(Ae.w+6)%7)}else("W"in Ae||"U"in Ae)&&("w"in Ae||(Ae.w="u"in Ae?Ae.u%7:"W"in Ae?1:0),oe="Z"in Ae?V0t(aF(Ae.y,0,1)).getUTCDay():H0t(aF(Ae.y,0,1)).getDay(),Ae.m=0,Ae.d="W"in Ae?(Ae.w+6)%7+Ae.W*7-(oe+5)%7:Ae.w+Ae.U*7-(oe+6)%7);return"Z"in Ae?(Ae.H+=Ae.Z/100|0,Ae.M+=Ae.Z%100,V0t(Ae)):H0t(Ae)}}function bt(me,Fe,Qt,Ae){for(var Se=0,Dn=Fe.length,oe=Qt.length,Pr,we;Se0&&(F+=yt);for(a!=null?R.sort(function(mt,gt){return a(q[mt],q[gt])}):f!=null&&R.sort(function(mt,gt){return f(E[mt],E[gt])}),_=0,B=F?(rt-S*pt)/F:0;_0?yt*B:0)+pt,q[I]={data:E[I],index:_,value:yt,startAngle:X,endAngle:at,padAngle:ut};return q}return b.value=function(E){return arguments.length?(i=typeof E=="function"?E:vf(+E),b):i},b.sortValues=function(E){return arguments.length?(a=E,f=null,b):a},b.sort=function(E){return arguments.length?(f=E,a=null,b):f},b.startAngle=function(E){return arguments.length?(g=typeof E=="function"?E:vf(+E),b):g},b.endAngle=function(E){return arguments.length?(w=typeof E=="function"?E:vf(+E),b):w},b.padAngle=function(E){return arguments.length?(v=typeof E=="function"?E:vf(+E),b):v},b}class GPt{constructor(a,f){this._context=a,this._x=f}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(a,f){switch(a=+a,f=+f,this._point){case 0:{this._point=1,this._line?this._context.lineTo(a,f):this._context.moveTo(a,f);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+a)/2,this._y0,this._x0,f,a,f):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+f)/2,a,this._y0,a,f);break}}this._x0=a,this._y0=f}}function YLe(i){return new GPt(i,!0)}function XLe(i){return new GPt(i,!1)}function l8(){}function MW(i,a,f){i._context.bezierCurveTo((2*i._x0+i._x1)/3,(2*i._y0+i._y1)/3,(i._x0+2*i._x1)/3,(i._y0+2*i._y1)/3,(i._x0+4*i._x1+a)/6,(i._y0+4*i._y1+f)/6)}function DW(i){this._context=i}DW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:MW(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:MW(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function lF(i){return new DW(i)}function KPt(i){this._context=i}KPt.prototype={areaStart:l8,areaEnd:l8,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._x2=i,this._y2=a;break;case 1:this._point=2,this._x3=i,this._y3=a;break;case 2:this._point=3,this._x4=i,this._y4=a,this._context.moveTo((this._x0+4*this._x1+i)/6,(this._y0+4*this._y1+a)/6);break;default:MW(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function QLe(i){return new KPt(i)}function WPt(i){this._context=i}WPt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var f=(this._x0+4*this._x1+i)/6,g=(this._y0+4*this._y1+a)/6;this._line?this._context.lineTo(f,g):this._context.moveTo(f,g);break;case 3:this._point=4;default:MW(this,i,a);break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a}};function JLe(i){return new WPt(i)}function YPt(i,a){this._basis=new DW(i),this._beta=a}YPt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var i=this._x,a=this._y,f=i.length-1;if(f>0)for(var g=i[0],w=a[0],v=i[f]-g,b=a[f]-w,E=-1,_;++E<=f;)_=E/f,this._basis.point(this._beta*i[E]+(1-this._beta)*(g+_*v),this._beta*a[E]+(1-this._beta)*(w+_*b));this._x=this._y=null,this._basis.lineEnd()},point:function(i,a){this._x.push(+i),this._y.push(+a)}};const ZLe=function i(a){function f(g){return a===1?new DW(g):new YPt(g,a)}return f.beta=function(g){return i(+g)},f}(.85);function IW(i,a,f){i._context.bezierCurveTo(i._x1+i._k*(i._x2-i._x0),i._y1+i._k*(i._y2-i._y0),i._x2+i._k*(i._x1-a),i._y2+i._k*(i._y1-f),i._x2,i._y2)}function G0t(i,a){this._context=i,this._k=(1-a)/6}G0t.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:IW(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2,this._x1=i,this._y1=a;break;case 2:this._point=3;default:IW(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const tMe=function i(a){function f(g){return new G0t(g,a)}return f.tension=function(g){return i(+g)},f}(0);function K0t(i,a){this._context=i,this._k=(1-a)/6}K0t.prototype={areaStart:l8,areaEnd:l8,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1,this._x3=i,this._y3=a;break;case 1:this._point=2,this._context.moveTo(this._x4=i,this._y4=a);break;case 2:this._point=3,this._x5=i,this._y5=a;break;default:IW(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const eMe=function i(a){function f(g){return new K0t(g,a)}return f.tension=function(g){return i(+g)},f}(0);function W0t(i,a){this._context=i,this._k=(1-a)/6}W0t.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){switch(i=+i,a=+a,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:IW(this,i,a);break}this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const nMe=function i(a){function f(g){return new W0t(g,a)}return f.tension=function(g){return i(+g)},f}(0);function Y0t(i,a,f){var g=i._x1,w=i._y1,v=i._x2,b=i._y2;if(i._l01_a>tg){var E=2*i._l01_2a+3*i._l01_a*i._l12_a+i._l12_2a,_=3*i._l01_a*(i._l01_a+i._l12_a);g=(g*E-i._x0*i._l12_2a+i._x2*i._l01_2a)/_,w=(w*E-i._y0*i._l12_2a+i._y2*i._l01_2a)/_}if(i._l23_a>tg){var S=2*i._l23_2a+3*i._l23_a*i._l12_a+i._l12_2a,I=3*i._l23_a*(i._l23_a+i._l12_a);v=(v*S+i._x1*i._l23_2a-a*i._l12_2a)/I,b=(b*S+i._y1*i._l23_2a-f*i._l12_2a)/I}i._context.bezierCurveTo(g,w,v,b,i._x2,i._y2)}function XPt(i,a){this._context=i,this._alpha=a}XPt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){if(i=+i,a=+a,this._point){var f=this._x2-i,g=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(f*f+g*g,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3;default:Y0t(this,i,a);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const rMe=function i(a){function f(g){return a?new XPt(g,a):new G0t(g,0)}return f.alpha=function(g){return i(+g)},f}(.5);function QPt(i,a){this._context=i,this._alpha=a}QPt.prototype={areaStart:l8,areaEnd:l8,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(i,a){if(i=+i,a=+a,this._point){var f=this._x2-i,g=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(f*f+g*g,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=i,this._y3=a;break;case 1:this._point=2,this._context.moveTo(this._x4=i,this._y4=a);break;case 2:this._point=3,this._x5=i,this._y5=a;break;default:Y0t(this,i,a);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const iMe=function i(a){function f(g){return a?new QPt(g,a):new K0t(g,0)}return f.alpha=function(g){return i(+g)},f}(.5);function JPt(i,a){this._context=i,this._alpha=a}JPt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){if(i=+i,a=+a,this._point){var f=this._x2-i,g=this._y2-a;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(f*f+g*g,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Y0t(this,i,a);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=i,this._y0=this._y1,this._y1=this._y2,this._y2=a}};const sMe=function i(a){function f(g){return a?new JPt(g,a):new W0t(g,0)}return f.alpha=function(g){return i(+g)},f}(.5);function ZPt(i){this._context=i}ZPt.prototype={areaStart:l8,areaEnd:l8,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(i,a){i=+i,a=+a,this._point?this._context.lineTo(i,a):(this._point=1,this._context.moveTo(i,a))}};function aMe(i){return new ZPt(i)}function tNt(i){return i<0?-1:1}function eNt(i,a,f){var g=i._x1-i._x0,w=a-i._x1,v=(i._y1-i._y0)/(g||w<0&&-0),b=(f-i._y1)/(w||g<0&&-0),E=(v*w+b*g)/(g+w);return(tNt(v)+tNt(b))*Math.min(Math.abs(v),Math.abs(b),.5*Math.abs(E))||0}function nNt(i,a){var f=i._x1-i._x0;return f?(3*(i._y1-i._y0)/f-a)/2:a}function X0t(i,a,f){var g=i._x0,w=i._y0,v=i._x1,b=i._y1,E=(v-g)/3;i._context.bezierCurveTo(g+E,w+E*a,v-E,b-E*f,v,b)}function OW(i){this._context=i}OW.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:X0t(this,this._t0,nNt(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(i,a){var f=NaN;if(i=+i,a=+a,!(i===this._x1&&a===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(i,a):this._context.moveTo(i,a);break;case 1:this._point=2;break;case 2:this._point=3,X0t(this,nNt(this,f=eNt(this,i,a)),f);break;default:X0t(this,this._t0,f=eNt(this,i,a));break}this._x0=this._x1,this._x1=i,this._y0=this._y1,this._y1=a,this._t0=f}}};function rNt(i){this._context=new iNt(i)}(rNt.prototype=Object.create(OW.prototype)).point=function(i,a){OW.prototype.point.call(this,a,i)};function iNt(i){this._context=i}iNt.prototype={moveTo:function(i,a){this._context.moveTo(a,i)},closePath:function(){this._context.closePath()},lineTo:function(i,a){this._context.lineTo(a,i)},bezierCurveTo:function(i,a,f,g,w,v){this._context.bezierCurveTo(a,i,g,f,v,w)}};function oMe(i){return new OW(i)}function cMe(i){return new rNt(i)}function sNt(i){this._context=i}sNt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var i=this._x,a=this._y,f=i.length;if(f)if(this._line?this._context.lineTo(i[0],a[0]):this._context.moveTo(i[0],a[0]),f===2)this._context.lineTo(i[1],a[1]);else for(var g=aNt(i),w=aNt(a),v=0,b=1;b
/gi,OMe=i=>i?yNt(i).replace(/\\n/g,"#br#").split("#br#"):[""],mNt=i=>{const a="data-temp-href-target";zL.addHook("beforeSanitizeAttributes",g=>{g.tagName==="A"&&g.hasAttribute("target")&&g.setAttribute(a,g.getAttribute("target")||"")});const f=zL.sanitize(i);return zL.addHook("afterSanitizeAttributes",g=>{g.tagName==="A"&&g.hasAttribute(a)&&(g.setAttribute("target",g.getAttribute(a)||""),g.removeAttribute(a),g.getAttribute("target")==="_blank"&&g.setAttribute("rel","noopener"))}),f},vNt=(i,a)=>{var f;if(((f=a.flowchart)==null?void 0:f.htmlLabels)!==!1){const g=a.securityLevel;g==="antiscript"||g==="strict"?i=mNt(i):g!=="loose"&&(i=yNt(i),i=i.replace(/
"),yNt=i=>i.replace(gF,"#br#"),RMe=i=>{let a="";return i&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replaceAll(/\(/g,"\\("),a=a.replaceAll(/\)/g,"\\)")),a},B1=i=>!(i===!1||["false","null","0"].includes(String(i).trim().toLowerCase())),jMe=function(...i){const a=i.filter(f=>!isNaN(f));return Math.max(...a)},$Me=function(...i){const a=i.filter(f=>!isNaN(f));return Math.min(...a)},pF=function(i){const a=i.split(/(,)/),f=[];for(let g=0;g
"},f),ei.lineBreakRegex.test(i)))return i;const g=i.split(" "),w=[];let v="";return g.forEach((b,E)=>{const _=n4(`${b} `,f),S=n4(v,f);if(_>a){const{hyphenatedStrings:F,remainingWord:R}=JOe(b,a,"-",f);w.push(v,...F),v=R}else S+_>=a?(w.push(v),v=b):v=[v,b].filter(Boolean).join(" ");E+1===g.length&&w.push(v)}),w.filter(b=>b!=="").join(f.joinWith)},(i,a,f)=>`${i}${a}${f.fontSize}${f.fontWeight}${f.fontFamily}${f.joinWith}`),JOe=GL((i,a,f="-",g)=>{g=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},g);const w=[...i],v=[];let b="";return w.forEach((E,_)=>{const S=`${b}${E}`;if(n4(S,g)>=a){const B=_+1,F=w.length===B,R=`${S}${f}`;v.push(F?S:R),b=""}else b=S}),{hyphenatedStrings:v,remainingWord:b}},(i,a,f="-",g)=>`${i}${a}${f}${g.fontSize}${g.fontWeight}${g.fontFamily}`);function bgt(i,a){return wgt(i,a).height}function n4(i,a){return wgt(i,a).width}const wgt=GL((i,a)=>{const{fontSize:f=12,fontFamily:g="Arial",fontWeight:w=400}=a;if(!i)return{width:0,height:0};const[,v]=QL(f),b=["sans-serif",g],E=i.split(ei.lineBreakRegex),_=[],S=xr("body");if(!S.remove)return{width:0,height:0,lineHeight:0};const I=S.append("svg");for(const F of b){let R=0;const q={width:0,height:0,lineHeight:0};for(const X of E){const rt=XOe();rt.text=X||oFt;const at=QOe(I,rt).style("font-size",v).style("font-weight",w).style("font-family",F),ut=(at._groups||at)[0][0].getBBox();if(ut.width===0&&ut.height===0)throw new Error("svg element not in render tree");q.width=Math.round(Math.max(q.width,ut.width)),R=Math.round(ut.height),q.height+=R,q.lineHeight=Math.round(Math.max(q.lineHeight,R))}_.push(q)}I.remove();const B=isNaN(_[1].height)||isNaN(_[1].width)||isNaN(_[1].lineHeight)||_[0].height>_[1].height&&_[0].width>_[1].width&&_[0].lineHeight>_[1].lineHeight?0:1;return _[B]},(i,a)=>`${i}${a.fontSize}${a.fontWeight}${a.fontFamily}`);class ZOe{constructor(a=!1,f){this.count=0,this.count=f?f.length:0,this.next=a?()=>this.count++:()=>Date.now()}}let aY;const tPe=function(i){return aY=aY||document.createElement("div"),i=escape(i).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),aY.innerHTML=i,unescape(aY.textContent)};function pFt(i){return"str"in i}const ePe=(i,a,f,g)=>{var v;if(!g)return;const w=(v=i.node())==null?void 0:v.getBBox();w&&i.append("text").text(g).attr("x",w.x+w.width/2).attr("y",-f).attr("class",a)},QL=i=>{if(typeof i=="number")return[i,i+"px"];const a=parseInt(i??"",10);return Number.isNaN(a)?[void 0,void 0]:i===String(a)?[a,i+"px"]:[a,i]};function TF(i,a){return sY({},i,a)}const ao={assignWithDepth:Td,wrapLabel:gFt,calculateTextHeight:bgt,calculateTextWidth:n4,calculateTextDimensions:wgt,cleanAndMerge:TF,detectInit:$Oe,detectDirective:cFt,isSubstringInArray:qOe,interpolateToCurve:Vw,calcLabelPosition:GOe,calcCardinalityPosition:KOe,calcTerminalLabelPosition:WOe,formatUrl:HOe,getStylesFromArray:Uw,generateId:fFt,random:dFt,runFunc:VOe,entityDecode:tPe,insertTitle:ePe,parseFontSize:QL,InitIDGenerator:ZOe},nPe=function(i){let a=i;return a=a.replace(/style.*:\S*#.*;/g,function(f){return f.substring(0,f.length-1)}),a=a.replace(/classDef.*:\S*#.*;/g,function(f){return f.substring(0,f.length-1)}),a=a.replace(/#\w+;/g,function(f){const g=f.substring(1,f.length-1);return/^\+?\d+$/.test(g)?"fl°°"+g+"¶ß":"fl°"+g+"¶ß"}),a},CF=function(i){return i.replace(/fl°°/g,"").replace(/fl°/g,"&").replace(/¶ß/g,";")};var bFt="comm",wFt="rule",mFt="decl",rPe="@import",iPe="@keyframes",sPe=Math.abs,mgt=String.fromCharCode;function vFt(i){return i.trim()}function vgt(i,a,f){return i.replace(a,f)}function aPe(i,a){return i.indexOf(a)}function _F(i,a){return i.charCodeAt(a)|0}function SF(i,a,f){return i.slice(a,f)}function d8(i){return i.length}function yFt(i){return i.length}function oY(i,a){return a.push(i),i}var cY=1,JL=1,xFt=0,Gw=0,a1=0,ZL="";function ygt(i,a,f,g,w,v,b){return{value:i,root:a,parent:f,type:g,props:w,children:v,line:cY,column:JL,length:b,return:""}}function oPe(){return a1}function cPe(){return a1=Gw>0?_F(ZL,--Gw):0,JL--,a1===10&&(JL=1,cY--),a1}function Gv(){return a1=Gw
/g,"
"),p},nDe=(i="",a)=>{var w,m;const f=(m=(w=a==null?void 0:a.viewBox)==null?void 0:w.baseVal)!=null&&m.height?a.viewBox.baseVal.height+"px":VMe,p=btoa(''+i+"");return``},lPt=(i,a,f,p,w)=>{const m=i.append("div");m.attr("id",f),p&&m.attr("style",p);const b=m.append("svg").attr("id",a).attr("width","100%").attr("xmlns",$Me);return w&&b.attr("xmlns:xlink",w),b.append("g"),i};function hPt(i,a){return i.append("iframe").attr("id",a).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const rDe=(i,a,f,p)=>{var w,m,b;(w=i.getElementById(a))==null||w.remove(),(m=i.getElementById(f))==null||m.remove(),(b=i.getElementById(p))==null||b.remove()},iDe=async function(i,a,f){var nt,It,Ot,Bt,Et,Z;xdt();const p=cPt(a);a=p.code;const w=Fd();Ut.debug(w),a.length>((w==null?void 0:w.maxTextSize)??NMe)&&(a=BMe);const m="#"+i,b="i"+i,E="#"+b,_="d"+i,A="#"+_;let I=yr("body");const B=w.securityLevel===RMe,N=w.securityLevel===jMe,R=w.fontFamily;if(f!==void 0){if(f&&(f.innerHTML=""),B){const Ct=hPt(yr(f),b);I=yr(Ct.nodes()[0].contentDocument.body),I.node().style.margin=0}else I=yr(f);lPt(I,i,_,`font-family: ${R}`,zMe)}else{if(rDe(document,i,_,b),B){const Ct=hPt(yr("body"),b);I=yr(Ct.nodes()[0].contentDocument.body),I.node().style.margin=0}else I=yr("body");lPt(I,i,_)}a=ZMe(a);let z,W;try{z=await kdt(a,{title:p.title})}catch(Ct){z=new FOt("error"),W=Ct}const et=I.select(A).node(),st=z.type,at=et.firstChild,bt=at.firstChild,mt=(It=(nt=z.renderer).getClasses)==null?void 0:It.call(nt,a,z),yt=tDe(w,st,mt,m),ft=document.createElement("style");ft.innerHTML=yt,at.insertBefore(ft,bt);try{await z.renderer.draw(a,i,nOt,z)}catch(Ct){throw fAe.draw(a,i,nOt),Ct}const ut=I.select(`${A} svg`),vt=(Bt=(Ot=z.db).getAccTitle)==null?void 0:Bt.call(Ot),X=(Z=(Et=z.db).getAccDescription)==null?void 0:Z.call(Et);aDe(st,ut,vt,X),I.select(`[id="${i}"]`).selectAll("foreignobject > *").attr("xmlns",qMe);let pt=I.select(A).node().innerHTML;if(Ut.debug("config.arrowMarkerAbsolute",w.arrowMarkerAbsolute),pt=eDe(pt,B,o1(w.arrowMarkerAbsolute)),B){const Ct=I.select(A+" svg").node();pt=nDe(pt,Ct)}else N||(pt=lW.sanitize(pt,{ADD_TAGS:KMe,ADD_ATTR:XMe}));if(mAe(),W)throw W;const Tt=yr(B?E:A).node();return Tt&&"remove"in Tt&&Tt.remove(),{svg:pt,bindFunctions:z.db.bindFunctions}};function sDe(i={}){var f;i!=null&&i.fontFamily&&!((f=i.themeVariables)!=null&&f.fontFamily)&&(i.themeVariables||(i.themeVariables={}),i.themeVariables.fontFamily=i.fontFamily),OSe(i),i!=null&&i.theme&&i.theme in T5?i.themeVariables=T5[i.theme].getThemeVariables(i.themeVariables):i&&(i.themeVariables=T5.default.getThemeVariables(i.themeVariables));const a=typeof i=="object"?ISe(i):iOt();Xft(a.logLevel),xdt()}function aDe(i,a,f,p){jAe(a,i),$Ae(a,f,p,a.attr("id"))}const pT=Object.freeze({render:iDe,parse:QMe,getDiagramFromText:kdt,initialize:sDe,getConfig:Fd,setConfig:sOt,getSiteConfig:iOt,updateSiteConfig:PSe,reset:()=>{$W()},globalReset:()=>{$W(WA)},defaultConfig:WA});Xft(Fd().logLevel),$W(Fd());const oDe=async()=>{Ut.debug("Loading registered diagrams");const a=(await Promise.allSettled(Object.entries(NA).map(async([f,{detector:p,loader:w}])=>{if(w)try{ydt(f)}catch{try{const{diagram:b,id:E}=await w();HW(E,b,p)}catch(b){throw Ut.error(`Failed to load external diagram with key ${f}. Removing from detectors.`),delete NA[f],b}}}))).filter(f=>f.status==="rejected");if(a.length>0){Ut.error(`Failed to load ${a.length} external diagrams`);for(const f of a)Ut.error(f);throw new Error(`Failed to load ${a.length} external diagrams`)}},cDe=(i,a,f)=>{Ut.warn(i),WIt(i)?(f&&f(i.str,i.hash),a.push({...i,message:i.str,error:i})):(f&&f(i),i instanceof Error&&a.push({str:i.message,message:i.message,hash:i.name,error:i}))},fPt=async function(i={querySelector:".mermaid"}){try{await uDe(i)}catch(a){if(WIt(a)&&Ut.error(a.str),Bb.parseError&&Bb.parseError(a),!i.suppressErrors)throw Ut.error("Use the suppressErrors option to suppress these errors"),a}},uDe=async function({postRenderCallback:i,querySelector:a,nodes:f}={querySelector:".mermaid"}){const p=pT.getConfig();Ut.debug(`${i?"":"No "}Callback function found`);let w;if(f)w=f;else if(a)w=document.querySelectorAll(a);else throw new Error("Nodes and querySelector are both undefined");Ut.debug(`Found ${w.length} diagrams`),(p==null?void 0:p.startOnLoad)!==void 0&&(Ut.debug("Start On Load: "+(p==null?void 0:p.startOnLoad)),pT.updateSiteConfig({startOnLoad:p==null?void 0:p.startOnLoad}));const m=new $a.InitIDGenerator(p.deterministicIds,p.deterministicIDSeed);let b;const E=[];for(const _ of Array.from(w)){Ut.info("Rendering diagram: "+_.id);/*! Check if previously processed */if(_.getAttribute("data-processed"))continue;_.setAttribute("data-processed","true");const A=`mermaid-${m.next()}`;b=_.innerHTML,b=xA($a.entityDecode(b)).trim().replace(/
/gi,"
");const I=$a.detectInit(b);I&&Ut.debug("Detected early reinit: ",I);try{const{svg:B,bindFunctions:N}=await bPt(A,b,_);_.innerHTML=B,i&&await i(A),N&&N(_)}catch(B){cDe(B,E,Bb.parseError)}}if(E.length>0)throw E[0]},dPt=function(i){pT.initialize(i)},lDe=async function(i,a,f){Ut.warn("mermaid.init is deprecated. Please use run instead."),i&&dPt(i);const p={postRenderCallback:f,querySelector:".mermaid"};typeof a=="string"?p.querySelector=a:a&&(a instanceof HTMLElement?p.nodes=[a]:p.nodes=a),await fPt(p)},hDe=async(i,{lazyLoad:a=!0}={})=>{cIt(...i),a===!1&&await oDe()},gPt=function(){if(Bb.startOnLoad){const{startOnLoad:i}=pT.getConfig();i&&Bb.run().catch(a=>Ut.error("Mermaid failed to initialize",a))}};if(typeof document<"u"){/*!
+:root { --mermaid-alt-font-family: ${i.altFontFamily}}`),!LF(a)){const E=i.htmlLabels||((g=i.flowchart)==null?void 0:g.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const _ in a){const S=a[_];LF(S.styles)||E.forEach(I=>{f+=IBt(S.id,I,S.styles)}),LF(S.textStyles)||(f+=IBt(S.id,"tspan",S.textStyles))}}return f},jBe=(i,a,f,g)=>{const w=RBe(i,f),v=UPe(a,w,i.themeVariables);return Tgt(pPe(`${g}{${v}}`),wPe)},$Be=(i="",a,f)=>{let g=i;return!f&&!a&&(g=g.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),g=CF(g),g=g.replace(/
/g,"
"),g},zBe=(i="",a)=>{var w,v;const f=(v=(w=a==null?void 0:a.viewBox)==null?void 0:w.baseVal)!=null&&v.height?a.viewBox.baseVal.height+"px":MBe,g=btoa(''+i+"");return``},OBt=(i,a,f,g,w)=>{const v=i.append("div");v.attr("id",f),g&&v.attr("style",g);const b=v.append("svg").attr("id",a).attr("width","100%").attr("xmlns",_Be);return w&&b.attr("xmlns:xlink",w),b.append("g"),i};function PBt(i,a){return i.append("iframe").attr("id",a).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const qBe=(i,a,f,g)=>{var w,v,b;(w=i.getElementById(a))==null||w.remove(),(v=i.getElementById(f))==null||v.remove(),(b=i.getElementById(g))==null||b.remove()},HBe=async function(i,a,f){var V,Nt,Dt,jt,Ct,Ft;Mgt();const g=DBt(a);a=g.code;const w=h0();Wt.debug(w),a.length>((w==null?void 0:w.maxTextSize)??kBe)&&(a=EBe);const v="#"+i,b="i"+i,E="#"+b,_="d"+i,S="#"+_;let I=xr("body");const B=w.securityLevel===TBe,F=w.securityLevel===CBe,R=w.fontFamily;if(f!==void 0){if(f&&(f.innerHTML=""),B){const _t=PBt(xr(f),b);I=xr(_t.nodes()[0].contentDocument.body),I.node().style.margin=0}else I=xr(f);OBt(I,i,_,`font-family: ${R}`,SBe)}else{if(qBe(document,i,_,b),B){const _t=PBt(xr("body"),b);I=xr(_t.nodes()[0].contentDocument.body),I.node().style.margin=0}else I=xr("body");OBt(I,i,_)}let q,X;try{q=await qgt(a,{title:g.title})}catch(_t){q=new rBt("error"),X=_t}const rt=I.select(S).node(),at=q.type,ut=rt.firstChild,pt=ut.firstChild,yt=(Nt=(V=q.renderer).getClasses)==null?void 0:Nt.call(V,a,q),mt=jBe(w,at,yt,v),gt=document.createElement("style");gt.innerHTML=mt,ut.insertBefore(gt,pt);try{await q.renderer.draw(a,i,TFt,q)}catch(_t){throw JPe.draw(a,i,TFt),_t}const ht=I.select(`${S} svg`),bt=(jt=(Dt=q.db).getAccTitle)==null?void 0:jt.call(Dt),Z=(Ft=(Ct=q.db).getAccDescription)==null?void 0:Ft.call(Ct);UBe(at,ht,bt,Z),I.select(`[id="${i}"]`).selectAll("foreignobject > *").attr("xmlns",ABe);let ft=I.select(S).node().innerHTML;if(Wt.debug("config.arrowMarkerAbsolute",w.arrowMarkerAbsolute),ft=$Be(ft,B,B1(w.arrowMarkerAbsolute)),B){const _t=I.select(S+" svg").node();ft=zBe(ft,_t)}else F||(ft=zL.sanitize(ft,{ADD_TAGS:NBe,ADD_ATTR:FBe}));if(aNe(),X)throw X;const Et=xr(B?E:S).node();return Et&&"remove"in Et&&Et.remove(),{svg:ft,bindFunctions:q.db.bindFunctions}};function VBe(i={}){var f;i!=null&&i.fontFamily&&!((f=i.themeVariables)!=null&&f.fontFamily)&&(i.themeVariables||(i.themeVariables={}),i.themeVariables.fontFamily=i.fontFamily),vPe(i),i!=null&&i.theme&&i.theme in _x?i.themeVariables=_x[i.theme].getThemeVariables(i.themeVariables):i&&(i.themeVariables=_x.default.getThemeVariables(i.themeVariables));const a=typeof i=="object"?mPe(i):_Ft();s0t(a.logLevel),Mgt()}const qgt=(i,a={})=>{const{code:f}=MBt(i);return iNe(f,a)};function UBe(i,a,f,g){_Ne(a,i),SNe(a,f,g,a.attr("id"))}const x9=Object.freeze({render:HBe,parse:BBe,getDiagramFromText:qgt,initialize:VBe,getConfig:h0,setConfig:SFt,getSiteConfig:_Ft,updateSiteConfig:yPe,reset:()=>{dY()},globalReset:()=>{dY(tM)},defaultConfig:tM});s0t(h0().logLevel),dY(h0());const GBe=async()=>{Wt.debug("Loading registered diagrams");const a=(await Promise.allSettled(Object.entries(HL).map(async([f,{detector:g,loader:w}])=>{if(w)try{Lgt(f)}catch{try{const{diagram:b,id:E}=await w();bY(E,b,g)}catch(b){throw Wt.error(`Failed to load external diagram with key ${f}. Removing from detectors.`),delete HL[f],b}}}))).filter(f=>f.status==="rejected");if(a.length>0){Wt.error(`Failed to load ${a.length} external diagrams`);for(const f of a)Wt.error(f);throw new Error(`Failed to load ${a.length} external diagrams`)}},KBe=(i,a,f)=>{Wt.warn(i),pFt(i)?(f&&f(i.str,i.hash),a.push({...i,message:i.str,error:i})):(f&&f(i),i instanceof Error&&a.push({str:i.message,message:i.message,hash:i.name,error:i}))},NBt=async function(i={querySelector:".mermaid"}){try{await WBe(i)}catch(a){if(pFt(a)&&Wt.error(a.str),x2.parseError&&x2.parseError(a),!i.suppressErrors)throw Wt.error("Use the suppressErrors option to suppress these errors"),a}},WBe=async function({postRenderCallback:i,querySelector:a,nodes:f}={querySelector:".mermaid"}){const g=x9.getConfig();Wt.debug(`${i?"":"No "}Callback function found`);let w;if(f)w=f;else if(a)w=document.querySelectorAll(a);else throw new Error("Nodes and querySelector are both undefined");Wt.debug(`Found ${w.length} diagrams`),(g==null?void 0:g.startOnLoad)!==void 0&&(Wt.debug("Start On Load: "+(g==null?void 0:g.startOnLoad)),x9.updateSiteConfig({startOnLoad:g==null?void 0:g.startOnLoad}));const v=new ao.InitIDGenerator(g.deterministicIds,g.deterministicIDSeed);let b;const E=[];for(const _ of Array.from(w)){Wt.info("Rendering diagram: "+_.id);/*! Check if previously processed */if(_.getAttribute("data-processed"))continue;_.setAttribute("data-processed","true");const S=`mermaid-${v.next()}`;b=_.innerHTML,b=SL(ao.entityDecode(b)).trim().replace(/
/gi,"
");const I=ao.detectInit(b);I&&Wt.debug("Detected early reinit: ",I);try{const{svg:B,bindFunctions:F}=await jBt(S,b,_);_.innerHTML=B,i&&await i(S),F&&F(_)}catch(B){KBe(B,E,x2.parseError)}}if(E.length>0)throw E[0]},FBt=function(i){x9.initialize(i)},YBe=async function(i,a,f){Wt.warn("mermaid.init is deprecated. Please use run instead."),i&&FBt(i);const g={postRenderCallback:f,querySelector:".mermaid"};typeof a=="string"?g.querySelector=a:a&&(a instanceof HTMLElement?g.nodes=[a]:g.nodes=a),await NBt(g)},XBe=async(i,{lazyLoad:a=!0}={})=>{MNt(...i),a===!1&&await GBe()},BBt=function(){if(x2.startOnLoad){const{startOnLoad:i}=x9.getConfig();i&&x2.run().catch(a=>Wt.error("Mermaid failed to initialize",a))}};if(typeof document<"u"){/*!
* Wait for document loaded before starting the execution
- */window.addEventListener("load",gPt,!1)}const fDe=function(i){Bb.parseError=i},KW=[];let Pdt=!1;const pPt=async()=>{if(!Pdt){for(Pdt=!0;KW.length>0;){const i=KW.shift();if(i)try{await i()}catch(a){Ut.error("Error executing queue",a)}}Pdt=!1}},dDe=async(i,a)=>new Promise((f,p)=>{const w=()=>new Promise((m,b)=>{pT.parse(i,a).then(E=>{m(E),f(E)},E=>{var _;Ut.error("Error parsing",E),(_=Bb.parseError)==null||_.call(Bb,E),b(E),p(E)})});KW.push(w),pPt().catch(p)}),bPt=(i,a,f)=>new Promise((p,w)=>{const m=()=>new Promise((b,E)=>{pT.render(i,a,f).then(_=>{b(_),p(_)},_=>{var A;Ut.error("Error parsing",_),(A=Bb.parseError)==null||A.call(Bb,_),E(_),w(_)})});KW.push(m),pPt().catch(w)}),Bb={startOnLoad:!0,mermaidAPI:pT,parse:dDe,render:bPt,init:lDe,run:fPt,registerExternalDiagrams:hDe,initialize:dPt,parseError:void 0,contentLoaded:gPt,setParseErrorHandler:fDe,detectType:yW};var XW=function(){var i=function(Xi,Er,Xn,di){for(Xn=Xn||{},di=Xi.length;di--;Xn[Xi[di]]=Er);return Xn},a=[1,24],f=[1,25],p=[1,26],w=[1,27],m=[1,28],b=[1,63],E=[1,64],_=[1,65],A=[1,66],I=[1,67],B=[1,68],N=[1,69],R=[1,29],z=[1,30],W=[1,31],et=[1,32],st=[1,33],at=[1,34],bt=[1,35],mt=[1,36],yt=[1,37],ft=[1,38],ut=[1,39],vt=[1,40],X=[1,41],pt=[1,42],U=[1,43],Tt=[1,44],nt=[1,45],It=[1,46],Ot=[1,47],Bt=[1,48],Et=[1,50],Z=[1,51],Ct=[1,52],xt=[1,53],Ht=[1,54],Le=[1,55],Ft=[1,56],gn=[1,57],Se=[1,58],me=[1,59],Ve=[1,60],Ye=[14,42],ce=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],ke=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],zt=[1,82],re=[1,83],se=[1,84],Pe=[1,85],te=[12,14,42],Me=[12,14,33,42],de=[12,14,33,42,76,77,79,80],on=[12,33],ni=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],Ks={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:function(Er,Xn,di,Ee,Kn,He,Ti){var pn=He.length-1;switch(Kn){case 3:Ee.setDirection("TB");break;case 4:Ee.setDirection("BT");break;case 5:Ee.setDirection("RL");break;case 6:Ee.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:Ee.setC4Type(He[pn-3]);break;case 19:Ee.setTitle(He[pn].substring(6)),this.$=He[pn].substring(6);break;case 20:Ee.setAccDescription(He[pn].substring(15)),this.$=He[pn].substring(15);break;case 21:this.$=He[pn].trim(),Ee.setTitle(this.$);break;case 22:case 23:this.$=He[pn].trim(),Ee.setAccDescription(this.$);break;case 28:case 29:He[pn].splice(2,0,"ENTERPRISE"),Ee.addPersonOrSystemBoundary(...He[pn]),this.$=He[pn];break;case 30:Ee.addPersonOrSystemBoundary(...He[pn]),this.$=He[pn];break;case 31:He[pn].splice(2,0,"CONTAINER"),Ee.addContainerBoundary(...He[pn]),this.$=He[pn];break;case 32:Ee.addDeploymentNode("node",...He[pn]),this.$=He[pn];break;case 33:Ee.addDeploymentNode("nodeL",...He[pn]),this.$=He[pn];break;case 34:Ee.addDeploymentNode("nodeR",...He[pn]),this.$=He[pn];break;case 35:Ee.popBoundaryParseStack();break;case 39:Ee.addPersonOrSystem("person",...He[pn]),this.$=He[pn];break;case 40:Ee.addPersonOrSystem("external_person",...He[pn]),this.$=He[pn];break;case 41:Ee.addPersonOrSystem("system",...He[pn]),this.$=He[pn];break;case 42:Ee.addPersonOrSystem("system_db",...He[pn]),this.$=He[pn];break;case 43:Ee.addPersonOrSystem("system_queue",...He[pn]),this.$=He[pn];break;case 44:Ee.addPersonOrSystem("external_system",...He[pn]),this.$=He[pn];break;case 45:Ee.addPersonOrSystem("external_system_db",...He[pn]),this.$=He[pn];break;case 46:Ee.addPersonOrSystem("external_system_queue",...He[pn]),this.$=He[pn];break;case 47:Ee.addContainer("container",...He[pn]),this.$=He[pn];break;case 48:Ee.addContainer("container_db",...He[pn]),this.$=He[pn];break;case 49:Ee.addContainer("container_queue",...He[pn]),this.$=He[pn];break;case 50:Ee.addContainer("external_container",...He[pn]),this.$=He[pn];break;case 51:Ee.addContainer("external_container_db",...He[pn]),this.$=He[pn];break;case 52:Ee.addContainer("external_container_queue",...He[pn]),this.$=He[pn];break;case 53:Ee.addComponent("component",...He[pn]),this.$=He[pn];break;case 54:Ee.addComponent("component_db",...He[pn]),this.$=He[pn];break;case 55:Ee.addComponent("component_queue",...He[pn]),this.$=He[pn];break;case 56:Ee.addComponent("external_component",...He[pn]),this.$=He[pn];break;case 57:Ee.addComponent("external_component_db",...He[pn]),this.$=He[pn];break;case 58:Ee.addComponent("external_component_queue",...He[pn]),this.$=He[pn];break;case 60:Ee.addRel("rel",...He[pn]),this.$=He[pn];break;case 61:Ee.addRel("birel",...He[pn]),this.$=He[pn];break;case 62:Ee.addRel("rel_u",...He[pn]),this.$=He[pn];break;case 63:Ee.addRel("rel_d",...He[pn]),this.$=He[pn];break;case 64:Ee.addRel("rel_l",...He[pn]),this.$=He[pn];break;case 65:Ee.addRel("rel_r",...He[pn]),this.$=He[pn];break;case 66:Ee.addRel("rel_b",...He[pn]),this.$=He[pn];break;case 67:He[pn].splice(0,1),Ee.addRel("rel",...He[pn]),this.$=He[pn];break;case 68:Ee.updateElStyle("update_el_style",...He[pn]),this.$=He[pn];break;case 69:Ee.updateRelStyle("update_rel_style",...He[pn]),this.$=He[pn];break;case 70:Ee.updateLayoutConfig("update_layout_config",...He[pn]),this.$=He[pn];break;case 71:this.$=[He[pn]];break;case 72:He[pn].unshift(He[pn-1]),this.$=He[pn];break;case 73:case 75:this.$=He[pn].trim();break;case 74:let Es={};Es[He[pn-1].trim()]=He[pn].trim(),this.$=Es;break;case 76:this.$="";break}},table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{13:70,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{13:71,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{13:72,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{13:73,19:20,20:21,21:22,22:a,23:f,24:p,26:w,28:m,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{14:[1,74]},i(Ye,[2,13],{43:23,29:49,30:61,32:62,20:75,34:b,36:E,37:_,38:A,39:I,40:B,41:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve}),i(Ye,[2,14]),i(ce,[2,16],{12:[1,76]}),i(Ye,[2,36],{12:[1,77]}),i(ke,[2,19]),i(ke,[2,20]),{25:[1,78]},{27:[1,79]},i(ke,[2,23]),{35:80,75:81,76:zt,77:re,79:se,80:Pe},{35:86,75:81,76:zt,77:re,79:se,80:Pe},{35:87,75:81,76:zt,77:re,79:se,80:Pe},{35:88,75:81,76:zt,77:re,79:se,80:Pe},{35:89,75:81,76:zt,77:re,79:se,80:Pe},{35:90,75:81,76:zt,77:re,79:se,80:Pe},{35:91,75:81,76:zt,77:re,79:se,80:Pe},{35:92,75:81,76:zt,77:re,79:se,80:Pe},{35:93,75:81,76:zt,77:re,79:se,80:Pe},{35:94,75:81,76:zt,77:re,79:se,80:Pe},{35:95,75:81,76:zt,77:re,79:se,80:Pe},{35:96,75:81,76:zt,77:re,79:se,80:Pe},{35:97,75:81,76:zt,77:re,79:se,80:Pe},{35:98,75:81,76:zt,77:re,79:se,80:Pe},{35:99,75:81,76:zt,77:re,79:se,80:Pe},{35:100,75:81,76:zt,77:re,79:se,80:Pe},{35:101,75:81,76:zt,77:re,79:se,80:Pe},{35:102,75:81,76:zt,77:re,79:se,80:Pe},{35:103,75:81,76:zt,77:re,79:se,80:Pe},{35:104,75:81,76:zt,77:re,79:se,80:Pe},i(te,[2,59]),{35:105,75:81,76:zt,77:re,79:se,80:Pe},{35:106,75:81,76:zt,77:re,79:se,80:Pe},{35:107,75:81,76:zt,77:re,79:se,80:Pe},{35:108,75:81,76:zt,77:re,79:se,80:Pe},{35:109,75:81,76:zt,77:re,79:se,80:Pe},{35:110,75:81,76:zt,77:re,79:se,80:Pe},{35:111,75:81,76:zt,77:re,79:se,80:Pe},{35:112,75:81,76:zt,77:re,79:se,80:Pe},{35:113,75:81,76:zt,77:re,79:se,80:Pe},{35:114,75:81,76:zt,77:re,79:se,80:Pe},{35:115,75:81,76:zt,77:re,79:se,80:Pe},{20:116,29:49,30:61,32:62,34:b,36:E,37:_,38:A,39:I,40:B,41:N,43:23,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve},{12:[1,118],33:[1,117]},{35:119,75:81,76:zt,77:re,79:se,80:Pe},{35:120,75:81,76:zt,77:re,79:se,80:Pe},{35:121,75:81,76:zt,77:re,79:se,80:Pe},{35:122,75:81,76:zt,77:re,79:se,80:Pe},{35:123,75:81,76:zt,77:re,79:se,80:Pe},{35:124,75:81,76:zt,77:re,79:se,80:Pe},{35:125,75:81,76:zt,77:re,79:se,80:Pe},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},i(Ye,[2,15]),i(ce,[2,17],{21:22,19:130,22:a,23:f,24:p,26:w,28:m}),i(Ye,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:a,23:f,24:p,26:w,28:m,34:b,36:E,37:_,38:A,39:I,40:B,41:N,44:R,45:z,46:W,47:et,48:st,49:at,50:bt,51:mt,52:yt,53:ft,54:ut,55:vt,56:X,57:pt,58:U,59:Tt,60:nt,61:It,62:Ot,63:Bt,64:Et,65:Z,66:Ct,67:xt,68:Ht,69:Le,70:Ft,71:gn,72:Se,73:me,74:Ve}),i(ke,[2,21]),i(ke,[2,22]),i(te,[2,39]),i(Me,[2,71],{75:81,35:132,76:zt,77:re,79:se,80:Pe}),i(de,[2,73]),{78:[1,133]},i(de,[2,75]),i(de,[2,76]),i(te,[2,40]),i(te,[2,41]),i(te,[2,42]),i(te,[2,43]),i(te,[2,44]),i(te,[2,45]),i(te,[2,46]),i(te,[2,47]),i(te,[2,48]),i(te,[2,49]),i(te,[2,50]),i(te,[2,51]),i(te,[2,52]),i(te,[2,53]),i(te,[2,54]),i(te,[2,55]),i(te,[2,56]),i(te,[2,57]),i(te,[2,58]),i(te,[2,60]),i(te,[2,61]),i(te,[2,62]),i(te,[2,63]),i(te,[2,64]),i(te,[2,65]),i(te,[2,66]),i(te,[2,67]),i(te,[2,68]),i(te,[2,69]),i(te,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},i(on,[2,28]),i(on,[2,29]),i(on,[2,30]),i(on,[2,31]),i(on,[2,32]),i(on,[2,33]),i(on,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},i(ce,[2,18]),i(Ye,[2,38]),i(Me,[2,72]),i(de,[2,74]),i(te,[2,24]),i(te,[2,35]),i(ni,[2,25]),i(ni,[2,26],{12:[1,138]}),i(ni,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:function(Er,Xn){if(Xn.recoverable)this.trace(Er);else{var di=new Error(Er);throw di.hash=Xn,di}},parse:function(Er){var Xn=this,di=[0],Ee=[],Kn=[null],He=[],Ti=this.table,pn="",Es=0,qa=0,Ma=2,Gs=1,Po=He.slice.call(arguments,1),vs=Object.create(this.lexer),ru={yy:{}};for(var zs in this.yy)Object.prototype.hasOwnProperty.call(this.yy,zs)&&(ru.yy[zs]=this.yy[zs]);vs.setInput(Er,ru.yy),ru.yy.lexer=vs,ru.yy.parser=this,typeof vs.yylloc>"u"&&(vs.yylloc={});var Du=vs.yylloc;He.push(Du);var pm=vs.options&&vs.options.ranges;typeof ru.yy.parseError=="function"?this.parseError=ru.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function uw(){var Dl;return Dl=Ee.pop()||vs.lex()||Gs,typeof Dl!="number"&&(Dl instanceof Array&&(Ee=Dl,Dl=Ee.pop()),Dl=Xn.symbols_[Dl]||Dl),Dl}for(var Wu,th,Fa,Ml,ha={},bc,Cc,pa,Da;;){if(th=di[di.length-1],this.defaultActions[th]?Fa=this.defaultActions[th]:((Wu===null||typeof Wu>"u")&&(Wu=uw()),Fa=Ti[th]&&Ti[th][Wu]),typeof Fa>"u"||!Fa.length||!Fa[0]){var Ha="";Da=[];for(bc in Ti[th])this.terminals_[bc]&&bc>Ma&&Da.push("'"+this.terminals_[bc]+"'");vs.showPosition?Ha="Parse error on line "+(Es+1)+`:
-`+vs.showPosition()+`
-Expecting `+Da.join(", ")+", got '"+(this.terminals_[Wu]||Wu)+"'":Ha="Parse error on line "+(Es+1)+": Unexpected "+(Wu==Gs?"end of input":"'"+(this.terminals_[Wu]||Wu)+"'"),this.parseError(Ha,{text:vs.match,token:this.terminals_[Wu]||Wu,line:vs.yylineno,loc:Du,expected:Da})}if(Fa[0]instanceof Array&&Fa.length>1)throw new Error("Parse Error: multiple actions possible at state: "+th+", token: "+Wu);switch(Fa[0]){case 1:di.push(Wu),Kn.push(vs.yytext),He.push(vs.yylloc),di.push(Fa[1]),Wu=null,qa=vs.yyleng,pn=vs.yytext,Es=vs.yylineno,Du=vs.yylloc;break;case 2:if(Cc=this.productions_[Fa[1]][1],ha.$=Kn[Kn.length-Cc],ha._$={first_line:He[He.length-(Cc||1)].first_line,last_line:He[He.length-1].last_line,first_column:He[He.length-(Cc||1)].first_column,last_column:He[He.length-1].last_column},pm&&(ha._$.range=[He[He.length-(Cc||1)].range[0],He[He.length-1].range[1]]),Ml=this.performAction.apply(ha,[pn,qa,Es,ru.yy,Fa[1],Kn,He].concat(Po)),typeof Ml<"u")return Ml;Cc&&(di=di.slice(0,-1*Cc*2),Kn=Kn.slice(0,-1*Cc),He=He.slice(0,-1*Cc)),di.push(this.productions_[Fa[1]][0]),Kn.push(ha.$),He.push(ha._$),pa=Ti[di[di.length-2]][di[di.length-1]],di.push(pa);break;case 3:return!0}}return!0}},ws=function(){var Xi={EOF:1,parseError:function(Xn,di){if(this.yy.parser)this.yy.parser.parseError(Xn,di);else throw new Error(Xn)},setInput:function(Er,Xn){return this.yy=Xn||this.yy||{},this._input=Er,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Er=this._input[0];this.yytext+=Er,this.yyleng++,this.offset++,this.match+=Er,this.matched+=Er;var Xn=Er.match(/(?:\r\n?|\n).*/g);return Xn?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Er},unput:function(Er){var Xn=Er.length,di=Er.split(/(?:\r\n?|\n)/g);this._input=Er+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Xn),this.offset-=Xn;var Ee=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),di.length-1&&(this.yylineno-=di.length-1);var Kn=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:di?(di.length===Ee.length?this.yylloc.first_column:0)+Ee[Ee.length-di.length].length-di[0].length:this.yylloc.first_column-Xn},this.options.ranges&&(this.yylloc.range=[Kn[0],Kn[0]+this.yyleng-Xn]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
-`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Er){this.unput(this.match.slice(Er))},pastInput:function(){var Er=this.matched.substr(0,this.matched.length-this.match.length);return(Er.length>20?"...":"")+Er.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Er=this.match;return Er.length<20&&(Er+=this._input.substr(0,20-Er.length)),(Er.substr(0,20)+(Er.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Er=this.pastInput(),Xn=new Array(Er.length+1).join("-");return Er+this.upcomingInput()+`
-`+Xn+"^"},test_match:function(Er,Xn){var di,Ee,Kn;if(this.options.backtrack_lexer&&(Kn={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Kn.yylloc.range=this.yylloc.range.slice(0))),Ee=Er[0].match(/(?:\r\n?|\n).*/g),Ee&&(this.yylineno+=Ee.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:Ee?Ee[Ee.length-1].length-Ee[Ee.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Er[0].length},this.yytext+=Er[0],this.match+=Er[0],this.matches=Er,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Er[0].length),this.matched+=Er[0],di=this.performAction.call(this,this.yy,this,Xn,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),di)return di;if(this._backtrack){for(var He in Kn)this[He]=Kn[He];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Er,Xn,di,Ee;this._more||(this.yytext="",this.match="");for(var Kn=this._currentRules(),He=0;He
"),Ut.info("vertexText"+w);const m={isNode:p,label:uF(w).replace(/fa[blrs]?:fa-[\w-]+/g,E=>``),labelStyle:a.replace("fill:","color:")};return wRe(m)}else{const m=document.createElementNS("http://www.w3.org/2000/svg","text");m.setAttribute("style",a.replace("color:","fill:"));let b=[];typeof w=="string"?b=w.split(/\\n|\n|
/gi):Array.isArray(w)?b=w:b=[];for(const E of b){const _=document.createElementNS("http://www.w3.org/2000/svg","tspan");_.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),_.setAttribute("dy","1em"),_.setAttribute("x","0"),f?_.setAttribute("class","title-row"):_.setAttribute("class","row"),_.textContent=E.trim(),m.appendChild(_)}return m}},vRe={};function mRe(i,a){const f=a||vRe,p=typeof f.includeImageAlt=="boolean"?f.includeImageAlt:!0,w=typeof f.includeHtml=="boolean"?f.includeHtml:!0;return FNt(i,p,w)}function FNt(i,a,f){if(yRe(i)){if("value"in i)return i.type==="html"&&!f?"":i.value;if(a&&"alt"in i&&i.alt)return i.alt;if("children"in i)return NNt(i.children,a,f)}return Array.isArray(i)?NNt(i,a,f):""}function NNt(i,a,f){const p=[];let w=-1;for(;++w