Compare commits

...
738 Commits
Author SHA1 Message Date
Nuno Coração 51df39a028 Merge pull request #1375 from nunocoracao/dev
🔖 v2.64.0
2024-04-07 20:01:37 +01:00
Nuno Coração fb6188b94c Merge pull request #1399 from nunocoracao/887--new-param-to-place-author-at-the-bottom-of-articles
🎨 New param to place author at the bottom of articles
2024-04-07 19:57:26 +01:00
Nuno Coração 56889bcbd4 fixes https://github.com/nunocoracao/blowfish/issues/887 2024-04-07 19:56:46 +01:00
Nuno Coração 6daf41ed2b fixed problem with likes/views rendering 2024-04-07 19:25:42 +01:00
Nuno Coração 756d07aa80 fixed typo 2024-04-07 19:07:58 +01:00
Nuno Coração 07d8dcb4a7 Merge pull request #1397 from SmileGuide/dev-1
🎏 add translations
2024-04-06 16:28:21 +01:00
Karlukle 42469c1638 Merge branch 'dev' into dev-1 2024-04-05 07:59:11 +08:00
Nuno Coração d5fec1cfcd fixed https://github.com/nunocoracao/blowfish/issues/1395 2024-04-04 21:30:28 +01:00
Nuno Coração cfcf6d5003 fixed comment in config file 2024-04-04 17:50:57 +01:00
smileguide 6193bdc5e3 add translations 2024-04-04 13:30:26 +08:00
Nuno Coração 35414a6e00 Merge pull request #1383 from Lemon73-Computing/translations-v1
🎏 Update Japanese translation
2024-04-03 22:49:49 +01:00
Nuno Coração a67d942e9a Merge pull request #1386 from 1an8r0wn/patch-1
🎏 Update index.zh-cn.md
2024-04-03 22:45:10 +01:00
Nuno Coração ab361bebb9 Merge pull request #1362 from d4rklynk/pr-youtubelite
✨ Add player parameters for youtubeLite shortcode
2024-04-03 22:43:02 +01:00
Nuno Coração 89b31ce563 Merge pull request #1390 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.6.2
📌 Bump puppeteer from 22.6.1 to 22.6.2
2024-04-03 22:42:03 +01:00
Nuno Coração 68b0e8518a Merge pull request #1388 from nunocoracao/dependabot/github_actions/dev/peaceiris/actions-hugo-3.0.0
👷 Bump peaceiris/actions-hugo from 2.6.0 to 3.0.0
2024-04-03 22:41:47 +01:00
dependabot[bot] af29c0662b 📌 Bump puppeteer from 22.6.1 to 22.6.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.6.1 to 22.6.2.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.6.1...puppeteer-v22.6.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 21:41:38 +00:00
Nuno Coração 6168a40033 Merge pull request #1389 from nunocoracao/dependabot/github_actions/dev/actions/configure-pages-5
👷 Bump actions/configure-pages from 4 to 5
2024-04-03 22:41:33 +01:00
Nuno Coração 66d996deb3 Merge pull request #1391 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.3
📌 Bump tailwindcss from 3.4.1 to 3.4.3
2024-04-03 22:41:11 +01:00
Nuno Coração 5763b2b403 Merge pull request #1392 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.13
📌 Bump prettier-plugin-tailwindcss from 0.5.12 to 0.5.13
2024-04-03 22:41:00 +01:00
Nuno Coração f6dbf6cfe9 Merge pull request #1393 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.12
📌 Bump @tailwindcss/typography from 0.5.11 to 0.5.12
2024-04-03 22:40:47 +01:00
dependabot[bot] 35e68d6f55 💄 Rebuild CSS 2024-04-03 05:36:13 +00:00
dependabot[bot] e56a4b59b8 📌 Bump @tailwindcss/typography from 0.5.11 to 0.5.12
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.11 to 0.5.12.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-typography/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-typography/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.11...v0.5.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:35:44 +00:00
dependabot[bot] 13c2a585c2 💄 Rebuild CSS 2024-04-03 05:35:30 +00:00
dependabot[bot] 67968a50c4 📌 Bump prettier-plugin-tailwindcss from 0.5.12 to 0.5.13
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.12 to 0.5.13.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.12...v0.5.13)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:35:26 +00:00
dependabot[bot] fed026827b 📌 Bump tailwindcss from 3.4.1 to 3.4.3
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.1 to 3.4.3.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.3/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.1...v3.4.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:34:58 +00:00
dependabot[bot] 35fcf1a50d 👷 Bump actions/configure-pages from 4 to 5
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 4 to 5.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](https://github.com/actions/configure-pages/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:25:40 +00:00
dependabot[bot] e9c55f2e17 👷 Bump peaceiris/actions-hugo from 2.6.0 to 3.0.0
Bumps [peaceiris/actions-hugo](https://github.com/peaceiris/actions-hugo) from 2.6.0 to 3.0.0.
- [Release notes](https://github.com/peaceiris/actions-hugo/releases)
- [Changelog](https://github.com/peaceiris/actions-hugo/blob/main/CHANGELOG.md)
- [Commits](https://github.com/peaceiris/actions-hugo/compare/v2.6.0...v3.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 05:25:35 +00:00
1an8r0wn 7e6fe3b6b2 Update index.zh-cn.md
更正错别字
上有 -> 上手
2024-04-02 17:50:21 +08:00
Lemon73-Computing af85151907 update: japanese translation 2024-04-01 23:56:21 +09:00
Nuno Coração 7417b6ca2c Merge pull request #1361 from Lemon73-Computing/translations-v1
🎏 Added: Japanese translation (`authors/**` and `samples/**`)
2024-04-01 14:07:58 +01:00
Lemon73 f6e6f8325f Merge branch 'dev' into translations-v1 2024-04-01 20:22:44 +09:00
Lemon73-Computing 46fcf6cc68 translate: samples/icons into japanese 2024-04-01 20:13:04 +09:00
Lemon73-Computing cef8e28795 translate: samples/placeholder-text into japanese 2024-04-01 20:04:28 +09:00
Lemon73-Computing 0b492f26de translate: samples/diagrams-flowcharts into japanese 2024-04-01 20:00:41 +09:00
Nuno Coração ceb5c72b40 Merge pull request #1381 from BabaRagnarok/main
🇮🇹 Added more translated content (IT)
2024-04-01 10:31:05 +01:00
Nuno Coração 87b5ab53da Merge pull request #1377 from Weaxs/support-umami
📜 add umami docs && tanslate partials to zh-CN
2024-04-01 10:27:24 +01:00
Nuno Coração bf3f7b993c Merge pull request #1378 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.6.1
📌 Bump puppeteer from 22.5.0 to 22.6.1
2024-04-01 10:13:00 +01:00
Nuno Coração 74221bf424 Merge pull request #1379 from nunocoracao/dependabot/npm_and_yarn/dev/heroicons/react-2.1.3
📌 Bump @heroicons/react from 2.1.1 to 2.1.3
2024-04-01 10:12:46 +01:00
Nuno Coração 1fdfb46638 Merge pull request #1380 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/typography-0.5.11
📌 Bump @tailwindcss/typography from 0.5.10 to 0.5.11
2024-04-01 10:11:58 +01:00
Lemon73-Computing 5b2f6f5648 improve: japanese translation of samples/mathematical-notation 2024-03-30 12:11:52 +09:00
Lemon73-Computing 7067128e48 translate: samples/mathematical-notation into japanese 2024-03-30 12:08:56 +09:00
Lemon73-Computing b06e9dc303 translate: samples/charts into japanese 2024-03-29 23:50:53 +09:00
BabaRagnarok 7c1930d3a8 Update get started index.it.md
Add some translate content
2024-03-28 15:39:58 +01:00
BabaRagnarok 85df73d8b6 Update index.it.md
Translated IT
2024-03-28 13:12:53 +01:00
BabaRagnarok 0297dd1de8 Update index.it.md
Translate all installation md file to Italian
2024-03-28 12:33:59 +01:00
BabaRagnarok 4eb838b230 Update index.it.md
More content translate
2024-03-27 20:23:41 +01:00
d4rklynk e36c227ce1 Add documentation about youtubeLite params variable 2024-03-27 19:26:05 +01:00
dependabot[bot] 9e55ca83e3 💄 Rebuild CSS 2024-03-27 05:29:34 +00:00
dependabot[bot] 6ea69b3b6d 📌 Bump @tailwindcss/typography from 0.5.10 to 0.5.11
Bumps [@tailwindcss/typography](https://github.com/tailwindlabs/tailwindcss-typography) from 0.5.10 to 0.5.11.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-typography/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-typography/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-typography/compare/v0.5.10...v0.5.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 05:28:59 +00:00
dependabot[bot] c1a2340d49 📌 Bump @heroicons/react from 2.1.1 to 2.1.3
Bumps [@heroicons/react](https://github.com/tailwindlabs/heroicons) from 2.1.1 to 2.1.3.
- [Release notes](https://github.com/tailwindlabs/heroicons/releases)
- [Changelog](https://github.com/tailwindlabs/heroicons/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/heroicons/compare/v2.1.1...v2.1.3)

---
updated-dependencies:
- dependency-name: "@heroicons/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 05:28:50 +00:00
dependabot[bot] e768573d10 📌 Bump puppeteer from 22.5.0 to 22.6.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.5.0 to 22.6.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.5.0...puppeteer-v22.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-27 05:28:42 +00:00
Weaxs d4a45eb951 add umami docs 2024-03-27 11:49:17 +08:00
Nuno Coração 2abca494c0 bump version 2024-03-26 22:31:49 +00:00
Nuno Coração 92c13bdc85 Merge pull request #1357 from nunocoracao/dev
🔖 v2.63.0
2024-03-26 22:30:33 +00:00
Nuno Coração 81e9dee2f5 final polish 2024-03-26 22:26:22 +00:00
Nuno Coração 7e4db1f562 Merge pull request #1363 from Weaxs/dev
update language in i18n/[language-code].yaml
2024-03-26 22:22:15 +00:00
Nuno Coração de044b614e Merge pull request #1364 from Weaxs/support-umami
✨ Support Umami Analytics
2024-03-26 22:20:34 +00:00
Nuno Coração cc7d6a9aeb Merge pull request #1372 from nunocoracao/dependabot/npm_and_yarn/katex-0.16.10
Bump katex from 0.16.9 to 0.16.10
2024-03-26 22:04:02 +00:00
dependabot[bot] 15bf9dc07d 📦 Update packaged KaTeX 2024-03-26 22:03:29 +00:00
dependabot[bot] 5a4f5245a9 Bump katex from 0.16.9 to 0.16.10
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.9 to 0.16.10.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.9...v0.16.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-26 22:02:57 +00:00
BabaRagnarok 4df9af06ad Update index.it.md
more translation
2024-03-26 16:58:11 +01:00
BabaRagnarok a751c97dd9 Update index.it.md installation
Modify more content
2024-03-23 23:47:40 +01:00
BabaRagnarok e50e276f36 Update index.it.md Install
Update more text inside installation files
2024-03-22 22:12:34 +01:00
Weaxs 5ad54fd91a fix umami 2024-03-22 23:54:18 +08:00
Weaxs a0d05ce208 support umamiAnalytics 2024-03-22 23:26:56 +08:00
Weaxs 66c3a9c71d update language in i18n/[language-code].yaml 2024-03-22 22:48:41 +08:00
BabaRagnarok cbbdbcf1a9 First translation IT
Working....
2024-03-22 15:43:43 +01:00
samsepi0l b90b916493 Add player parameters
https://github.com/paulirish/lite-youtube-embed?tab=readme-ov-file#custom-player-parameters
2024-03-22 12:16:30 +01:00
Lemon73-Computing 22b51a2275 translate: samples/markdown into japanese 2024-03-22 12:48:20 +09:00
Lemon73-Computing c3a6c2ca27 tanslate: samples/rich-content into japanese 2024-03-22 12:29:44 +09:00
Lemon73-Computing 811a9b5c1c translate: samples/external into japanese 2024-03-21 20:41:13 +09:00
Lemon73-Computing 12f6b5b77c translate: samples/emoji into japanese 2024-03-21 20:14:38 +09:00
Nuno Coração bafc42f587 reenabled italian 2024-03-21 11:10:22 +00:00
Nuno Coração ab87f4cbad disabled italian since the translation is behind 2024-03-21 11:09:53 +00:00
Nuno Coração 6ae4f4b71c fixed small bug on pr #1359 2024-03-21 11:06:56 +00:00
Nuno Coração b0aa7298b5 Merge pull request #1359 from Aphcity/patch-2
Fix list.html render issue
2024-03-21 10:57:11 +00:00
Nuno Coração a1769a6722 Merge pull request #1360 from Aphcity/translations-v1
🎏 Update zh-CN translation for issue #1358
2024-03-21 10:55:15 +00:00
Lemon73-Computing 11463f3992 change: space 2024-03-21 18:41:33 +09:00
Aphcity 998a422ed6 Translate Author Bio 2024-03-21 17:10:36 +08:00
Aphcity 0f48b1a16d Translate sample pages
- exampleSite\content\samples\rich-content\index.zh-cn.md
- exampleSite\content\samples\placeholder-text\index.zh-cn.md
- exampleSite\content\samples\multiple-authors\index.zh-cn.md
- exampleSite\content\samples\mathematical-notation\index.zh-cn.md
- exampleSite\content\samples\markdown\index.zh-cn.md
- exampleSite\content\samples\_index.zh-cn.md
2024-03-21 15:35:36 +08:00
Aphcity 32b8aa5876 Translate guides, sample(Diagram, Emoji, External)
- exampleSite\content\guides\_index.zh-cn.md
- exampleSite\content\samples\diagrams-flowcharts\index.zh-cn.md
- exampleSite\content\samples\emoji\index.zh-cn.md
- exampleSite\content\samples\external\index.zh-cn.md
2024-03-21 15:05:17 +08:00
Aphcity 7df76e9a32 Add chart sample zh-CN translation
- .exampleSite\content\samples\charts\index.zh-cn.md
- fix a tag in icons sample
2024-03-21 14:34:30 +08:00
Aphcity 4690352255 Add guides template zh-CN translation 2024-03-21 14:09:39 +08:00
Aphcity e009305c4e 2 small translation fixes
- getting-started
- authors
2024-03-21 13:55:45 +08:00
Aphcity 5edba5cf2e Fix list.html render issue
FIXED: execute of template failed: template: _default/list.html:23:19: executing "main" at <.File.Path>: error calling Path: runtime error: invalid memory address or nil pointer dereference
2024-03-21 10:17:55 +08:00
Nuno Coração 75e76c572d translated some missing files for it https://github.com/nunocoracao/blowfish/issues/1358 2024-03-20 22:51:12 +00:00
Nuno Coração 686f2ef9fe added script to find missing translations 2024-03-20 22:35:13 +00:00
Nuno Coração f85fc05b6e bump version 2024-03-20 22:13:55 +00:00
Nuno Coração c7dbcbf154 Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2024-03-20 22:13:15 +00:00
Nuno Coração fd1dd03358 Merge pull request #1334 from nunocoracao/dev
🔖 v2.62.0
2024-03-20 22:06:42 +00:00
Nuno Coração c8b2c245a8 final polish 2024-03-20 22:01:51 +00:00
Nuno Coração 17a034a989 Merge pull request #1355 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-03-20 21:57:19 +00:00
Nuno Coração 6510a7505e Merge pull request #1324 from nunocoracao/translations-v1
🎏 Blowfish translation
2024-03-20 21:56:58 +00:00
nunocoracao c0c9d54fbf Update Hugo supported version 2024-03-20 21:56:30 +00:00
Nuno Coração 5a2ea71bdf Merge pull request #1354 from nunocoracao/1283-series-does-not-show-any-list
🐛 Series does not show any list
2024-03-20 21:54:04 +00:00
Nuno Coração 29625b34b6 🐛 Series does not show any list 2024-03-20 21:52:38 +00:00
Nuno Coração 5a38b0e42d Merge pull request #1350 from Aphcity/main
🐛 2 Small fixes
2024-03-20 16:10:40 +00:00
Nuno Coração ac6dc9275b Merge pull request #1352 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.5.0
📌 Bump puppeteer from 22.4.1 to 22.5.0
2024-03-20 16:08:29 +00:00
Nuno Coração 5d9a9beee6 Merge pull request #1353 from Aphcity/translations-v1
Update zh-CN translations
2024-03-20 16:08:12 +00:00
Nuno Coração 422d8fa8e8 Merge branch 'translations-v1' into translations-v1 2024-03-20 16:07:57 +00:00
Nuno Coração 6190898b70 fixed view like counters to work across multiple langs 2024-03-20 16:05:48 +00:00
Lemon73-Computing 4a58dae0a4 translate: samples into japanese 2024-03-21 00:24:21 +09:00
Aphcity 5ad4fd2225 Merge remote-tracking branch 'weaxs/translations-v1' into translations-v1 2024-03-20 21:01:40 +08:00
Aphcity 8bf4d13667 Add translations
- Add series
- Add shortcodes
- Some fix
2024-03-20 20:52:58 +08:00
Weaxs 433b51208d fix 2024-03-20 19:37:37 +08:00
Weaxs c3719406ac 中文(简体) -> 简体中文
中文(繁體) -> 繁體中文
2024-03-20 19:30:24 +08:00
Weaxs 1e7b2c58db enable hasCJKLanguage 2024-03-20 19:17:33 +08:00
Aphcity 4ef29d4697 Merge remote-tracking branch 'weaxs/translations-v1' into translations-v1 2024-03-20 18:44:18 +08:00
Aphcity 4a95a42286 Update zh-CN trans for Advanced Customisation 2024-03-20 14:04:51 +08:00
dependabot[bot] 94c013166b 📌 Bump puppeteer from 22.4.1 to 22.5.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.4.1 to 22.5.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.4.1...puppeteer-v22.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-20 05:48:15 +00:00
Weaxs 77d0ab83fd Merge remote-tracking branch 'blowfish/translations-v1' into translations-v1
# Conflicts:
#	exampleSite/content/docs/advanced-customisation/index.zh-cn.md
#	exampleSite/content/docs/configuration/index.zh-cn.md
#	exampleSite/content/docs/content-examples/index.zh-cn.md
#	exampleSite/content/docs/firebase-views/index.zh-cn.md
#	exampleSite/content/docs/front-matter/index.zh-cn.md
#	exampleSite/content/docs/getting-started/index.zh-cn.md
#	exampleSite/content/docs/homepage-layout/index.zh-cn.md
#	exampleSite/content/docs/installation/index.zh-cn.md
#	exampleSite/content/docs/multi-author/index.zh-cn.md
#	exampleSite/content/docs/thumbnails/index.zh-cn.md
#	exampleSite/content/docs/welcome/index.zh-cn.md
#	exampleSite/content/samples/_index.zh-cn.md
#	exampleSite/content/samples/icons/index.zh-cn.md
#	exampleSite/content/samples/thumbnail_sample/index.zh-cn.md
#	i18n/zh-CN.yaml
2024-03-20 11:58:51 +08:00
Weaxs 44b3b17fac translate thumbnails, multi-author, samples,icons, thumbnail_sample to zh-cn 2024-03-20 11:52:16 +08:00
Weaxs 6b341ad811 translate thumbnails, multi-author to zh-cn 2024-03-20 11:35:00 +08:00
Lemon73-Computing f81f55ba94 translate: samples/multiple-authors into japanese 2024-03-20 11:06:49 +09:00
Aphcity 4748453ea3 Add background blur to i18n menu 2024-03-20 10:05:26 +08:00
Aphcity 3b0393d553 Add remote image support to author image 2024-03-20 10:03:59 +08:00
Lemon73-Computing 74bd2b2b35 translate: samples/thumbnail_sample into japanese 2024-03-20 10:52:30 +09:00
Nuno Coração 74b985654e small fix in custom recent page 2024-03-20 00:16:24 +00:00
Nuno Coração 4e63dcadb3 updated backgrund 2024-03-20 00:05:45 +00:00
Nuno Coração a7ae2030f0 change to processUsers script 2024-03-20 00:03:07 +00:00
Nuno Coração c516d2ef6e fixed conflicts 2024-03-20 00:01:29 +00:00
Nuno Coração f7286ece55 fixed conflicts 2024-03-19 23:57:43 +00:00
Nuno Coração f03311be06 fixed conflicts 2024-03-19 23:53:25 +00:00
Nuno Coração c5eef5a8f6 fixed svg background for articles 2024-03-19 23:47:48 +00:00
Nuno Coração f1271eea67 removed SVG thumbnails in favour of just background 2024-03-19 23:45:12 +00:00
Nuno Coração 3d197535ea reprocess users 2024-03-19 23:31:36 +00:00
Nuno Coração e6a8167b11 added placeholder files for all missing translations 2024-03-19 23:20:22 +00:00
Nuno Coração 9ed6ee385c Merge pull request #1344 from ncocchiaro/add-itchio-icon
🖌️ Added itch.io icon
2024-03-19 23:13:09 +00:00
Nuno Coração 45ac03eb53 Merge pull request #1345 from nunocoracao/hugo-new-version
⚙️ Update Hugo supported version
2024-03-19 23:11:52 +00:00
Nuno Coração 8b93b9960a Merge pull request #1347 from Aphcity/patch-1
Update zh-CN.yaml
2024-03-19 23:11:29 +00:00
Weaxs b5307d0fb5 translate advanced-customisation, front-matter, firebase-views 2024-03-20 02:17:17 +08:00
Weaxs d54ecd6a04 translate configuration, content-examples, homepage-layout 2024-03-19 14:41:27 +08:00
Aphcity ff8e458e1f Update zh-CN.yaml 2024-03-18 12:38:31 +08:00
Weaxs 1c800f6d1b translate getting-started 2024-03-17 23:37:53 +08:00
nunocoracao 00845bbd18 Update Hugo supported version 2024-03-17 06:04:24 +00:00
Nicola Cocchiaro e528194e4c Added itch.io icon 2024-03-16 16:13:49 -07:00
Nuno Coração e90caa7a7b added ja skeleton files 2024-03-16 18:24:16 +00:00
Lemon73-Computing 67e026efd7 translate: dummy authors (japanese) 2024-03-16 17:40:14 +09:00
Nuno Coração 5d00985704 Merge pull request #1339 from Lemon73-Computing/translations-v1 2024-03-16 08:15:33 +00:00
Lemon73 3ad4fbd7a2 translate: japanese - advanced tags 2024-03-16 17:07:07 +09:00
Lemon73 c021818745 translate: japanese - tags 2024-03-16 16:59:30 +09:00
Lemon73 4f42c38e36 Merge branch 'translations-v1' into translations-v1 2024-03-15 16:22:23 +09:00
Nuno Coração 10bf07a7b7 Update LICENSE 2024-03-14 18:44:53 +00:00
Weaxs 8626104b88 translate installation 2024-03-15 02:24:56 +08:00
Lemon73-Computing cf15eca10f translate: japanese - guides-template 2024-03-14 20:32:09 +09:00
Lemon73-Computing 531e89ce6c translate: exsample site title 2024-03-14 19:55:19 +09:00
Lemon73-Computing 6de3ed8566 create: japanese translation - showcase 2024-03-14 19:49:17 +09:00
Lemon73-Computing 9a70203a42 create: japanese translation - recipes 2024-03-14 19:49:01 +09:00
Lemon73-Computing 745bf89b70 create: japanese posts 2024-03-14 18:59:43 +09:00
Lemon73-Computing cd33d1f880 create: japanese docs 2024-03-14 18:56:05 +09:00
Lemon73-Computing 6c1bdb36f6 create: _index.ja.md 2024-03-14 18:45:28 +09:00
Lemon73-Computing b176f67a91 change: details 2024-03-14 18:45:12 +09:00
Lemon73-Computing 80c1a9d96a translate: japanese - users page 2024-03-14 17:53:43 +09:00
Lemon73-Computing 6f646c8688 translate: to japanese 2024-03-14 17:46:44 +09:00
Lemon73-Computing 0aa278ada6 add: japanese translation 2024-03-14 17:32:29 +09:00
Lemon73-Computing eaff5aae11 change: date format 2024-03-14 17:24:22 +09:00
Nuno Coração 93ef687194 too big too describe 2024-03-14 00:01:32 +00:00
Nuno Coração 48bc05b12f updated users processing script to generate for all available languages 2024-03-13 23:08:17 +00:00
Nuno Coração 01a88441fd added commented config that hides languages 2024-03-13 21:54:20 +00:00
Nuno Coração c4ffe1f0d5 Merge pull request #1336 from arahmitz/patch-1
👤 Added new user page
2024-03-13 21:24:07 +00:00
Weaxs bbb0f9be0d translate welcome && update i18n 2024-03-14 01:37:38 +08:00
Nuno Coração 5e9bfbd9fe Merge pull request #1340 from BabaRagnarok/translations-v1 2024-03-13 16:09:59 +00:00
BabaRagnarok f8d48382bc Translated config files into Italian 2024-03-13 16:57:21 +01:00
Lemon73 8620d809fe translate: languages.ja.toml 2024-03-13 22:12:54 +09:00
Nuno Coração 9f67fb1859 Merge pull request #1338 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.12 2024-03-13 12:50:42 +00:00
dependabot[bot] 241199c5ee 📌 Bump prettier-plugin-tailwindcss from 0.5.11 to 0.5.12
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.11 to 0.5.12.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.11...v0.5.12)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 09:57:13 +00:00
Nuno Coração 77462c9f21 Merge pull request #1337 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.4.1 2024-03-13 09:56:27 +00:00
dependabot[bot] f3f27729f1 📌 Bump puppeteer from 22.4.0 to 22.4.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.4.0 to 22.4.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.4.0...puppeteer-v22.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 05:43:13 +00:00
Adam Madej 18800f8408 Added new user page
Added page for adammadej.com - a portfolio site.
2024-03-12 23:20:06 +01:00
Nuno Coração b6c908e4e5 updating version 2024-03-12 19:15:23 +00:00
Nuno Coração 65956f10b9 Merge pull request #1317 from nunocoracao/dev
🔖 v2.61.1
2024-03-12 19:09:51 +00:00
Nuno Coração 35ab259633 updating version 2024-03-12 19:09:30 +00:00
Nuno Coração cad46b0876 Merge pull request #1331 from nunocoracao/1329--tailwind-colors-are-not-updating-with-colorscheme
🐛 Tailwind Colors are not updating with colorScheme
2024-03-12 19:06:35 +00:00
Nuno Coração 8409353223 🐛 Tailwind Colors are not updating with colorScheme 2024-03-12 19:03:25 +00:00
Nuno Coração 5ef6777ac9 fixed small menu issue in ZH-CN 2024-03-12 17:02:17 +00:00
Nuno Coração c2a84b2418 Merge pull request #1330 from Weaxs/translations-v1 2024-03-12 12:59:01 +00:00
Weaxs 2eb7f8aed7 add advanced listing page 2024-03-12 18:00:13 +08:00
Nuno Coração 6c47f51936 Merge pull request #1325 from Weaxs/translations-v1
🎏 Blowfish translation (zh-cn)
2024-03-12 09:50:42 +00:00
Nuno Coração abf51ad142 Merge pull request #1328 from fauziralpiandi/patch-1
update id.yaml
2024-03-12 09:44:18 +00:00
fwzyrln_ bb737313e2 update id.yaml 2024-03-12 12:09:17 +07:00
Weaxs 0bc9b9af6a translate docs/tags/users/content listing page 2024-03-11 19:41:50 +08:00
Nuno Coração 35a5b61881 initial language setup for ja it zh-cn 2024-03-11 10:12:03 +00:00
Nuno Coração d93195c377 Merge pull request #1323 from nunocoracao/hugo-new-version 2024-03-11 09:27:34 +00:00
nunocoracao 4a0d10dc18 Update Hugo supported version 2024-03-11 06:04:51 +00:00
Nuno Coração 6c6a559113 Update pt-PT.yaml 2024-03-10 23:55:49 +00:00
Nuno Coração ed6e943e57 script correction 2024-03-10 23:18:40 +00:00
Nuno Coração a67798f18a Merge pull request #1320 from nunocoracao/1319-add-translation-scripts
🎏 added translation lib and scripts
2024-03-10 22:43:08 +00:00
Nuno Coração 902b0d9c86 added translation lib and scripts 2024-03-10 22:42:10 +00:00
Nuno Coração 554e25716c Merge pull request #1318 from nunocoracao/main
Update params.toml
2024-03-10 17:48:47 +00:00
Nuno Coração 491ce02f59 Update params.toml 2024-03-10 17:48:23 +00:00
Nuno Coração 255358e016 Update package.json 2024-03-10 17:41:58 +00:00
Nuno Coração c6114343ab Merge pull request #1304 from nunocoracao/dev
🔖 v2.61.0
2024-03-10 17:38:29 +00:00
Nuno Coração a147c648fc Merge pull request #1315 from nunocoracao/1308--i18n-improvements-and-translation
1308  i18n improvements and translation
2024-03-10 17:37:27 +00:00
Nuno Coração beb23b9596 polish 2024-03-10 17:36:28 +00:00
Nuno Coração 2e50aae48b 🎏 i18n improvements and translation 2024-03-10 17:06:12 +00:00
Nuno Coração 346b74baf9 Merge pull request #1314 from nunocoracao/1311--performance-improvements-and-visual-facelift
🎨 Performance improvements
2024-03-10 16:46:45 +00:00
Nuno Coração 1676cc965f small improvements 2024-03-10 16:46:05 +00:00
Nuno Coração e9e1a9761b small improvements on readme 2024-03-10 16:33:17 +00:00
Nuno Coração b5bb4a17b4 small improvements on readme 2024-03-10 16:32:17 +00:00
Nuno Coração 7e22a5e368 improvements and feature images 2024-03-10 16:26:13 +00:00
Nuno Coração 54daa63c2a visual polish for backgrounds and featured images 2024-03-10 12:27:16 +00:00
Nuno Coração be187c78ee polish 2024-03-10 11:03:46 +00:00
Nuno Coração 40908cb3c3 fixed youtube performance issues and added new shortcut 2024-03-10 11:02:47 +00:00
Nuno Coração e17c4b6dd6 initial commit for improvements 2024-03-10 10:55:57 +00:00
Nuno Coração 2e9a2f244f Merge pull request #1312 from nunocoracao/1275--clicking-on-a-external-url-page-from-search-results-navigates-to-the-page-and-not-the-external-url
🐛 Clicking on a External URL page from search results does not naviga…
2024-03-10 10:32:22 +00:00
Nuno Coração e92c30b7a3 🐛 Clicking on a External URL page from search results does not navigate to external page 2024-03-10 10:31:37 +00:00
Nuno Coração ea3aec22c5 Merge pull request #1310 from nunocoracao/1301--add-threads-link-to-author-profile
🎨 Add threads link to author profile
2024-03-10 10:10:23 +00:00
Nuno Coração 6f1e6e4537 🎨 Add threads link to author profile 2024-03-10 10:09:53 +00:00
Nuno Coração a2e806e094 Merge pull request #1309 from nunocoracao/1171--docs-updates-on-supported-color-schemes
✏️ Docs updates on supported color schemes
2024-03-10 10:02:31 +00:00
Nuno Coração 1d32caec6a removing typo 2024-03-10 10:01:28 +00:00
Nuno Coração a657ad96f1 ✏️ Docs updates on supported color schemes 2024-03-10 10:00:40 +00:00
Nuno Coração 828ed74680 Merge branch 'main' into dev 2024-03-10 09:45:58 +00:00
Nuno Coração bf94692d46 Merge pull request #1307 from nunocoracao/hugo-new-version 2024-03-10 09:17:24 +00:00
nunocoracao 1b4aa91c56 Update Hugo supported version 2024-03-10 06:04:02 +00:00
Nuno Coração 3ec8dbc5cb Merge pull request #1306 from nunocoracao/1174--global-site-background-image
🎨 backgrounds and feature images support svg
2024-03-09 23:45:21 +00:00
Nuno Coração 8bbd8b8626 backgrounds and feature images support svg 2024-03-09 23:44:14 +00:00
Nuno Coração 36d022e020 Update hugo-version-update.yml 2024-03-09 22:03:16 +00:00
Nuno Coração afdaaaf408 Update hugo-version-update.yml 2024-03-09 21:58:46 +00:00
Nuno Coração b490f97b8b creating files for new action 2024-03-09 21:55:57 +00:00
Nuno Coração 0c22317171 Update hugo-version-update.yml 2024-03-09 21:53:47 +00:00
Nuno Coração 83797461b4 Update hugo-version-update.yml 2024-03-09 21:51:35 +00:00
Nuno Coração 937fdad583 Update hugo-version-update.yml 2024-03-09 21:50:36 +00:00
Nuno Coração 5fdf429761 Update hugo-version-update.yml 2024-03-09 21:49:51 +00:00
Nuno Coração f4022f5a5c Update hugo-version-update.yml 2024-03-09 21:43:57 +00:00
Nuno Coração 83b0c5aea0 Update hugo-version-update.yml 2024-03-09 21:39:44 +00:00
Nuno Coração 2134b2fd01 Update hugo-version-update.yml 2024-03-09 21:37:03 +00:00
Nuno Coração fbe67c9978 Merge pull request #1303 from nunocoracao/1280-automatically-bump-hugo-support-version-when-theres-a-new-release
⚙️ new action for auto update
2024-03-09 21:31:07 +00:00
Nuno Coração 8d3e4df011 new action for auto update 2024-03-09 21:30:18 +00:00
Nuno Coração f421ce16c8 add loading lazy to image render 2024-03-09 15:24:00 +00:00
Nuno Coração 893687d0d4 add source param to users.json 2024-03-09 14:59:45 +00:00
Nuno Coração 4d13ea3256 Merge pull request #1300 from nunocoracao/revert-1296-gallery-magic-grid
Revert "Gallery: Switch Packery to MagicGrid "
2024-03-09 14:29:36 +00:00
Nuno Coração f0f6afa555 Revert "Gallery: Switch Packery to MagicGrid " 2024-03-09 14:28:04 +00:00
Nuno Coração 08b14e923d Merge pull request #1296 from StandingPadAnimations/gallery-magic-grid
Gallery: Switch Packery to MagicGrid
2024-03-09 14:23:57 +00:00
Nuno Coração f93ac47d88 Merge branch 'dev' into gallery-magic-grid 2024-03-09 14:23:45 +00:00
Nuno Coração 263a1dce02 Merge pull request #1298 from alxhslm/style_mermaid
🐛  Fix styling of Mermaid charts
2024-03-09 14:17:49 +00:00
Alex Haslam 713f9f687b Update mermaid version 2024-03-07 20:32:25 +00:00
Alex Haslam 5a11829222 Add mermaid back in package.json 2024-03-07 20:32:21 +00:00
StandingPad Animations 85fe1addbc Fixed debug variable 2024-03-06 20:28:59 -06:00
StandingPad Animations f1d582ff98 Swapped out Packery for MagicGrid
This switches the Gallery shortcode to use MagicGrid instead of Packery.
The main benefit is size (2.7k as opposed to 32k), and the results are
mostly similar minus a few differences in image position.
2024-03-06 20:12:28 -06:00
Nuno Coração ef4068911b next release 2024-03-06 23:16:50 +00:00
Nuno Coração ec76fb3c0a Merge pull request #1281 from nunocoracao/dev
🔖 v2.60.0
2024-03-06 23:15:29 +00:00
Nuno Coração fd356e8c1b fixed tw-elements breaking changes 2024-03-06 23:12:52 +00:00
Nuno Coração e5296095fa Merge pull request #1293 from nunocoracao/1288-text-in-light-mode-hero-layout-is-hardly-readable
🐛 fixed hero home layout
2024-03-06 22:28:14 +00:00
Nuno Coração 9d07b99b19 fixed hero home layout 2024-03-06 22:27:27 +00:00
Nuno Coração 7c0eacf44f fixes and polish on shortcodes 2024-03-06 22:12:58 +00:00
Nuno Coração 317245e67d Merge pull request #1290 from nunocoracao/dependabot/npm_and_yarn/dev/tw-elements-2.0.0
📌 Bump tw-elements from 1.1.0 to 2.0.0
2024-03-06 22:02:01 +00:00
Nuno Coração abd2a8ed94 Merge pull request #1287 from graeme-a-stewart/figure-target
Add target parameter to figure shortcode
2024-03-06 21:58:46 +00:00
dependabot[bot] 99eb45cbfd 📌 Bump tw-elements from 1.1.0 to 2.0.0
Bumps [tw-elements](https://github.com/mdbootstrap/TW-Elements) from 1.1.0 to 2.0.0.
- [Release notes](https://github.com/mdbootstrap/TW-Elements/releases)
- [Commits](https://github.com/mdbootstrap/TW-Elements/compare/v1.1.0...v2.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-06 21:58:07 +00:00
Nuno Coração 947e2d9f87 Merge pull request #1289 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.4.0
📌 Bump puppeteer from 22.3.0 to 22.4.0
2024-03-06 21:57:24 +00:00
Nuno Coração e1cd249c5e Merge pull request #1291 from nunocoracao/dependabot/npm_and_yarn/dev/chart.js-4.4.2
📌 Bump chart.js from 4.4.1 to 4.4.2
2024-03-06 21:57:04 +00:00
Nuno Coração 3254052134 Merge pull request #1292 from nunocoracao/update-hugo
⚙️ update hugo support to v0.123.7
2024-03-06 21:56:38 +00:00
Nuno Coração 39ce8d9344 update hugo support to v0.123.7 2024-03-06 21:55:51 +00:00
Nuno Coração 8490870d3c null 2024-03-06 21:45:32 +00:00
dependabot[bot] 18e3ba268d 📦 Update packaged ChartJS 2024-03-06 05:03:49 +00:00
dependabot[bot] 986de46ff9 📌 Bump chart.js from 4.4.1 to 4.4.2
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.4.1 to 4.4.2.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.4.1...v4.4.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-06 05:03:17 +00:00
dependabot[bot] 6154c4c15a 📌 Bump puppeteer from 22.3.0 to 22.4.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.3.0 to 22.4.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.3.0...puppeteer-v22.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-06 05:02:44 +00:00
Graeme A Stewart fdb7bbd3c0 Add target parameter to figure shortcode
Add the "target" parameter to the figure.html shortcode.
If defined then add this target property to the href of the figure,
which allows the link to, e.g., open in a new tab.

Add description of target to docs
2024-03-05 14:05:27 +01:00
Nuno Coração 480497bb6c add user site 2024-02-29 12:30:43 +00:00
Nuno Coração c846970b49 bump version 2024-02-29 12:26:03 +00:00
Nuno Coração 984320d0ef Merge pull request #1265 from nunocoracao/dev
🔖 v2.59.0
2024-02-29 12:24:31 +00:00
Nuno Coração d1a7d455a8 update user listing 2024-02-29 12:24:12 +00:00
Nuno Coração 2b35dc4905 Merge pull request #1268 from LITUATUI/patch-2
⚙️ Support latest hugo version
2024-02-29 12:17:03 +00:00
Nuno Coração 19a43d0fe0 Merge pull request #1266 from Ast3risk-ops/patch-1
fix: users.json listing
2024-02-29 12:16:48 +00:00
Nuno Coração 73de5fc8c5 Merge pull request #1278 from fauziralpiandi/patch-2
👤 update users.json
2024-02-29 12:16:32 +00:00
Pedro Lima 7ee7ddc13a Hugo version keeps on increasing.. 2024-02-28 19:03:03 +00:00
fwzyrln ee8d2d28cf 👤 update users.json 2024-02-29 01:17:23 +07:00
Pedro Lima aa1411568b Update to support the latest hugo version 2024-02-28 17:32:53 +00:00
fwzyrln e58678409e 👤 update users.json 2024-02-28 17:45:25 +07:00
Nuno Coração 4c28762511 Merge pull request #1276 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.3.0 2024-02-28 07:18:12 +00:00
Nuno Coração 59d5ece765 Merge pull request #1269 from fwzyrln/patch-1 2024-02-28 07:17:42 +00:00
dependabot[bot] a1bab39ff2 📌 Bump puppeteer from 22.1.0 to 22.3.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.1.0 to 22.3.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.1.0...puppeteer-v22.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-28 05:57:43 +00:00
Pedro Lima 8a29505f8f Update config.toml
Support hugo latest version.
2024-02-26 16:54:03 +00:00
fwzyrln_ c5f2dc028e add my page to users.json 2024-02-25 13:00:34 +07:00
Pedro Lima bba4356a44 Update to latest version of hugo 2024-02-23 17:29:21 +00:00
Pedro Lima 8f36c51fa7 Support latest hugo version 2024-02-22 17:26:16 +00:00
Asterisk 83c19b788b fix: users.json listing 2024-02-21 10:16:33 -05:00
Nuno Coração 0884d177dc inital commit for v2.59.0 2024-02-21 10:19:34 +00:00
Nuno Coração f2b934c8f4 Merge pull request #1249 from nunocoracao/dev
🔖 v2.58.0
2024-02-21 10:17:39 +00:00
Nuno Coração ad9ebc8456 final polish 2024-02-21 10:17:18 +00:00
Nuno Coração 84398af9c1 Merge pull request #1263 from nunocoracao/1259-update-hugo-support
⚙️ Update Hugo support to v0.123.1
2024-02-21 10:14:45 +00:00
Nuno Coração c8c3ef706f updated support for hugo version 2024-02-21 10:13:36 +00:00
Nuno Coração 1e1dff4af2 small polish 2024-02-21 10:11:25 +00:00
Nuno Coração dbe704f2e8 Merge pull request #1258 from kahakai/fix-thumbnails-page-folder-structure-example
✏️ Fix folder structure example on Thumbnails page
2024-02-21 10:11:05 +00:00
Nuno Coração 92348d0a7b Merge pull request #1251 from albertonl/catalan-translation
🌐 Add Catalan translation
2024-02-21 10:09:54 +00:00
Nuno Coração 6acb658a07 Merge pull request #1261 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.1.0
📌 Bump puppeteer from 22.0.0 to 22.1.0
2024-02-21 10:09:14 +00:00
Nuno Coração 271a7df203 Merge pull request #1257 from kahakai/dev
✏️ Fix Getting Started page typos
2024-02-21 10:06:59 +00:00
Nuno Coração a3583482b5 Merge pull request #1254 from SmileGuide/patch-4
🐛 Anchors Not Functioning Correctly for CJK Headings
2024-02-21 10:05:32 +00:00
dependabot[bot] f9505668e6 📌 Bump puppeteer from 22.0.0 to 22.1.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 22.0.0 to 22.1.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v22.0.0...puppeteer-v22.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 10:04:14 +00:00
Nuno Coração d412084491 Merge pull request #1262 from nunocoracao/dependabot/npm_and_yarn/ip-1.1.9
🔒 Bump ip from 1.1.8 to 1.1.9
2024-02-21 10:03:32 +00:00
dependabot[bot] 0189a57b76 Bump ip from 1.1.8 to 1.1.9
Bumps [ip](https://github.com/indutny/node-ip) from 1.1.8 to 1.1.9.
- [Commits](https://github.com/indutny/node-ip/compare/v1.1.8...v1.1.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 10:01:40 +00:00
Nuno Coração 58bea096cb Merge pull request #1260 from LITUATUI/patch-1
Update Hugo version
2024-02-21 09:50:50 +00:00
Pedro Lima 97cae5ee6a Update Hugo version 2024-02-20 16:05:34 +00:00
kahakai d0ada22e81 ✏️ Fix folder structure example on Thumbnails page 2024-02-19 21:27:44 +00:00
kahakai d998d3b403 ✏️ Fix Getting Started page typos 2024-02-19 20:41:09 +00:00
Nuno Coração 18428a79b8 Merge pull request #1255 from SmileGuide/patch-5
🌐 Correct I18n Strings
2024-02-19 09:22:59 +00:00
Karlukle 174e07c675 Update zh-TW.yaml
Translated items retained in English in zh-TW.yaml.
2024-02-18 16:20:07 +00:00
Karlukle 1c1d3d95b0 Fix Bugs: Anchors Not Functioning Correctly for CJK Headings
While utilizing the Blowfish theme, it was observed that headings containing non-ASCII characters, such as those in Chinese text, were not positioned when clicked on either the Table of Contents (TOC) or the anchor mark (#) preceding the heading. This issue did not occur with headings in plain English. The resolution involved updating the render-heading.html file to implement URL escaping for anchors, enabling accurate positioning for non-ASCII headings.
2024-02-18 15:59:35 +00:00
Alberto Navalón be4d9570e5 🌐 Update language count 2024-02-17 12:25:08 +01:00
Alberto Navalón ff7f3e4f3f 🌐 Add Catalan to language list 2024-02-17 12:24:02 +01:00
Nuno Coração dd7d0d3431 Merge pull request #1250 from GrassBlock1/add-gb-lab-2024
👤 Add Mare_Infinitus(lab.imgb.space) to blowfish users list
2024-02-17 09:51:32 +00:00
Alberto Navalón 9f8c1ab2cc 🌐 Add Catalan translation 2024-02-16 12:20:10 +01:00
草方块 773d32d378 👤 Add Mare_Infinitus(lab.imgb.space) to blowfish users list 2024-02-16 11:50:41 +08:00
Nuno Coração 984fef9309 bump version 2024-02-15 18:03:37 +00:00
Nuno Coração e7ce386049 Merge pull request #1242 from nunocoracao/dev
🔖 v2.57.0
2024-02-15 18:02:25 +00:00
Nuno Coração 13cb402dd0 final polish 2024-02-15 18:02:07 +00:00
Nuno Coração 225121b2f1 fix typo 2024-02-15 17:55:45 +00:00
Nuno Coração b0eea59728 Merge pull request #1246 from knowinginner/patch-1
👤 Update users.json
2024-02-15 17:55:13 +00:00
Nuno Coração ef2f7e6a95 Merge pull request #1244 from aakashnand/add-aakashnand.com
👤 Add aakashnand.com to blowfish users list
2024-02-15 17:53:28 +00:00
Nuno Coração 0332cc6f45 Merge pull request #1247 from nunocoracao/1245-carousel-doesnt-work-for-local-images
🐛 Carousel doesn't work for local images
2024-02-15 17:52:41 +00:00
Nuno Coração 214d65f076 Carousel doesn't work for local images 2024-02-15 17:51:06 +00:00
Vlad d20e2fb4e3 Update users.json
Adding new site
2024-02-15 17:01:37 +00:00
Aakash Nand 127a03b29c Add aakashnand.com to blowfish users list 2024-02-14 22:18:30 +09:00
Nuno Coração 87893236dd new version prep 2024-02-13 22:02:54 +00:00
Nuno Coração 9d440a8856 Merge pull request #1228 from nunocoracao/dev
🔖 v2.56.0
2024-02-13 22:00:02 +00:00
Nuno Coração 8e14d69e14 final polish 2024-02-13 21:59:37 +00:00
Nuno Coração 9ea59af0af Merge pull request #1240 from nunocoracao/1236-code-copy-doesnt-work-with-gist
🐛 Code copy doesn't work with gist
2024-02-13 21:58:00 +00:00
Nuno Coração ca9709f2e9 🐛 Code copy doesn't work with gist 2024-02-13 21:57:06 +00:00
Nuno Coração f4648e5f87 Merge pull request #1238 from nunocoracao/Fix-background-image-mode-in-list-view
🐛 Fix background image mode in list view
2024-02-13 21:27:14 +00:00
Nuno Coração f4fd472e6e Fix background image mode in list view 2024-02-13 21:25:46 +00:00
Nuno Coração e29a3f719f Merge pull request #1233 from MaikelChan/header-adjustments
Improve consistency in header's layout and size
2024-02-12 22:07:20 +00:00
Nuno Coração 9e381ed619 Merge pull request #1229 from scambelo/fix-gitlab-shortcode-url
fix GitLab shortcode link url
2024-02-12 22:05:34 +00:00
MaikelChan 580e13b6d6 Added back text base color. 2024-02-11 14:15:59 +01:00
MaikelChan 7f929c2fd8 Same thing with the translations menu. 2024-02-11 14:09:05 +01:00
MaikelChan 393791265c Menu items hover in the same way as search and dark mode switcher buttons. 2024-02-11 14:05:19 +01:00
MaikelChan ab6738cd4d Improve consistency in header's layout and size. 2024-02-11 13:37:19 +01:00
Sergio Cambelo 4ec4062494 fix GitLab shortcode link url 2024-02-10 22:08:48 +01:00
Nuno Coração 664eea75f9 new version 2024-02-10 18:57:39 +00:00
Nuno Coração c77c69da84 Merge pull request #1213 from nunocoracao/dev
🔖 v2.55.0
2024-02-10 18:55:19 +00:00
Nuno Coração 353f438c5e final polish 2024-02-10 18:54:54 +00:00
Nuno Coração 7d06ca6c38 Merge pull request #1226 from nunocoracao/736-carousel-with-remote-images
✨ carousel support for URLs
2024-02-10 18:44:45 +00:00
Nuno Coração 02bcbb7a12 carousel support for URLs 2024-02-10 18:44:07 +00:00
Nuno Coração e87e066aa7 fix all issues with https://github.com/nunocoracao/blowfish/pull/1216 2024-02-10 17:54:51 +00:00
Nuno Coração 14e464731c Merge pull request #1216 from aakashnand/url-feature-image
Add ability to set feature image as URL
2024-02-10 17:00:42 +00:00
Aakash Nand 19520b4481 Ensure featureimage is present before calling resources.GetRemote
Also added ability to set author image as external url and updated
relevant documentation in configuration
2024-02-10 23:52:52 +09:00
Aakash Nand 289b3ff7ad Add documentation for external image usage 2024-02-08 17:15:57 +09:00
Nuno Coração 3da195bad1 Merge pull request #1225 from nunocoracao/dependabot/npm_and_yarn/dev/commander-12.0.0
📌 Bump commander from 11.1.0 to 12.0.0
2024-02-07 17:05:57 +00:00
Nuno Coração 66253cbdd0 Merge pull request #1224 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-22.0.0
📌 Bump puppeteer from 21.10.0 to 22.0.0
2024-02-07 17:05:46 +00:00
Nuno Coração 4ce27882fe Merge pull request #1223 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.2.5
📌 Bump prettier from 3.2.4 to 3.2.5
2024-02-07 17:05:35 +00:00
dependabot[bot] c7c75e3075 📌 Bump commander from 11.1.0 to 12.0.0
Bumps [commander](https://github.com/tj/commander.js) from 11.1.0 to 12.0.0.
- [Release notes](https://github.com/tj/commander.js/releases)
- [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tj/commander.js/compare/v11.1.0...v12.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-07 05:03:56 +00:00
dependabot[bot] 02b6b46427 📌 Bump puppeteer from 21.10.0 to 22.0.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 21.10.0 to 22.0.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v21.10.0...puppeteer-v22.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-07 05:03:38 +00:00
dependabot[bot] ad55a5fb93 📌 Bump prettier from 3.2.4 to 3.2.5
Bumps [prettier](https://github.com/prettier/prettier) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.2.4...3.2.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-07 05:02:57 +00:00
Nuno Coração bf91c39b62 update users page 2024-02-06 17:30:13 +00:00
Nuno Coração b6c0f889b8 Merge pull request #1221 from ToDreamr/patch-1
Update users.json
2024-02-06 13:13:53 +00:00
Nuno Coração 9545dd1a6f Merge pull request #1214 from MaikelChan/es-translation
Updated Spanish translation
2024-02-06 13:12:49 +00:00
Nuno Coração 5f5fdc51d0 Merge pull request #1218 from SmileGuide/patch-3
Update my site link
2024-02-06 13:12:28 +00:00
九歌天上有 fd78299fde Update users.json
Using Blowfish
2024-02-06 21:01:53 +08:00
Aakash Nand d332b54c94 Fetch feature image from url 2024-02-06 21:03:40 +09:00
Karlukle d8dc81ab53 Update my site link
I'm so sorry for submitting PR so often 😅

Yesterday I purchased a domain [karlukle.site](https://karlukle.site) and deployed GitHub Pages on the new domain, so the URL changed.

Also, the avatar on my blog homepage was changed to a new one, so hope you can take a new snapshot of it.
2024-02-06 11:04:38 +08:00
MaikelChan 17e33482b1 Updated Spanish translation. 2024-02-05 04:44:50 +01:00
Nuno Coração 44e14ea3b8 new v 2024-02-04 21:19:22 +00:00
Nuno Coração ddf79f4573 Merge pull request #1202 from nunocoracao/dev
🔖 v2.54.0
2024-02-04 21:12:16 +00:00
Nuno Coração 008347865d process users 2024-02-04 21:11:50 +00:00
Nuno Coração 9efba1ffe1 add xing icon to docs 2024-02-04 21:10:31 +00:00
Nuno Coração eefbba7f2d Merge pull request #1207 from SmileGuide/patch-1
Update users.json
2024-02-04 21:08:24 +00:00
Nuno Coração 8a2eaff8fa Merge pull request #1208 from SmileGuide/SmileGuide-patch-1
Correct i18n strings
2024-02-04 21:08:04 +00:00
Nuno Coração 2c3141f67a Merge pull request #1204 from arunoruto/main
Add xing support for social links
2024-02-04 21:07:04 +00:00
Nuno Coração 549d7d48ff Merge pull request #1205 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-21.10.0
📌 Bump puppeteer from 21.7.0 to 21.10.0
2024-02-04 21:05:32 +00:00
Karlukle 5c6b8dc7d5 Correct i18n strings
Translated Simplified Chinese items retained in English (in zh-CN.yaml).
2024-02-03 11:16:26 +08:00
Karlukle f4c1e17906 Update users.json
Add my blowfish website to the user list
2024-02-03 10:51:10 +08:00
dependabot[bot] 11e091a1e6 📌 Bump puppeteer from 21.7.0 to 21.10.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 21.7.0 to 21.10.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v21.7.0...puppeteer-v21.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 05:21:37 +00:00
arunoruto e4096c80ca Add xing support for social links 2024-01-30 14:18:59 +01:00
Nuno Coração 602b012bfe small url fix 2024-01-28 17:16:20 +00:00
Nuno Coração b37fe87c3c update theme version 2024-01-28 17:11:40 +00:00
Nuno Coração 863354a960 Merge pull request #1197 from nunocoracao/dev
🔖 v2.53.0
2024-01-28 17:10:16 +00:00
Nuno Coração 8c4fb4d64c fix small default 2024-01-28 17:09:49 +00:00
Nuno Coração f85443d3d5 Merge pull request #1200 from nunocoracao/1190-display-date-solely-in-article-details-not-in-cards
✨ add showDateOnlyInArticle parameter
2024-01-28 17:07:23 +00:00
Nuno Coração 392e89722d fix gallery js code 2024-01-28 17:06:04 +00:00
Nuno Coração f481e64411 Merge pull request #1199 from nunocoracao/1198-gallery-shortcode-not-loading-correctly
🐛 fix gallery js code
2024-01-28 16:31:17 +00:00
Nuno Coração c97a2b0d04 fix gallery js code 2024-01-28 16:30:35 +00:00
Nuno Coração e06f703799 bump version 2024-01-27 21:10:30 +00:00
Nuno Coração 1b2c7458a5 Merge pull request #1179 from nunocoracao/dev
🔖 v2.52.0
2024-01-27 21:07:56 +00:00
Nuno Coração 477029e5f0 full update users content 2024-01-27 21:07:29 +00:00
Nuno Coração f3ecc71aad final polish 2024-01-27 21:02:19 +00:00
Nuno Coração 9a632353c2 Merge pull request #1195 from nunocoracao/1194-update-support-to-hugo-v01220
updated hugo version
2024-01-27 20:34:52 +00:00
Nuno Coração c2740e9d0f updated hugo version 2024-01-27 20:32:24 +00:00
Nuno Coração e6470390d8 Merge pull request #1193 from BluesDriveAmelia/patch-1
Add notes.bluesdriveamelia.space to user sites
2024-01-25 16:40:48 +00:00
Nuno Coração 8511b60d3a Merge branch 'dev' into patch-1 2024-01-25 16:40:41 +00:00
Amelia f558c41f0e Add notes.bluesdriveamelia.space to user sites
This is my blog kinda site which is using blowfish ^_^ Hopefully I did this right lol
2024-01-24 19:43:22 -05:00
Nuno Coração c6576af418 update configs 2024-01-24 21:49:12 +00:00
Nuno Coração 4825539121 Merge pull request #1189 from Weaxs/footer-pre
footer menu supports "pre" icon parameter
2024-01-24 21:39:19 +00:00
Nuno Coração 6b56512f11 update users 2024-01-24 21:38:31 +00:00
Nuno Coração d2eedcb6a1 Merge pull request #1191 from Ast3risk-ops/patch-1
add my blog to users.json
2024-01-24 21:37:09 +00:00
Nuno Coração d3b9f1b54b Merge branch 'dev' into patch-1 2024-01-24 21:36:25 +00:00
Nuno Coração 0097326f4f Merge pull request #1187 from DXPetti/patch-1
Added myself to users.json
2024-01-24 21:33:44 +00:00
Nuno Coração 66f840999b Merge pull request #1192 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.2.4
📌 Bump prettier from 3.2.3 to 3.2.4
2024-01-24 21:32:03 +00:00
dependabot[bot] d08cdba52a 📌 Bump prettier from 3.2.3 to 3.2.4
Bumps [prettier](https://github.com/prettier/prettier) from 3.2.3 to 3.2.4.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.2.3...3.2.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-24 05:47:55 +00:00
Asterisk 9256ecd122 add my blog to users.json 2024-01-23 15:48:49 -05:00
Weaxs aa2a37c666 footer menu support "pre" icon parameter 2024-01-23 17:44:41 +08:00
DXPetti 63f61dac75 Added myself to users.json
Added my own Hugo/Blowfish powered website (www.dxpetti.com) to the users.json list
2024-01-22 15:46:54 +11:00
Nuno Coração 560cde339b initial commit for 2.52.0 2024-01-19 00:10:53 +00:00
Nuno Coração 0a9b4a29a1 Merge pull request #1169 from nunocoracao/dev
🔖 2.51.0
2024-01-19 00:08:43 +00:00
Nuno Coração 71b578b8c4 final polish 2024-01-19 00:08:22 +00:00
Nuno Coração bbb657dfd4 Merge pull request #1173 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.2.3
📌 Bump prettier from 3.1.1 to 3.2.3
2024-01-18 23:26:55 +00:00
Nuno Coração 9d7650b375 Merge pull request #1172 from nunocoracao/dependabot/npm_and_yarn/dev/typeit-8.8.3
📌 Bump typeit from 8.8.0 to 8.8.3
2024-01-18 23:26:41 +00:00
Nuno Coração 3798b09baf Merge pull request #1175 from falkzeh/patch-1
add datatodroids.tech example site
2024-01-18 23:26:21 +00:00
Falk fd40a9da17 add datatodroids.tech example site 2024-01-17 20:30:26 +01:00
dependabot[bot] 2d28e80052 📌 Bump prettier from 3.1.1 to 3.2.3
Bumps [prettier](https://github.com/prettier/prettier) from 3.1.1 to 3.2.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.1.1...3.2.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-17 05:54:57 +00:00
dependabot[bot] 1c24d6a6a2 📌 Bump typeit from 8.8.0 to 8.8.3
Bumps [typeit](https://github.com/alexmacarthur/typeit) from 8.8.0 to 8.8.3.
- [Release notes](https://github.com/alexmacarthur/typeit/releases)
- [Commits](https://github.com/alexmacarthur/typeit/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-17 05:54:47 +00:00
Nuno Coração e516b28bde bump version 2024-01-15 00:14:47 +00:00
Nuno Coração 9818cfd07b Merge pull request #1146 from nunocoracao/dev
🔖 v2.50.0
2024-01-15 00:09:22 +00:00
Nuno Coração 50ea75d777 polish and improved docs 2024-01-15 00:08:05 +00:00
Nuno Coração 8f31c4f834 polish and added documentation for new cli tool 2024-01-14 23:51:51 +00:00
Nuno Coração bb2968a41d Merge pull request #1166 from MaZe3D/add-the-maze-net-to-users
add the-maze.net to users list
2024-01-14 23:27:08 +00:00
Nuno Coração 723c2e8421 Merge pull request #1164 from MaikelChan/uid
New way to generate UIDs.
2024-01-14 23:26:45 +00:00
Nuno Coração c27baa27b5 Merge pull request #1163 from MaikelChan/badges-cursor
Cursor adjustments to badges section in an article
2024-01-14 23:25:23 +00:00
Nuno Coração f461d0160b Merge pull request #1159 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.11
📌 Bump prettier-plugin-tailwindcss from 0.5.10 to 0.5.11
2024-01-14 23:24:01 +00:00
Nuno Coração d2266c3647 Merge pull request #1161 from MaikelChan/icon-bluesky
Added bluesky icon.
2024-01-14 23:23:47 +00:00
dependabot[bot] d37c1f7adf 📌 Bump prettier-plugin-tailwindcss from 0.5.10 to 0.5.11
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.10 to 0.5.11.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.10...v0.5.11)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-14 23:23:28 +00:00
Nuno Coração 55cf0f98b8 Merge pull request #1158 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-21.7.0
📌 Bump puppeteer from 21.6.1 to 21.7.0
2024-01-14 23:22:59 +00:00
Nuno Coração 48b6fe6612 Merge pull request #1157 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.1
📌 Bump tailwindcss from 3.4.0 to 3.4.1
2024-01-14 23:22:46 +00:00
Nuno Coração 8ed9a2de50 Merge pull request #1160 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-1.7.18
📌 Bump @headlessui/react from 1.7.17 to 1.7.18
2024-01-14 23:22:33 +00:00
MaZe 7b4cf06c08 add the-maze.net entry 2024-01-14 20:14:10 +01:00
MaikelChan 9cfc07565c New way to generate UIDs. 2024-01-13 01:24:45 +01:00
MaikelChan f927990504 Cursor adjustments to badges section in an article. 2024-01-12 20:26:30 +01:00
MaikelChan c598410de1 Added bluesky icon. 2024-01-12 18:19:54 +01:00
dependabot[bot] 564b7fbf56 💄 Rebuild CSS 2024-01-10 05:43:27 +00:00
dependabot[bot] c0697915a2 📌 Bump @headlessui/react from 1.7.17 to 1.7.18
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 1.7.17 to 1.7.18.
- [Release notes](https://github.com/tailwindlabs/headlessui/releases)
- [Changelog](https://github.com/tailwindlabs/headlessui/blob/main/packages/@headlessui-react/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/headlessui/commits/@headlessui/react@v1.7.18/packages/@headlessui-react)

---
updated-dependencies:
- dependency-name: "@headlessui/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-10 05:43:27 +00:00
dependabot[bot] 7f9f84ee6a 📌 Bump puppeteer from 21.6.1 to 21.7.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 21.6.1 to 21.7.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v21.6.1...puppeteer-v21.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-10 05:43:08 +00:00
dependabot[bot] 8b5012b8f2 📌 Bump tailwindcss from 3.4.0 to 3.4.1
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.0...v3.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-10 05:42:52 +00:00
Nuno Coração 08305fe2f7 Merge pull request #1153 from deining/fix-typos
Fix typos
2024-01-07 22:32:28 +00:00
Nuno Coração 768352a7a6 Merge branch 'dev' into fix-typos 2024-01-07 22:32:19 +00:00
Nuno Coração 97a7893cdd Merge pull request #1149 from oalders/typos
Fix typos
2024-01-07 22:27:20 +00:00
Nuno Coração 0224885de3 Merge pull request #1152 from WilliamRagstad/main
Update max Hugo version in config.toml
2024-01-07 22:21:29 +00:00
Andreas Deininger 7c50d68f53 Fix typos 2024-01-07 22:05:49 +01:00
William Rågstad 4d73996b34 Update 2024-01-07 13:40:18 +01:00
William Rågstad 30558fb1f4 Update version 2024-01-07 13:38:23 +01:00
William be9dab5724 Update max Hugo version in config.toml 2024-01-07 13:31:58 +01:00
Olaf Alders bd2a50aade Fix typos 2024-01-05 18:15:49 -05:00
Nuno Coração 06deb3536b updated version 2024-01-04 23:27:15 +00:00
Nuno Coração 0b8df7ea18 Merge pull request #1145 from nunocoracao/dev
🔖 v2.49.1
2024-01-04 22:57:31 +00:00
Nuno Coração 697dbc9b27 change default for zen mode 2024-01-04 22:56:25 +00:00
Nuno Coração 8ecb97dc29 update users 2024-01-04 22:18:23 +00:00
Nuno Coração 7d61d43d1a updated version 2024-01-04 22:08:08 +00:00
Nuno Coração 96cbca1d4d Merge pull request #1144 from nunocoracao/dev
🔖 v2.49.0
2024-01-04 22:03:54 +00:00
Nuno Coração 404bacd9b6 updated readme 2024-01-04 21:53:23 +00:00
Nuno Coração 9714971430 general polish 2024-01-04 21:51:39 +00:00
Nuno Coração 23bb87b1cf polish keywork shortcode 2024-01-04 21:34:00 +00:00
Nuno Coração 09bdcb78a2 edit zenmode to not be persisted 2024-01-04 21:25:53 +00:00
Nuno Coração 2fdb03f9f5 update compiled css and packages 2024-01-04 21:12:03 +00:00
Nuno Coração 92712dc6f1 bump version 2024-01-04 21:10:54 +00:00
Nuno Coração c147af39ca Merge pull request #1136 from alxhslm/keyword-lists
✨ Keyword shortcode
2024-01-04 21:09:57 +00:00
Nuno Coração e211e2c6ff Merge pull request #1130 from v20100v/feature/zen-mode
✨ Zen-mode feature
2024-01-04 21:09:14 +00:00
Nuno Coração aa63694ef3 Merge branch 'dev' into feature/zen-mode 2024-01-04 21:09:06 +00:00
Nuno Coração 1848083559 Merge pull request #1138 from xwjdsh/xwjdsh-patch-1
Update timelineItem.html
2024-01-04 21:00:53 +00:00
Nuno Coração c0285a45ec Merge branch 'dev' into xwjdsh-patch-1 2024-01-04 21:00:45 +00:00
Nuno Coração bfc35c3905 Merge pull request #1129 from ragibson/fix-wide-elements-breaking-layout
Fix wide elements (equations, tables, and inline code) breaking site width and layout
2024-01-04 20:59:46 +00:00
Nuno Coração d17678b85f Merge pull request #1126 from v20100v/dev
🐛 Shortcodes gallery (non-unique id, multiple loading <script> tag)
2024-01-04 20:58:58 +00:00
Nuno Coração 5aae32560b Merge pull request #1128 from ragibson/fix-backdrop-filter-performance
Remove extraneous backdrop-blurs across partials
2024-01-04 20:54:17 +00:00
Nuno Coração 19ab117a1f Merge pull request #1143 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.10
📌 Bump prettier-plugin-tailwindcss from 0.5.9 to 0.5.10
2024-01-04 20:50:56 +00:00
dependabot[bot] 6eb9f0d2dd 📌 Bump prettier-plugin-tailwindcss from 0.5.9 to 0.5.10
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.9 to 0.5.10.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.9...v0.5.10)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-03 05:21:44 +00:00
Nuno Coração 7a92e2b162 Merge pull request #1135 from nunocoracao/dependabot/npm_and_yarn/dev/heroicons/react-2.1.1
📌 Bump @heroicons/react from 2.0.18 to 2.1.1
2023-12-30 19:41:27 +00:00
Nuno Coração f584402826 Merge pull request #1134 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-21.6.1
📌 Bump puppeteer from 21.6.0 to 21.6.1
2023-12-30 19:41:14 +00:00
Nuno Coração 7ed2d33baa Merge pull request #1133 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.4.0
📌 Bump tailwindcss from 3.3.6 to 3.4.0
2023-12-30 19:40:54 +00:00
Nuno Coração b6db1673ed Merge pull request #1132 from nunocoracao/dependabot/github_actions/dev/actions/upload-pages-artifact-3
👷 Bump actions/upload-pages-artifact from 2 to 3
2023-12-30 19:40:40 +00:00
Nuno Coração b095438fde Merge pull request #1131 from nunocoracao/dependabot/github_actions/dev/actions/deploy-pages-4
👷 Bump actions/deploy-pages from 3 to 4
2023-12-30 19:40:19 +00:00
Nuno Coração 3cae671ef4 Merge pull request #1137 from alxhslm/add_blog
👤 Add website to users.json
2023-12-30 19:40:05 +00:00
Nuno Coração 5607b5e151 Merge branch 'dev' into add_blog 2023-12-30 19:39:57 +00:00
Nuno Coração 0fa3375425 Merge pull request #1141 from demo007x/patch-1
Update users.json
2023-12-30 19:38:38 +00:00
杨玉龙 0aff8c72f0 Update users.json 2023-12-29 21:06:15 +08:00
Wen Sun 9aa130cd64 Update timelineItem.html
* Add `break-words` to prevent content overflow
2023-12-21 10:56:40 +09:00
Alex Haslam ebe4b44029 Add website to users.json 2023-12-20 16:42:50 +00:00
Alex Haslam 6742e7f4eb Add example of standalone keyword 2023-12-20 16:03:11 +00:00
Alex Haslam 86dc4b0ade Increase vertical spacing 2023-12-20 16:02:45 +00:00
Alex Haslam 29d2cfd9b6 Update wording 2023-12-20 15:55:08 +00:00
Alex Haslam 1358930b6e Add documentation 2023-12-20 15:04:32 +00:00
Alex Haslam 46c1199289 Fix issue which can arise with formatting 2023-12-20 15:01:25 +00:00
Alex Haslam 3e81805971 Don't put margin around each keyword 2023-12-20 15:01:03 +00:00
Alex Haslam 2791cc7cb9 Pass icon as keyword argument to shortcode 2023-12-20 13:53:50 +00:00
dependabot[bot] 3b4e6af5e2 💄 Rebuild CSS 2023-12-20 05:30:46 +00:00
dependabot[bot] 15cb9669bb 📌 Bump @heroicons/react from 2.0.18 to 2.1.1
Bumps [@heroicons/react](https://github.com/tailwindlabs/heroicons) from 2.0.18 to 2.1.1.
- [Release notes](https://github.com/tailwindlabs/heroicons/releases)
- [Changelog](https://github.com/tailwindlabs/heroicons/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/heroicons/compare/v2.0.18...v2.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 05:30:40 +00:00
dependabot[bot] 0d4a604eef 📌 Bump puppeteer from 21.6.0 to 21.6.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 21.6.0 to 21.6.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v21.6.0...puppeteer-v21.6.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 05:30:31 +00:00
dependabot[bot] 2e6fa514ac 📌 Bump tailwindcss from 3.3.6 to 3.4.0
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.6 to 3.4.0.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.6...v3.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 05:30:12 +00:00
dependabot[bot] 5d1b934b97 👷 Bump actions/upload-pages-artifact from 2 to 3
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 05:04:38 +00:00
dependabot[bot] ebaacedc6c 👷 Bump actions/deploy-pages from 3 to 4
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 3 to 4.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 05:04:35 +00:00
v20100v e1f6607def ✨ Zen-mode feature 2023-12-19 11:23:25 +01:00
Ryan Gibson 7b2f775267 Recompile CSS 2023-12-18 15:15:59 -05:00
Ryan Gibson 6e956ef471 Add CSS overflow/wrapping on KaTeX, tables, and code sections 2023-12-18 15:14:41 -05:00
Ryan Gibson 854f773c65 Remove extraneous backdrop-blurs across partials 2023-12-18 13:35:45 -05:00
Nuno Coração 6611e0f23c Merge pull request #1124 from arunoruto/main
Fix annoying `.File.Path on zero object.` warning
2023-12-18 16:08:28 +00:00
v20100v c790396863 🐛 : Shortcodes gallery (non-unique id, multiple loading <script> tag) 2023-12-18 14:37:47 +01:00
arunoruto 844cf98ccf Fix annoying .File.Path on zero object. warning 2023-12-16 10:50:34 +01:00
Nuno Coração b6744efbf2 Merge pull request #1123 from nunocoracao/dev
🔖 v2.48.0
2023-12-14 13:20:04 +00:00
Nuno Coração ff9839965f Merge pull request #1121 from nunocoracao/1115-external-markdown-importer-shortcode
✨ External Markdown Importer Shortcode
2023-12-14 12:38:03 +00:00
Nuno Coração 2fc94cb599 ✨ External Markdown Importer Shortcode 2023-12-14 12:37:23 +00:00
Nuno Coração 88731e553b Merge pull request #1120 from nunocoracao/1104-handle-enter-key-in-search
💖 Handle Enter key in search
2023-12-14 12:13:40 +00:00
Nuno Coração 4c41435a11 💖 Handle Enter key in search 2023-12-14 12:12:49 +00:00
Nuno Coração 5cae118d74 Merge pull request #1119 from nunocoracao/1102-update-theme-to-support-hugo-v01211
⚙️ Update theme to support Hugo v0.121.1
2023-12-14 12:08:32 +00:00
Nuno Coração 162f02e4b5 ⚙️ Update theme to support Hugo v0.121.1 2023-12-14 12:08:04 +00:00
Nuno Coração 4551b18fb8 add user 2023-12-14 12:03:42 +00:00
Nuno Coração ba0f9070ef Merge pull request #1113 from TechnicalDC/patch-1
👤 Added `technicaldc.github.io` in blowfish user list
2023-12-14 11:51:31 +00:00
Nuno Coração bf8170fec0 Merge pull request #1116 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.1.1
📌 Bump prettier from 3.1.0 to 3.1.1
2023-12-14 11:46:46 +00:00
Nuno Coração 8fd87fd8a3 Merge pull request #1117 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-21.6.0
📌 Bump puppeteer from 21.5.2 to 21.6.0
2023-12-14 11:46:17 +00:00
Nuno Coração 39695820d7 Merge pull request #1118 from nunocoracao/dependabot/github_actions/dev/actions/stale-9
👷 Bump actions/stale from 8 to 9
2023-12-14 11:46:07 +00:00
dependabot[bot] 02553cf01d 👷 Bump actions/stale from 8 to 9
Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v8...v9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 05:30:20 +00:00
dependabot[bot] b0ecb9508f 📌 Bump puppeteer from 21.5.2 to 21.6.0
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 21.5.2 to 21.6.0.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v21.5.2...puppeteer-v21.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 05:28:40 +00:00
dependabot[bot] 302e035e23 📌 Bump prettier from 3.1.0 to 3.1.1
Bumps [prettier](https://github.com/prettier/prettier) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.1.0...3.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 05:28:25 +00:00
Dilip Chauhan fa650e192b Update users.json 2023-12-10 18:09:45 +05:30
Alex Haslam b1e8e00267 Add keywords list component 2023-12-09 21:53:58 +00:00
Nuno Coração ea8344a4bc Merge pull request #1099 from nunocoracao/dev
🔖 v2.47.2 - small bug fix volume 2 - like button
2023-12-06 22:18:29 +00:00
Nuno Coração 80d2a65a0c small bug fix volume 2 - like button 2023-12-06 22:17:39 +00:00
Nuno Coração ea8ad8ba7c Merge pull request #1098 from nunocoracao/dev
🔖 v2.47.1 - Small bug fix
2023-12-06 22:09:34 +00:00
Nuno Coração d613121b76 small bug fix 2023-12-06 22:08:16 +00:00
Nuno Coração 8f126777ad Merge pull request #1097 from nunocoracao/dev
🔖 v2.47.0
2023-12-06 21:51:02 +00:00
Nuno Coração 85e7073cb9 update version and final polish 2023-12-06 21:46:24 +00:00
Nuno Coração 20546b9dd4 Merge pull request #1096 from nunocoracao/1094-implement-loaders-for-fetched-information-views-and-likes
🎨 Implement loaders for fetched information (views and likes)
2023-12-06 21:41:07 +00:00
Nuno Coração 065bf2b060 🎨 Implement loaders for fetched information (views and likes) 2023-12-06 21:40:38 +00:00
Nuno Coração 4bc1ed0a86 Merge pull request #1095 from nunocoracao/1093-update-theme-to-support-hugo-v01210
⚙️ Update theme to support Hugo v0.121.0
2023-12-06 21:06:38 +00:00
Nuno Coração c502e3e078 ⚙️ Update theme to support Hugo v0.121.0 2023-12-06 21:05:55 +00:00
Nuno Coração d581063f1d Merge pull request #1085 from TheLunaticDev/patch-1
Corrected a minor spelling mistake from bue to but on getting started…
2023-12-06 20:56:59 +00:00
Nuno Coração 5264d11bba Merge pull request #1089 from nunocoracao/dependabot/npm_and_yarn/dev/tw-elements-1.1.0
📌 Bump tw-elements from 1.0.0 to 1.1.0
2023-12-06 20:56:04 +00:00
dependabot[bot] e098744327 💄 Rebuild CSS 2023-12-06 20:54:34 +00:00
dependabot[bot] a9a6301839 📌 Bump tw-elements from 1.0.0 to 1.1.0
Bumps [tw-elements](https://github.com/mdbootstrap/Tailwind-Elements) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/mdbootstrap/Tailwind-Elements/releases)
- [Commits](https://github.com/mdbootstrap/Tailwind-Elements/compare/v1.0.0...v1.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 20:54:03 +00:00
Nuno Coração a07f38d97a Merge pull request #1087 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.9
📌 Bump prettier-plugin-tailwindcss from 0.5.7 to 0.5.9
2023-12-06 20:52:38 +00:00
Nuno Coração 7b74b10bbf Merge pull request #1088 from nunocoracao/dependabot/npm_and_yarn/dev/chart.js-4.4.1
📌 Bump chart.js from 4.4.0 to 4.4.1
2023-12-06 20:52:25 +00:00
Nuno Coração 5048a57d30 Merge pull request #1090 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.3.6
📌 Bump tailwindcss from 3.3.5 to 3.3.6
2023-12-06 20:52:02 +00:00
Nuno Coração f4e85f9f90 Merge pull request #1091 from nunocoracao/dependabot/github_actions/dev/actions/deploy-pages-3
👷 Bump actions/deploy-pages from 2 to 3
2023-12-06 20:51:48 +00:00
Nuno Coração 2239fcba22 Merge pull request #1092 from nunocoracao/dependabot/github_actions/dev/actions/configure-pages-4
👷 Bump actions/configure-pages from 3 to 4
2023-12-06 20:51:35 +00:00
dependabot[bot] 97cd6eb799 👷 Bump actions/configure-pages from 3 to 4
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 3 to 4.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](https://github.com/actions/configure-pages/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 05:26:58 +00:00
dependabot[bot] 196c5a2c10 👷 Bump actions/deploy-pages from 2 to 3
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 2 to 3.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v2...v3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 05:26:54 +00:00
dependabot[bot] 89a7626944 💄 Rebuild CSS 2023-12-06 05:18:53 +00:00
dependabot[bot] b7dbf6872b 📦 Update packaged ChartJS 2023-12-06 05:18:40 +00:00
dependabot[bot] 41473c9953 📌 Bump tailwindcss from 3.3.5 to 3.3.6
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.5 to 3.3.6.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.5...v3.3.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 05:18:27 +00:00
dependabot[bot] 7fa5ca11c5 📌 Bump chart.js from 4.4.0 to 4.4.1
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.4.0...v4.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 05:18:11 +00:00
dependabot[bot] b7009d8f30 📌 Bump prettier-plugin-tailwindcss from 0.5.7 to 0.5.9
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.7 to 0.5.9.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.7...v0.5.9)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 05:18:03 +00:00
Sushanta Banerjee 48c27ebd25 Corrected a minor spelling mistake from bue to but on getting started page under Thumbnails & Backgrounds 2023-12-02 15:37:37 +05:30
Nuno Coração b647cef055 Update firebase-preview.yml 2023-12-01 14:39:18 +00:00
Nuno Coração 00c1079609 Merge pull request #1083 from nunocoracao/dev
🔖 v2.46.0
2023-12-01 14:33:40 +00:00
Nuno Coração 20e0eb9b1b update version and user list 2023-12-01 13:45:31 +00:00
Nuno Coração ce175a3c82 Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2023-12-01 13:43:12 +00:00
Nuno Coração b15c3321a1 Merge pull request #1082 from nunocoracao/1074-card-view-in-list-shortcode
✨ Card View in List Shortcode
2023-12-01 13:42:03 +00:00
Nuno Coração 98fa8bf604 ✨ Card View in List Shortcode 2023-12-01 13:41:14 +00:00
Nuno Coração f8c0ea1327 Merge pull request #1081 from nunocoracao/1053-extra-spacing-between-icons-could-push-them-to-a-second-row
reduce icon spacing
2023-12-01 13:32:38 +00:00
Nuno Coração 1b83a34d99 reduce icon spacing 2023-12-01 13:32:08 +00:00
Nuno Coração 0025b897b3 Merge pull request #1080 from nunocoracao/953-is-there-an-option-to-ommit-the-title-beside-the-logo
Add option to hide text in header
2023-12-01 13:28:54 +00:00
Nuno Coração 33b3302a61 Add option to hide text in header 2023-12-01 13:28:24 +00:00
Nuno Coração 8e2dd360fe Merge pull request #1079 from nunocoracao/949-empty-hamburger-visible
Empty hamburger visible
2023-12-01 13:21:05 +00:00
Nuno Coração 242c43ed78 Empty hamburger visible 2023-12-01 13:20:24 +00:00
Nuno Coração 723da1ace0 Merge pull request #1078 from nunocoracao/956-missing-pointer-cursor-for-tag-badge-in-article-view
Missing pointer-cursor for tag-badge in article view
2023-12-01 13:16:22 +00:00
Nuno Coração 24cd703277 Missing pointer-cursor for tag-badge in article view 2023-12-01 13:15:45 +00:00
Nuno Coração 7a1db331ee Merge pull request #1077 from nunocoracao/957-dont-center-align-code-within-blocks
Don't center-align code within blocks
2023-12-01 12:51:01 +00:00
Nuno Coração 60bdf84f37 Don't center-align code within blocks 2023-12-01 12:50:30 +00:00
Nuno Coração be435940ac Merge pull request #1076 from nunocoracao/959-heading-first-child-styling-not-working
🐛 Heading first-child styling not working
2023-12-01 12:16:01 +00:00
Nuno Coração 4c9e372ef7 Heading first-child styling not working 2023-12-01 12:15:20 +00:00
Nuno Coração 87144481c9 Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2023-12-01 12:02:44 +00:00
Nuno Coração e1883afd7d Merge pull request #1075 from nunocoracao/958-missing-overflow-hidden-in-simple-article-link
🐛 Missing overflow-hidden in simple article link
2023-12-01 12:01:55 +00:00
Nuno Coração 15027bf896 🐛 Missing overflow-hidden in simple article link 2023-12-01 11:59:54 +00:00
Nuno Coração b3577c59cb Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2023-12-01 11:55:03 +00:00
Nuno Coração c376f07876 Merge pull request #1073 from nunocoracao/dependabot/npm_and_yarn/dev/typeit-8.8.0
📌 Bump typeit from 8.7.1 to 8.8.0
2023-12-01 11:36:07 +00:00
Nuno Coração 98da3368d6 add user 2023-12-01 11:32:09 +00:00
Nuno Coração 13ebdb4af0 updated githubactions 2023-12-01 11:30:24 +00:00
Nuno Coração bc3c87ff81 updated githubactions 2023-12-01 11:27:30 +00:00
Nuno Coração 9c89cadd3a add user 2023-12-01 11:23:14 +00:00
Nuno Coração baa33ffeff Merge pull request #1071 from ItsJustRuby/feature/skip_request_for_zoom.js_if_disabled
Only send web request for zoom library if it is not disabled.
2023-12-01 11:21:54 +00:00
Nuno Coração 6c7b89c697 Merge pull request #1069 from vehagn/feature/add-blog.stonegarden.dev
chore: Adding blog.stonegarden.dev as user of Blowfish theme
2023-12-01 11:20:35 +00:00
dependabot[bot] b271b3b107 📌 Bump typeit from 8.7.1 to 8.8.0
Bumps [typeit](https://github.com/alexmacarthur/typeit) from 8.7.1 to 8.8.0.
- [Release notes](https://github.com/alexmacarthur/typeit/releases)
- [Commits](https://github.com/alexmacarthur/typeit/compare/v8.7.1...typeit@8.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 05:45:10 +00:00
Ruby a31607509e Only request zoom library if it is not disabled.
There is already a if condition in `footer.html` that only runs the JS
from the zoom library if it is enabled per-site.
This commit takes the same if condition and applies it in `head.html` as
well to save a unnecessary web request to `zoom.min.js` if that is the case.
2023-11-28 06:25:25 +01:00
Vegard Hagen e7244b6bfe chore: Adding blog.stonegarden.dev as user of Blowfish theme 2023-11-26 12:35:52 +01:00
Nuno Coração 45d634f6ca Merge pull request #1067 from nunocoracao/dev
🔖 v2.45.0
2023-11-22 11:45:12 +00:00
Nuno Coração 3ec0017c4d Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2023-11-22 11:42:49 +00:00
Nuno Coração 93a1ec25f7 bump version and update users page 2023-11-22 11:42:39 +00:00
Nuno Coração 7f1be0dc51 Merge pull request #1059 from OldTyT/fix_i18n_ru/pinterest
🎏 [i18n/ru] Removing an extra letter in a pinterest string
2023-11-22 11:36:10 +00:00
Nuno Coração 9f3547d632 Merge pull request #1058 from xwjdsh/fix-custom-analytics-doc
📖 Fix custom analytics doc
2023-11-22 11:35:22 +00:00
Nuno Coração 22426a49c7 add users 2023-11-22 11:34:04 +00:00
Nuno Coração d853f89921 Merge pull request #1048 from ctuIhu/patch-1
👤 Update users.json
2023-11-22 11:32:22 +00:00
Nuno Coração cb2c3022dc Merge pull request #1066 from nunocoracao/1065-update-support-to-latest-version-of-hugo
updated support for version 0.120.4 of Hugo
2023-11-22 11:29:59 +00:00
Nuno Coração 18cbf92d47 updated support for version 0.120.4 of Hugo 2023-11-22 11:29:20 +00:00
Nuno Coração 1c4a452842 Merge pull request #1057 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.7
📌 Bump prettier-plugin-tailwindcss from 0.5.6 to 0.5.7
2023-11-22 11:22:45 +00:00
dependabot[bot] 3d111af0fb 📌 Bump prettier-plugin-tailwindcss from 0.5.6 to 0.5.7
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.6 to 0.5.7.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.6...v0.5.7)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-22 11:22:33 +00:00
Nuno Coração dc732753a6 Merge pull request #1064 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-21.5.2
📌 Bump puppeteer from 21.5.1 to 21.5.2
2023-11-22 11:21:52 +00:00
dependabot[bot] f0de933424 📌 Bump puppeteer from 21.5.1 to 21.5.2
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 21.5.1 to 21.5.2.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v21.5.1...puppeteer-v21.5.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-22 05:14:22 +00:00
Nuno Coração 26a1c27bef Merge pull request #1056 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/forms-0.5.7
📌 Bump @tailwindcss/forms from 0.5.6 to 0.5.7
2023-11-18 10:53:22 +00:00
Nuno Coração 9ef04fbe77 Merge pull request #1055 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-21.5.1
📌 Bump puppeteer from 21.4.1 to 21.5.1
2023-11-18 10:52:57 +00:00
Nuno Coração d474091a79 Merge pull request #1054 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.1.0
📌 Bump prettier from 3.0.3 to 3.1.0
2023-11-18 10:52:43 +00:00
Old TyT 8f4610ec71 fix(i18n/ru.yaml): removing an extra letter in a pinterest string 2023-11-16 13:39:05 +03:00
Wen Sun 36d0e5295a Fix custom analytics doc 2023-11-15 17:09:49 +09:00
dependabot[bot] 43dfc43392 💄 Rebuild CSS 2023-11-15 05:41:57 +00:00
dependabot[bot] 0f6bfe7b03 📌 Bump @tailwindcss/forms from 0.5.6 to 0.5.7
Bumps [@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms) from 0.5.6 to 0.5.7.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-forms/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-forms/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.6...v0.5.7)

---
updated-dependencies:
- dependency-name: "@tailwindcss/forms"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 05:41:25 +00:00
dependabot[bot] 97b7b229a6 📌 Bump puppeteer from 21.4.1 to 21.5.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 21.4.1 to 21.5.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v21.4.1...puppeteer-v21.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 05:41:16 +00:00
dependabot[bot] dccb479d1a 📌 Bump prettier from 3.0.3 to 3.1.0
Bumps [prettier](https://github.com/prettier/prettier) from 3.0.3 to 3.1.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.0.3...3.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 05:41:03 +00:00
Christian Niel Angel 23a0e1d2fa Update users.json 2023-11-08 01:02:54 +08:00
Nuno Coração 77764f9005 Merge pull request #1046 from nunocoracao/dev
Update personal page
2023-11-04 16:45:58 +00:00
Nuno Coração 976bf23bb3 Merge branch 'dev' of https://github.com/nunocoracao/blowfish into dev 2023-11-04 16:42:47 +00:00
Nuno Coração dbd0effce2 update personal page 2023-11-04 16:42:28 +00:00
Nuno Coração 784e161371 Merge pull request #1041 from nunocoracao/dev
🔖 v2.44.0
2023-11-02 23:34:06 +00:00
Nuno Coração bf3f154014 Merge pull request #1043 from nunocoracao/1023-make-some-shortcodes-eg-github-card-get-their-information-dynamically
✨ Make GitHub and GitLab shortcodes update dynamically
2023-11-02 23:32:04 +00:00
Nuno Coração c78d68dc0b made github and gitlab shortcodes dynamic 2023-11-02 23:30:55 +00:00
Nuno Coração 7970651f41 Merge pull request #1042 from nunocoracao/1030-carousel-transition-interval-not-working
🐛 Fixed carousel transition interval not working
2023-11-02 23:12:54 +00:00
Nuno Coração b2f8082120 fixed carousel shortcode 2023-11-02 23:11:58 +00:00
Nuno Coração 25ee0ec2b7 updated user list and bumped version 2023-11-02 22:57:05 +00:00
Nuno Coração e1b9050cfd Merge pull request #1040 from nunocoracao/1038-update-twitter-icon-to-x
🎨 Update twitter icon to X
2023-11-02 22:52:13 +00:00
Nuno Coração 9b12b03bdc update twitter icon to X 2023-11-02 22:51:09 +00:00
Nuno Coração 82251df74d Merge pull request #1039 from nunocoracao/1037-update-blowfish-to-support-latest-version-of-hugo-v01203
⚙️ updated support for Hugo v0.120.3
2023-11-02 22:43:08 +00:00
Nuno Coração f36b17dc01 updated support for Hugo latest version 2023-11-02 22:42:13 +00:00
Nuno Coração 3a81de2bfd Merge pull request #1035 from joush007/patch-1
Remove non-existant site (404)
2023-11-02 22:22:52 +00:00
Nuno Coração 092bd16ba4 Merge pull request #1029 from TheDidek/main
Add website
2023-11-02 22:20:56 +00:00
Nuno Coração 2976eb3244 Merge pull request #1032 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.3.5
📌 Bump tailwindcss from 3.3.4 to 3.3.5
2023-11-02 22:20:21 +00:00
Nuno Coração 2e71afec00 Merge pull request #1031 from nunocoracao/dependabot/npm_and_yarn/dev/fuse.js-7.0.0
📌 Bump fuse.js from 6.6.2 to 7.0.0
2023-11-02 22:20:03 +00:00
Joshua K 7078f74b2b Remove non-existant site (404)
After browsing some of the pages on the users page of the blowfish site, I have found that there was a site returning a 404. Due to this I decided to remove it to make sure that things work good.

👍
2023-11-02 14:26:42 +11:00
dependabot[bot] 164107c436 💄 Rebuild CSS 2023-11-01 05:50:47 +00:00
dependabot[bot] 52961d3330 📦 Update packaged FuseJS 2023-11-01 05:50:31 +00:00
dependabot[bot] 1ea2c8b416 📌 Bump tailwindcss from 3.3.4 to 3.3.5
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.4 to 3.3.5.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.4...v3.3.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-01 05:50:13 +00:00
dependabot[bot] 46270689c5 📌 Bump fuse.js from 6.6.2 to 7.0.0
Bumps [fuse.js](https://github.com/krisk/Fuse) from 6.6.2 to 7.0.0.
- [Release notes](https://github.com/krisk/Fuse/releases)
- [Changelog](https://github.com/krisk/Fuse/blob/main/CHANGELOG.md)
- [Commits](https://github.com/krisk/Fuse/compare/v6.6.2...v7.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-01 05:50:00 +00:00
Dawid Rejowski 0e798313e0 Add website 2023-10-30 15:15:16 +01:00
Nuno Coração fa75cb4239 Merge pull request #1027 from nunocoracao/dev
🔖 v2.43.1
2023-10-27 22:01:33 +01:00
Nuno Coração b9d2dd1795 update version 2023-10-27 21:59:12 +01:00
Nuno Coração b75f210b11 final release prep 2023-10-27 21:58:49 +01:00
Nuno Coração 0c3443e5a3 Merge pull request #1024 from TheDidek/main
Provide source and attribution for zoom.min.js
2023-10-27 21:58:01 +01:00
Nuno Coração 228ee0b005 Merge pull request #1015 from fuse314/feature/exclude_external_from_sitemap
feat: exclude external pages from Sitemap
2023-10-27 21:47:43 +01:00
Nuno Coração 6e62dc3a7c Merge pull request #1019 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-21.4.1
📌 Bump puppeteer from 21.3.8 to 21.4.1
2023-10-27 21:42:39 +01:00
Nuno Coração 1c513c7c99 Merge pull request #1021 from joush007/add-user-site-joush007
Add user site - Joush007
2023-10-27 21:41:19 +01:00
Nuno Coração 838b44315f Merge branch 'dev' into add-user-site-joush007 2023-10-27 21:41:07 +01:00
Nuno Coração 9056c29702 Merge pull request #1016 from kmalloy24/main
add website
2023-10-27 21:39:37 +01:00
Nuno Coração be6c9ed5cd Merge pull request #1018 from nunocoracao/dependabot/github_actions/dev/actions/setup-node-4
👷 Bump actions/setup-node from 3 to 4
2023-10-27 21:35:32 +01:00
Nuno Coração 474fc9b826 Merge pull request #1020 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss-3.3.4
📌 Bump tailwindcss from 3.3.3 to 3.3.4
2023-10-27 21:35:02 +01:00
Nuno Coração 735f7c30fc Merge pull request #1010 from nunocoracao/dependabot/npm_and_yarn/dev/commander-11.1.0
📌 Bump commander from 11.0.0 to 11.1.0
2023-10-27 21:34:47 +01:00
Dawid Rejowski d5661dd1ff Provide nonminified zoom.js 2023-10-26 23:39:09 +02:00
Dawid Rejowski 378932de99 Add attribution to zoom.min.js 2023-10-26 23:38:34 +02:00
Joshua K 49df416f71 Update users.json 2023-10-26 09:04:12 +11:00
dependabot[bot] 967e7a02ac 💄 Rebuild CSS 2023-10-25 05:49:45 +00:00
dependabot[bot] c5eb8c306e 📌 Bump tailwindcss from 3.3.3 to 3.3.4
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss) from 3.3.3 to 3.3.4.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.3.3...v3.3.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-25 05:49:06 +00:00
dependabot[bot] af40b71951 📌 Bump puppeteer from 21.3.8 to 21.4.1
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 21.3.8 to 21.4.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v21.3.8...puppeteer-v21.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-25 05:48:45 +00:00
dependabot[bot] 270aacb7d9 👷 Bump actions/setup-node from 3 to 4
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-25 05:03:40 +00:00
Kyle Malloy bdc7641114 add website 2023-10-24 12:07:25 -04:00
Gottfried Mayer 10ac37ba29 feat: exclude external pages from Sitemap, include pages with relative externalUrl with correct URL in Sitemap
- Exclude pages with absolute externalUrl from Sitemap
- Include pages with relative externalUrl with correct URL in Sitemap
- Improve output XML (no more linebreaks and spaces)
2023-10-24 12:39:34 +02:00
dependabot[bot] a4c24284da 📌 Bump commander from 11.0.0 to 11.1.0
Bumps [commander](https://github.com/tj/commander.js) from 11.0.0 to 11.1.0.
- [Release notes](https://github.com/tj/commander.js/releases)
- [Changelog](https://github.com/tj/commander.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tj/commander.js/compare/v11.0.0...v11.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-18 05:38:23 +00:00
Nuno Coração c9c5b3d9cf opmitized image size within exampleSite 2023-10-16 21:42:51 +01:00
Nuno Coração e98987a4cd Merge pull request #1007 from nunocoracao/repo-optimizations
Repo optimizations
2023-10-15 19:47:52 +01:00
Nuno Coração 7c3c305035 final 2023-10-15 19:44:35 +01:00
Nuno Coração 4db43644c3 removed resources from repo 2023-10-15 19:12:53 +01:00
Nuno Coração 4755264ed9 removed resources from repo 2023-10-15 19:12:29 +01:00
Nuno Coração 1bfe62ab54 Merge pull request #1006 from nunocoracao/dev
🔖 v2.43.0
2023-10-15 19:07:56 +01:00
Nuno Coração 68a6081a2c removed public folder from repo 2023-10-15 18:58:01 +01:00
Nuno Coração 1b2120f78c user list generation and version bump 2023-10-15 18:48:20 +01:00
Nuno Coração d0933e982a Merge pull request #1001 from wolfspyre/vscode-shortcode-snippets
add vscode code-snippets for blowfish shortcodes
2023-10-15 18:28:01 +01:00
Nuno Coração bc1d9bd855 Merge pull request #1003 from WarFox/patch-1
👤 Add my tech blog url to users.json
2023-10-15 18:24:12 +01:00
Nuno Coração c1290f55b8 Merge pull request #1000 from nunocoracao/dependabot/github_actions/dev/stefanzweifel/git-auto-commit-action-5
👷 Bump stefanzweifel/git-auto-commit-action from 4 to 5
2023-10-15 18:23:19 +01:00
Nuno Coração 82828085f6 Merge pull request #995 from nunocoracao/dependabot/npm_and_yarn/dev/chart.js-4.4.0
📌 Bump chart.js from 4.3.3 to 4.4.0
2023-10-15 18:22:57 +01:00
Nuno Coração 6a55c3ae36 Merge pull request #996 from nunocoracao/dependabot/npm_and_yarn/dev/katex-0.16.9
📌 Bump katex from 0.16.8 to 0.16.9
2023-10-15 18:22:45 +01:00
Nuno Coração d7054a66a9 Merge pull request #1005 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-plugin-tailwindcss-0.5.6
📌 Bump prettier-plugin-tailwindcss from 0.5.2 to 0.5.6
2023-10-15 18:22:31 +01:00
dependabot[bot] 7b96a0180a 📌 Bump prettier-plugin-tailwindcss from 0.5.2 to 0.5.6
Bumps [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss) from 0.5.2 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/prettier-plugin-tailwindcss/compare/v0.5.2...v0.5.6)

---
updated-dependencies:
- dependency-name: prettier-plugin-tailwindcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-15 17:18:53 +00:00
Nuno Coração 4986c70d09 Merge pull request #998 from nunocoracao/dependabot/npm_and_yarn/dev/prettier-3.0.3
📌 Bump prettier from 3.0.1 to 3.0.3
2023-10-15 18:18:20 +01:00
Nuno Coração 0515d4b1a9 Merge pull request #999 from nunocoracao/dependabot/npm_and_yarn/dev/puppeteer-21.3.8
📌 Bump puppeteer from 21.0.3 to 21.3.8
2023-10-15 18:18:08 +01:00
Nuno Coração 71930df3fa Merge pull request #1004 from nunocoracao/dependabot/npm_and_yarn/postcss-8.4.31
Bump postcss from 8.4.23 to 8.4.31
2023-10-15 18:17:54 +01:00
dependabot[bot] 3e38f9bc9d Bump postcss from 8.4.23 to 8.4.31
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.23 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.23...8.4.31)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-15 17:14:36 +00:00
Deepu Mohan Puthrote 9dbcea859d Add my tech blog url to users.json 2023-10-13 22:36:20 +01:00
Wolf Noble 5763d2083e add vscode code-snippets for blowfish shortcodes 2023-10-11 14:51:46 -05:00
dependabot[bot] 97e82579c3 👷 Bump stefanzweifel/git-auto-commit-action from 4 to 5
Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 4 to 5.
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: stefanzweifel/git-auto-commit-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 05:37:08 +00:00
dependabot[bot] 14478e5f15 📌 Bump puppeteer from 21.0.3 to 21.3.8
Bumps [puppeteer](https://github.com/puppeteer/puppeteer) from 21.0.3 to 21.3.8.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](https://github.com/puppeteer/puppeteer/compare/puppeteer-v21.0.3...puppeteer-v21.3.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 05:11:43 +00:00
dependabot[bot] 409649cb7b 📦 Update packaged ChartJS 2023-10-11 05:11:37 +00:00
dependabot[bot] 24ea6f175b 📦 Update packaged KaTeX 2023-10-11 05:11:37 +00:00
dependabot[bot] 7cc592be7a 📌 Bump prettier from 3.0.1 to 3.0.3
Bumps [prettier](https://github.com/prettier/prettier) from 3.0.1 to 3.0.3.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.0.1...3.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 05:11:23 +00:00
dependabot[bot] 8bfc2ee56b 📌 Bump katex from 0.16.8 to 0.16.9
Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.8 to 0.16.9.
- [Release notes](https://github.com/KaTeX/KaTeX/releases)
- [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md)
- [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.8...v0.16.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 05:10:59 +00:00
dependabot[bot] 0456173ce5 📌 Bump chart.js from 4.3.3 to 4.4.0
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.3.3 to 4.4.0.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.3.3...v4.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 05:10:48 +00:00
Nuno Coração 8531993279 Merge pull request #991 from nunocoracao/dev
🔖 v2.42.0
2023-10-05 21:13:45 +01:00
Nuno Coração 5701c3fc12 final changes before release 2023-10-05 21:09:03 +01:00
Nuno Coração 12b608f3ca Merge pull request #985 from nunocoracao/dependabot/npm_and_yarn/dev/rimraf-5.0.5
📌 Bump rimraf from 5.0.1 to 5.0.5
2023-10-05 20:46:31 +01:00
Nuno Coração 8b96d182a8 Merge pull request #986 from nunocoracao/dependabot/npm_and_yarn/dev/headlessui/react-1.7.17
📌 Bump @headlessui/react from 1.7.16 to 1.7.17
2023-10-05 20:46:18 +01:00
Nuno Coração 78b87e60b9 Merge pull request #987 from nunocoracao/dependabot/npm_and_yarn/dev/tw-elements-1.0.0
📌 Bump tw-elements from 1.0.0-beta3 to 1.0.0
2023-10-05 20:46:05 +01:00
Nuno Coração 3b6817b0f8 Merge pull request #988 from nunocoracao/dependabot/npm_and_yarn/dev/tailwindcss/forms-0.5.6
📌 Bump @tailwindcss/forms from 0.5.4 to 0.5.6
2023-10-05 20:45:52 +01:00
Nuno Coração f3e4246db1 Merge pull request #989 from nunocoracao/dependabot/npm_and_yarn/dev/jquery-3.7.1
📌 Bump jquery from 3.7.0 to 3.7.1
2023-10-05 20:45:36 +01:00
Nuno Coração 23772af8fe Merge pull request #979 from rlan/main
Add my website
2023-10-05 20:44:30 +01:00
Nuno Coração 5af39e116e Delete exampleSite/content/users/ricklan.photography/index.md 2023-10-05 20:43:35 +01:00
Nuno Coração bd7d43561e added new arabic language entry to docs 2023-10-05 20:42:30 +01:00
Nuno Coração 32ac1de4d2 Merge pull request #975 from ajmandourah/main
🎏 Adding arabic languag + shortcodes for ltr/rtl
2023-10-05 20:39:54 +01:00
Nuno Coração 30559800cb added link to blowfish guide 2023-10-05 20:37:16 +01:00
dependabot[bot] 4baf448a5e 💄 Rebuild CSS 2023-10-04 05:11:47 +00:00
dependabot[bot] b5471d52ae 💄 Rebuild CSS 2023-10-04 05:11:35 +00:00
dependabot[bot] e434fe9c99 💄 Rebuild CSS 2023-10-04 05:11:31 +00:00
dependabot[bot] 4a660645d4 💄 Rebuild CSS 2023-10-04 05:11:22 +00:00
dependabot[bot] 870d126a8f 💄 Rebuild CSS 2023-10-04 05:11:08 +00:00
dependabot[bot] 962dbb3dd3 📌 Bump jquery from 3.7.0 to 3.7.1
Bumps [jquery](https://github.com/jquery/jquery) from 3.7.0 to 3.7.1.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.7.0...3.7.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-04 05:11:02 +00:00
dependabot[bot] 53918411a0 📌 Bump @tailwindcss/forms from 0.5.4 to 0.5.6
Bumps [@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms) from 0.5.4 to 0.5.6.
- [Release notes](https://github.com/tailwindlabs/tailwindcss-forms/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss-forms/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.4...v0.5.6)

---
updated-dependencies:
- dependency-name: "@tailwindcss/forms"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-04 05:10:53 +00:00
dependabot[bot] ed57d748a2 📌 Bump tw-elements from 1.0.0-beta3 to 1.0.0
Bumps [tw-elements](https://github.com/mdbootstrap/Tailwind-Elements) from 1.0.0-beta3 to 1.0.0.
- [Release notes](https://github.com/mdbootstrap/Tailwind-Elements/releases)
- [Commits](https://github.com/mdbootstrap/Tailwind-Elements/compare/v1.0.0-beta3...v1.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-04 05:10:44 +00:00
dependabot[bot] b5dd43eab0 📌 Bump @headlessui/react from 1.7.16 to 1.7.17
Bumps [@headlessui/react](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react) from 1.7.16 to 1.7.17.
- [Release notes](https://github.com/tailwindlabs/headlessui/releases)
- [Changelog](https://github.com/tailwindlabs/headlessui/blob/main/packages/@headlessui-react/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/headlessui/commits/@headlessui/react@v1.7.17/packages/@headlessui-react)

---
updated-dependencies:
- dependency-name: "@headlessui/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-04 05:10:36 +00:00
dependabot[bot] 8b75721494 📌 Bump rimraf from 5.0.1 to 5.0.5
Bumps [rimraf](https://github.com/isaacs/rimraf) from 5.0.1 to 5.0.5.
- [Changelog](https://github.com/isaacs/rimraf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/rimraf/compare/v5.0.1...v5.0.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-04 05:10:25 +00:00
Rick Lan 994f30d0fc Add website 2023-10-01 09:08:43 +09:00
ajmandourah 54a1595f2f Merge branch 'main' of https://github.com/ajmandourah/blowfish 2023-09-29 08:16:06 +03:00
ajmandourah 8557ad92bb code highlighting. 2023-09-29 08:16:02 +03:00
ajmandourah c9474e425d Merge branch 'nunocoracao:main' into main 2023-09-29 08:08:46 +03:00
ajmandourah aaa76e04d3 adding LTR/RTL shortcodes to the docs + implement Tailwind classes for the ltr/rtl shortcodes 2023-09-29 08:04:48 +03:00
Nuno Coração 4815406fe5 Merge pull request #978 from nunocoracao/dev
🔖 v2.41.1
2023-09-29 01:01:37 +01:00
Nuno Coração ea8793fac8 updated user list and changed style 2023-09-29 00:59:21 +01:00
Nuno Coração d1f6b62606 Update dependabot.yml 2023-09-29 00:38:28 +01:00
Nuno Coração d6859f6168 Merge pull request #977 from nunocoracao/961-cut-a-new-release-which-bumps-tailwindcss-typography-to-0510-for-dtdl-support
👷🏼 bumped tailwindcss/typography version
2023-09-29 00:36:11 +01:00
Nuno Coração ec3c638f20 bumped tailwindcss/typography version 2023-09-29 00:35:32 +01:00
Nuno Coração 09f5b9a55d Merge pull request #974 from ChristianHering/main
🐛 Fix tel:, ftp:, etc URLs For Author Links
2023-09-29 00:15:41 +01:00
Nuno Coração 5361f2c5df Merge pull request #969 from almazkun/main
🐛 fix: broken links in samples
2023-09-29 00:14:06 +01:00
Nuno Coração ee96370a3b Merge pull request #970 from ohdmire/main
Update users.json
2023-09-29 00:12:54 +01:00
Nuno Coração 1dae62baa7 Merge branch 'dev' into main 2023-09-29 00:12:47 +01:00
Nuno Coração 7c8aac7fb0 Merge pull request #965 from adilhyz/main
Update users.json
2023-09-29 00:11:44 +01:00
Nuno Coração d0eb74c10f Merge branch 'dev' into main 2023-09-29 00:11:36 +01:00
Nuno Coração 445b23b874 Merge pull request #962 from scottmckendry/patch-1
Add scottmckendry.tech to users
2023-09-29 00:10:22 +01:00
Nuno Coração 574d0f16a7 Merge branch 'dev' into patch-1 2023-09-29 00:10:05 +01:00
Nuno Coração c0033de00e fixed small typo 2023-09-29 00:08:41 +01:00
Nuno Coração 04a6b626c7 Merge pull request #951 from fuse314/feature/users-gma-mayer
feat: add gma.name and mayer.life to active users list
2023-09-29 00:07:25 +01:00
Nuno Coração e98c89daa7 Merge branch 'dev' into feature/users-gma-mayer 2023-09-29 00:07:16 +01:00
Nuno Coração df41cfd725 Merge pull request #950 from mtheindiecoder/mtheindiecoder-patch-1
Update users.json
2023-09-29 00:05:11 +01:00
Nuno Coração 3a0f07b0f3 Merge pull request #976 from nunocoracao/968-add-support-for-hugo-v01190
⚙️ added support for Hugo v0.119.0
2023-09-29 00:03:54 +01:00
Nuno Coração 06d9bff485 added support for Hugo v0.119.0 2023-09-29 00:02:48 +01:00
ajmandourah 06d9e18599 Adding arabic languag + shortcodes for ltr/rtl 2023-09-28 14:26:19 +03:00
Christian Hering b2a05f09cd Fix tel:, ftp:, etc URLs For Author Links
Added safeURL to author links so that ftp and phone links work correctly. See Hugo documentation for more information:
https://gohugo.io/functions/safeurl/
2023-09-28 03:11:36 -05:00
ohdmire 3fa4fbcfb5 Update users.json
add ohdmire.github.io
2023-09-26 22:02:34 +08:00
Almaz 533dfaf56a fix: broken links in samples 2023-09-26 17:41:43 +09:00
adilhyz 8b33d98f7b Fix img 2023-09-25 15:56:22 +07:00
adilhyz 749b9dac1c adding my site 2023-09-25 11:20:35 +07:00
Sanrei 5e5d77a577 Update users.json
added adilhyz user
2023-09-23 17:55:46 +07:00
Scott McKendry 54059b0e57 Add scottmckendry.tech to users 2023-09-22 14:13:04 +12:00
Gottfried Mayer c0b196834f feat: add gma.name and mayer.life to active users list 2023-09-13 22:46:41 +02:00
mtheindiecoder 0930093773 Merge branch 'main' into mtheindiecoder-patch-1 2023-09-12 22:06:05 +02:00
Nuno Coração 6a83762f12 Merge pull request #948 from nunocoracao/dev
🔖 v.2.41.0
2023-09-12 11:34:57 +01:00
Nuno Coração be3a6aa16b updated user list content 2023-09-12 11:33:43 +01:00
Nuno Coração 6a61b8f50e updated version 2023-09-12 11:31:05 +01:00
Nuno Coração e92a664196 Merge pull request #947 from nunocoracao/add-user-moccolfc
👤 Add user moccolfc
2023-09-12 11:25:00 +01:00
Nuno Coração b8548af007 add user moccolfc to user list 2023-09-12 11:24:14 +01:00
Nuno Coração 31ba51515c Merge pull request #944 from fuse314/feature/figure_nozoom
🖼️ figure with nozoom
2023-09-12 11:18:19 +01:00
Nuno Coração 19761bf3f5 Merge pull request #946 from nunocoracao/945-update-theme-to-be-compatible-with-hugo-v01182
⚙️ Added support for Hugo v0.118.2
2023-09-12 11:13:19 +01:00
Nuno Coração c69ce15924 fixed support for latest version of Hugo 2023-09-12 11:12:08 +01:00
Nuno Coração 297ab4ae45 Merge pull request #939 from nunocoracao/dependabot/github_actions/dev/actions/checkout-4
👷 Bump actions/checkout from 3 to 4
2023-09-12 11:03:19 +01:00
dependabot[bot] 05d7810940 👷 Bump actions/checkout from 3 to 4
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-10 05:25:07 +00:00
Nuno Coração a7933ea949 Merge pull request #924 from jamesbraza/removing-article-showsummary
🔧 Removed `article.showSummary`
2023-08-29 22:42:57 +01:00
Nuno Coração f94115f8b6 Merge pull request #926 from jamesbraza/sub-category-clarifications
📖 Clarifying sub-menu docs
2023-08-29 22:37:09 +01:00
Nuno Coração 03675528c2 Merge pull request #935 from JahsehJ/dev
🎨 Adjust margin-top for a more balanced look
2023-08-29 22:32:21 +01:00
JahsehJ e381e9bb03 Adjust margin-top for a more balanced look 2023-08-29 06:59:42 -07:00
Gottfried Mayer 4790d18acc feat: docs for nozoom attribute on figure shortcode 2023-08-28 21:21:06 +02:00
Gottfried Mayer ea2f848064 feat: add nozoom attribute to figure 2023-08-28 21:14:06 +02:00
mtheindiecoder 06b291dd8d Update users.json
added theindiecoder user
2023-08-21 21:45:44 +02:00
James Braza 2379ef80a2 Documented default name, fixed typo in categories and clarifies what's meant 2023-08-17 22:13:50 -07:00
James Braza ee83ed46aa Removed all article.showSummary instances 2023-08-17 22:05:18 -07:00
Nuno Coração 6e0164d0e4 Merge pull request #923 from nunocoracao/dev
🔖 v2.40.1
2023-08-17 22:16:38 +01:00
Nuno Coração 45819c5dba updated version 2023-08-17 22:16:02 +01:00
Nuno Coração b18dbe2713 Merge pull request #922 from nunocoracao/revert-920-main
Revert "🖌️ Add strava link with icon"
2023-08-17 22:13:36 +01:00
Nuno Coração f67922fc47 Revert "🖌️ Add strava link with icon" 2023-08-17 22:12:55 +01:00
Nuno Coração f55ba5bb64 updated docs 2023-08-17 22:12:46 +01:00
Nuno Coração 52bbe6ff93 Merge pull request #920 from EmilienMottet/main
🖌️ Add strava link with icon
2023-08-17 22:04:01 +01:00
Nuno Coração 55bb0db3ac Merge pull request #921 from nunocoracao/886-adding-gallery-shortcode-to-multiple-timeline-items-breaks-lay-out
🐛 updated logic for unique ids in shortcodes
2023-08-17 22:02:57 +01:00
Nuno Coração 96fdb6db8b updated logic for unique ids in shortcodes 2023-08-17 22:01:42 +01:00
Emilien Mottet 968d1ccc12 Add strava example 2023-08-17 17:58:29 +02:00
Emilien Mottet 08e80d235f Add strava svg 2023-08-17 17:57:11 +02:00
2656 changed files with 1116286 additions and 25876 deletions

No files matched your search

+3 -2
View File
@@ -7,7 +7,8 @@ updates:
directory: "/"
target-branch: "dev"
schedule:
interval: "daily"
interval: "weekly"
day: "wednesday"
commit-message:
prefix: "📌"
labels:
@@ -17,7 +18,7 @@ updates:
target-branch: "dev"
schedule:
interval: "weekly"
day: "sunday"
day: "wednesday"
commit-message:
prefix: "👷"
labels:
+13 -6
View File
@@ -8,37 +8,44 @@ jobs:
if: ${{ github.actor == 'dependabot[bot]' }}
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: "${{ github.head_ref }}"
- name: Install dependencies and Build Theme
uses: actions/setup-node@v3
uses: actions/setup-node@v4
- run: npm install
- run: npm run assets
- name: Commit and push Chart.js changes
uses: stefanzweifel/git-auto-commit-action@v4
uses: stefanzweifel/git-auto-commit-action@v5
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
file_pattern: "assets/lib/chart/*"
commit_message: "📦 Update packaged ChartJS"
- name: Commit Fuse changes
uses: stefanzweifel/git-auto-commit-action@v4
uses: stefanzweifel/git-auto-commit-action@v5
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
file_pattern: "assets/lib/fuse/*"
commit_message: "📦 Update packaged FuseJS"
- name: Commit KaTeX changes
uses: stefanzweifel/git-auto-commit-action@v4
uses: stefanzweifel/git-auto-commit-action@v5
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
file_pattern: "assets/lib/katex/*"
commit_message: "📦 Update packaged KaTeX"
- name: Commit Mermaid changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
file_pattern: "assets/lib/mermaid/*"
commit_message: "📦 Update packaged Mermaid"
- run: npm run build
- name: Commit CSS changes
uses: stefanzweifel/git-auto-commit-action@v4
uses: stefanzweifel/git-auto-commit-action@v5
with:
branch: "${{ github.head_ref }}"
push_options: "--dry-run"
+5 -2
View File
@@ -7,12 +7,15 @@ jobs:
steps:
- name: Hugo setup
uses: peaceiris/actions-hugo@v2.6.0
uses: peaceiris/actions-hugo@v3.0.0
with:
hugo-version: 0.120.4
extended: true
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
- name: Check out code into the Go module directory
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
+5 -2
View File
@@ -9,12 +9,15 @@ jobs:
steps:
- name: Hugo setup
uses: peaceiris/actions-hugo@v2.6.0
uses: peaceiris/actions-hugo@v3.0.0
with:
hugo-version: 0.120.4
extended: true
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true'
- name: Check out code into the Go module directory
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
+53
View File
@@ -0,0 +1,53 @@
name: Update Hugo version
on:
schedule:
- cron: '0 6 * * *'
workflow_dispatch:
jobs:
updateBlowfish:
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
ref: dev
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Fetch release version
id: fetch-release
run: |
curl -sL https://api.github.com/repos/gohugoio/hugo/releases/latest | \
jq -r ".tag_name" > release-versions/hugo-latest.txt
- name: Check for modified files
id: git-check
run: echo ::set-output name=modified::$([ -z "`git status --porcelain`" ] && echo "false" || echo "true")
- name: Update config.toml
id: update-config
if: steps.git-check.outputs.modified == 'true'
run: |
cat release-versions/hugo-latest.txt | \
while read version; do sed -i'' -E "s/(max = \")[0-9]+\.[0-9]+\.[0-9]+(\")/\1${version#v}\2/g" config.toml; done
- name: Create Pull Request
if: steps.git-check.outputs.modified == 'true'
uses: peter-evans/create-pull-request@v6
with:
commit-message: Update Hugo supported version
title: ⚙️ Update Hugo supported version
body: |
Updates [Hugo][1] support
Auto-generated by [create-pull-request][2]
[1]: https://github.com/gohugoio/hugo
[2]: https://github.com/peter-evans/create-pull-request
labels: dependencies, automated pr
branch: hugo-new-version
base: dev
+4 -4
View File
@@ -37,12 +37,12 @@ jobs:
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Pages
id: pages
uses: actions/configure-pages@v3
uses: actions/configure-pages@v5
- name: Build with Hugo
env:
# For maximum backward compatibility with Hugo modules
@@ -51,7 +51,7 @@ jobs:
run: |
hugo --minify -s exampleSite --themesDir ../.. -d ../docs --baseURL https://nunocoracao.github.io/blowfish/
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
uses: actions/upload-pages-artifact@v3
with:
path: ./docs
@@ -65,4 +65,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
uses: actions/deploy-pages@v4
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
pull-requests: write
steps:
- uses: actions/stale@v8
- uses: actions/stale@v9
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'This issue will be closed since it has been stale for 60 days.'
+2 -2
View File
@@ -10,13 +10,13 @@ jobs:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2.6.0
uses: peaceiris/actions-hugo@v3.0.0
with:
hugo-version: "latest"
+8
View File
@@ -1,3 +1,8 @@
# Hugo and Blowfish
public/
resources/
exampleSite/resources/
# Binaries for programs and plugins
*.exe
*.exe~
@@ -24,3 +29,6 @@ node_modules
._*
.Spotlight-V100
.Trashes
.idea
.Ulysses-Group.plist
.Ulysses-Settings.plist
+211
View File
@@ -0,0 +1,211 @@
{
"alert": {
"prefix": ["BFS-alert", "HSC-alert", "alert"],
"body": [
"{{< alert ${1| ,icon=\"iconName\"|}${2| , iconColor=\"iconColor\"|}${3| , cardColor=\"cardColor\"|}${4| , textColor=\"textColor\"|} >}}",
"${TM_SELECTED_TEXT:${CLIPBOARD}}$0",
"{{< /alert >}}"
],
"description": "Outputs its contents as a stylised message box within your article. Blowfish alert Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#alert ",
},
"article": {
"prefix": ["BFS-article", "HSC-article", "article"],
"body": [
"{{< article link=\"${1:RelPermalink_Of_Target_Article}\">}}",
"$0"
],
"description": " Embed a single article into a markdown file. The link to the file should be the .RelPermalink of the file to be embedded. Blowfish article Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#article ",
},
"badge": {
"prefix": ["BFS-badge", "HSC-badge", "badge"],
"body": [
"{{< badge >}}",
"${TM_SELECTED_TEXT:${CLIPBOARD}}$0",
"{{< /badge >}}"
],
"description": "Outputs a styled badge component which is useful for displaying metadata. Blowfish badge Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#badge ",
},
"button": {
"prefix": ["BFS-button", "HSC-button", "button"],
"body": [
"{{< button href=\"${1:url}\" target=\"${2:target}\" >}}",
"${TM_SELECTED_TEXT:${CLIPBOARD}}$0",
"{{< /button >}}"
],
"description": "Output a styled button component which can be used to highlight a primary action. Blowfish button Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#button ",
},
"carousel": {
"prefix": ["BFS-carousel", "HSC-carousel", "carousel"],
"body": [
"{{< carousel images=\"{${1:regex matching images }}\" aspectRatio=\"${2|16-9,21-9,32-9|}\" interval=\"${3:2000}\" >}}",
"$0"
],
"description": "Showcase multiple images in an interactive and visually appealing way. Blowfish carousel Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#carousel ",
},
"chart-bar": {
"prefix": ["BFS-chart-bar", "HSC-chart-bar", "chart-bar"],
"body": [
"{{< chart >}} $0<!-- https://www.chartjs.org/docs/latest/samples/information.html -->",
"type: 'bar',\r\ndata: {\r\n labels: ['January', 'February', 'March'],\r\n datasets: [{\r\n label: 'My First Dataset',\r\n data: [65, 59, 80],\r\n backgroundColor: [\r\n 'rgba(255, 99, 132, 0.2)',\r\n 'rgba(255, 159, 64, 0.2)',\r\n 'rgba(255, 205, 86, 0.2)'\r\n ],\r\n borderColor: [ \r\n 'rgb(255, 99, 132)',\r\n 'rgb(255, 159, 64)',\r\n 'rgb(255, 205, 86)'\r\n ],\r\n borderWidth: 1\r\n }]\r\n}"
"{{< /chart >}}"
],
"description": "Use the Chart.js library to embed charts into articles using simple structured data. Blowfish chart Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#chart ",
},
"chart-doughnut": {
"prefix": ["BFS-chart-doughnut", "HSC-chart-doughnut", "chart-doughnut"],
"body": [
"{{< chart >}} $0<!-- https://www.chartjs.org/docs/latest/samples/information.html -->",
"type: 'doughnut',\r\ndata: {\r\n labels: ['Red', 'Blue', 'Yellow'],\r\n datasets: [{\r\n label: 'My First Dataset',\r\n data: [300, 50, 100],\r\n backgroundColor: [\r\n 'rgba(255, 99, 132, 0.7)',\r\n 'rgba(54, 162, 235, 0.7)',\r\n 'rgba(255, 205, 86, 0.7)'\r\n ],\r\n borderWidth: 0,\r\n hoverOffset: 4\r\n }]\r\n}",
"{{< /chart >}}"
],
"description": "Use the Chart.js library to embed charts into articles using simple structured data. Blowfish chart Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#chart ",
},
"chart-line": {
"prefix": ["BFS-chart-line", "HSC-chart-line", "chart-line"],
"body": [
"{{< chart >}} $0<!-- https://www.chartjs.org/docs/latest/samples/information.html -->",
"type: 'line',\r\ndata: {\r\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\r\n datasets: [{\r\n label: 'My First Dataset',\r\n data: [65, 59, 80, 81, 56, 55, 40],\r\n tension: 0.2\r\n }]\r\n}",
"{{< /chart >}}"
],
"description": "Use the Chart.js library to embed charts into articles using simple structured data. Blowfish chart Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#chart ",
},
"chart": {
"prefix": ["BFS-chart", "HSC-chart", "chart"],
"body": [
"{{< chart >}} $0<!-- https://www.chartjs.org/docs/latest/samples/information.html -->",
"type: 'bar',\r\ndata: {\r\n labels: ['January', 'February', 'March'],\r\n datasets: [{\r\n label: 'My First Dataset',\r\n data: [65, 59, 80],\r\n backgroundColor: [\r\n 'rgba(255, 99, 132, 0.2)',\r\n 'rgba(255, 159, 64, 0.2)',\r\n 'rgba(255, 205, 86, 0.2)'\r\n ],\r\n borderColor: [ \r\n 'rgb(255, 99, 132)',\r\n 'rgb(255, 159, 64)',\r\n 'rgb(255, 205, 86)'\r\n ],\r\n borderWidth: 1\r\n }]\r\n}",
"type: 'doughnut',\r\ndata: {\r\n labels: ['Red', 'Blue', 'Yellow'],\r\n datasets: [{\r\n label: 'My First Dataset',\r\n data: [300, 50, 100],\r\n backgroundColor: [\r\n 'rgba(255, 99, 132, 0.7)',\r\n 'rgba(54, 162, 235, 0.7)',\r\n 'rgba(255, 205, 86, 0.7)'\r\n ],\r\n borderWidth: 0,\r\n hoverOffset: 4\r\n }]\r\n}",
"type: 'line',\r\ndata: {\r\n labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],\r\n datasets: [{\r\n label: 'My First Dataset',\r\n data: [65, 59, 80, 81, 56, 55, 40],\r\n tension: 0.2\r\n }]\r\n}",
"{{< /chart >}}"
],
"description": "Use the Chart.js library to embed charts into articles using simple structured data. Blowfish chart Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#chart ",
},
"figure": {
"prefix": ["BFS-figure", "HSC-figure", "figure"],
"body": [
"{{< figure src=\"${1:asset-src}\"${2| , alt=\"2:alt text\"|}${3| , caption=\"MD String to display beneath asset\"|}${4| , class=\"CSS Class to add to asset\"|}${5| , href=\"url to link asset to\"|}${6| , nozoom=true, nozoom=false|}${7| , default=true|} >}}",
],
"description": "Add images to content. Blowfish figure Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#figure ",
},
"gallery": {
"prefix": ["BFS-gallery", "HSC-gallery", "gallery"],
"body": [
"{{< gallery >}}",
"<img src=\"image-uri-here\" class=\"${1|grid-w5,grid-w10,grid-w15,grid-w20,grid-w25,grid-w30,grid-w33,grid-w35,grid-w40,grid-w45,grid-w50,grid-w55,grid-w60,grid-w65,grid-w66,grid-w70,grid-w75,grid-w80,grid-w85,grid-w90,grid-w95,grid-w100|}\" />",
"<img src=\"image-uri-here\" class=\"grid-w50 md:grid-w33 xl:grid-w25\" />",
"$0",
"{{< /gallery >}}"
],
"description": "Showcase multiple images at once, in a responsive manner with more varied and interesting layouts. Blowfish gallery Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#gallery ",
},
"github": {
"prefix": ["BFS-github", "HSC-github", "github"],
"body": [
"{{< github repo=\"${1:nunocoracao/blowfish}\" >}}$0",
],
"description": "Quickly link a github repository. Blowfish github Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#github ",
},
"gitlab": {
"prefix": ["BFS-gitlab", "HSC-gitlab", "gitlab"],
"body": [
"{{< gitlab projectID=\"${1:278964}\"${2| , baseURL=\"https://gitlab.com\"|}$0 >}}",
],
"description": "Quickly link a GitLab Project. Blowfish gitlab Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#gitlab ",
},
"icon": {
"prefix": ["BFS-icon", "HSC-icon", "icon"],
"body": [
"{{< icon \"${1:star}$0\" >}}",
],
"description": "Output an SVG icon. Blowfish icon Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#icon ",
},
"katex": {
"prefix": ["BFS-katex", "HSC-katex", "katex"],
"body": [
"{{< katex >}}",
"$0"
],
"description": "Add mathematical expressions to article content using the KaTeX package. Blowfish katex Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#katex ",
},
"lead": {
"prefix": ["BFS-lead", "HSC-lead", "lead"],
"body": [
"{{< lead >}}",
"${TM_SELECTED_TEXT:${CLIPBOARD}}$0",
"{{< /lead >}}"
],
"description": "Bring emphasis to the start of an article. Blowfish lead Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#lead ",
},
"list": {
"prefix": ["BFS-list", "HSC-list", "list"],
"body": [
"{{< list limit=\"${1:5}\"${2| , title=\"Recent\"|}${3| , where=\"Type\"|}${4| ,value=\"article\"|} >}}",
"{{/* The where and value values are used in the following query where .Site.RegularPages $where $value in the code of the shortcode. See Hugo Docs: https://gohugo.io/variables/page/ */}} $0",
],
"description": "Display a list of recent articles. Blowfish list Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#list ",
},
"ltr": {
"prefix": ["BFS-ltr", "HSC-ltr", "ltr"],
"body": [
"{{% ltr %}}",
"${TM_SELECTED_TEXT:${CLIPBOARD}}$0",
"{{% /ltr %}}"
],
"description": "Allows you to mix your contents' reading direction. Blowfish ltr Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#ltr ",
},
"mermaid": {
"prefix": ["BFS-mermaid", "HSC-mermaid", "mermaid"],
"body": [
"{{< mermaid >}}",
"${TM_SELECTED_TEXT:${CLIPBOARD}}$0",
"{{< /mermaid >}}"
],
"description": "Draw detailed diagrams and visualisations using text. Blowfish mermaid Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#mermaid ",
},
"rtl": {
"prefix": ["BFS-rtl", "HSC-rtl", "rtl"],
"body": [
"{{% rtl %}}",
"${TM_SELECTED_TEXT:${CLIPBOARD}}$0",
"{{% /rtl %}}"
],
"description": "allows you to mix your contents. Blowfish rtl Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#rtl ",
},
"swatches": {
"prefix": ["BFS-swatches", "HSC-swatches", "swatches"],
"body": [
"{{< swatches \"#${1:00ff00}\"${2| , \"#0000FF\"|}${3| , \"#FF00FF\"|} >}}$0",
],
"description": "Output a set of up to three different colors. Blowfish swatches Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#swatches ",
},
"timeline": {
"prefix": ["BFS-timeline", "HSC-timeline", "timeline"],
"body": [
"{{< timeline >}}",
"{{< timelineItem ${1| , icon=\"star\"|}${2| , header=\"Header\"|}${3| , badge=\"Badge Text\"|}${4| , subheader=\"SubHeader\"|} >}}",
"${TM_SELECTED_TEXT:${CLIPBOARD}}$0",
"{{< /timelineItem >}}",
"{{< /timeline >}}"
],
"description": "Create a linear visual timeline that can be used in different use-cases. Blowfish timeline Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#timeline ",
},
"timelineItem": {
"prefix": ["BFS-timelineItem", "HSC-timelineItem", "timelineItem"],
"body": [
"{{< timelineItem ${1| , icon=\"star\"|}${2| , header=\"Header\"|}${3| , badge=\"Badge Text\"|}${4| , subheader=\"SubHeader\"|} >}}",
"${TM_SELECTED_TEXT:${CLIPBOARD}}$0",
"{{< /timelineItem >}}",
],
"description": "Create an element within a timeline. Blowfish timelineItem Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#timeline ",
},
"typeit": {
"prefix": ["BFS-typeit", "HSC-typeit", "typeit"],
"body": [
"${1:Type-Initial-String-then-press-tab}\r{{< typeit tag=\"${2|div,span,aside,p,header,footer,main,section,h1,h2,h3,h4,h5,h6,hgroup,code,kbd,q,samp,portal|}\"${3| , classList=\"rounded\"|} initialString=\"${1:Type-Initial-Text-and-hit-tab}\"${4| , speed=\"19\"|}${5| , lifeLike=true, lifeLike=false|}${6| , startDelay=\"250\"|}${7| , breakLines=true, breakLines=false|}${8| , waitUntilVisible=true, waitUntilVisible=false|}${9| , loop=true, loop=false|} >}}",
"${TM_SELECTED_TEXT:$CLIPBOARD} $0",
"{{< /typeit >}}"
],
"description": "Typewriter-Like text. Blowfish typeit Shortcode. Documentation: https://blowfish.page/docs/shortcodes/#typeit https://www.typeitjs.com/docs/vanilla/usage/ ",
},
}
+237
View File
@@ -0,0 +1,237 @@
# [Making VSCode Snippets][vscode-snippets-docs]
This info sourced from: [VSCode's docs][vscode-snippets-docs]
A useful bit of info is that VSCode Snippets are intended to be compatible with [textmate code snippets](https://macromates.com/textmate/manual/snippets)
## [Creating your own](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets)
### [File template snippets](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_file-template-snippets)
You can add the `isFileTemplate` attribute to your snippet's definition if the snippet is intended to populate or replace a file's contents. File template snippets are displayed in a dropdown when you run the **Snippets: Populate File from Snippet** command in a new or existing file.
## [Snippet scope](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_snippet-scope)
Snippets are scoped so that only relevant snippets are suggested. Snippets can be scoped by either:
1. the **language(s)** to which snippets are scoped (possibly all)
2. the **project(s)** to which snippets are scoped (probably all)
### [Language snippet scope](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_language-snippet-scope)
Every snippet is scoped to one, several, or all ("global") languages based on whether it is defined in:
1. a **language** snippet file
2. a **global** snippet file
Single-language user-defined snippets are defined in a specific language's snippet file (for example `javascript.json`), which you can access by language identifier through **Snippets: Configure User Snippets**. A snippet is only accessible when editing the language for which it is defined.
Multi-language and global user-defined snippets are all defined in "global" snippet files (JSON with the file suffix `.code-snippets`), which is also accessible through **Snippets: Configure User Snippets**. In a global snippets file, a snippet definition may have an additional `scope` property that takes one or more [language identifiers](https://code.visualstudio.com/docs/languages/identifiers), which makes the snippet available only for those specified languages. If no `scope`property is given, then the global snippet is available in **all** languages.
Most user-defined snippets are scoped to a single language, and so are defined in a language-specific snippet file.
### [Project snippet scope](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_project-snippet-scope)
You can also have a global snippets file (JSON with file suffix `.code-snippets`) scoped to your project. Project-folder snippets are created with the **New Snippets file for ''...** option in the **Snippets: Configure User Snippets** dropdown menu and are located at the root of the project in a `.vscode` folder. Project snippet files are useful for sharing snippets with all users working in that project. Project-folder snippets are similar to global snippets and can be scoped to specific languages through the `scope` property.
## [Snippet syntax](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_snippet-syntax)
The `body` of a snippet can use special constructs to control cursors and the text being inserted. The following are supported features and their syntaxes:
### [Tabstops](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_tabstops)
With tabstops, you can make the editor cursor move inside a snippet. Use `$1`, `$2` to specify cursor locations. The number is the order in which tabstops will be visited, whereas `$0` denotes the final cursor position. Multiple occurrences of the same tabstop are linked and updated in sync.
### [Placeholders](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_placeholders)
Placeholders are tabstops with values, like `${1:foo}`. The placeholder text will be inserted and selected such that it can be easily changed.
Placeholders can be nested, like `${1:another ${2:placeholder}}`.
### [Choice](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_choice)
Placeholders can have choices as values. The syntax is a comma-separated enumeration of values, enclosed with the pipe-character, for example `${1|one,two,three|}`. When the snippet is inserted and the placeholder selected, choices will prompt the user to pick one of the values.
### [Variables](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variables)
With `$name` or `${name:default}`, you can insert the value of a variable. When a variable isn't set, its **default** or the empty string is inserted. When a variable is unknown (that is, its name isn't defined) the name of the variable is inserted and it is transformed into a placeholder.
The following variables can be used:
`TM_SELECTED_TEXT`
: The currently selected text or the empty string
`TM_CURRENT_LINE`
: The contents of the current line
`TM_CURRENT_WORD`
: The contents of the word under cursor or the empty string
`TM_LINE_INDEX`
: The zero-index based line number
`TM_LINE_NUMBER`
: The one-index based line number
`TM_FILENAME`
: The filename of the current document
`TM_FILENAME_BASE`
: The filename of the current document without its extensions
`TM_DIRECTORY`
: The directory of the current document
`TM_FILEPATH`
: The full file path of the current document
`RELATIVE_FILEPATH`
: The relative (to the opened workspace or folder) file path of the current document
`CLIPBOARD`
: The contents of your clipboard
`WORKSPACE_NAME`
: The name of the opened workspace or folder
`WORKSPACE_FOLDER`
: The path of the opened workspace or folder
`CURSOR_INDEX`
: The zero-index based cursor number
`CURSOR_NUMBER`
: The one-index based cursor number
#### Inserting the current date and time:
`CURRENT_YEAR`
: The current year
`CURRENT_YEAR_SHORT`
: The current year's last two digits
`CURRENT_MONTH`
: The month as two digits (example '02')
`CURRENT_MONTH_NAME`
: The full name of the month (example 'July')
`CURRENT_MONTH_NAME_SHORT`
: The short name of the month (example 'Jul')
`CURRENT_DATE`
: The day of the month as two digits (example '08')
`CURRENT_DAY_NAME`
: The name of day (example 'Monday')
`CURRENT_DAY_NAME_SHORT`
: The short name of the day (example 'Mon')
`CURRENT_HOUR`
: The current hour in 24-hour clock format
`CURRENT_MINUTE`
: The current minute as two digits
`CURRENT_SECOND`
: The current second as two digits
`CURRENT_SECONDS_UNIX`
: The number of seconds since the Unix epoch
`CURRENT_TIMEZONE_OFFSET`
: The current UTC time zone offset as +HH:MM or -HH:MM (example -07:00).
#### Inserting random values:
RANDOM 6 random Base-10 digits
RANDOM_HEX 6 random Base-16 digits
UUID A Version 4 UUID
#### Inserting line or block comments, honoring the current language:
`BLOCK_COMMENT_START`
: Example output: in PHP `/*` or in HTML `<!--`
`BLOCK_COMMENT_END`
: Example output: in PHP `*/` or in HTML `-->`
`LINE_COMMENT`
: Example output: in PHP `//`
### [Variable transforms](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variable-transforms)
Transformations allow you to modify the value of a variable before it is inserted. The definition of a transformation consists of three parts:
1. A regular expression that is matched against the value of a variable, or the empty string when the variable cannot be resolved.
2. A "format string" that allows to reference matching groups from the regular expression. The format string allows for conditional inserts and simple modifications.
3. Options that are passed to the regular expression.
The following example inserts the name of the current file without its ending, so from `foo.txt` it makes `foo`.
```
${TM_FILENAME/(.*)\\..+$/$1/}
| | | |
| | | |-> no options
| | |
| | |-> references the contents of the first
| | capture group
| |
| |-> regex to capture everything before
| the final `.suffix`
|
|-> resolves to the filename
```
### [Placeholder-Transform](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_placeholdertransform)
Like a Variable-Transform, a transformation of a placeholder allows changing the inserted text for the placeholder when moving to the next tab stop. The inserted text is matched with the regular expression and the match or matches - depending on the options - are replaced with the specified replacement format text. Every occurrence of a placeholder can define its own transformation independently using the value of the first placeholder. The format for Placeholder-Transforms is the same as for Variable-Transforms.
### [Transform examples](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_transform-examples)
The examples are shown within double quotes, as they would appear inside a snippet body, to illustrate the need to double escape certain characters. Sample transformations and the resulting output for the filename `example-123.456-TEST.js`.
|Example|Output|Explanation|
|---|---|---|
|`"${TM_FILENAME/[\\.]/_/}"`|`example-123_456-TEST.js`|Replace the first `.` with `_`|
|`"${TM_FILENAME/[\\.-]/_/g}"`|`example_123_456_TEST_js`|Replace each `.` or `-`with `_`|
|`"${TM_FILENAME/(.*)/${1:/upcase}/}"`|`EXAMPLE-123.456-TEST.JS`|Change to all uppercase|
|`"${TM_FILENAME/[^0-9^a-z]//gi}"`|`example123456TESTjs`|Remove non-alphanumeric characters|
### [Grammar](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_grammar)
Below is the EBNF ([extended Backus-Naur form](https://en.wikipedia.org/wiki/Extended_Backus-Naur_form)) for snippets. With `\` (backslash), you can escape `$`, `}`, and `\`. Within choice elements, the backslash also escapes comma and pipe characters.
```
any ::= tabstop | placeholder | choice | variable | text
tabstop ::= '$' int
| '${' int '}'
| '${' int transform '}'
placeholder ::= '${' int ':' any '}'
choice ::= '${' int '|' text (',' text)* '|}'
variable ::= '$' var | '${' var '}'
| '${' var ':' any '}'
| '${' var transform '}'
transform ::= '/' regex '/' (format | text)+ '/' options
format ::= '$' int | '${' int '}'
| '${' int ':' '/upcase' | '/downcase' | '/capitalize' | '/camelcase' | '/pascalcase' '}'
| '${' int ':+' if '}'
| '${' int ':?' if ':' else '}'
| '${' int ':-' else '}' | '${' int ':' else '}'
regex ::= JavaScript Regular Expression value (ctor-string)
options ::= JavaScript Regular Expression option (ctor-options)
var ::= [_a-zA-Z] [_a-zA-Z0-9]*
int ::= [0-9]+
text ::= .*
if ::= text
else ::= text
```
[vscode-snippets-docs]: <https://code.visualstudio.com/docs/editor/userdefinedsnippets>
+185
View File
@@ -0,0 +1,185 @@
# [Textmate Code Snippets](https://macromates.com/textmate/manual/snippets)
A snippet is a piece of text that you would like to insert in your document. It can include code to run at insertion time, variables (like selected text), tab stops/placeholders for missing information (which you can tab through after insertion) and perform transformations on the data which you enter in the placeholders.
Snippets are created in the bundle editor and are often assigned a tab trigger for easy insertion.
## Grammar
Snippets support the following constructs:
```
$«int»
${«int»}
${«int»:«any»}
${«int»/«regexp»/«format»/«options»}
${«int»|«choice 1»,…,«choice n»|}
`«code»`
«format»
```
In the above, `«format»` is a format string and `«any»` refers to any of the above.
The next sections will give examples of each of the above.
## Plain Text
In the simplest case, you can use snippets to insert text that you do not want to type again and again, either because you type it a lot, or because the actual text to insert is hard to remember (like your bank account details or the HTML entities for the Apple modifier keys).
If you use snippets to insert plain text there is only one thing you should be aware of: `$` and `` ` `` are reserved characters. So if you want to insert one of these, prefix it with an escape (i.e. `\$`). An escape not followed by one of these two characters (or followed by another escape) will be inserted as a literal character.
## Variables
You can use any of TextMate’s defined variables by prefixing the name of the variable with `$`. All the normal dynamic variables are supported, the most useful probably being `TM_SELECTED_TEXT`. If for example we want to create a snippet which wraps the selection in a LaTeX `\textbf` command, we can make a snippet which is:
```
\textbf{$TM_SELECTED_TEXT}
```
If no text is selected the variable will not be set, so nothing will be inserted in its place. We can provide a default value by using format string syntax: `${«variable»:«default value»}`. For example:
```
\textbf{${TM_SELECTED_TEXT:no text was selected}}
```
The default value can itself contain variables or shell code. If you want the default text to contain a `}`, you need to escape it. But all other characters are used verbatim.
Variables also support regular expression replacements using this syntax: `${«variable»/«regexp»/«format»/«options»}`. If the variable is not set the replacement will be performed on the empty string. For example, to prepend a bullet to each non-empty line in the selection (and insert that) we can do:
```
${TM_SELECTED_TEXT/^.+$/• $0/g}
```
## Interpolated Shell Code
You can use backticks to have shell code executed when the snippet is inserted. The result from running the code gets inserted into the snippet, though with the last newline in the result removed (if present). So for example to create a snippet that wraps the selection in an HTML link, where the URL of that link comes from the clipboard, we can do:
```
<a href="`pbpaste`">$TM_SELECTED_TEXT</a>
```
Since this is normal shell code, we can write a small program. For example we can let it verify that the clipboard contains only a single line of text like this:
```
<a href="`
if [[ $(pbpaste|wc -l) -eq 0 ]]
then pbpaste
else echo http://example.com/
fi
`">$TM_SELECTED_TEXT</a>
```
Inside shell code, the only character you need to escape is the backtick.
## Tab Stops
After insertion, the caret will be placed after the last character of the snippet. This is not always desirable and we can change that by using `$0` to mark where we want the caret to be. So if for example we make an HTML `div`-snippet and want the caret to end between the opening and closing tags, we could make it like this:
```
<div>
$0
</div>
```
Often though we want to fill in text in several places in the snippet. Multiple tab stops can be provided by inserting `$1`-`$n`. The caret will start at `$1`, then when pressing tab it will move to `$2` and `$3` on next tab etc. until there are no more tab stops. If you do not explicitly set `$0`, the caret will be at the end of the snippet.
So we could for example change the above to:
```
<div$1>
$0
</div>
```
This allows us to fill in an argument and then tab on to `$0`.
## Placeholders
Like variables, tab stops can also have default values (and are generally referred to as placeholders when they do). The syntax is the same: `${«tab stop»:«default value»}`. And the default value can contain both text, shell code and other placeholders. So we can refine the previous example further:
```
<div${1: id="${2:some_id}"}>
$0
</div>
```
Inserting this snippet will insert a `div` tag with the `id` argument selected and we can then decide either to overtype the argument (i.e. delete it) and press tab again to reach `$0`, or we can press tab immediately to get to the second tab stop (the value part of the argument) and edit that.
When you edit the placeholder text, any embedded tab stops will be removed.
## Mirrors
There are times when you need to provide the same value several places in the inserted text and in these situations you can re-use the tab stop to signal that you want it mirrored at that location. So for example to create a LaTeX environment with a snippet, we can use:
```
\begin{${1:enumerate}}
$0
\end{$1}
```
After inserting this snippet, `enumerate` will be selected and if we edit it, the changes will be reflected in the `\end` part as well.
## Transformations
There are situations where we want our placeholder text mirrored but with slight changes or where we want some text to appear depending on the value/presence of a placeholder.
We can accomplish this by doing a regular expression substitution on the placeholder text (when mirroring it). The syntax for this is: `${«tab stop»/«regexp»/«format»/«options»}`.
As an example, the Objective-C getter/setter methods (prior to the `@property` keyword) often look like this (in the [thread-unsafe form](http://ticket.macromates.com/show?ticket_id=E11D9EAF)):
```
- (id)foo
{
return foo;
}
- (void)setFoo:(id)aValue
{
[foo autorelease];
foo = [aValue retain];
}
```
In the format string we can use `${«var»:/upcase}` to uppercase the matched character, so a snippet that only asks for the name of the instance variable once could look like this:
```
- (${1:id})${2:foo}
{
return $2;
}
- (void)set${2/./${0:/upcase}/}:($1)aValue
{
[$2 autorelease];
$2 = [aValue retain];
}
```
We can also use conditional insertions in the format string (`${«var»:+«if-set»}`) to make decisions. For example if we create a snippet for a method we can let the return type decide whether or not the method should include a `return` statement like this:
```
- (${1:void})${2:methodName}
{${1/void$|(.+)/${1:+\n\treturn nil;}/}
}
```
Here we match placeholder 1 against `void` or anything (`.+`) and put the latter match in capture register 1. Then only if we did match something (other than `void`) will we insert a newline, tab and the `return nil;` text.
## Multiple Choices
Sometimes a placeholder can only take a limited number of values in which case we may want to show a menu with these choices.
This can be done with the `${«int»|«choice 1»,…,«choice n»|}` syntax.
For example:
```
color: ${1|red,green,blue|}
```
 [Text Editing](https://macromates.com/textmate/manual/text-editing)
 [Table of Contents](https://macromates.com/textmate/manual/)
[Commands](https://macromates.com/textmate/manual/commands) 
+2 -2
View File
@@ -35,9 +35,9 @@
- Indent using 2 spaces (soft tabs).
- Put spaces between list items (ie. `[1, 2, 3]`, not `[1,2,3]`), around operators (ie. `1 + 1`, not `1+1`) and inside go templating tags (ie. `{{< alert >}}`, not `{{<alert>}}`).
- Avoid code reuse in templates by extracting components into partials.
- Layout code in a logical manner that prioritises readibility.
- Layout code in a logical manner that prioritises readability.
- Add comments when the intent of the code isn't immediately apparent or to break up large blocks of logic.
- Use relative paths to assets without including the preceeding slash but, when referring to a folder, including a trailing slash (ie. `static/img/`, not `/static/img/` or `/static/img`).
- Use relative paths to assets without including the preceding slash but, when referring to a folder, including a trailing slash (ie. `static/img/`, not `/static/img/` or `/static/img`).
- Any static text must be referenced using the `i18n` methods and included in the localisation assets.
- Commit often, preferring incremental changes rather than bundling everything into a single, large commit.
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2021 James Panther (https://jamespanther.com)
Copyright (c) 2022 Nuno Coração (https://nunocoracao.com)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
+35 -7
View File
@@ -1,8 +1,4 @@
# Blowfish
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
[![Deploy Production to Firebase](https://github.com/nunocoracao/blowfish/actions/workflows/firebase-production.yml/badge.svg)](https://github.com/nunocoracao/blowfish/actions/workflows/firebase-production.yml)
[![Deploy Production to GitHub pages](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml/badge.svg)](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml)
[![Minimum Hugo Version](https://img.shields.io/static/v1?label=min-HUGO-version&message=0.87.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
@@ -10,7 +6,10 @@
[![Blowfish](https://img.shields.io/badge/Hugo--Themes-@Blowfish-blue)](https://themes.gohugo.io/themes/blowfish/)
![code-size](https://img.shields.io/github/languages/code-size/nunocoracao/blowfish)
Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohugo.io). It's built using Tailwind CSS with a clean and minimalist design that prioritises to your content. The theme is a fork of [Congo](https://github.com/jpanther/congo).
Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohugo.io). It's built using Tailwind CSS with a clean and minimalist design that prioritises to your content.
![blowfish screenshot](https://github.com/nunocoracao/blowfish/blob/main/images/screenshot.png?raw=true)
🌏 [Demo site](https://blowfish.page/)
📑 [Theme documentation](https://blowfish.page/docs/)
@@ -18,7 +17,11 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
🐛 [Bug reports & issues](https://github.com/nunocoracao/blowfish/issues)
💡 [Questions & feature requests](https://github.com/nunocoracao/blowfish/discussions)
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
<a href="https://www.buymeacoffee.com/nunocoracao" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
## Features
@@ -33,10 +36,11 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
- Multiple homepage layouts
- Multiple authors
- Series of articles
- Zen mode for article reading
- Flexible with any content types, taxonomies and menus
- Header and footer menus
- Nested menus & sub-navigation menu
- Multilingual content support inlcuding support for RTL languages
- Multilingual content support including support for RTL languages
- Ability to link to posts on third-party websites
- Support for several shortcodes like Gallery, Timeline, GitHub cards, and Carousels
- Buymeacoffee integration
@@ -44,6 +48,7 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
- Diagrams and visualisations using Mermaid
- Charts using Chart.js
- TypeIt integration
- Youtube embeds with performance improvements
- Mathematical notation using KaTeX
- SVG icons from FontAwesome 6
- Automatic image resizing using Hugo Pipes
@@ -58,6 +63,8 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
---
![blowfish logo](https://github.com/nunocoracao/blowfish/blob/main/logo.png?raw=true)
## Documentation
Blowfish has [extensive documentation](https://blowfish.page/docs/) that covers all aspects of the theme. Be sure to [read the docs](https://blowfish.page/docs/) to learn more about how to use the theme and its features.
@@ -70,6 +77,27 @@ Blowfish supports several installation methods - as a git submodule, a Hugo Modu
Detailed instructions for each method can be found in the [Installation](https://blowfish.page/docs/installation) docs. You should consult the documentation for the simplest setup experience. Below is a quick start guide using submodules if you are using git, or Hugo modules if you're already confident installing Hugo themes.
### Quick start using Blowfish Tools
> **Note:** Ensure you have **Node.js**, **Git**, **Go** and **Hugo** installed, and that you have created a new Hugo project before proceeding.
We just launched a new CLI tool to help you get started with Blowfish. It will create a new Hugo project, install the theme and set up the theme configuration files for you. It's still in beta so please [report any issues you find](https://github.com/nunocoracao/blowfish-tools).
Install the CLI tool globally using npm (or other package manager):
```shell
npm i -g blowfish-tools
```
Then run the command `blowfish-tools` to start an interactive run which will guide you through creation and configuration use-cases.
```shell
blowfish-tools
```
You can also run the command `blowfish-tools new` to create a new Hugo project and install the theme in one go. Check the CLI help for more information.
```shell
blowfish-tools new mynewsite
```
### Quick start using git submodules
> **Note:** Ensure you have **Git**, **Go**, and **Hugo** installed, and that you have created a new Hugo project before proceeding.
+1815 -3897
View File
File diff suppressed because it is too large. Load diff
+16
View File
@@ -0,0 +1,16 @@
#zen-mode-button {
cursor:pointer
}
.zen-mode {
position: relative;
}
body.zen-mode-enable {
#bmc-wbtn, .author {
display:none !important;
}
}
+22 -1
View File
@@ -1,5 +1,7 @@
/*! Blowfish | MIT License | https://github.com/nunocoracao/blowfish */
@import 'components/zen-mode.css';
@tailwind base;
@tailwind components;
@tailwind utilities;
@@ -111,6 +113,21 @@ body:has(#menu-controller:checked) {
@apply absolute opacity-5 -z-10;
}
/* 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 */
.prose .chroma {
@@ -339,6 +356,10 @@ body:has(#menu-controller:checked) {
/* Custom */
pre {
text-align: left;
}
.thumbnail {
min-width: 300px;
height: 180px;
@@ -400,7 +421,7 @@ body:has(#menu-controller:checked) {
.anchor {
display: block;
position: relative;
top: -100px;
top: -150px;
height: 0px;
visibility: hidden;
}
+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256,232.562c-21.183,-41.196 -78.868,-117.97 -132.503,-155.834c-51.378,-36.272 -70.978,-29.987 -83.828,-24.181c-14.872,6.72 -17.577,29.554 -17.577,42.988c0,13.433 7.365,110.138 12.169,126.281c15.873,53.336 72.376,71.358 124.413,65.574c2.66,-0.395 5.357,-0.759 8.089,-1.097c-2.68,0.429 -5.379,0.796 -8.089,1.097c-76.259,11.294 -143.984,39.085 -55.158,137.972c97.708,101.165 133.908,-21.692 152.484,-83.983c18.576,62.291 39.972,180.718 150.734,83.983c83.174,-83.983 22.851,-126.674 -53.408,-137.969c-2.71,-0.302 -5.409,-0.667 -8.089,-1.096c2.732,0.337 5.429,0.702 8.089,1.096c52.037,5.785 108.54,-12.239 124.413,-65.574c4.804,-16.142 12.169,-112.847 12.169,-126.281c-0,-13.434 -2.705,-36.267 -17.577,-42.988c-12.85,-5.806 -32.45,-12.09 -83.829,24.181c-53.634,37.864 -111.319,114.635 -132.502,155.831Z"/></svg>

After

Width:  |  Height:  |  Size: 898 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M490.3 40.4C512.2 62.27 512.2 97.73 490.3 119.6L460.3 149.7L362.3 51.72L392.4 21.66C414.3-.2135 449.7-.2135 471.6 21.66L490.3 40.4zM172.4 241.7L339.7 74.34L437.7 172.3L270.3 339.6C264.2 345.8 256.7 350.4 248.4 353.2L159.6 382.8C150.1 385.6 141.5 383.4 135 376.1C128.6 370.5 126.4 361 129.2 352.4L158.8 263.6C161.6 255.3 166.2 247.8 172.4 241.7V241.7zM192 63.1C209.7 63.1 224 78.33 224 95.1C224 113.7 209.7 127.1 192 127.1H96C78.33 127.1 64 142.3 64 159.1V416C64 433.7 78.33 448 96 448H352C369.7 448 384 433.7 384 416V319.1C384 302.3 398.3 287.1 416 287.1C433.7 287.1 448 302.3 448 319.1V416C448 469 405 512 352 512H96C42.98 512 0 469 0 416V159.1C0 106.1 42.98 63.1 96 63.1H192z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 512 512"><path fill="currentColor" d="M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152V424c0 48.6 39.4 88 88 88H360c48.6 0 88-39.4 88-88V312c0-13.3-10.7-24-24-24s-24 10.7-24 24V424c0 22.1-17.9 40-40 40H88c-22.1 0-40-17.9-40-40V152c0-22.1 17.9-40 40-40H200c13.3 0 24-10.7 24-24s-10.7-24-24-24H88z"/></svg>

Before

Width:  |  Height:  |  Size: 778 B

After

Width:  |  Height:  |  Size: 776 B

+3
View File
@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px">
<path fill="currentColor" d="M 12.980469 4 C 9.1204688 4 5.9804688 7.14 5.9804688 11 L 6 26 L 9.9804688 26 L 9.9804688 11 C 9.9804688 9.35 11.320469 8 12.980469 8 L 40.019531 8 C 41.679531 8 43.019531 9.35 43.019531 11 L 43.019531 39 C 43.019531 40.65 41.679531 42 40.019531 42 L 29 42 C 29 43.54 28.420938 44.94 27.460938 46 L 40.019531 46 C 43.879531 46 47.019531 42.86 47.019531 39 L 47.019531 11 C 47.019531 7.14 43.879531 4 40.019531 4 L 12.980469 4 z M 7 28 C 4.794 28 3 29.794 3 32 L 3 42 C 3 44.206 4.794 46 7 46 L 23 46 C 25.206 46 27 44.206 27 42 L 27 32 C 27 29.794 25.206 28 23 28 L 7 28 z M 7 32 L 23 32 L 23.001953 42 L 7 42 L 7 32 z"/>
</svg>

After

Width:  |  Height:  |  Size: 749 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="235.452" width="261.728" viewBox="0 0 245.37069 220.73612"><path fill="currentColor" d="M31.99 1.365C21.287 7.72.2 31.945 0 38.298v10.516C0 62.144 12.46 73.86 23.773 73.86c13.584 0 24.902-11.258 24.903-24.62 0 13.362 10.93 24.62 24.515 24.62 13.586 0 24.165-11.258 24.165-24.62 0 13.362 11.622 24.62 25.207 24.62h.246c13.586 0 25.208-11.258 25.208-24.62 0 13.362 10.58 24.62 24.164 24.62 13.585 0 24.515-11.258 24.515-24.62 0 13.362 11.32 24.62 24.903 24.62 11.313 0 23.773-11.714 23.773-25.046V38.298c-.2-6.354-21.287-30.58-31.988-36.933C180.118.197 157.056-.005 122.685 0c-34.37.003-81.228.54-90.697 1.365zm65.194 66.217a28.025 28.025 0 0 1-4.78 6.155c-5.128 5.014-12.157 8.122-19.906 8.122a28.482 28.482 0 0 1-19.948-8.126c-1.858-1.82-3.27-3.766-4.563-6.032l-.006.004c-1.292 2.27-3.092 4.215-4.954 6.037a28.5 28.5 0 0 1-19.948 8.12c-.934 0-1.906-.258-2.692-.528-1.092 11.372-1.553 22.24-1.716 30.164l-.002.045c-.02 4.024-.04 7.333-.06 11.93.21 23.86-2.363 77.334 10.52 90.473 19.964 4.655 56.7 6.775 93.555 6.788h.006c36.854-.013 73.59-2.133 93.554-6.788 12.883-13.14 10.31-66.614 10.52-90.474-.022-4.596-.04-7.905-.06-11.93l-.003-.045c-.162-7.926-.623-18.793-1.715-30.165-.786.27-1.757.528-2.692.528a28.5 28.5 0 0 1-19.948-8.12c-1.862-1.822-3.662-3.766-4.955-6.037l-.006-.004c-1.294 2.266-2.705 4.213-4.563 6.032a28.48 28.48 0 0 1-19.947 8.125c-7.748 0-14.778-3.11-19.906-8.123a28.025 28.025 0 0 1-4.78-6.155 27.99 27.99 0 0 1-4.736 6.155 28.49 28.49 0 0 1-19.95 8.124c-.27 0-.54-.012-.81-.02h-.007c-.27.008-.54.02-.813.02a28.49 28.49 0 0 1-19.95-8.123 27.992 27.992 0 0 1-4.736-6.155zm-20.486 26.49l-.002.01h.015c8.113.017 15.32 0 24.25 9.746 7.028-.737 14.372-1.105 21.722-1.094h.006c7.35-.01 14.694.357 21.723 1.094 8.93-9.747 16.137-9.73 24.25-9.746h.014l-.002-.01c3.833 0 19.166 0 29.85 30.007L210 165.244c8.504 30.624-2.723 31.373-16.727 31.4-20.768-.773-32.267-15.855-32.267-30.935-11.496 1.884-24.907 2.826-38.318 2.827h-.006c-13.412 0-26.823-.943-38.318-2.827 0 15.08-11.5 30.162-32.267 30.935-14.004-.027-25.23-.775-16.726-31.4L46.85 124.08c10.684-30.007 26.017-30.007 29.85-30.007zm45.985 23.582v.006c-.02.02-21.863 20.08-25.79 27.215l14.304-.573v12.474c0 .584 5.74.346 11.486.08h.006c5.744.266 11.485.504 11.485-.08v-12.474l14.304.573c-3.928-7.135-25.79-27.215-25.79-27.215v-.006l-.003.002z"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

+2
View File
@@ -0,0 +1,2 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
<path fill="currentColor" d="M0 128C0 92.7 28.7 64 64 64H256h48 16H576c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H320 304 256 64c-35.3 0-64-28.7-64-64V128zm320 0V384H576V128H320zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1h73.6l8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276H141l19-42.8zM448 164c11 0 20 9 20 20v4h44 16c11 0 20 9 20 20s-9 20-20 20h-2l-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45H448 376c-11 0-20-9-20-20s9-20 20-20h52v-4c0-11 9-20 20-20z"/></svg>

After

Width:  |  Height:  |  Size: 968 B

+2
View File
@@ -0,0 +1,2 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="currentColor" d="M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg>

After

Width:  |  Height:  |  Size: 256 B

+1
View File
@@ -0,0 +1 @@
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Xing</title><path fill="currentColor" d="M18.188 0c-.517 0-.741.325-.927.66 0 0-7.455 13.224-7.702 13.657.015.024 4.919 9.023 4.919 9.023.17.308.436.66.967.66h3.454c.211 0 .375-.078.463-.22.089-.151.089-.346-.009-.536l-4.879-8.916c-.004-.006-.004-.016 0-.022L22.139.756c.095-.191.097-.387.006-.535C22.056.078 21.894 0 21.686 0h-3.498zM3.648 4.74c-.211 0-.385.074-.473.216-.09.149-.078.339.02.531l2.34 4.05c.004.01.004.016 0 .021L1.86 16.051c-.099.188-.093.381 0 .529.085.142.239.234.45.234h3.461c.518 0 .766-.348.945-.667l3.734-6.609-2.378-4.155c-.172-.315-.434-.659-.962-.659H3.648v.016z"/></svg>

After

Width:  |  Height:  |  Size: 675 B

+574
View File
@@ -0,0 +1,574 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative"
width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.7735807359934106" x="0" y="0" width="345.6" height="345.6"
patternUnits="userSpaceOnUse">
<g transform="scale(1.35)">
<g>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-392.9466164550751"
y2="-356.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="-136.94661645507512"
y2="-100.71486810970526" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="237.6288884328494" x2="201.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="493.6288884328494" x2="457.39714008747956" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="749.6288884328494" x2="713.3971400874796" y1="119.05338354492488"
y2="155.28513189029474" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-315.78580967507213"
y2="-250.59951000952657" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="-59.78580967507213"
y2="5.400489990473432" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="244.43797352167968" x2="179.25167385613412" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="500.4379735216797" x2="435.2516738561341" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="756.4379735216796" x2="691.2516738561342" y1="196.21419032492787"
y2="261.40048999047343" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-419.1419191885881"
y2="-408.6876264533025" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="-163.14191918858808"
y2="-152.68762645330253" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="219.6724359102308" x2="209.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="475.6724359102308" x2="465.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="731.6724359102308" x2="721.2181431749452" y1="92.85808081141191"
y2="103.31237354669749" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-455.36580187080335"
y2="-414.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="-199.36580187080335"
y2="-158.51832813841827" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="112.00565118011832" x2="71.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="368.0056511801183" x2="327.15817744773324" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="624.0056511801183" x2="583.1581774477332" y1="56.63419812919665"
y2="97.48167186158173" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-386.3431893904281"
y2="-374.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="-130.3431893904281"
y2="-118.79904413070864" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="60.932966336476014" x2="49.388821076756514" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="316.932966336476" x2="305.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="572.932966336476" x2="561.3888210767565" y1="125.65681060957188"
y2="137.20095586929136" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-514.3281644464968"
y2="-445.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-258.3281644464968"
y2="-189.6299317778301" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="359.7831021245981" x2="291.08486945593137" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="615.783102124598" x2="547.0848694559314" y1="-2.328164446496814"
y2="66.37006822216988" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="103.78310212459807" x2="35.08486945593138" y1="253.67183555350317"
y2="322.3700682221699" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-345.7825853785539"
y2="-328.21892433108655" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="-89.78258537855393"
y2="-72.21892433108653" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="211.69894364075495" x2="194.13528259328754" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="467.6989436407549" x2="450.13528259328757" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="723.6989436407549" x2="706.1352825932876" y1="166.21741462144607"
y2="183.78107566891347" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-358.20462232004485"
y2="-320.4841121756778" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="-102.20462232004485"
y2="-64.48411217567781" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="44.012515207413756" x2="6.2920050630466875" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="300.01251520741374" x2="262.2920050630467" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="556.0125152074138" x2="518.2920050630466" y1="153.79537767995515"
y2="191.5158878243222" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-388.58315519083214"
y2="-314.64041065275103" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="-132.58315519083212"
y2="-58.64041065275106" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="105.49237048043514" x2="31.549625942354083" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="361.49237048043517" x2="287.54962594235406" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="617.4923704804352" x2="543.549625942354" y1="123.41684480916788"
y2="197.35958934724894" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10s"></animateTransform>
</g>
<g>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-491.54340345671585"
y2="-445.8925129343306" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="-235.54340345671582"
y2="-189.89251293433065" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="95.73622575770466" x2="50.085335235319484" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="351.7362257577047" x2="306.08533523531946" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="607.7362257577047" x2="562.0853352353195" y1="20.45659654328417"
y2="66.10748706566935" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-399.57066004520647"
y2="-362.8231936709304" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="-143.57066004520647"
y2="-106.82319367093038" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="263.34308373797757" x2="226.59561736370148" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="519.3430837379776" x2="482.5956173637015" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="775.3430837379776" x2="738.5956173637014" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="7.343083737977565" x2="-29.40438263629852" y1="112.42933995479353"
y2="149.17680632906962" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-306.8322292334449"
y2="-251.03682770553996" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="-50.83222923344488"
y2="4.963172294460037" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="29.5343611349199" x2="-26.261040392985034" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="285.5343611349199" x2="229.73895960701498" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="541.5343611349199" x2="485.738959607015" y1="205.16777076655512"
y2="260.96317229446004" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-488.69307011557567"
y2="-427.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="-232.69307011557567"
y2="-171.1575026813755" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="235.025028503587" x2="173.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="491.025028503587" x2="429.48946106938683" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="747.025028503587" x2="685.4894610693868" y1="23.306929884424335"
y2="84.84249731862451" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-301.8947818400279"
y2="-277.50857675558507" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="-45.89478184002789"
y2="-21.508576755585096" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.00990918130768" x2="200.62370409686488" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="481.00990918130765" x2="456.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="737.0099091813076" x2="712.6237040968649" y1="210.1052181599721"
y2="234.4914232444149" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-433.44104288192347"
y2="-363.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="-177.44104288192347"
y2="-107.94420654280447" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="171.55017713954658" x2="102.05334080042758" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="427.5501771395466" x2="358.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="683.5501771395466" x2="614.0533408004276" y1="78.55895711807653"
y2="148.05579345719553" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-501.35381307548454"
y2="-471.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="-245.35381307548454"
y2="-215.01705243386965" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="258.4358284744095" x2="228.09906783279462" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="514.4358284744095" x2="484.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="770.4358284744095" x2="740.0990678327946" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="2.4358284744095045" x2="-27.900932167205383" y1="10.646186924515469"
y2="40.98294756613034" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-501.848219302404"
y2="-460.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="-245.848219302404"
y2="-204.46516162532055" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="35.41624886616098" x2="-5.966808810922494" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="291.41624886616097" x2="250.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="547.416248866161" x2="506.0331911890775" y1="10.151780697595989"
y2="51.53483837467946" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-432.2099852185223"
y2="-414.37228215372727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="-176.2099852185223"
y2="-158.3722821537273" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="90.76285286976488" x2="72.92514980496989" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="346.76285286976486" x2="328.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="602.7628528697649" x2="584.9251498049699" y1="79.79001478147771"
y2="97.6277178462727" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="5s"></animateTransform>
</g>
<g>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-428.16241164724204"
y2="-410.18853258778427" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="-172.16241164724207"
y2="-154.18853258778424" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="93.6896305353637" x2="75.71575147590588" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="349.6896305353637" x2="331.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="605.6896305353637" x2="587.7157514759059" y1="83.83758835275793"
y2="101.81146741221576" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-277.4402694987808"
y2="-237.67220340720178" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="-21.440269498780822"
y2="18.327796592798222" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="207.24941141296466" x2="167.48134532138562" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="463.24941141296466" x2="423.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="719.2494114129647" x2="679.4813453213856" y1="234.55973050121918"
y2="274.3277965927982" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-450.47058961727"
y2="-401.42986850569355" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="-194.47058961727"
y2="-145.42986850569352" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="69.19671201083756" x2="20.15599089926107" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="325.1967120108376" x2="276.15599089926104" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="581.1967120108376" x2="532.155990899261" y1="61.52941038272999"
y2="110.57013149430648" stroke-width="15" stroke="#93dbe9" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-382.0608413517932"
y2="-332.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="-126.06084135179321"
y2="-76.21432137190436" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="153.36870174443493" x2="103.52218176454608" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="409.36870174443493" x2="359.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="665.3687017444349" x2="615.5221817645461" y1="129.93915864820679"
y2="179.78567862809564" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-370.2400239914425"
y2="-323.7492852305512" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="-114.24002399144254"
y2="-67.74928523055118" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="49.20494471467643" x2="2.7142059537850685" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="305.20494471467646" x2="258.71420595378504" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="561.2049447146765" x2="514.714205953785" y1="141.75997600855746"
y2="188.25071476944882" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-519.71103601744"
y2="-467.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-263.71103601744005"
y2="-211.71324951344457" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="340.6808460539986" x2="288.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="596.6808460539986" x2="544.6830595500031" y1="-7.711036017440037"
y2="44.28675048655542" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="84.6808460539986" x2="32.68305955000314" y1="248.28896398255995"
y2="300.28675048655543" stroke-width="15" stroke="#689cc5" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-402.3103840834626"
y2="-362.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="-146.31038408346262"
y2="-106.59298411979296" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="225.38342310559023" x2="185.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="481.3834231055902" x2="441.66602314192056" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="737.3834231055903" x2="697.6660231419205" y1="109.68961591653738"
y2="149.40701588020704" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-347.54024364607716"
y2="-278.2294307371681" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="-91.54024364607716"
y2="-22.229430737168116" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="172.83662370669697" x2="103.52581079778793" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="428.83662370669697" x2="359.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="684.836623706697" x2="615.5258107977879" y1="164.45975635392284"
y2="233.77056926283188" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-513.2094299494303"
y2="-498.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-257.2094299494303"
y2="-242.4634873012858" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="510.8543594952038" x2="496.10841684705935" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="766.8543594952039" x2="752.1084168470593" y1="-1.209429949430282"
y2="13.536512698714214" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<line x1="254.85435949520382" x2="240.10841684705935" y1="254.79057005056973"
y2="269.5365126987142" stroke-width="15" stroke="#5e6fa3" stroke-linecap="round"></line>
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256"
keyTimes="0;1" repeatCount="indefinite" dur="10.3333333333333335s"></animateTransform>
</g>
</g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.7735807359934106)"></rect>
</svg>
+10
View File
@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.932876709489723" x="0" y="0" width="307.20000000000005" height="307.20000000000005" patternUnits="userSpaceOnUse">
<g transform="scale(1.2000000000000002)"><defs><g id="pat-0.13086180692764704"><polyline fill-rule="evenodd" clip-rule="evenodd" fill="none" stroke="#93dbe9" stroke-width="10" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points=" -3,-2 16.5,15.5 31.5,0.5 63.5,32.5 48.5,47.5 31.5,32.5 -0.5,64.5 16.5,79.5 31.5,64.5 47.5,79.5 95.5,32.5 80.5,15.5 95.5,0.5 127.5,32.5 48.5,111.5 31.5,96.5 -0.5,128.5 16.5,143.5 31.5,127.5 63.5,160.5 80.5,143.5 63.5,128.5 159.5,32.5 144.5,15.5 159.5,0.5 175.5,16.5 192,0 208,16 224,0 256,32 240,48 224,32 207.501,48.501 223.5,64.5 207.5,80.5 176.5,47.5 144.5,80.5 159.5,96.5 175.5,80.5 191.5,96.5 159.5,128.5 127.5,96.5 95.5,127.5 111.5,143.5 127.5,127.5 175.5,176.5 159.5,192.5 127.5,160.5 111.5,176.5 95.5,160.5 63.5,192.5 31.5,160.5 16.5,175.5 31.999,191.483 0,224 16,240 32,225 64,256 80,240 64,224 79.667,208.333 95.5,192.5 111.5,207.5 95.5,224.5 111.5,239.5 127.5,256.5 143.5,240.5 127.5,224.5 143.5,208.5 175.5,240.5 191.5,224.5 175.5,208.5 207.5,176.5 224,160 208,144 191.998,160.998 175.5,144.5 207.5,112.5 240,80 256,96 223.5,128.5 256,160 239.5,176.5 256,192 240,208 224,192 207.5,208.5 223.5,224.5 207.5,240.5 223.5,256.5 240,240 259,259" stroke-dasharray="169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875 169.36095947265625 20.93225341796875">
<animate attributeName="stroke-dashoffset" keyTimes="0;1" values="0;190.293212890625" repeatCount="indefinite" dur="7.142857142857142s"></animate>
</polyline></g></defs><use xlink:href="#pat-0.13086180692764704" x="0" y="0"></use><use xlink:href="#pat-0.13086180692764704" x="-256" y="0"></use><use xlink:href="#pat-0.13086180692764704" x="256" y="0"></use><use xlink:href="#pat-0.13086180692764704" x="0" y="-256"></use><use xlink:href="#pat-0.13086180692764704" x="0" y="256"></use></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.932876709489723)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 198 KiB

+24
View File
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.5239578789186163" x="0" y="0" width="1057.28" height="1057.28" patternUnits="userSpaceOnUse">
<g transform="scale(4.13)"><defs>
<filter id="pat-0.28056686700481603" x="-100%" y="-100%" width="300%" height="300%" color-interpolation-filters="sRGB">
<feGaussianBlur in="SourceGraphic" stdDeviation="7.16"></feGaussianBlur>
<feComponentTransfer result="cutoff">
<feFuncA type="linear" slope="60" intercept="-40"></feFuncA>
</feComponentTransfer>
</filter>
</defs><g style="isolation:isolate" filter="url(#pat-0.28056686700481603)"><g>
<circle cx="-117.47820145411958" cy="65.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="138.52179854588042" cy="65.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="394.5217985458804" cy="65.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="-117.47820145411958" cy="321.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="138.52179854588042" cy="321.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="394.5217985458804" cy="321.73704682775116" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="-117.47820145411958" cy="577.7370468277511" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="138.52179854588042" cy="577.7370468277511" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="394.5217985458804" cy="577.7370468277511" r="21.556106316222454" fill="#93dbe9"></circle> <circle cx="-162.6386709099624" cy="209.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="93.3613290900376" cy="209.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="349.3613290900376" cy="209.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="-162.6386709099624" cy="465.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="93.3613290900376" cy="465.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="349.3613290900376" cy="465.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="-162.6386709099624" cy="721.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="93.3613290900376" cy="721.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="349.3613290900376" cy="721.5394904805088" r="24.52697043691995" fill="#93dbe9"></circle> <circle cx="-147.3740595647397" cy="152.91068748943633" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="108.6259404352603" cy="152.91068748943633" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="364.6259404352603" cy="152.91068748943633" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="-147.3740595647397" cy="408.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="108.6259404352603" cy="408.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="364.6259404352603" cy="408.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="-147.3740595647397" cy="664.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="108.6259404352603" cy="664.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="364.6259404352603" cy="664.9106874894363" r="21.51015200476747" fill="#93dbe9"></circle> <circle cx="-192.59175861041996" cy="77.18554993301422" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="63.40824138958004" cy="77.18554993301422" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="319.40824138958004" cy="77.18554993301422" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="-192.59175861041996" cy="333.1855499330142" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="63.40824138958004" cy="333.1855499330142" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="319.40824138958004" cy="333.1855499330142" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="-192.59175861041996" cy="589.1855499330143" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="63.40824138958004" cy="589.1855499330143" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="319.40824138958004" cy="589.1855499330143" r="23.208103474280268" fill="#93dbe9"></circle> <circle cx="-79.42006978738306" cy="200.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="176.57993021261694" cy="200.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="432.57993021261694" cy="200.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="-79.42006978738306" cy="456.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="176.57993021261694" cy="456.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="432.57993021261694" cy="456.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="-79.42006978738306" cy="712.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="176.57993021261694" cy="712.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="432.57993021261694" cy="712.4069752375559" r="15.486005317165144" fill="#93dbe9"></circle> <circle cx="-121.43762123242561" cy="56.491324829246764" r="16.92789159610261" fill="#93dbe9"></circle> <circle cx="134.5623787675744" cy="56.491324829246764" r="16.92789159610261" fill="#93dbe9"></circle> <circle cx="390.5623787675744" cy="56.491324829246764" r="16.92789159610261" fill="#93dbe9"></circle> <circle cx="-121.43762123242561" cy="312.49132482924676" r="16.92789159610261Line truncated
<animateTransform attributeName="transform" type="translate" dur="50s" repeatCount="indefinite" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g><g>
<circle cx="-29.282070824233358" cy="206.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="226.71792917576664" cy="206.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="482.71792917576664" cy="206.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="-29.282070824233358" cy="462.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="226.71792917576664" cy="462.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="482.71792917576664" cy="462.7475764076192" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="-29.282070824233358" cy="718.7475764076191" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="226.71792917576664" cy="718.7475764076191" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="482.71792917576664" cy="718.7475764076191" r="16.356569130544052" fill="#689cc5"></circle> <circle cx="-119.77106789599327" cy="147.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="136.22893210400673" cy="147.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="392.22893210400673" cy="147.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="-119.77106789599327" cy="403.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="136.22893210400673" cy="403.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="392.22893210400673" cy="403.59310623269687" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="-119.77106789599327" cy="659.5931062326969" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="136.22893210400673" cy="659.5931062326969" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="392.22893210400673" cy="659.5931062326969" r="21.16585478989172" fill="#689cc5"></circle> <circle cx="-99.1950458914921" cy="90.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="156.8049541085079" cy="90.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="412.8049541085079" cy="90.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="-99.1950458914921" cy="346.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="156.8049541085079" cy="346.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="412.8049541085079" cy="346.60520911712854" r="18.26347402711" fill="#689cc5"></circle> <circle cx="-99.1950458914921" cy="602.6052091171285" r="18.26347402711" fill="#689cc5"></circle> <circle cx="156.8049541085079" cy="602.6052091171285" r="18.26347402711" fill="#689cc5"></circle> <circle cx="412.8049541085079" cy="602.6052091171285" r="18.26347402711" fill="#689cc5"></circle> <circle cx="-190.20831840016888" cy="133.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="65.79168159983112" cy="133.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="321.7916815998311" cy="133.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="-190.20831840016888" cy="389.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="65.79168159983112" cy="389.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="321.7916815998311" cy="389.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="-190.20831840016888" cy="645.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="65.79168159983112" cy="645.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="321.7916815998311" cy="645.6427033026721" r="16.438060855095472" fill="#689cc5"></circle> <circle cx="-75.36598803253361" cy="227.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="180.6340119674664" cy="227.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="436.6340119674664" cy="227.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="-75.36598803253361" cy="483.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="180.6340119674664" cy="483.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="436.6340119674664" cy="483.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="-75.36598803253361" cy="739.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="180.6340119674664" cy="739.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="436.6340119674664" cy="739.1713073994291" r="24.488501941495453" fill="#689cc5"></circle> <circle cx="-52.0535694396504" cy="-12.529192687286525" r="18.640227929932493" fill="#689cc5"></circle> <circle cx="203.9464305603496" cy="-12.529192687286525" r="18.640227929932493" fill="#689cc5"></circle> <circle cx="459.9464305603496" cy="-12.529192687286525" r="18.640227929932493" fill="#689cc5"></circle> <circle cx="-52.0535694396504" cy="243.47080731271348" r="18.640227929932493" fill="#689cc5"><Line truncated
<animateTransform attributeName="transform" type="translate" dur="25s" repeatCount="indefinite" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g><g>
<circle cx="-61.818625426475705" cy="223.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="194.1813745735243" cy="223.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="450.1813745735243" cy="223.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="-61.818625426475705" cy="479.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="194.1813745735243" cy="479.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="450.1813745735243" cy="479.73093714877814" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="-61.818625426475705" cy="735.7309371487781" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="194.1813745735243" cy="735.7309371487781" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="450.1813745735243" cy="735.7309371487781" r="19.489813297125778" fill="#5e6fa3"></circle> <circle cx="-130.99287817390075" cy="32.266904580826974" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="125.00712182609925" cy="32.266904580826974" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="381.00712182609925" cy="32.266904580826974" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="-130.99287817390075" cy="288.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="125.00712182609925" cy="288.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="381.00712182609925" cy="288.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="-130.99287817390075" cy="544.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="125.00712182609925" cy="544.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="381.00712182609925" cy="544.266904580827" r="20.250598288605616" fill="#5e6fa3"></circle> <circle cx="-114.9408654122559" cy="20.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="141.0591345877441" cy="20.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="397.0591345877441" cy="20.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="-114.9408654122559" cy="276.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="141.0591345877441" cy="276.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="397.0591345877441" cy="276.45342899050013" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="-114.9408654122559" cy="532.4534289905001" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="141.0591345877441" cy="532.4534289905001" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="397.0591345877441" cy="532.4534289905001" r="18.103831625412525" fill="#5e6fa3"></circle> <circle cx="-104.80705775206593" cy="44.91882464484638" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="151.19294224793407" cy="44.91882464484638" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="407.19294224793407" cy="44.91882464484638" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="-104.80705775206593" cy="300.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="151.19294224793407" cy="300.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="407.19294224793407" cy="300.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="-104.80705775206593" cy="556.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="151.19294224793407" cy="556.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="407.19294224793407" cy="556.9188246448464" r="21.639796724165027" fill="#5e6fa3"></circle> <circle cx="-237.85345336121185" cy="132.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="18.146546638788152" cy="132.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="274.14654663878815" cy="132.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="-237.85345336121185" cy="388.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="18.146546638788152" cy="388.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="274.14654663878815" cy="388.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="-237.85345336121185" cy="644.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="18.146546638788152" cy="644.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="274.14654663878815" cy="644.1180245261114" r="13.548894974734658" fill="#5e6fa3"></circle> <circle cx="-114.10644418384612" cy="143.46034115303564" r="19.363930365828462" fill="#5e6fa3"></circle> <circle cx="141.89355581615388" cy="143.46034115303564" r="19.363930365828462" fill="#5e6fa3"></circle> <circle cx="397.8935558161539" cy="143.46034115303564" r="19.363930365828462" fill="#5e6fa3"></circle> <circle cx="-114.10644418384612" cy="399Line truncated
<animateTransform attributeName="transform" type="translate" dur="16.666666666666668s" repeatCount="indefinite" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g></g></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.5239578789186163)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 27 KiB

+17
View File
@@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.7559634166593172" x="0" y="0" width="760.32" height="760.32" patternUnits="userSpaceOnUse">
<g transform="scale(2.97)"><g>
<line x1="248.93220498412637" x2="187.83676887148368" y1="133.26068452225024" y2="194.35612063489293" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="248.93220498412637" x2="187.83676887148368" y1="-378.73931547774976" y2="-317.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="504.9322049841264" x2="443.8367688714837" y1="-378.73931547774976" y2="-317.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="760.9322049841264" x2="699.8367688714836" y1="-378.73931547774976" y2="-317.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="248.93220498412637" x2="187.83676887148368" y1="-122.73931547774976" y2="-61.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="504.9322049841264" x2="443.8367688714837" y1="-122.73931547774976" y2="-61.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="760.9322049841264" x2="699.8367688714836" y1="-122.73931547774976" y2="-61.64387936510707" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="248.93220498412637" x2="187.83676887148368" y1="133.26068452225024" y2="194.35612063489293" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="504.9322049841264" x2="443.8367688714837" y1="133.26068452225024" y2="194.35612063489293" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="760.9322049841264" x2="699.8367688714836" y1="133.26068452225024" y2="194.35612063489293" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="271.51835507321255" x2="195.66490594892483" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="271.51835507321255" x2="195.66490594892483" y1="-351.59396541282365" y2="-275.740516288536" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="527.5183550732125" x2="451.6649059489248" y1="-351.59396541282365" y2="-275.740516288536" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="783.5183550732125" x2="707.6649059489248" y1="-351.59396541282365" y2="-275.740516288536" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="271.51835507321255" x2="195.66490594892483" y1="-95.59396541282368" y2="-19.740516288535986" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="527.5183550732125" x2="451.6649059489248" y1="-95.59396541282368" y2="-19.740516288535986" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="783.5183550732125" x2="707.6649059489248" y1="-95.59396541282368" y2="-19.740516288535986" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="271.51835507321255" x2="195.66490594892483" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="527.5183550732125" x2="451.6649059489248" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="783.5183550732125" x2="707.6649059489248" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="15.518355073212547" x2="-60.335094051075174" y1="160.40603458717632" y2="236.25948371146401" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="83.40042674041591" x2="33.11441362141967" y1="-16.06889251952758" y2="34.21712059946866" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="83.40042674041591" x2="33.11441362141967" y1="-528.0688925195276" y2="-477.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="339.4004267404159" x2="289.11441362141966" y1="-528.0688925195276" y2="-477.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="595.4004267404159" x2="545.1144136214197" y1="-528.0688925195276" y2="-477.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="83.40042674041591" x2="33.11441362141967" y1="-272.0688925195276" y2="-221.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="339.4004267404159" x2="289.11441362141966" y1="-272.0688925195276" y2="-221.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="595.4004267404159" x2="545.1144136214197" y1="-272.0688925195276" y2="-221.78287940053133" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="83.40042674041591" x2="33.11441362141967" y1="-16.06889251952758" y2="34.21712059946866" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line x1="339.4004267404159" x2="289.11441362141966" y1="-16.06889251952758" y2="34.21712059946866" stroke-width="17" stroke="#93dbe9" stroke-linecap="round"></line><line Line truncated
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256" keyTimes="0;1" repeatCount="indefinite" dur="25s"></animateTransform>
</g><g>
<line x1="71.91569756110977" x2="15.716244394201393" y1="203.173939148305" y2="259.3733923152134" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="71.91569756110977" x2="15.716244394201393" y1="-308.826060851695" y2="-252.62660768478662" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="327.91569756110977" x2="271.7162443942014" y1="-308.826060851695" y2="-252.62660768478662" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="583.9156975611097" x2="527.7162443942013" y1="-308.826060851695" y2="-252.62660768478662" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="71.91569756110977" x2="15.716244394201393" y1="-52.82606085169499" y2="3.37339231521338" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="327.91569756110977" x2="271.7162443942014" y1="-52.82606085169499" y2="3.37339231521338" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="583.9156975611097" x2="527.7162443942013" y1="-52.82606085169499" y2="3.37339231521338" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="71.91569756110977" x2="15.716244394201393" y1="203.173939148305" y2="259.3733923152134" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="327.91569756110977" x2="271.7162443942014" y1="203.173939148305" y2="259.3733923152134" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="583.9156975611097" x2="527.7162443942013" y1="203.173939148305" y2="259.3733923152134" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="100.19778350912817" x2="40.76948708581391" y1="172.52911656319793" y2="231.95741298651217" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="100.19778350912817" x2="40.76948708581391" y1="-339.47088343680207" y2="-280.04258701348783" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="356.19778350912816" x2="296.7694870858139" y1="-339.47088343680207" y2="-280.04258701348783" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="612.1977835091282" x2="552.7694870858139" y1="-339.47088343680207" y2="-280.04258701348783" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="100.19778350912817" x2="40.76948708581391" y1="-83.47088343680207" y2="-24.042587013487832" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="356.19778350912816" x2="296.7694870858139" y1="-83.47088343680207" y2="-24.042587013487832" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="612.1977835091282" x2="552.7694870858139" y1="-83.47088343680207" y2="-24.042587013487832" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="100.19778350912817" x2="40.76948708581391" y1="172.52911656319793" y2="231.95741298651217" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="356.19778350912816" x2="296.7694870858139" y1="172.52911656319793" y2="231.95741298651217" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="612.1977835091282" x2="552.7694870858139" y1="172.52911656319793" y2="231.95741298651217" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="213.2381854072459" x2="157.39228641928293" y1="217.7855761775765" y2="273.6314751655395" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="213.2381854072459" x2="157.39228641928293" y1="-294.2144238224235" y2="-238.36852483446052" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="469.2381854072459" x2="413.3922864192829" y1="-294.2144238224235" y2="-238.36852483446052" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="725.238185407246" x2="669.392286419283" y1="-294.2144238224235" y2="-238.36852483446052" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="213.2381854072459" x2="157.39228641928293" y1="-38.2144238224235" y2="17.631475165539484" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="469.2381854072459" x2="413.3922864192829" y1="-38.2144238224235" y2="17.631475165539484" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="725.238185407246" x2="669.392286419283" y1="-38.2144238224235" y2="17.631475165539484" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="213.2381854072459" x2="157.39228641928293" y1="217.7855761775765" y2="273.6314751655395" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="469.2381854072459" x2="413.3922864192829" y1="217.7855761775765" y2="273.6314751655395" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="725.238185407246" x2="669.392286419283" y1="217.7855761775765" y2="273.6314751655395" stroke-width="17" stroke="#689cc5" stroke-linecap="round"></line><line x1="33.27332893022041" x2="25.614502345307Line truncated
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256" keyTimes="0;1" repeatCount="indefinite" dur="12.5s"></animateTransform>
</g><g>
<line x1="46.826418842232336" x2="16.147355370761254" y1="89.43634965170651" y2="120.11541312317758" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="46.826418842232336" x2="16.147355370761254" y1="-422.5636503482935" y2="-391.8845868768224" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="302.82641884223233" x2="272.14735537076126" y1="-422.5636503482935" y2="-391.8845868768224" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="558.8264188422323" x2="528.1473553707613" y1="-422.5636503482935" y2="-391.8845868768224" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="46.826418842232336" x2="16.147355370761254" y1="-166.5636503482935" y2="-135.88458687682242" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="302.82641884223233" x2="272.14735537076126" y1="-166.5636503482935" y2="-135.88458687682242" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="558.8264188422323" x2="528.1473553707613" y1="-166.5636503482935" y2="-135.88458687682242" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="46.826418842232336" x2="16.147355370761254" y1="89.43634965170651" y2="120.11541312317758" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="302.82641884223233" x2="272.14735537076126" y1="89.43634965170651" y2="120.11541312317758" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="558.8264188422323" x2="528.1473553707613" y1="89.43634965170651" y2="120.11541312317758" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="189.95299049748724" x2="111.70381347927696" y1="45.75774329661329" y2="124.00692031482356" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="189.95299049748724" x2="111.70381347927696" y1="-466.2422567033867" y2="-387.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="445.95299049748724" x2="367.70381347927696" y1="-466.2422567033867" y2="-387.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="701.9529904974872" x2="623.703813479277" y1="-466.2422567033867" y2="-387.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="189.95299049748724" x2="111.70381347927696" y1="-210.24225670338672" y2="-131.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="445.95299049748724" x2="367.70381347927696" y1="-210.24225670338672" y2="-131.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="701.9529904974872" x2="623.703813479277" y1="-210.24225670338672" y2="-131.99307968517644" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="189.95299049748724" x2="111.70381347927696" y1="45.75774329661329" y2="124.00692031482356" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="445.95299049748724" x2="367.70381347927696" y1="45.75774329661329" y2="124.00692031482356" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="701.9529904974872" x2="623.703813479277" y1="45.75774329661329" y2="124.00692031482356" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="248.68858250190144" x2="203.82663522832937" y1="112.45061693842503" y2="157.3125642119971" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="248.68858250190144" x2="203.82663522832937" y1="-399.549383061575" y2="-354.68743578800286" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="504.68858250190146" x2="459.82663522832934" y1="-399.549383061575" y2="-354.68743578800286" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="760.6885825019015" x2="715.8266352283293" y1="-399.549383061575" y2="-354.68743578800286" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="248.68858250190144" x2="203.82663522832937" y1="-143.54938306157499" y2="-98.68743578800289" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="504.68858250190146" x2="459.82663522832934" y1="-143.54938306157499" y2="-98.68743578800289" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="760.6885825019015" x2="715.8266352283293" y1="-143.54938306157499" y2="-98.68743578800289" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="248.68858250190144" x2="203.82663522832937" y1="112.45061693842503" y2="157.3125642119971" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="504.68858250190146" x2="459.82663522832934" y1="112.45061693842503" y2="157.3125642119971" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><line x1="760.6885825019015" x2="715.8266352283293" y1="112.45061693842503" y2="157.3125642119971" stroke-width="17" stroke="#5e6fa3" stroke-linecap="round"></line><Line truncated
<animateTransform attributeName="transform" type="translate" values="0 0;-256 256" keyTimes="0;1" repeatCount="indefinite" dur="8.333333333333334s"></animateTransform>
</g></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.7559634166593172)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 85 KiB

+257
View File
@@ -0,0 +1,257 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.2950529742247572" x="0" y="0" width="711.6800000000001" height="711.6800000000001" patternUnits="userSpaceOnUse">
<g transform="scale(2.7800000000000002)"><circle cx="180.39755796770348" cy="144.2104368598822" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;17.85434406280291" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-44.622752456562516s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-44.622752456562516s"></animate>
</circle><circle cx="16.825168708189995" cy="32.834595161139454" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="272.82516870819" cy="32.834595161139454" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="16.825168708189995" cy="288.8345951611395" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="272.82516870819" cy="288.8345951611395" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.39487920677064" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.52246651250024s"></animate>
</circle><circle cx="133.7281341523537" cy="37.557212373233874" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;24.44944303845901" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.76558939460953s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.76558939460953s"></animate>
</circle><circle cx="9.311746119524932" cy="139.87259197506899" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;42.09217911991696" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
</circle><circle cx="265.3117461195249" cy="139.87259197506899" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;42.09217911991696" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.268240533907207s"></animate>
</circle><circle cx="228.8288862878399" cy="50.59785782429598" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;19.868262625397918" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-23.68489264848651s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-23.68489264848651s"></animate>
</circle><circle cx="77.20196271561525" cy="31.611804700405518" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;45.28258812229561" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
</circle><circle cx="77.20196271561525" cy="287.6118047004055" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;45.28258812229561" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.661787725688292s"></animate>
</circle><circle cx="153.86297348533364" cy="53.13721410068965" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;56.59657006893606" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
</circle><circle cx="153.86297348533364" cy="309.1372141006897" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;56.59657006893606" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-26.846959941207736s"></animate>
</circle><circle cx="238.25141956589107" cy="242.3948925366868" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;7.110432319564012" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.8377648779141s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.8377648779141s"></animate>
</circle><circle cx="171.29587360943597" cy="93.62941553592991" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;64.80517552507085" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-41.081630071778505s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-41.081630071778505s"></animate>
</circle><circle cx="33.7803997203791" cy="200.65918731382288" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;23.874060138252702" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.74940953893833s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.74940953893833s"></animate>
</circle><circle cx="171.68455092137125" cy="208.29640936292603" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;10.804694032911527" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-46.827942545330814s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-46.827942545330814s"></animate>
</circle><circle cx="79.4759072969399" cy="14.760241106300118" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;63.07191175406126" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
</circle><circle cx="79.4759072969399" cy="270.7602411063001" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;63.07191175406126" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-38.31065839827809s"></animate>
</circle><circle cx="34.30718832814177" cy="60.207260607353895" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;36.85782580252244" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
</circle><circle cx="290.30718832814176" cy="60.207260607353895" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;36.85782580252244" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-33.9202714458405s"></animate>
</circle><circle cx="141.57461629003254" cy="187.07605677907222" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;51.82556427519147" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-39.3497070269789s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-39.3497070269789s"></animate>
</circle><circle cx="89.86556463252813" cy="191.98681310799674" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;42.52162149867297" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.730611990382005s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.730611990382005s"></animate>
</circle><circle cx="135.68751640285163" cy="79.13898775934953" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;13.167119065627332" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-5.604152896601732s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-5.604152896601732s"></animate>
</circle><circle cx="222.37419164851048" cy="172.5138843825768" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;30.712438068878654" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-11.730564332626214s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-11.730564332626214s"></animate>
</circle><circle cx="65.37962957434202" cy="71.08214856672792" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;51.390991126295845" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.53817444257383s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.53817444257383s"></animate>
</circle><circle cx="146.90696443169887" cy="160.58661584710634" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;30.874027084269912" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-48.61529961868726s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-48.61529961868726s"></animate>
</circle><circle cx="20.6640150520578" cy="116.652000839832" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;20.32462575632799" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-16.94818532763218s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-16.94818532763218s"></animate>
</circle><circle cx="14.794147949099273" cy="178.87974595952937" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;62.66357119046049" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
</circle><circle cx="270.7941479490993" cy="178.87974595952937" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;62.66357119046049" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-22.398483724039195s"></animate>
</circle><circle cx="31.287373376921607" cy="70.1833739363135" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;15.295461964288506" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-13.161686681828998s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-13.161686681828998s"></animate>
</circle><circle cx="178.84317419706238" cy="167.34091291757605" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;62.162205555011425" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-23.327170625044392s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-23.327170625044392s"></animate>
</circle><circle cx="154.05316621664582" cy="55.033341833431564" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;39.67588542484934" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.452897657374963s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.452897657374963s"></animate>
</circle><circle cx="72.19223514179198" cy="135.19246311905093" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;20.804220090813203" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-45.51768235650617s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-45.51768235650617s"></animate>
</circle><circle cx="150.9364802116815" cy="160.51205929354626" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;36.57407641397833" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.280565367328037s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-28.280565367328037s"></animate>
</circle><circle cx="200.40953970115999" cy="54.21097279269783" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;18.303774190487488" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.214535605827784s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-16.214535605827784s"></animate>
</circle><circle cx="180.31885618742604" cy="242.78087924898603" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;11.71365962730546" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.612535536027956s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-33.612535536027956s"></animate>
</circle><circle cx="203.8062010106876" cy="232.68973192108191" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;5.455675580739268" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-11.86697370110249s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-11.86697370110249s"></animate>
</circle><circle cx="171.6066941076269" cy="48.04474014530398" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;38.59286259496349" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.250466319872224s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.250466319872224s"></animate>
</circle><circle cx="125.11525876384411" cy="149.77467373569812" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;46.62256816012656" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-10.699532836506153s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-10.699532836506153s"></animate>
</circle><circle cx="89.16772547042389" cy="100.43557995027065" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.90728701564909" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-20.057887262682318s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-20.057887262682318s"></animate>
</circle><circle cx="163.0802387343303" cy="125.70388388233474" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;60.89399699890593" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.04746538184899s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-29.04746538184899s"></animate>
</circle><circle cx="147.29969577601045" cy="40.152117547871356" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.17094951058618" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
</circle><circle cx="147.29969577601045" cy="296.15211754787134" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.17094951058618" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-8.699383046276775s"></animate>
</circle><circle cx="50.39439200506233" cy="147.3941729324677" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;50.69970142939741" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
</circle><circle cx="306.39439200506234" cy="147.3941729324677" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;50.69970142939741" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.544702694456348s"></animate>
</circle><circle cx="188.7139101584322" cy="210.7115210762685" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;29.504019948829963" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-32.532647237390165s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-32.532647237390165s"></animate>
</circle><circle cx="114.22207446357659" cy="124.76935492926279" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;11.986008541965333" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.917226446523447s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.917226446523447s"></animate>
</circle><circle cx="194.31954289149434" cy="166.65089356408262" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;20.194181381536055" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-30.020995894146097s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-30.020995894146097s"></animate>
</circle><circle cx="184.86541783077774" cy="44.886087590301756" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.99589341531981" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
</circle><circle cx="184.86541783077774" cy="300.88608759030177" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.99589341531981" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-36.60809296354671s"></animate>
</circle><circle cx="128.6294815429427" cy="20.412863761372066" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;58.14291539416182" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
</circle><circle cx="128.6294815429427" cy="276.4128637613721" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;58.14291539416182" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-38.6283523615141s"></animate>
</circle><circle cx="94.65360523910455" cy="237.65373752048882" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;10.872426017373087" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.286612875431295s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-17.286612875431295s"></animate>
</circle><circle cx="186.84577473379255" cy="4.291441103039755" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.03848537207753" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
</circle><circle cx="186.84577473379255" cy="260.29144110303974" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;50.03848537207753" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-30.97916037182813s"></animate>
</circle><circle cx="3.1171684515748126" cy="10.536170179400985" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="259.1171684515748" cy="10.536170179400985" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="3.1171684515748126" cy="266.536170179401" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="259.1171684515748" cy="266.536170179401" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;31.72037969636405" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-29.18270767825585s"></animate>
</circle><circle cx="188.74527992387326" cy="21.78088381944502" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;24.62604013195285" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
</circle><circle cx="188.74527992387326" cy="277.780883819445" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;24.62604013195285" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-15.60412108402891s"></animate>
</circle><circle cx="25.856888539646313" cy="42.26884688505775" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="281.8568885396463" cy="42.26884688505775" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="25.856888539646313" cy="298.26884688505777" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="281.8568885396463" cy="298.26884688505777" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.95560071224433" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-16.780876976602578s"></animate>
</circle><circle cx="80.07378641634132" cy="99.95189316646443" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;31.25308753538168" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-44.38933261009856s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-44.38933261009856s"></animate>
</circle><circle cx="115.28452115370486" cy="183.50469529806404" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;43.47190520350591" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.01262905715093s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-35.01262905715093s"></animate>
</circle><circle cx="178.06444021126137" cy="196.65069638203684" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;55.28300103432255" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-31.907669721653242s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-31.907669721653242s"></animate>
</circle><circle cx="44.16845143857357" cy="102.58764890706274" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.592641937222965" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
</circle><circle cx="300.1684514385736" cy="102.58764890706274" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;56.592641937222965" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-21.452416790316818s"></animate>
</circle><circle cx="79.90917564776078" cy="58.24933597303385" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;17.76697933939279" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-6.018058267098058s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-6.018058267098058s"></animate>
</circle><circle cx="99.51047224071066" cy="68.21685313096823" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;32.538025421938485" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-24.711449309412114s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-24.711449309412114s"></animate>
</circle><circle cx="170.23837150372032" cy="80.50555967618685" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;49.47798543600463" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-27.302250080429058s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-27.302250080429058s"></animate>
</circle><circle cx="146.82045516936643" cy="81.4540879579799" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;17.51784178229697" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-14.316475870551947s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-14.316475870551947s"></animate>
</circle><circle cx="85.89692843138472" cy="166.66227056758296" r="0" fill="none" stroke="#5e6fa3" stroke-width="8">
<animate attributeName="r" values="0;43.09830041436764" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-25.33233432848061s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-25.33233432848061s"></animate>
</circle><circle cx="177.2226960369944" cy="175.07899171519415" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;43.73555785023012" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-25.121497689569683s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-25.121497689569683s"></animate>
</circle><circle cx="216.86808064093213" cy="27.577527215605766" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;4.737877261879547" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.904900634836528s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-15.904900634836528s"></animate>
</circle><circle cx="110.04710192749121" cy="180.18493319620214" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;44.77556931875715" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-1.5780314591062772s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="25s" begin="-1.5780314591062772s"></animate>
</circle><circle cx="64.71846547185336" cy="75.44443893159085" r="0" fill="none" stroke="#93dbe9" stroke-width="8">
<animate attributeName="r" values="0;9.889551183237941" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-36.2183301855013s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-36.2183301855013s"></animate>
</circle><circle cx="40.659167565439354" cy="80.92354614012416" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.03611543920749" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
</circle><circle cx="296.65916756543936" cy="80.92354614012416" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;47.03611543920749" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="16.666666666666668s" begin="-40.52530054760075s"></animate>
</circle><circle cx="158.9398261520183" cy="96.5683673937937" r="0" fill="none" stroke="#689cc5" stroke-width="8">
<animate attributeName="r" values="0;9.89977495248037" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-2.5412705195820062s"></animate>
<animate attributeName="opacity" values="1;0" keyTimes="0;1" calcMode="spline" repeatCount="indefinite" keySplines="0 0.5 0.5 1" dur="12.5s" begin="-2.5412705195820062s"></animate>
</circle></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.2950529742247572)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 42 KiB

+18
View File
@@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.32277503320149736" x="0" y="0" width="322.56" height="322.56" patternUnits="userSpaceOnUse">
<g transform="scale(1.26)"><g> <line x1="12.8" y1="-268.8" x2="12.8" y2="-217.6" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-12.8" x2="12.8" y2="38.400000000000006" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="243.2" x2="12.8" y2="294.4" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-192" x2="12.8" y2="-140.8" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="64" x2="12.8" y2="115.2" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="320" x2="12.8" y2="371.2" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-115.19999999999999" x2="12.8" y2="-64" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="140.8" x2="12.8" y2="192" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="396.8" x2="12.8" y2="448" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="-38.39999999999998" x2="12.8" y2="38.400000000000034" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="217.60000000000002" x2="12.8" y2="294.40000000000003" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="12.8" y1="473.6" x2="12.8" y2="550.4000000000001" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
</g> <g> <line x1="38.400000000000006" y1="-243.2" x2="38.400000000000006" y2="-192" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="12.8" x2="38.400000000000006" y2="64" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="268.8" x2="38.400000000000006" y2="320" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="-166.39999999999998" x2="38.400000000000006" y2="-115.19999999999999" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="89.60000000000001" x2="38.400000000000006" y2="140.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="345.6" x2="38.400000000000006" y2="396.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="-89.59999999999997" x2="38.400000000000006" y2="-12.799999999999955" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="166.40000000000003" x2="38.400000000000006" y2="243.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="38.400000000000006" y1="422.40000000000003" x2="38.400000000000006" y2="499.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="16.666666666666668s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="64" y1="-243.2" x2="64" y2="-192" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="12.8" x2="64" y2="64" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="268.8" x2="64" y2="320" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="-166.39999999999998" x2="64" y2="-115.19999999999999" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="89.60000000000001" x2="64" y2="140.8" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="345.6" x2="64" y2="396.8" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="-89.59999999999997" x2="64" y2="-12.799999999999955" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="166.40000000000003" x2="64" y2="243.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="64" y1="422.40000000000003" x2="64" y2="499.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="25s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="89.60000000000001" y1="-243.2" x2="89.60000000000001" y2="-166.39999999999998" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="12.8" x2="89.60000000000001" y2="89.60000000000001" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="268.8" x2="89.60000000000001" y2="345.6" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="-140.8" x2="89.60000000000001" y2="-89.6" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="115.2" x2="89.60000000000001" y2="166.4" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="371.2" x2="89.60000000000001" y2="422.4" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="-63.99999999999997" x2="89.60000000000001" y2="-12.799999999999955" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="192.00000000000003" x2="89.60000000000001" y2="243.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="89.60000000000001" y1="448" x2="89.60000000000001" y2="499.20000000000005" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="16.666666666666668s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="115.2" y1="-243.2" x2="115.2" y2="-217.6" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="12.8" x2="115.2" y2="38.400000000000006" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="268.8" x2="115.2" y2="294.4" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="-192" x2="115.2" y2="-140.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="64" x2="115.2" y2="115.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="320" x2="115.2" y2="371.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="-115.19999999999999" x2="115.2" y2="-64" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="140.8" x2="115.2" y2="192" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="396.8" x2="115.2" y2="448" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="-38.39999999999998" x2="115.2" y2="-12.799999999999983" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="217.60000000000002" x2="115.2" y2="243.20000000000002" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <line x1="115.2" y1="473.6" x2="115.2" y2="499.20000000000005" stroke="#b3b7e2" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="25s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
</g> <g> <line x1="140.8" y1="-243.2" x2="140.8" y2="-166.39999999999998" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="12.8" x2="140.8" y2="89.60000000000001" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="268.8" x2="140.8" y2="345.6" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="-140.8" x2="140.8" y2="-115.19999999999999" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="115.2" x2="140.8" y2="140.8" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="371.2" x2="140.8" y2="396.8" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="-89.59999999999997" x2="140.8" y2="-63.99999999999997" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="166.40000000000003" x2="140.8" y2="192.00000000000003" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="422.40000000000003" x2="140.8" y2="448" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="-38.39999999999998" x2="140.8" y2="-12.799999999999983" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="217.60000000000002" x2="140.8" y2="243.20000000000002" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="140.8" y1="473.6" x2="140.8" y2="499.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
</g> <g> <line x1="166.40000000000003" y1="-268.8" x2="166.40000000000003" y2="-192" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="-12.8" x2="166.40000000000003" y2="64.00000000000001" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="243.2" x2="166.40000000000003" y2="320" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="-166.39999999999998" x2="166.40000000000003" y2="-89.59999999999997" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="89.60000000000001" x2="166.40000000000003" y2="166.40000000000003" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="345.6" x2="166.40000000000003" y2="422.40000000000003" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="-63.99999999999997" x2="166.40000000000003" y2="64" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="192.00000000000003" x2="166.40000000000003" y2="320" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="166.40000000000003" y1="448" x2="166.40000000000003" y2="576" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="192.00000000000003" y1="-243.2" x2="192.00000000000003" y2="-166.39999999999998" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="12.8" x2="192.00000000000003" y2="89.60000000000001" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="268.8" x2="192.00000000000003" y2="345.6" stroke="#3b4368" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="-140.8" x2="192.00000000000003" y2="-64" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="115.2" x2="192.00000000000003" y2="192" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="371.2" x2="192.00000000000003" y2="448" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="-38.39999999999998" x2="192.00000000000003" y2="-12.799999999999983" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="217.60000000000002" x2="192.00000000000003" y2="243.20000000000002" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="192.00000000000003" y1="473.6" x2="192.00000000000003" y2="499.20000000000005" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="16.666666666666668s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g> <g> <line x1="217.60000000000002" y1="-243.2" x2="217.60000000000002" y2="-217.6" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="12.8" x2="217.60000000000002" y2="38.400000000000006" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="268.8" x2="217.60000000000002" y2="294.4" stroke="#689cc5" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="-192" x2="217.60000000000002" y2="-140.8" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="64" x2="217.60000000000002" y2="115.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="320" x2="217.60000000000002" y2="371.2" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="-115.19999999999999" x2="217.60000000000002" y2="-64" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="140.8" x2="217.60000000000002" y2="192" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="396.8" x2="217.60000000000002" y2="448" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="-38.39999999999998" x2="217.60000000000002" y2="-12.799999999999983" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="217.60000000000002" x2="217.60000000000002" y2="243.20000000000002" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <line x1="217.60000000000002" y1="473.6" x2="217.60000000000002" y2="499.20000000000005" stroke="#5e6fa3" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="50s" keyTimes="0;1" values="0 0;0 256"></animateTransform>
</g> <g> <line x1="243.20000000000002" y1="-243.2" x2="243.20000000000002" y2="-166.39999999999998" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="12.8" x2="243.20000000000002" y2="89.60000000000001" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="268.8" x2="243.20000000000002" y2="345.6" stroke="#191d3a" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="-140.8" x2="243.20000000000002" y2="-64" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="115.2" x2="243.20000000000002" y2="192" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="371.2" x2="243.20000000000002" y2="448" stroke="#93dbe9" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="-38.39999999999998" x2="243.20000000000002" y2="-12.799999999999983" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="217.60000000000002" x2="243.20000000000002" y2="243.20000000000002" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <line x1="243.20000000000002" y1="473.6" x2="243.20000000000002" y2="499.20000000000005" stroke="#d9dbee" stroke-width="21.6" stroke-linecap="round"></line> <animateTransform attributeName="transform" type="translate" repeatCount="indefinite" dur="25s" keyTimes="0;1" values="0 0;0 -256"></animateTransform>
</g></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.32277503320149736)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

+24
View File
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin:auto;background:rgba(NaN, NaN, NaN, 0);display:block;z-index:1;position:relative" width="1084" height="322" preserveAspectRatio="xMidYMid" viewBox="0 0 1084 322">
<defs>
<pattern id="pid-0.1520523902861448" x="0" y="0" width="665.6" height="665.6" patternUnits="userSpaceOnUse">
<g transform="scale(2.6)"><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#93dbe9" stroke-width="10" transform="translate(0 -36.57142857142857)">
<animateTransform attributeName="transform" type="translate" values="256 -36.57142857142857;0 -36.57142857142857;256 -36.57142857142857" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="0s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#689cc5" stroke-width="10" transform="translate(0 0)">
<animateTransform attributeName="transform" type="translate" values="0 0;256 0;0 0" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-1.4285714285714284s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#5e6fa3" stroke-width="10" transform="translate(0 36.57142857142857)">
<animateTransform attributeName="transform" type="translate" values="256 36.57142857142857;0 36.57142857142857;256 36.57142857142857" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-2.8571428571428568s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#3b4368" stroke-width="10" transform="translate(0 73.14285714285714)">
<animateTransform attributeName="transform" type="translate" values="0 73.14285714285714;256 73.14285714285714;0 73.14285714285714" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-4.285714285714286s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#191d3a" stroke-width="10" transform="translate(0 109.71428571428571)">
<animateTransform attributeName="transform" type="translate" values="256 109.71428571428571;0 109.71428571428571;256 109.71428571428571" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-5.7142857142857135s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#d9dbee" stroke-width="10" transform="translate(0 146.28571428571428)">
<animateTransform attributeName="transform" type="translate" values="0 146.28571428571428;256 146.28571428571428;0 146.28571428571428" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-7.142857142857142s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#b3b7e2" stroke-width="10" transform="translate(0 182.85714285714286)">
<animateTransform attributeName="transform" type="translate" values="256 182.85714285714286;0 182.85714285714286;256 182.85714285714286" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="-8.571428571428571s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path><path d="M -256 9.314285714285713 C -192 9.314285714285713 -192 2 -128 2 C -64 2 -64 9.314285714285713 2 9.314285714285713 C 64 9.314285714285713 64 2 128 2 C 192 2 192 9.314285714285713 256 9.314285714285713 L 384 384 L -384 384 L -384 9.314285714285713 Z" fill="none" stroke="#93dbe9" stroke-width="10" transform="translate(0 219.42857142857142)">
<animateTransform attributeName="transform" type="translate" values="0 219.42857142857142;256 219.42857142857142;0 219.42857142857142" keyTimes="0;0.5;1" dur="20s" repeatCount="indefinite" calcMode="spline" begin="0s" keySplines="0.5 0 0.5 1;0.5 0 0.5 1"></animateTransform>
</path></g>
</pattern>
</defs>
<rect x="0" y="0" width="1084" height="322" fill="url(#pid-0.1520523902861448)"></rect>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

+1 -1
View File
@@ -13,7 +13,7 @@ function createCopyButton(highlightDiv) {
}
async function copyCodeToClipboard(button, highlightDiv) {
const codeToCopy = highlightDiv.querySelector(":last-child > .chroma > code").innerText;
const codeToCopy = highlightDiv.querySelector(":last-child").innerText;
try {
result = await navigator.permissions.query({ name: "clipboard-write" });
if (result.state == "granted" || result.state == "prompt") {
+20
View File
@@ -0,0 +1,20 @@
function css(name) {
return "rgb(" + getComputedStyle(document.documentElement).getPropertyValue(name) + ")";
}
mermaid.initialize({
theme: "base",
themeVariables: {
background: css("--color-neutral"),
primaryColor: css("--color-primary-200"),
secondaryColor: css("--color-secondary-200"),
tertiaryColor: css("--color-neutral-100"),
primaryBorderColor: css("--color-primary-400"),
secondaryBorderColor: css("--color-secondary-400"),
tertiaryBorderColor: css("--color-neutral-400"),
lineColor: css("--color-neutral-600"),
fontFamily:
"ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,Arial,noto sans,sans-serif",
fontSize: "16px",
},
});
+12 -12
View File
@@ -1,7 +1,9 @@
var liked_page = false
var id = oid ? oid.replaceAll("/", "-") : oid
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
if (typeof auth !== 'undefined') {
var id = oid ? oid.replaceAll("/", "-") : oid
var viewed = localStorage.getItem(id);
if (!viewed) {
@@ -28,14 +30,13 @@ if (typeof auth !== 'undefined') {
});
}
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
var liked = localStorage.getItem(id_likes);
if (liked) {
liked_page = true
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = ""
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = "none"
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = ""
document.querySelectorAll("span[id='button_likes_heart']")[0].style.display = ""
document.querySelectorAll("span[id='button_likes_emtpty_heart']")[0].style.display = "none"
document.querySelectorAll("span[id='button_likes_text']")[0].innerText = ""
}
}
@@ -47,9 +48,9 @@ function like_article(id_likes) {
docRef.get().then((doc) => {
liked_page = true
localStorage.setItem(id_likes, true);
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = ""
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = "none"
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = ""
document.querySelectorAll("span[id='button_likes_heart']")[0].style.display = ""
document.querySelectorAll("span[id='button_likes_emtpty_heart']")[0].style.display = "none"
document.querySelectorAll("span[id='button_likes_text']")[0].innerText = ""
if (doc.exists) {
db.collection('likes').doc(id_likes).update({
likes: firebase.firestore.FieldValue.increment(1)
@@ -75,9 +76,9 @@ function remove_like_article(id_likes) {
docRef.get().then((doc) => {
liked_page = false
localStorage.removeItem(id_likes);
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = "none"
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = ""
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = "\xa0Like"
document.querySelectorAll("span[id='button_likes_heart']")[0].style.display = "none"
document.querySelectorAll("span[id='button_likes_emtpty_heart']")[0].style.display = ""
document.querySelectorAll("span[id='button_likes_text']")[0].innerText = "\xa0Like"
if (doc.exists) {
db.collection('likes').doc(id_likes).update({
likes: firebase.firestore.FieldValue.increment(-1)
@@ -97,7 +98,6 @@ function remove_like_article(id_likes) {
}
function process_article() {
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
if (!liked_page) {
like_article(id_likes)
} else {
+16
View File
@@ -6,12 +6,24 @@ if (typeof auth !== 'undefined') {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}
function toggleLoaders(node){
var classesString = node.className;
if(classesString == "") return
var classes = classesString.split(" ");
for(var i in classes){
node.classList.toggle(classes[i])
}
}
var update_views = function (node, id) {
viewsCollection.doc(id).onSnapshot(doc => {
var data = doc.data();
if (data) {
node.innerText = numberWithCommas(data.views)
} else {
node.innerText = 0
}
toggleLoaders(node)
})
}
@@ -20,7 +32,11 @@ if (typeof auth !== 'undefined') {
var data = doc.data();
if (data) {
node.innerText = numberWithCommas(data.likes)
} else {
node.innerText = 0
}
toggleLoaders(node)
})
}
+28 -2
View File
@@ -63,6 +63,21 @@ document.addEventListener("keydown", function (event) {
}
}
}
// Enter to get to results
if (event.key == "Enter") {
if (searchVisible && hasResults) {
event.preventDefault();
if (document.activeElement == input) {
first.focus();
} else {
document.activeElement.click();
}
}else{
event.preventDefault();
}
}
});
// Update search on each keypress
@@ -123,6 +138,12 @@ function buildIndex() {
{ name: "content", weight: 0.4 },
],
};
/*var finalIndex = [];
for (var i in data) {
if(data[i].type != "users" && data[i].type != "tags" && data[i].type != "categories"){
finalIndex.push(data[i]);
}
}*/
fuse = new Fuse(data, options);
indexed = true;
});
@@ -134,12 +155,17 @@ function executeQuery(term) {
if (results.length > 0) {
results.forEach(function (value, key) {
var title = value.item.externalUrl? value.item.title + '<span class="text-xs ml-2 align-center cursor-default text-neutral-400 dark:text-neutral-500">'+value.item.externalUrl+'</span>' : value.item.title;
var linkconfig = value.item.externalUrl? 'target="_blank" rel="noopener" href="'+value.item.externalUrl+'"' : 'href="'+value.item.permalink+'"';
resultsHTML =
resultsHTML +
`<li class="mb-2">
<a class="flex items-center px-3 py-2 rounded-md appearance-none bg-neutral-100 dark:bg-neutral-700 focus:bg-primary-100 hover:bg-primary-100 dark:hover:bg-primary-900 dark:focus:bg-primary-900 focus:outline-dotted focus:outline-transparent focus:outline-2" href="${value.item.permalink}" tabindex="0">
<a class="flex items-center px-3 py-2 rounded-md appearance-none bg-neutral-100 dark:bg-neutral-700 focus:bg-primary-100 hover:bg-primary-100 dark:hover:bg-primary-900 dark:focus:bg-primary-900 focus:outline-dotted focus:outline-transparent focus:outline-2"
${linkconfig} tabindex="0">
<div class="grow">
<div class="-mb-1 text-lg font-bold">${value.item.title}</div>
<div class="-mb-1 text-lg font-bold">
${title}
</div>
<div class="text-sm text-neutral-500 dark:text-neutral-400">${value.item.section}<span class="px-2 text-primary-500">&middot;</span>${value.item.date}</span></div>
<div class="text-sm italic">${value.item.summary}</div>
</div>
+22
View File
@@ -0,0 +1,22 @@
function _getDefaultPackeryOptions() {
return {
percentPosition: true,
gutter: 5,
resize: true
};
}
(function init() {
$(window).on("load", function () {
let packeries = [];
let nodeGalleries = document.querySelectorAll('.gallery');
nodeGalleries.forEach(nodeGallery => {
// TODO : implement a reader of Packery configuration _getPackeryOptions; for example by reading data-attribute
let packery = new Packery(nodeGallery, _getDefaultPackeryOptions());
packeries.push(packery);
});
console.groupEnd();
});
})();
+57
View File
@@ -0,0 +1,57 @@
function _toogleZenMode(zendModeButton) {
// Nodes selection
const body = document.querySelector('body');
const tocRight = document.querySelector('.toc-right');
const tocInside = document.querySelector('.toc-inside');
const articleContent = document.querySelector('.article-content');
const header = document.querySelector('#single_header');
// Add semantic class into body tag
body.classList.toggle('zen-mode-enable');
// Show/Hide 'toc right' and 'toc inside'
tocRight.classList.toggle('lg:block');
tocInside.classList.toggle('lg:hidden');
// Change width of article content
articleContent.classList.toggle('max-w-fit');
articleContent.classList.toggle('max-w-prose');
// Read i18n title from data-attributes
const titleI18nDisable = zendModeButton.getAttribute('data-title-i18n-disable');
const titleI18nEnable = zendModeButton.getAttribute('data-title-i18n-enable');
if (body.classList.contains('zen-mode-enable')) {
// Persist configuration
//localStorage.setItem('blowfish-zen-mode-enabled', 'true');
// Change title to enable
zendModeButton.setAttribute('title', titleI18nEnable)
// Auto-scroll to title article
window.scrollTo(window.scrollX, header.getBoundingClientRect().top - 90);
} else {
//localStorage.setItem('blowfish-zen-mode-enabled', 'false');
zendModeButton.setAttribute('title', titleI18nDisable);
document.querySelector('body').scrollIntoView();
}
}
function _registerZendModeButtonClick(zendModeButton) {
zendModeButton.addEventListener('click', function (event) {
event.preventDefault();
// Toggle zen-mode
_toogleZenMode(zendModeButton);
});
}
(function init() {
window.addEventListener("DOMContentLoaded", (event) => {
// Register click on 'zen-mode-button' node element
const zendModeButton = document.getElementById('zen-mode-button');
if(zendModeButton !== null && zendModeButton !== undefined) {
_registerZendModeButtonClick(zendModeButton);
}
});
})();
+4 -4
View File
@@ -1,14 +1,14 @@
/*!
* Chart.js v4.3.3
* Chart.js v4.4.2
* https://www.chartjs.org
* (c) 2023 Chart.js Contributors
* (c) 2024 Chart.js Contributors
* Released under the MIT License
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return Ko},get Decimation(){return Jo},get Filler(){return pa},get Legend(){return _a},get SubTitle(){return wa},get Title(){return va},get Tooltip(){return Va}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<r;a++)e.call(i,t[a],a);else if(o(t))for(l=Object.keys(t),r=l.length,a=0;a<r;a++)e.call(i,t[l[a]],l[a])}function f(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i<s;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function g(t){if(n(t))return t.map(g);if(o(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n<s;++n)e[i[n]]=g(t[i[n]]);return e}return t}function p(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function m(t,e,i,s){if(!p(t))return;const n=e[t],a=i[t];o(n)&&o(a)?b(n,a,s):e[t]=g(a)}function b(t,e,i){const s=n(e)?e:[e],a=s.length;if(!o(t))return t;const r=(i=i||{}).merger||m;let l;for(let e=0;e<a;++e){if(l=s[e],!o(l))continue;const n=Object.keys(l);for(let e=0,s=n.length;e<s;++e)r(n[e],t,l,i)}return t}function x(t,e){return b(t,e,{merger:_})}function _(t,e,i){if(!p(t))return;const s=e[t],n=i[t];o(s)&&o(n)?x(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=g(n))}const y={"":t=>t,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C/180,E=C/2,R=C/4,I=2*C/3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)<i}function B(t){const e=Math.round(t);t=V(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(z(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function W(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s<i;s++)t%s==0&&(e.push(s),e.push(t/s));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function N(t){return!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;s<n;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function $(t){return t*(C/180)}function Y(t){return t*(180/C)}function U(t){if(!a(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function X(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o<-.5*C&&(o+=O),{angle:o,distance:n}}function q(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function K(t,e){return(t-e+A)%O-C}function G(t){return(t%O+O)%O}function Z(t,e,i,s){const n=G(t),o=G(e),a=G(i),r=G(o-n),l=G(a-n),h=G(n-o),c=G(n-a);return n===o||n===a||s&&o===a||r>l&&h<c}function J(t,e,i){return Math.max(e,Math.min(i,t))}function Q(t){return J(t,-32768,32767)}function tt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]<e);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return n<i||n===i&&t[s+1][e]===i}:s=>t[s][e]<i),st=(t,e,i)=>et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;s<n&&t[s]<e;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n<t.length?t.slice(s,n):t}const ot=["push","pop","shift","splice","unshift"];function at(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ot.forEach((e=>{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){Line truncated
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";var t=Object.freeze({__proto__:null,get Colors(){return Go},get Decimation(){return Qo},get Filler(){return ma},get Legend(){return ya},get SubTitle(){return ka},get Title(){return Ma},get Tooltip(){return Ba}});function e(){}const i=(()=>{let t=0;return()=>t++})();function s(t){return null==t}function n(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function o(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}function a(t){return("number"==typeof t||t instanceof Number)&&isFinite(+t)}function r(t,e){return a(t)?t:e}function l(t,e){return void 0===t?e:t}const h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:+t/e,c=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function d(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function u(t,e,i,s){let a,r,l;if(n(t))if(r=t.length,s)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;a<r;a++)e.call(i,t[a],a);else if(o(t))for(l=Object.keys(t),r=l.length,a=0;a<r;a++)e.call(i,t[l[a]],l[a])}function f(t,e){let i,s,n,o;if(!t||!e||t.length!==e.length)return!1;for(i=0,s=t.length;i<s;++i)if(n=t[i],o=e[i],n.datasetIndex!==o.datasetIndex||n.index!==o.index)return!1;return!0}function g(t){if(n(t))return t.map(g);if(o(t)){const e=Object.create(null),i=Object.keys(t),s=i.length;let n=0;for(;n<s;++n)e[i[n]]=g(t[i[n]]);return e}return t}function p(t){return-1===["__proto__","prototype","constructor"].indexOf(t)}function m(t,e,i,s){if(!p(t))return;const n=e[t],a=i[t];o(n)&&o(a)?b(n,a,s):e[t]=g(a)}function b(t,e,i){const s=n(e)?e:[e],a=s.length;if(!o(t))return t;const r=(i=i||{}).merger||m;let l;for(let e=0;e<a;++e){if(l=s[e],!o(l))continue;const n=Object.keys(l);for(let e=0,s=n.length;e<s;++e)r(n[e],t,l,i)}return t}function x(t,e){return b(t,e,{merger:_})}function _(t,e,i){if(!p(t))return;const s=e[t],n=i[t];o(s)&&o(n)?x(s,n):Object.prototype.hasOwnProperty.call(e,t)||(e[t]=g(n))}const y={"":t=>t,x:t=>t.x,y:t=>t.y};function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function M(t,e){const i=y[e]||(y[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const k=t=>void 0!==t,S=t=>"function"==typeof t,P=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function D(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const C=Math.PI,O=2*C,A=O+C,T=Number.POSITIVE_INFINITY,L=C/180,E=C/2,R=C/4,I=2*C/3,z=Math.log10,F=Math.sign;function V(t,e,i){return Math.abs(t-e)<i}function B(t){const e=Math.round(t);t=V(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(z(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function W(t){const e=[],i=Math.sqrt(t);let s;for(s=1;s<i;s++)t%s==0&&(e.push(s),e.push(t/s));return i===(0|i)&&e.push(i),e.sort(((t,e)=>t-e)).pop(),e}function N(t){return!isNaN(parseFloat(t))&&isFinite(t)}function H(t,e){const i=Math.round(t);return i-e<=t&&i+e>=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;s<n;s++)o=t[s][i],isNaN(o)||(e.min=Math.min(e.min,o),e.max=Math.max(e.max,o))}function $(t){return t*(C/180)}function Y(t){return t*(180/C)}function U(t){if(!a(t))return;let e=1,i=0;for(;Math.round(t*e)/e!==t;)e*=10,i++;return i}function X(t,e){const i=e.x-t.x,s=e.y-t.y,n=Math.sqrt(i*i+s*s);let o=Math.atan2(s,i);return o<-.5*C&&(o+=O),{angle:o,distance:n}}function q(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function K(t,e){return(t-e+A)%O-C}function G(t){return(t%O+O)%O}function Z(t,e,i,s){const n=G(t),o=G(e),a=G(i),r=G(o-n),l=G(a-n),h=G(n-o),c=G(n-a);return n===o||n===a||s&&o===a||r>l&&h<c}function J(t,e,i){return Math.max(e,Math.min(i,t))}function Q(t){return J(t,-32768,32767)}function tt(t,e,i,s=1e-6){return t>=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function et(t,e,i){i=i||(i=>t[i]<e);let s,n=t.length-1,o=0;for(;n-o>1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const it=(t,e,i,s)=>et(t,i,s?s=>{const n=t[s][e];return n<i||n===i&&t[s+1][e]===i}:s=>t[s][e]<i),st=(t,e,i)=>et(t,i,(s=>t[s][e]>=i));function nt(t,e,i){let s=0,n=t.length;for(;s<n&&t[s]<e;)s++;for(;n>s&&t[n-1]>i;)n--;return s>0||n<t.length?t.slice(s,n):t}const ot=["push","pop","shift","splice","unshift"];function at(t,e){t._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),ot.forEach((e=>{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function rt(t,e){Line truncated
/*!
* @kurkle/color v0.3.2
* https://github.com/kurkle/color#readme
* (c) 2023 Jukka Kurkela
* Released under the MIT License
*/function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e<i?6:0):e===n?(i-t)/s+2:(t-e)/s+4}(e,i,s,h,n),r=60*r+.5),[0|r,l||0,a]}function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(Mt)}function Ft(t,e,i){return zt(Lt,t,e,i)}function Vt(t){return(t%360+360)%360}function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?vt(+e[5]):Mt(+e[5]));const n=Vt(+e[2]),o=+e[3]/100,a=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return zt(Rt,t,e,i)}(n,o,a):"hsv"===e[1]?function(t,e,i){return zt(Et,t,e,i)}(n,o,a):Ft(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const Wt={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Nt={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let Ht;function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Nt),i=Object.keys(Wt);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,Wt[o]);o=parseInt(Nt[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),Line truncated
*/function _t(t){return t+.5|0}const yt=(t,e,i)=>Math.max(Math.min(t,i),e);function vt(t){return yt(_t(2.55*t),0,255)}function Mt(t){return yt(_t(255*t),0,255)}function wt(t){return yt(_t(t/2.55)/100,0,1)}function kt(t){return yt(_t(100*t),0,100)}const St={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},Pt=[..."0123456789ABCDEF"],Dt=t=>Pt[15&t],Ct=t=>Pt[(240&t)>>4]+Pt[15&t],Ot=t=>(240&t)>>4==(15&t);function At(t){var e=(t=>Ot(t.r)&&Ot(t.g)&&Ot(t.b)&&Ot(t.a))(t)?Dt:Ct;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Tt=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Lt(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Et(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Rt(t,e,i){const s=Lt(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function It(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e<i?6:0):e===n?(i-t)/s+2:(t-e)/s+4}(e,i,s,h,n),r=60*r+.5),[0|r,l||0,a]}function zt(t,e,i,s){return(Array.isArray(e)?t(e[0],e[1],e[2]):t(e,i,s)).map(Mt)}function Ft(t,e,i){return zt(Lt,t,e,i)}function Vt(t){return(t%360+360)%360}function Bt(t){const e=Tt.exec(t);let i,s=255;if(!e)return;e[5]!==i&&(s=e[6]?vt(+e[5]):Mt(+e[5]));const n=Vt(+e[2]),o=+e[3]/100,a=+e[4]/100;return i="hwb"===e[1]?function(t,e,i){return zt(Rt,t,e,i)}(n,o,a):"hsv"===e[1]?function(t,e,i){return zt(Et,t,e,i)}(n,o,a):Ft(n,o,a),{r:i[0],g:i[1],b:i[2],a:s}}const Wt={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Nt={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};let Ht;function jt(t){Ht||(Ht=function(){const t={},e=Object.keys(Nt),i=Object.keys(Wt);let s,n,o,a,r;for(s=0;s<e.length;s++){for(a=r=e[s],n=0;n<i.length;n++)o=i[n],r=r.replace(o,Wt[o]);o=parseInt(Nt[a],16),t[r]=[o>>16&255,o>>8&255,255&o]}return t}(),Ht.transparent=[0,0,0,0]);const e=Ht[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const $t=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Yt=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,Ut=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Xt(t,e,i){if(t){let s=It(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),Line truncated
//# sourceMappingURL=chart.umd.js.map
+3 -3
View File
@@ -1,9 +1,9 @@
/**
* Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io)
* Fuse.js v7.0.0 - Lightweight fuzzy-search (http://fusejs.io)
*
* Copyright (c) 2022 Kiro Risk (http://kiro.me)
* Copyright (c) 2023 Kiro Risk (http://kiro.me)
* All Rights Reserved. Apache Software License 2.0
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){c(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");Object.defineProperty(e,"prototype",{value:Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),writable:!1}),t&&u(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function h(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return h(this,n)}}function f(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e){return Array.isArray?Array.isArray(e):"[object Array]"===b(e)}function g(e){return"string"==typeof e}function y(e){return"number"==typeof e}function p(e){return!0===e||!1===e||function(e){return m(e)&&null!==e}(e)&&"[object Boolean]"==b(e)}function m(e){return"object"===n(e)}function k(e){return null!=e}function M(e){return!e.trim().length}function b(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var x=function(e){return"Invalid value for key ".concat(e)},w=function(e){return"Pattern length exceeds max of ".concat(e,".")},L=Object.prototype.hasOwnProperty,S=function(){function e(t){var n=this;r(this,e),this._keys=[],this._keyMap={};var i=0;t.forEach((function(e){var t=_(e);i+=t.weight,n._keys.push(t),n._keyMap[t.id]=t,i+=t.weight})),this._keys.forEach((function(e){e.weight/=i}))}return o(e,[{key:"get",value:function(e){return this._keyMap[e]}},{key:"keys",value:function(){return this._keys}},{key:"toJSON",value:function(){return JSON.stringify(this._keys)}}]),e}();function _(e){var t=null,n=null,r=null,i=1,o=null;if(g(e)||v(e))r=e,t=O(e),n=j(e);else{if(!L.call(e,"name"))throw new Error(function(e){return"Missing ".concat(e," property in key")}("name"));var c=e.name;if(r=c,L.call(e,"weight")&&(i=e.weight)<=0)throw new Error(function(e){return"Property 'weight' in key '".concat(e,"' must be a positive integer")}(c));t=O(c),n=j(c),o=e.getFn}return{path:t,id:n,weight:i,src:r,getFn:o}}function O(e){return v(e)?e:e.split(".")}function j(e){return v(e)?e.join("."):e}var A={useExtendedSearch:!1,getFn:function(e,t){var n=[],r=!1;return function e(t,i,o){if(k(t))if(i[o]){var c=t[i[o]];if(!k(c))return;if(o===i.Line truncated
var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?e(Object(r),!0).forEach((function(e){c(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):e(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,v(r.key),r)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function c(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function u(e,t){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},u(e,t)}function h(e,t){if(t&&("object"==typeof t||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function l(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=s(e);if(t){var i=s(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return h(this,n)}}function f(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function g(e){return Array.isArray?Array.isArray(e):"[object Array]"===S(e)}var y=1/0;function p(e){return null==e?"":function(e){if("string"==typeof e)return e;var t=e+"";return"0"==t&&1/e==-y?"-0":t}(e)}function m(e){return"string"==typeof e}function k(e){return"number"==typeof e}function M(e){return!0===e||!1===e||function(e){return b(e)&&null!==e}(e)&&"[object Boolean]"==S(e)}function b(e){return"object"===n(e)}function x(e){return null!=e}function w(e){return!e.trim().length}function S(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}var L=function(e){return"Missing ".concat(e," property in key")},_=function(e){return"Property 'weight' in key '".concat(e,"' must be a positive integer")},O=Object.prototype.hasOwnProperty,j=function(){function e(t){var n=this;r(this,e),this._keys=[],this._keyMap={};var i=0;t.forEach((function(e){var t=A(e);n._keys.push(t),n._keyMap[t.id]=t,i+=t.weight})),this._keys.forEach((function(e){e.weight/=i}))}return o(e,[{key:"get",value:function(e){return this._keyMap[e]}},{key:"keys",value:function(){return this._keys}},{key:"toJSON",value:function(){return JSON.stringify(this._keys)}}]),e}();function A(e){var t=null,n=null,r=null,i=1,o=null;if(m(e)||g(e))r=e,t=I(e),n=C(e);else{if(!O.call(e,"name"))throw new ErLine truncated
+2 -2
View File
@@ -1,2 +1,2 @@
/*! jQuery v3.7.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween | (c) OpenJS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},m=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||m).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.0 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i)return e.textContent;if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=ce.text(t);return n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var de=oe.pop,pe=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function d(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").Line truncated
/*! jQuery v3.7.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween | (c) OpenJS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},m=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||m).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-deprecated/ajax-event-alias,-effects,-effects/animatedSelector,-effects/Tween",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||v(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(c(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var de=oe.pop,pe=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function d(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+Line truncated
+1 -1
View File
@@ -1 +1 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var i={};return function(){n.d(i,{default:function(){return s}});var e=n(771),t=n.n(e),r=function(e,t,r){for(var n=r,i=0,a=e.length;n<t.length;){var o=t[n];if(i<=0&&t.slice(n,n+a)===e)return n;"\\"===o?n++:"{"===o?i++:"}"===o&&i--,n++}return-1},a=/^\\begin{/,o=function(e,t){for(var n,i=[],o=new RegExp("("+t.map((function(e){return e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")})).join("|")+")");-1!==(n=e.search(o));){n>0&&(i.push({type:"text",data:e.slice(0,n)}),e=e.slice(n));var l=t.findIndex((function(t){return e.startsWith(t.left)}));if(-1===(n=r(t[l].right,e,t[l].left.length)))break;var d=e.slice(0,n+t[l].right.length),s=a.test(d)?d:e.slice(t[l].left.length,n);i.push({type:"math",data:s,rawData:d,display:t[l].display}),e=e.slice(n+t[l].right.length)}return""!==e&&i.push({type:"text",data:e}),i},l=function(e,r){var n=o(e,r.delimiters);if(1===n.length&&"text"===n[0].type)return null;for(var i=document.createDocumentFragment(),a=0;a<n.length;a++)if("text"===n[a].type)i.appendChild(document.createTextNode(n[a].data));else{var l=document.createElement("span"),d=n[a].data;r.displayMode=n[a].display;try{r.preProcess&&(d=r.preProcess(d)),t().render(d,l,r)}catch(e){if(!(e instanceof t().ParseError))throw e;r.errorCallback("KaTeX auto-render: Failed to parse `"+n[a].data+"` with ",e),i.appendChild(document.createTextNode(n[a].rawData));continue}i.appendChild(l)}return i},d=function e(t,r){for(var n=0;n<t.childNodes.length;n++){var i=t.childNodes[n];if(3===i.nodeType){for(var a=i.textContent,o=i.nextSibling,d=0;o&&o.nodeType===Node.TEXT_NODE;)a+=o.textContent,o=o.nextSibling,d++;var s=l(a,r);if(s){for(var f=0;f<d;f++)i.nextSibling.remove();n+=s.childNodes.length-1,t.replaceChild(s,i)}else n+=d}else 1===i.nodeType&&function(){var t=" "+i.className+" ";-1===r.ignoredTags.indexOf(i.nodeName.toLowerCase())&&r.ignoredClasses.every((function(e){return-1===t.indexOf(" "+e+" ")}))&&e(i,r)}()}},s=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code","option"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},d(e,r)}}(),i=i.default}()}));
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,(function(e){return function(){"use strict";var t={771:function(t){t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,r),i.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o={};return function(){r.d(o,{default:function(){return d}});var e=r(771),t=r.n(e);const n=function(e,t,n){let r=n,o=0;const i=e.length;for(;r<t.length;){const n=t[r];if(o<=0&&t.slice(r,r+i)===e)return r;"\\"===n?r++:"{"===n?o++:"}"===n&&o--,r++}return-1},i=/^\\begin{/;var a=function(e,t){let r;const o=[],a=new RegExp("("+t.map((e=>e.left.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"))).join("|")+")");for(;r=e.search(a),-1!==r;){r>0&&(o.push({type:"text",data:e.slice(0,r)}),e=e.slice(r));const a=t.findIndex((t=>e.startsWith(t.left)));if(r=n(t[a].right,e,t[a].left.length),-1===r)break;const l=e.slice(0,r+t[a].right.length),s=i.test(l)?l:e.slice(t[a].left.length,r);o.push({type:"math",data:s,rawData:l,display:t[a].display}),e=e.slice(r+t[a].right.length)}return""!==e&&o.push({type:"text",data:e}),o};const l=function(e,n){const r=a(e,n.delimiters);if(1===r.length&&"text"===r[0].type)return null;const o=document.createDocumentFragment();for(let e=0;e<r.length;e++)if("text"===r[e].type)o.appendChild(document.createTextNode(r[e].data));else{const i=document.createElement("span");let a=r[e].data;n.displayMode=r[e].display;try{n.preProcess&&(a=n.preProcess(a)),t().render(a,i,n)}catch(i){if(!(i instanceof t().ParseError))throw i;n.errorCallback("KaTeX auto-render: Failed to parse `"+r[e].data+"` with ",i),o.appendChild(document.createTextNode(r[e].rawData));continue}o.appendChild(i)}return o},s=function(e,t){for(let n=0;n<e.childNodes.length;n++){const r=e.childNodes[n];if(3===r.nodeType){let o=r.textContent,i=r.nextSibling,a=0;for(;i&&i.nodeType===Node.TEXT_NODE;)o+=i.textContent,i=i.nextSibling,a++;const s=l(o,t);if(s){for(let e=0;e<a;e++)r.nextSibling.remove();n+=s.childNodes.length-1,e.replaceChild(s,r)}else n+=a}else if(1===r.nodeType){const e=" "+r.className+" ";-1===t.ignoredTags.indexOf(r.nodeName.toLowerCase())&&t.ignoredClasses.every((t=>-1===e.indexOf(" "+t+" ")))&&s(r,t)}}};var d=function(e,t){if(!e)throw new Error("No element provided to render");const n={};for(const e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);n.delimiters=n.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],n.ignoredTags=n.ignoredTags||["script","noscript","style","textarea","pre","code","option"],n.ignoredClasses=n.ignoredClasses||[],n.errorCallback=n.errorCallback||console.error,n.macros=n.macros||{},s(e,n)}}(),o=o.default}()}));
+1 -1
View File
@@ -1 +1 @@
@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.8"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1pxLine truncated
@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.10"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1pLine truncated
+1 -1
View File
@@ -1 +1 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return na}});var r=function e(t,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n,a,i="KaTeX parse error: "+t,o=r&&r.loc;if(o&&o.start<=o.end){var s=o.lexer.input;n=o.start,a=o.end,n===s.length?i+=" at end of input: ":i+=" at position "+(n+1)+": ";var l=s.slice(n,a).replace(/[^]/g,"$&\u0332");i+=(n>15?"\u2026"+s.slice(n-15,n):s.slice(0,n))+l+(a+15<s.length?s.slice(a,a+15)+"\u2026":s.slice(a))}var h=new Error(i);return h.name="ParseError",h.__proto__=e.prototype,h.position=n,null!=n&&null!=a&&(h.length=a-n),h.rawMessage=t,h};r.prototype.__proto__=Error.prototype;var n=r,a=/([A-Z])/g,i={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},o=/[&><"']/g;var s=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(o,(function(e){return i[e]}))},hyphenate:function(e){return e.replace(a,"-$1").toLowerCase()},getBaseElem:s,isCharacterBox:function(e){var t=s(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^\s*([^\\/#]*?)(?::|&#0*58|&#x0*3a)/i.exec(e);return null!=t?t[1]:"_relative"}},h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(e){return"#"+e}},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(e,t){return t.push(e),t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(e){return Math.max(0,e)},cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(e){return Math.max(0,e)},cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(e){return Math.max(0,e)},cli:"-e, --max-expand <n>",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}};function c(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}var m=function(){function e(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void Line truncated
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return Yn}});class r{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;let n,o,s="KaTeX parse error: "+e;const i=t&&t.loc;if(i&&i.start<=i.end){const e=i.lexer.input;n=i.start,o=i.end,n===e.length?s+=" at end of input: ":s+=" at position "+(n+1)+": ";const t=e.slice(n,o).replace(/[^]/g,"$&\u0332");let r,a;r=n>15?"\u2026"+e.slice(n-15,n):e.slice(0,n),a=o+15<e.length?e.slice(o,o+15)+"\u2026":e.slice(o),s+=r+t+a}const a=new Error(s);return a.name="ParseError",a.__proto__=r.prototype,a.position=n,null!=n&&null!=o&&(a.length=o-n),a.rawMessage=e,a}}r.prototype.__proto__=Error.prototype;var n=r;const o=/([A-Z])/g,s={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},i=/[&><"']/g;const a=function(e){return"ordgroup"===e.type||"color"===e.type?1===e.body.length?a(e.body[0]):e:"font"===e.type?a(e.body):e};var l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(i,(e=>s[e]))},hyphenate:function(e){return e.replace(o,"-$1").toLowerCase()},getBaseElem:a,isCharacterBox:function(e){const t=a(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){const t=/^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(e);return t?":"!==t[2]?null:/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?t[1].toLowerCase():null:"_relative"}};const h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand <n>",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function c(e){if(e.default)return e.default;const t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class m{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0Line truncated
@@ -0,0 +1,95 @@
lite-youtube {
background-color: #000;
position: relative;
display: block;
contain: content;
background-position: center center;
background-size: cover;
cursor: pointer;
max-width: 720px;
}
/* gradient */
lite-youtube::before {
content: attr(data-title);
display: block;
position: absolute;
top: 0;
/* Pixel-perfect port of YT's gradient PNG, using https://github.com/bluesmoon/pngtocss plus optimizations */
background-image: linear-gradient(180deg, rgb(0 0 0 / 67%) 0%, rgb(0 0 0 / 54%) 14%, rgb(0 0 0 / 15%) 54%, rgb(0 0 0 / 5%) 72%, rgb(0 0 0 / 0%) 94%);
height: 99px;
width: 100%;
font-family: "YouTube Noto",Roboto,Arial,Helvetica,sans-serif;
color: hsl(0deg 0% 93.33%);
text-shadow: 0 0 2px rgba(0,0,0,.5);
font-size: 18px;
padding: 25px 20px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
box-sizing: border-box;
}
lite-youtube:hover::before {
color: white;
}
/* responsive iframe with a 16:9 aspect ratio
thanks https://css-tricks.com/responsive-iframes/
*/
lite-youtube::after {
content: "";
display: block;
padding-bottom: calc(100% / (16 / 9));
}
lite-youtube > iframe {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
border: 0;
}
/* play button */
lite-youtube > .lty-playbtn {
display: block;
/* Make the button element cover the whole area for a large hover/click target… */
width: 100%;
height: 100%;
/* …but visually it's still the same size */
background: no-repeat center/68px 48px;
/* YT's actual play button svg */
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.63 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/><path d="M45 24 27 14v20" fill="white"/></svg>');
position: absolute;
cursor: pointer;
z-index: 1;
filter: grayscale(100%);
transition: filter .1s cubic-bezier(0, 0, 0.2, 1);
border: 0;
}
lite-youtube:hover > .lty-playbtn,
lite-youtube .lty-playbtn:focus {
filter: none;
}
/* Post-click styles */
lite-youtube.lyt-activated {
cursor: unset;
}
lite-youtube.lyt-activated::before,
lite-youtube.lyt-activated > .lty-playbtn {
opacity: 0;
pointer-events: none;
}
.lyt-visually-hidden {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
@@ -0,0 +1,225 @@
/**
* A lightweight youtube embed. Still should feel the same to the user, just MUCH faster to initialize and paint.
*
* Thx to these as the inspiration
* https://storage.googleapis.com/amp-vs-non-amp/youtube-lazy.html
* https://autoplay-youtube-player.glitch.me/
*
* Once built it, I also found these:
* https://github.com/ampproject/amphtml/blob/master/extensions/amp-youtube (👍👍)
* https://github.com/Daugilas/lazyYT
* https://github.com/vb/lazyframe
*/
class LiteYTEmbed extends HTMLElement {
connectedCallback() {
this.videoId = this.getAttribute('videoid');
let playBtnEl = this.querySelector('.lty-playbtn');
// A label for the button takes priority over a [playlabel] attribute on the custom-element
this.playLabel = (playBtnEl && playBtnEl.textContent.trim()) || this.getAttribute('playlabel') || 'Play';
this.dataset.title = this.getAttribute('title') || "";
/**
* Lo, the youtube poster image! (aka the thumbnail, image placeholder, etc)
*
* See https://github.com/paulirish/lite-youtube-embed/blob/master/youtube-thumbnail-urls.md
*/
if (!this.style.backgroundImage) {
this.style.backgroundImage = `url("https://i.ytimg.com/vi/${this.videoId}/hqdefault.jpg")`;
this.upgradePosterImage();
}
// Set up play button, and its visually hidden label
if (!playBtnEl) {
playBtnEl = document.createElement('button');
playBtnEl.type = 'button';
playBtnEl.classList.add('lty-playbtn');
this.append(playBtnEl);
}
if (!playBtnEl.textContent) {
const playBtnLabelEl = document.createElement('span');
playBtnLabelEl.className = 'lyt-visually-hidden';
playBtnLabelEl.textContent = this.playLabel;
playBtnEl.append(playBtnLabelEl);
}
this.addNoscriptIframe();
playBtnEl.removeAttribute('href');
// On hover (or tap), warm up the TCP connections we're (likely) about to use.
this.addEventListener('pointerover', LiteYTEmbed.warmConnections, {once: true});
// Once the user clicks, add the real iframe and drop our play button
// TODO: In the future we could be like amp-youtube and silently swap in the iframe during idle time
// We'd want to only do this for in-viewport or near-viewport ones: https://github.com/ampproject/amphtml/pull/5003
this.addEventListener('click', this.activate);
// Chrome & Edge desktop have no problem with the basic YouTube Embed with ?autoplay=1
// However Safari desktop and most/all mobile browsers do not successfully track the user gesture of clicking through the creation/loading of the iframe,
// so they don't autoplay automatically. Instead we must load an additional 2 sequential JS files (1KB + 165KB) (un-br) for the YT Player API
// TODO: Try loading the the YT API in parallel with our iframe and then attaching/playing it. #82
this.needsYTApi = this.hasAttribute("js-api") || navigator.vendor.includes('Apple') || navigator.userAgent.includes('Mobi');
}
/**
* Add a <link rel={preload | preconnect} ...> to the head
*/
static addPrefetch(kind, url, as) {
const linkEl = document.createElement('link');
linkEl.rel = kind;
linkEl.href = url;
if (as) {
linkEl.as = as;
}
document.head.append(linkEl);
}
/**
* Begin pre-connecting to warm up the iframe load
* Since the embed's network requests load within its iframe,
* preload/prefetch'ing them outside the iframe will only cause double-downloads.
* So, the best we can do is warm up a few connections to origins that are in the critical path.
*
* Maybe `<link rel=preload as=document>` would work, but it's unsupported: http://crbug.com/593267
* But TBH, I don't think it'll happen soon with Site Isolation and split caches adding serious complexity.
*/
static warmConnections() {
if (LiteYTEmbed.preconnected) return;
// The iframe document and most of its subresources come right off youtube.com
LiteYTEmbed.addPrefetch('preconnect', 'https://www.youtube-nocookie.com');
// The botguard script is fetched off from google.com
LiteYTEmbed.addPrefetch('preconnect', 'https://www.google.com');
// Not certain if these ad related domains are in the critical path. Could verify with domain-specific throttling.
LiteYTEmbed.addPrefetch('preconnect', 'https://googleads.g.doubleclick.net');
LiteYTEmbed.addPrefetch('preconnect', 'https://static.doubleclick.net');
LiteYTEmbed.preconnected = true;
}
fetchYTPlayerApi() {
if (window.YT || (window.YT && window.YT.Player)) return;
this.ytApiPromise = new Promise((res, rej) => {
var el = document.createElement('script');
el.src = 'https://www.youtube.com/iframe_api';
el.async = true;
el.onload = _ => {
YT.ready(res);
};
el.onerror = rej;
this.append(el);
});
}
/** Return the YT Player API instance. (Public L-YT-E API) */
async getYTPlayer() {
if(!this.playerPromise) {
await this.activate();
}
return this.playerPromise;
}
async addYTPlayerIframe() {
this.fetchYTPlayerApi();
await this.ytApiPromise;
const videoPlaceholderEl = document.createElement('div')
this.append(videoPlaceholderEl);
const paramsObj = Object.fromEntries(this.getParams().entries());
this.playerPromise = new Promise(resolve => {
let player = new YT.Player(videoPlaceholderEl, {
width: '100%',
videoId: this.videoId,
playerVars: paramsObj,
events: {
'onReady': event => {
event.target.playVideo();
resolve(player);
}
}
});
});
}
// Add the iframe within <noscript> for indexability discoverability. See https://github.com/paulirish/lite-youtube-embed/issues/105
addNoscriptIframe() {
const iframeEl = this.createBasicIframe();
const noscriptEl = document.createElement('noscript');
// Appending into noscript isn't equivalant for mysterious reasons: https://html.spec.whatwg.org/multipage/scripting.html#the-noscript-element
noscriptEl.innerHTML = iframeEl.outerHTML;
this.append(noscriptEl);
}
getParams() {
const params = new URLSearchParams(this.getAttribute('params') || []);
params.append('autoplay', '1');
params.append('playsinline', '1');
return params;
}
async activate(){
if (this.classList.contains('lyt-activated')) return;
this.classList.add('lyt-activated');
if (this.needsYTApi) {
return this.addYTPlayerIframe(this.getParams());
}
const iframeEl = this.createBasicIframe();
this.append(iframeEl);
// Set focus for a11y
iframeEl.focus();
}
createBasicIframe(){
const iframeEl = document.createElement('iframe');
iframeEl.width = 560;
iframeEl.height = 315;
// No encoding necessary as [title] is safe. https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html#:~:text=Safe%20HTML%20Attributes%20include
iframeEl.title = this.playLabel;
iframeEl.allow = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture';
iframeEl.allowFullscreen = true;
// AFAIK, the encoding here isn't necessary for XSS, but we'll do it only because this is a URL
// https://stackoverflow.com/q/64959723/89484
iframeEl.src = `https://www.youtube-nocookie.com/embed/${encodeURIComponent(this.videoId)}?${this.getParams().toString()}`;
return iframeEl;
}
/**
* In the spirit of the `lowsrc` attribute and progressive JPEGs, we'll upgrade the reliable
* poster image to a higher resolution one, if it's available.
* Interestingly this sddefault webp is often smaller in filesize, but we will still attempt it second
* because getting _an_ image in front of the user if our first priority.
*
* See https://github.com/paulirish/lite-youtube-embed/blob/master/youtube-thumbnail-urls.md for more details
*/
upgradePosterImage() {
// Defer to reduce network contention.
setTimeout(() => {
const webpUrl = `https://i.ytimg.com/vi_webp/${this.videoId}/sddefault.webp`;
const img = new Image();
img.fetchPriority = 'low'; // low priority to reduce network contention
img.referrerpolicy = 'origin'; // Not 100% sure it's needed, but https://github.com/ampproject/amphtml/pull/3940
img.src = webpUrl;
img.onload = e => {
// A pretty ugly hack since onerror won't fire on YouTube image 404. This is (probably) due to
// Youtube's style of returning data even with a 404 status. That data is a 120x90 placeholder image.
// … per "annoying yt 404 behavior" in the .md
const noAvailablePoster = e.target.naturalHeight == 90 && e.target.naturalWidth == 120;
if (noAvailablePoster) return;
this.style.backgroundImage = `url("${webpUrl}")`;
}
}, 100);
}
}
// Register custom element
customElements.define('lite-youtube', LiteYTEmbed);
+33
View File
@@ -0,0 +1,33 @@
import type { DetailedError } from './utils.js';
import type { DiagramDefinition, DiagramMetadata } from './diagram-api/types.js';
export type ParseErrorFunction = (err: string | DetailedError | unknown, hash?: any) => void;
/**
* An object representing a parsed mermaid diagram definition.
* @privateRemarks This is exported as part of the public mermaidAPI.
*/
export declare class Diagram {
text: string;
metadata: Pick<DiagramMetadata, 'title'>;
type: string;
parser: DiagramDefinition['parser'];
renderer: DiagramDefinition['renderer'];
db: DiagramDefinition['db'];
private init?;
private detectError?;
constructor(text: string, metadata?: Pick<DiagramMetadata, 'title'>);
parse(): void;
render(id: string, version: string): Promise<void>;
getParser(): import("./diagram-api/types.js").ParserDefinition;
getType(): string;
}
/**
* Parse the text asynchronously and generate a Diagram object asynchronously.
* **Warning:** This function may be changed in the future.
* @alpha
* @param text - The mermaid diagram definition.
* @param metadata - Diagram metadata, defined in YAML.
* @returns A the Promise of a Diagram object.
* @throws {@link UnknownDiagramError} if the diagram type can not be found.
* @privateRemarks This is exported as part of the public mermaidAPI.
*/
export declare const getDiagramFromText: (text: string, metadata?: Pick<DiagramMetadata, 'title'>) => Promise<Diagram>;
+10
View File
@@ -0,0 +1,10 @@
function colors(specifier) {
var n = specifier.length / 6 | 0, colors2 = new Array(n), i = 0;
while (i < n)
colors2[i] = "#" + specifier.slice(i * 6, ++i * 6);
return colors2;
}
const d3schemeTableau10 = colors("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");
export {
d3schemeTableau10 as d
};
+9
View File
@@ -0,0 +1,9 @@
function o(e) {
for (var c = e.length / 6 | 0, n = new Array(c), a = 0; a < c; )
n[a] = "#" + e.slice(a * 6, ++a * 6);
return n;
}
const r = o("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab");
export {
r as d
};
+13
View File
@@ -0,0 +1,13 @@
export declare const mermaidAPI: {
render: import("@vitest/spy").Mock<any, any>;
parse: (text: string, parseOptions?: import("../mermaidAPI.js").ParseOptions | undefined) => Promise<boolean>;
initialize: import("@vitest/spy").Mock<any, any>;
getConfig: () => import("../config.type.js").MermaidConfig;
setConfig: (conf: import("../config.type.js").MermaidConfig) => import("../config.type.js").MermaidConfig;
getSiteConfig: () => import("../config.type.js").MermaidConfig;
updateSiteConfig: (conf: import("../config.type.js").MermaidConfig) => import("../config.type.js").MermaidConfig;
reset: () => void;
globalReset: () => void;
defaultConfig: import("../config.type.js").MermaidConfig;
};
export default mermaidAPI;
+27
View File
@@ -0,0 +1,27 @@
/**
* Accessibility (a11y) functions, types, helpers.
*
* @see https://www.w3.org/WAI/
* @see https://www.w3.org/TR/wai-aria-1.1/
* @see https://www.w3.org/TR/svg-aam-1.0/
*/
import type { D3Element } from './mermaidAPI.js';
/**
* Add role and aria-roledescription to the svg element.
*
* @param svg - d3 object that contains the SVG HTML element
* @param diagramType - diagram name for to the aria-roledescription
*/
export declare function setA11yDiagramInfo(svg: D3Element, diagramType: string): void;
/**
* Add an accessible title and/or description element to a chart.
* The title is usually not displayed and the description is never displayed.
*
* The following charts display their title as a visual and accessibility element: gantt.
*
* @param svg - d3 node to insert the a11y title and desc info
* @param a11yTitle - a11y title. undefined or empty strings mean to skip them
* @param a11yDesc - a11y description. undefined or empty strings mean to skip them
* @param baseId - id used to construct the a11y title and description id
*/
export declare function addSVGa11yTitleDescription(svg: D3Element, a11yTitle: string | undefined, a11yDesc: string | undefined, baseId: string): void;
+1
View File
@@ -0,0 +1 @@
export {};
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"add-html-label-3fd8c466.js","sources":["../src/diagrams/flowchart/parser/flow.jison","../src/diagrams/flowchart/flowDb.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/util.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/label/add-html-label.js"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2015 Knut Sveidqvist\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n%x string\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n%x dir\n%x vertex\n%x click\n%x href\n%x callbackname\n%x callbackargs\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n\n%%\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\\%\\%(?!\\{)[^\\n]* /* skip comments */\n[^\\}]\\%\\%[^\\n]* /* skip comments */\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n// <acc_descr_multiline>.*[^\\n]* { return \"acc_descr_line\"}\n[\"] this.begin(\"string\");\n<string>[\"] this.popState();\n<string>[^\"]* return \"STR\";\n\"style\" return 'STYLE';\n\"default\" return 'DEFAULT';\n\"linkStyle\" return 'LINKSTYLE';\n\"interpolate\" return 'INTERPOLATE';\n\"classDef\" return 'CLASSDEF';\n\"class\" return 'CLASS';\n\n/*\n---interactivity command---\n'href' adds a link to the specified node. 'href' can only be specified when the\nline was introduced with 'click'.\n'href \"<link>\"' attaches the specified link to the node that was specified by 'click'.\n*/\n\"href\"[\\s]+[\"] this.begin(\"href\");\n<href>[\"] this.popState();\n<href>[^\"]* return 'HREF';\n\n/*\n---interactivity command---\n'call' adds a callback to the specified node. 'call' can only be specified when\nthe line was introduced with 'click'.\n'call <callbackname>(<args>)' attaches the function 'callbackname' with the specified\narguments to the node that was specified by 'click'.\nFunction arguments are optional: 'call <callbackname>()' simply executes 'callbackname' without any arguments.\n*/\n\"call\"[\\s]+ this.begin(\"callbackname\");\n<callbackname>\\([\\s]*\\) this.popState();\n<callbackname>\\( this.popState(); this.begin(\"callbackargs\");\n<callbackname>[^(]* return 'CALLBACKNAME';\n<callbackargs>\\) this.popState();\n<callbackargs>[^)]* return 'CALLBACKARGS';\n\n/*\n'click' is the keyword to introduce a line that contains interactivity commands.\n'click' must be followed by an existing node-id. All commands are attached to\nthat id.\n'click <id>' can be followed by href or call commands in any desired order\n*/\n\"click\"[\\s]+ this.begin(\"click\");\n<click>[\\s\\n] this.popState();\n<click>[^\\s\\n]* return 'CLICK';\n\n\"flowchart-elk\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"graph\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"flowchart\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"subgraph\" return 'subgraph';\n\"end\"\\b\\s* return 'end';\n\n\"_self\" return 'LINK_TARGET';\n\"_blank\" return 'LINK_TARGET';\n\"_parent\" return 'LINK_TARGET';\n\"_top\" return 'LINK_TARGET';\n\n<dir>(\\r?\\n)*\\s*\\n { this.popState(); return 'NODIR'; }\n<dir>\\s*\"LR\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"RL\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"TB\" { thisLine truncated
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"add-html-label-6e56ed67.js","sources":["../src/diagrams/flowchart/parser/flow.jison","../src/diagrams/flowchart/flowDb.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/util.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/label/add-html-label.js"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2015 Knut Sveidqvist\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n%x string\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n%x dir\n%x vertex\n%x click\n%x href\n%x callbackname\n%x callbackargs\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n\n%%\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\\%\\%(?!\\{)[^\\n]* /* skip comments */\n[^\\}]\\%\\%[^\\n]* /* skip comments */\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n// <acc_descr_multiline>.*[^\\n]* { return \"acc_descr_line\"}\n[\"] this.begin(\"string\");\n<string>[\"] this.popState();\n<string>[^\"]* return \"STR\";\n\"style\" return 'STYLE';\n\"default\" return 'DEFAULT';\n\"linkStyle\" return 'LINKSTYLE';\n\"interpolate\" return 'INTERPOLATE';\n\"classDef\" return 'CLASSDEF';\n\"class\" return 'CLASS';\n\n/*\n---interactivity command---\n'href' adds a link to the specified node. 'href' can only be specified when the\nline was introduced with 'click'.\n'href \"<link>\"' attaches the specified link to the node that was specified by 'click'.\n*/\n\"href\"[\\s]+[\"] this.begin(\"href\");\n<href>[\"] this.popState();\n<href>[^\"]* return 'HREF';\n\n/*\n---interactivity command---\n'call' adds a callback to the specified node. 'call' can only be specified when\nthe line was introduced with 'click'.\n'call <callbackname>(<args>)' attaches the function 'callbackname' with the specified\narguments to the node that was specified by 'click'.\nFunction arguments are optional: 'call <callbackname>()' simply executes 'callbackname' without any arguments.\n*/\n\"call\"[\\s]+ this.begin(\"callbackname\");\n<callbackname>\\([\\s]*\\) this.popState();\n<callbackname>\\( this.popState(); this.begin(\"callbackargs\");\n<callbackname>[^(]* return 'CALLBACKNAME';\n<callbackargs>\\) this.popState();\n<callbackargs>[^)]* return 'CALLBACKARGS';\n\n/*\n'click' is the keyword to introduce a line that contains interactivity commands.\n'click' must be followed by an existing node-id. All commands are attached to\nthat id.\n'click <id>' can be followed by href or call commands in any desired order\n*/\n\"click\"[\\s]+ this.begin(\"click\");\n<click>[\\s\\n] this.popState();\n<click>[^\\s\\n]* return 'CLICK';\n\n\"flowchart-elk\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"graph\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"flowchart\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"subgraph\" return 'subgraph';\n\"end\"\\b\\s* return 'end';\n\n\"_self\" return 'LINK_TARGET';\n\"_blank\" return 'LINK_TARGET';\n\"_parent\" return 'LINK_TARGET';\n\"_top\" return 'LINK_TARGET';\n\n<dir>(\\r?\\n)*\\s*\\n { this.popState(); return 'NODIR'; }\n<dir>\\s*\"LR\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"RL\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"TB\" { thisLine truncated
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"add-html-label-ce7f9292.js","sources":["../src/diagrams/flowchart/parser/flow.jison","../src/diagrams/flowchart/flowDb.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/util.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/label/add-html-label.js"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2015 Knut Sveidqvist\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n%x string\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n%x dir\n%x vertex\n%x click\n%x href\n%x callbackname\n%x callbackargs\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n\n%%\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\\%\\%(?!\\{)[^\\n]* /* skip comments */\n[^\\}]\\%\\%[^\\n]* /* skip comments */\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n// <acc_descr_multiline>.*[^\\n]* { return \"acc_descr_line\"}\n[\"] this.begin(\"string\");\n<string>[\"] this.popState();\n<string>[^\"]* return \"STR\";\n\"style\" return 'STYLE';\n\"default\" return 'DEFAULT';\n\"linkStyle\" return 'LINKSTYLE';\n\"interpolate\" return 'INTERPOLATE';\n\"classDef\" return 'CLASSDEF';\n\"class\" return 'CLASS';\n\n/*\n---interactivity command---\n'href' adds a link to the specified node. 'href' can only be specified when the\nline was introduced with 'click'.\n'href \"<link>\"' attaches the specified link to the node that was specified by 'click'.\n*/\n\"href\"[\\s]+[\"] this.begin(\"href\");\n<href>[\"] this.popState();\n<href>[^\"]* return 'HREF';\n\n/*\n---interactivity command---\n'call' adds a callback to the specified node. 'call' can only be specified when\nthe line was introduced with 'click'.\n'call <callbackname>(<args>)' attaches the function 'callbackname' with the specified\narguments to the node that was specified by 'click'.\nFunction arguments are optional: 'call <callbackname>()' simply executes 'callbackname' without any arguments.\n*/\n\"call\"[\\s]+ this.begin(\"callbackname\");\n<callbackname>\\([\\s]*\\) this.popState();\n<callbackname>\\( this.popState(); this.begin(\"callbackargs\");\n<callbackname>[^(]* return 'CALLBACKNAME';\n<callbackargs>\\) this.popState();\n<callbackargs>[^)]* return 'CALLBACKARGS';\n\n/*\n'click' is the keyword to introduce a line that contains interactivity commands.\n'click' must be followed by an existing node-id. All commands are attached to\nthat id.\n'click <id>' can be followed by href or call commands in any desired order\n*/\n\"click\"[\\s]+ this.begin(\"click\");\n<click>[\\s\\n] this.popState();\n<click>[^\\s\\n]* return 'CLICK';\n\n\"flowchart-elk\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"graph\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"flowchart\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"subgraph\" return 'subgraph';\n\"end\"\\b\\s* return 'end';\n\n\"_self\" return 'LINK_TARGET';\n\"_blank\" return 'LINK_TARGET';\n\"_parent\" return 'LINK_TARGET';\n\"_top\" return 'LINK_TARGET';\n\n<dir>(\\r?\\n)*\\s*\\n { this.popState(); return 'NODIR'; }\n<dir>\\s*\"LR\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"RL\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"TB\" { thisLine truncated
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"add-html-label-f3a0bd34.js","sources":["../src/diagrams/flowchart/parser/flow.jison","../src/diagrams/flowchart/flowDb.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/util.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/label/add-html-label.js"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2015 Knut Sveidqvist\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n%x string\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n%x dir\n%x vertex\n%x click\n%x href\n%x callbackname\n%x callbackargs\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n\n%%\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\\%\\%(?!\\{)[^\\n]* /* skip comments */\n[^\\}]\\%\\%[^\\n]* /* skip comments */\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n// <acc_descr_multiline>.*[^\\n]* { return \"acc_descr_line\"}\n[\"] this.begin(\"string\");\n<string>[\"] this.popState();\n<string>[^\"]* return \"STR\";\n\"style\" return 'STYLE';\n\"default\" return 'DEFAULT';\n\"linkStyle\" return 'LINKSTYLE';\n\"interpolate\" return 'INTERPOLATE';\n\"classDef\" return 'CLASSDEF';\n\"class\" return 'CLASS';\n\n/*\n---interactivity command---\n'href' adds a link to the specified node. 'href' can only be specified when the\nline was introduced with 'click'.\n'href \"<link>\"' attaches the specified link to the node that was specified by 'click'.\n*/\n\"href\"[\\s]+[\"] this.begin(\"href\");\n<href>[\"] this.popState();\n<href>[^\"]* return 'HREF';\n\n/*\n---interactivity command---\n'call' adds a callback to the specified node. 'call' can only be specified when\nthe line was introduced with 'click'.\n'call <callbackname>(<args>)' attaches the function 'callbackname' with the specified\narguments to the node that was specified by 'click'.\nFunction arguments are optional: 'call <callbackname>()' simply executes 'callbackname' without any arguments.\n*/\n\"call\"[\\s]+ this.begin(\"callbackname\");\n<callbackname>\\([\\s]*\\) this.popState();\n<callbackname>\\( this.popState(); this.begin(\"callbackargs\");\n<callbackname>[^(]* return 'CALLBACKNAME';\n<callbackargs>\\) this.popState();\n<callbackargs>[^)]* return 'CALLBACKARGS';\n\n/*\n'click' is the keyword to introduce a line that contains interactivity commands.\n'click' must be followed by an existing node-id. All commands are attached to\nthat id.\n'click <id>' can be followed by href or call commands in any desired order\n*/\n\"click\"[\\s]+ this.begin(\"click\");\n<click>[\\s\\n] this.popState();\n<click>[^\\s\\n]* return 'CLICK';\n\n\"flowchart-elk\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"graph\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"flowchart\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"subgraph\" return 'subgraph';\n\"end\"\\b\\s* return 'end';\n\n\"_self\" return 'LINK_TARGET';\n\"_blank\" return 'LINK_TARGET';\n\"_parent\" return 'LINK_TARGET';\n\"_top\" return 'LINK_TARGET';\n\n<dir>(\\r?\\n)*\\s*\\n { this.popState(); return 'NODIR'; }\n<dir>\\s*\"LR\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"RL\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"TB\" { thisLine truncated
+85
View File
@@ -0,0 +1,85 @@
import { c as Q, p as sn } from "./constant-2fe7eae5.js";
import { J as en, K as X, N as I, O as rn, P as y, I as ln, Q as z, R as b, T as un, V as t, W as an, X as on, Y as tn } from "./utils-aa888deb.js";
function fn(l) {
return l.innerRadius;
}
function cn(l) {
return l.outerRadius;
}
function yn(l) {
return l.startAngle;
}
function gn(l) {
return l.endAngle;
}
function mn(l) {
return l && l.padAngle;
}
function pn(l, x, w, O, h, v, S, r) {
var s = w - l, n = O - x, m = S - h, i = r - v, u = i * s - m * n;
if (!(u * u < y))
return u = (m * (x - v) - i * (l - h)) / u, [l + u * s, x + u * n];
}
function H(l, x, w, O, h, v, S) {
var r = l - w, s = x - O, n = (S ? v : -v) / z(r * r + s * s), m = n * s, i = -n * r, u = l + m, f = x + i, c = w + m, D = O + i, o = (u + c) / 2, E = (f + D) / 2, p = c - u, g = D - f, R = p * p + g * g, J = h - v, P = u * D - c * f, K = (g < 0 ? -1 : 1) * z(tn(0, J * J * R - P * P)), N = (P * g - p * K) / R, d = (-P * p - g * K) / R, A = (P * g + p * K) / R, T = (-P * p + g * K) / R, e = N - o, a = d - E, V = A - o, W = T - E;
return e * e + a * a > V * V + W * W && (N = A, d = T), {
cx: N,
cy: d,
x01: -m,
y01: -i,
x11: N * (h / J - 1),
y11: d * (h / J - 1)
};
}
function hn() {
var l = fn, x = cn, w = Q(0), O = null, h = yn, v = gn, S = mn, r = null;
function s() {
var n, m, i = +l.apply(this, arguments), u = +x.apply(this, arguments), f = h.apply(this, arguments) - rn, c = v.apply(this, arguments) - rn, D = un(c - f), o = c > f;
if (r || (r = n = sn()), u < i && (m = u, u = i, i = m), !(u > y))
r.moveTo(0, 0);
else if (D > ln - y)
r.moveTo(u * X(f), u * I(f)), r.arc(0, 0, u, f, c, !o), i > y && (r.moveTo(i * X(c), i * I(c)), r.arc(0, 0, i, c, f, o));
else {
var E = f, p = c, g = f, R = c, J = D, P = D, K = S.apply(this, arguments) / 2, N = K > y && (O ? +O.apply(this, arguments) : z(i * i + u * u)), d = b(un(u - i) / 2, +w.apply(this, arguments)), A = d, T = d, e, a;
if (N > y) {
var V = an(N / i * I(K)), W = an(N / u * I(K));
(J -= V * 2) > y ? (V *= o ? 1 : -1, g += V, R -= V) : (J = 0, g = R = (f + c) / 2), (P -= W * 2) > y ? (W *= o ? 1 : -1, E += W, p -= W) : (P = 0, E = p = (f + c) / 2);
}
var Y = u * X(E), j = u * I(E), B = i * X(R), C = i * I(R);
if (d > y) {
var F = u * X(p), G = u * I(p), L = i * X(g), M = i * I(g), q;
if (D < en && (q = pn(Y, j, L, M, F, G, B, C))) {
var U = Y - q[0], Z = j - q[1], $ = F - q[0], k = G - q[1], _ = 1 / I(on((U * $ + Z * k) / (z(U * U + Z * Z) * z($ * $ + k * k))) / 2), nn = z(q[0] * q[0] + q[1] * q[1]);
A = b(d, (i - nn) / (_ - 1)), T = b(d, (u - nn) / (_ + 1));
}
}
P > y ? T > y ? (e = H(L, M, Y, j, u, T, o), a = H(F, G, B, C, u, T, o), r.moveTo(e.cx + e.x01, e.cy + e.y01), T < d ? r.arc(e.cx, e.cy, T, t(e.y01, e.x01), t(a.y01, a.x01), !o) : (r.arc(e.cx, e.cy, T, t(e.y01, e.x01), t(e.y11, e.x11), !o), r.arc(0, 0, u, t(e.cy + e.y11, e.cx + e.x11), t(a.cy + a.y11, a.cx + a.x11), !o), r.arc(a.cx, a.cy, T, t(a.y11, a.x11), t(a.y01, a.x01), !o))) : (r.moveTo(Y, j), r.arc(0, 0, u, E, p, !o)) : r.moveTo(Y, j), !(i > y) || !(J > y) ? r.lineTo(B, C) : A > y ? (e = H(B, C, F, G, i, -A, o), a = H(Y, j, L, M, i, -A, o), r.lineTo(e.cx + e.x01, e.cy + e.y01), A < d ? r.arc(e.cx, e.cy, A, t(e.y01, e.x01), t(a.y01, a.x01), !o) : (r.arc(e.cx, e.cy, A, t(e.y01, e.x01), t(e.y11, e.x11), !o), r.arc(0, 0, i, t(e.cy + e.y11, e.cx + e.x11), t(a.cy + a.y11, a.cx + a.x11), o), r.arc(a.cx, a.cy, A, t(a.y11, a.x11), t(a.y01, a.x01), !o))) : r.arc(0, 0, i, R, g, o);
}
if (r.closePath(), n)
return r = null, n + "" || null;
}
return s.centroid = function() {
var n = (+l.apply(this, arguments) + +x.apply(this, arguments)) / 2, m = (+h.apply(this, arguments) + +v.apply(this, arguments)) / 2 - en / 2;
return [X(m) * n, I(m) * n];
}, s.innerRadius = function(n) {
return arguments.length ? (l = typeof n == "function" ? n : Q(+n), s) : l;
}, s.outerRadius = function(n) {
return arguments.length ? (x = typeof n == "function" ? n : Q(+n), s) : x;
}, s.cornerRadius = function(n) {
return arguments.length ? (w = typeof n == "function" ? n : Q(+n), s) : w;
}, s.padRadius = function(n) {
return arguments.length ? (O = n == null ? null : typeof n == "function" ? n : Q(+n), s) : O;
}, s.startAngle = function(n) {
return arguments.length ? (h = typeof n == "function" ? n : Q(+n), s) : h;
}, s.endAngle = function(n) {
return arguments.length ? (v = typeof n == "function" ? n : Q(+n), s) : v;
}, s.padAngle = function(n) {
return arguments.length ? (S = typeof n == "function" ? n : Q(+n), s) : S;
}, s.context = function(n) {
return arguments.length ? (r = n ?? null, s) : r;
}, s;
}
export {
hn as d
};
//# sourceMappingURL=arc-1bd4335b.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"arc-1bd4335b.js","sources":["../../../node_modules/.pnpm/d3-shape@3.1.0/node_modules/d3-shape/src/arc.js"],"sourcesContent":["import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) *Line truncated
+86
View File
@@ -0,0 +1,86 @@
import { w as ln, c as H } from "./path-428ebac9.js";
import { aw as an, ax as V, ay as D, az as rn, aA as y, V as on, aB as K, aC as _, aD as un, aE as t, aF as sn, aG as tn, aH as fn } from "./mermaid-00886c59.js";
function cn(l) {
return l.innerRadius;
}
function yn(l) {
return l.outerRadius;
}
function gn(l) {
return l.startAngle;
}
function mn(l) {
return l.endAngle;
}
function pn(l) {
return l && l.padAngle;
}
function dn(l, h, z, E, v, A, I, a) {
var B = z - l, i = E - h, n = I - v, m = a - A, r = m * B - n * i;
if (!(r * r < y))
return r = (n * (h - A) - m * (l - v)) / r, [l + r * B, h + r * i];
}
function W(l, h, z, E, v, A, I) {
var a = l - z, B = h - E, i = (I ? A : -A) / K(a * a + B * B), n = i * B, m = -i * a, r = l + n, s = h + m, f = z + n, c = E + m, O = (r + f) / 2, o = (s + c) / 2, p = f - r, g = c - s, R = p * p + g * g, T = v - A, w = r * c - f * s, C = (g < 0 ? -1 : 1) * K(fn(0, T * T * R - w * w)), F = (w * g - p * C) / R, G = (-w * p - g * C) / R, P = (w * g + p * C) / R, d = (-w * p + g * C) / R, x = F - O, e = G - o, u = P - O, S = d - o;
return x * x + e * e > u * u + S * S && (F = P, G = d), {
cx: F,
cy: G,
x01: -n,
y01: -m,
x11: F * (v / T - 1),
y11: G * (v / T - 1)
};
}
function vn() {
var l = cn, h = yn, z = H(0), E = null, v = gn, A = mn, I = pn, a = null, B = ln(i);
function i() {
var n, m, r = +l.apply(this, arguments), s = +h.apply(this, arguments), f = v.apply(this, arguments) - rn, c = A.apply(this, arguments) - rn, O = un(c - f), o = c > f;
if (a || (a = n = B()), s < r && (m = s, s = r, r = m), !(s > y))
a.moveTo(0, 0);
else if (O > on - y)
a.moveTo(s * V(f), s * D(f)), a.arc(0, 0, s, f, c, !o), r > y && (a.moveTo(r * V(c), r * D(c)), a.arc(0, 0, r, c, f, o));
else {
var p = f, g = c, R = f, T = c, w = O, C = O, F = I.apply(this, arguments) / 2, G = F > y && (E ? +E.apply(this, arguments) : K(r * r + s * s)), P = _(un(s - r) / 2, +z.apply(this, arguments)), d = P, x = P, e, u;
if (G > y) {
var S = sn(G / r * D(F)), L = sn(G / s * D(F));
(w -= S * 2) > y ? (S *= o ? 1 : -1, R += S, T -= S) : (w = 0, R = T = (f + c) / 2), (C -= L * 2) > y ? (L *= o ? 1 : -1, p += L, g -= L) : (C = 0, p = g = (f + c) / 2);
}
var j = s * V(p), J = s * D(p), M = r * V(T), N = r * D(T);
if (P > y) {
var Q = s * V(g), U = s * D(g), X = r * V(R), Y = r * D(R), q;
if (O < an)
if (q = dn(j, J, X, Y, Q, U, M, N)) {
var Z = j - q[0], $ = J - q[1], k = Q - q[0], b = U - q[1], nn = 1 / D(tn((Z * k + $ * b) / (K(Z * Z + $ * $) * K(k * k + b * b))) / 2), en = K(q[0] * q[0] + q[1] * q[1]);
d = _(P, (r - en) / (nn - 1)), x = _(P, (s - en) / (nn + 1));
} else
d = x = 0;
}
C > y ? x > y ? (e = W(X, Y, j, J, s, x, o), u = W(Q, U, M, N, s, x, o), a.moveTo(e.cx + e.x01, e.cy + e.y01), x < P ? a.arc(e.cx, e.cy, x, t(e.y01, e.x01), t(u.y01, u.x01), !o) : (a.arc(e.cx, e.cy, x, t(e.y01, e.x01), t(e.y11, e.x11), !o), a.arc(0, 0, s, t(e.cy + e.y11, e.cx + e.x11), t(u.cy + u.y11, u.cx + u.x11), !o), a.arc(u.cx, u.cy, x, t(u.y11, u.x11), t(u.y01, u.x01), !o))) : (a.moveTo(j, J), a.arc(0, 0, s, p, g, !o)) : a.moveTo(j, J), !(r > y) || !(w > y) ? a.lineTo(M, N) : d > y ? (e = W(M, N, Q, U, r, -d, o), u = W(j, J, X, Y, r, -d, o), a.lineTo(e.cx + e.x01, e.cy + e.y01), d < P ? a.arc(e.cx, e.cy, d, t(e.y01, e.x01), t(u.y01, u.x01), !o) : (a.arc(e.cx, e.cy, d, t(e.y01, e.x01), t(e.y11, e.x11), !o), a.arc(0, 0, r, t(e.cy + e.y11, e.cx + e.x11), t(u.cy + u.y11, u.cx + u.x11), o), a.arc(u.cx, u.cy, d, t(u.y11, u.x11), t(u.y01, u.x01), !o))) : a.arc(0, 0, r, T, R, o);
}
if (a.closePath(), n)
return a = null, n + "" || null;
}
return i.centroid = function() {
var n = (+l.apply(this, arguments) + +h.apply(this, arguments)) / 2, m = (+v.apply(this, arguments) + +A.apply(this, arguments)) / 2 - an / 2;
return [V(m) * n, D(m) * n];
}, i.innerRadius = function(n) {
return arguments.length ? (l = typeof n == "function" ? n : H(+n), i) : l;
}, i.outerRadius = function(n) {
return arguments.length ? (h = typeof n == "function" ? n : H(+n), i) : h;
}, i.cornerRadius = function(n) {
return arguments.length ? (z = typeof n == "function" ? n : H(+n), i) : z;
}, i.padRadius = function(n) {
return arguments.length ? (E = n == null ? null : typeof n == "function" ? n : H(+n), i) : E;
}, i.startAngle = function(n) {
return arguments.length ? (v = typeof n == "function" ? n : H(+n), i) : v;
}, i.endAngle = function(n) {
return arguments.length ? (A = typeof n == "function" ? n : H(+n), i) : A;
}, i.padAngle = function(n) {
return arguments.length ? (I = typeof n == "function" ? n : H(+n), i) : I;
}, i.context = function(n) {
return arguments.length ? (a = n ?? null, i) : a;
}, i;
}
export {
vn as d
};
+148
View File
@@ -0,0 +1,148 @@
import { w as withPath, c as constant } from "./path-39bad7e2.js";
import { aw as pi, ax as cos, ay as sin, az as halfPi, aA as epsilon, V as tau, aB as sqrt, aC as min, aD as abs, aE as atan2, aF as asin, aG as acos, aH as max } from "./mermaid-c5809711.js";
function arcInnerRadius(d) {
return d.innerRadius;
}
function arcOuterRadius(d) {
return d.outerRadius;
}
function arcStartAngle(d) {
return d.startAngle;
}
function arcEndAngle(d) {
return d.endAngle;
}
function arcPadAngle(d) {
return d && d.padAngle;
}
function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
var x10 = x1 - x0, y10 = y1 - y0, x32 = x3 - x2, y32 = y3 - y2, t = y32 * x10 - x32 * y10;
if (t * t < epsilon)
return;
t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
return [x0 + t * x10, y0 + t * y10];
}
function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r = r1 - rc, D = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00;
if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1)
cx0 = cx1, cy0 = cy1;
return {
cx: cx0,
cy: cy0,
x01: -ox,
y01: -oy,
x11: cx0 * (r1 / r - 1),
y11: cy0 * (r1 / r - 1)
};
}
function d3arc() {
var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = constant(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null, path = withPath(arc);
function arc() {
var buffer, r, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = abs(a1 - a0), cw = a1 > a0;
if (!context)
context = buffer = path();
if (r1 < r0)
r = r1, r1 = r0, r0 = r;
if (!(r1 > epsilon))
context.moveTo(0, 0);
else if (da > tau - epsilon) {
context.moveTo(r1 * cos(a0), r1 * sin(a0));
context.arc(0, 0, r1, a0, a1, !cw);
if (r0 > epsilon) {
context.moveTo(r0 * cos(a1), r0 * sin(a1));
context.arc(0, 0, r0, a1, a0, cw);
}
} else {
var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t0, t1;
if (rp > epsilon) {
var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap));
if ((da0 -= p0 * 2) > epsilon)
p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;
else
da0 = 0, a00 = a10 = (a0 + a1) / 2;
if ((da1 -= p1 * 2) > epsilon)
p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;
else
da1 = 0, a01 = a11 = (a0 + a1) / 2;
}
var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10);
if (rc > epsilon) {
var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc;
if (da < pi) {
if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {
var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
rc0 = min(rc, (r0 - lc) / (kc - 1));
rc1 = min(rc, (r1 - lc) / (kc + 1));
} else {
rc0 = rc1 = 0;
}
}
}
if (!(da1 > epsilon))
context.moveTo(x01, y01);
else if (rc1 > epsilon) {
t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
if (rc1 < rc)
context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
else {
context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
}
} else
context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
if (!(r0 > epsilon) || !(da0 > epsilon))
context.lineTo(x10, y10);
else if (rc0 > epsilon) {
t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
if (rc0 < rc)
context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
else {
context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);
context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
}
} else
context.arc(0, 0, r0, a10, a00, cw);
}
context.closePath();
if (buffer)
return context = null, buffer + "" || null;
}
arc.centroid = function() {
var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
return [cos(a) * r, sin(a) * r];
};
arc.innerRadius = function(_) {
return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius;
};
arc.outerRadius = function(_) {
return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius;
};
arc.cornerRadius = function(_) {
return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius;
};
arc.padRadius = function(_) {
return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius;
};
arc.startAngle = function(_) {
return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle;
};
arc.endAngle = function(_) {
return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle;
};
arc.padAngle = function(_) {
return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle;
};
arc.context = function(_) {
return arguments.length ? (context = _ == null ? null : _, arc) : context;
};
return arc;
}
export {
d3arc as d
};
+145
View File
@@ -0,0 +1,145 @@
import { c as constant, p as path } from "./constant-b644328d.js";
import { J as pi, K as cos, N as sin, O as halfPi, P as epsilon, I as tau, Q as sqrt, R as min, T as abs, V as atan2, W as asin, X as acos, Y as max } from "./utils-872dfc50.js";
function arcInnerRadius(d) {
return d.innerRadius;
}
function arcOuterRadius(d) {
return d.outerRadius;
}
function arcStartAngle(d) {
return d.startAngle;
}
function arcEndAngle(d) {
return d.endAngle;
}
function arcPadAngle(d) {
return d && d.padAngle;
}
function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {
var x10 = x1 - x0, y10 = y1 - y0, x32 = x3 - x2, y32 = y3 - y2, t = y32 * x10 - x32 * y10;
if (t * t < epsilon)
return;
t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;
return [x0 + t * x10, y0 + t * y10];
}
function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r = r1 - rc, D = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00;
if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1)
cx0 = cx1, cy0 = cy1;
return {
cx: cx0,
cy: cy0,
x01: -ox,
y01: -oy,
x11: cx0 * (r1 / r - 1),
y11: cy0 * (r1 / r - 1)
};
}
function d3arc() {
var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = constant(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null;
function arc() {
var buffer, r, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = abs(a1 - a0), cw = a1 > a0;
if (!context)
context = buffer = path();
if (r1 < r0)
r = r1, r1 = r0, r0 = r;
if (!(r1 > epsilon))
context.moveTo(0, 0);
else if (da > tau - epsilon) {
context.moveTo(r1 * cos(a0), r1 * sin(a0));
context.arc(0, 0, r1, a0, a1, !cw);
if (r0 > epsilon) {
context.moveTo(r0 * cos(a1), r0 * sin(a1));
context.arc(0, 0, r0, a1, a0, cw);
}
} else {
var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t0, t1;
if (rp > epsilon) {
var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap));
if ((da0 -= p0 * 2) > epsilon)
p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;
else
da0 = 0, a00 = a10 = (a0 + a1) / 2;
if ((da1 -= p1 * 2) > epsilon)
p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;
else
da1 = 0, a01 = a11 = (a0 + a1) / 2;
}
var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10);
if (rc > epsilon) {
var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc;
if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {
var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
rc0 = min(rc, (r0 - lc) / (kc - 1));
rc1 = min(rc, (r1 - lc) / (kc + 1));
}
}
if (!(da1 > epsilon))
context.moveTo(x01, y01);
else if (rc1 > epsilon) {
t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);
if (rc1 < rc)
context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
else {
context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);
context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
}
} else
context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
if (!(r0 > epsilon) || !(da0 > epsilon))
context.lineTo(x10, y10);
else if (rc0 > epsilon) {
t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);
if (rc0 < rc)
context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);
else {
context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);
context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);
context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);
}
} else
context.arc(0, 0, r0, a10, a00, cw);
}
context.closePath();
if (buffer)
return context = null, buffer + "" || null;
}
arc.centroid = function() {
var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
return [cos(a) * r, sin(a) * r];
};
arc.innerRadius = function(_) {
return arguments.length ? (innerRadius = typeof _ === "function" ? _ : constant(+_), arc) : innerRadius;
};
arc.outerRadius = function(_) {
return arguments.length ? (outerRadius = typeof _ === "function" ? _ : constant(+_), arc) : outerRadius;
};
arc.cornerRadius = function(_) {
return arguments.length ? (cornerRadius = typeof _ === "function" ? _ : constant(+_), arc) : cornerRadius;
};
arc.padRadius = function(_) {
return arguments.length ? (padRadius = _ == null ? null : typeof _ === "function" ? _ : constant(+_), arc) : padRadius;
};
arc.startAngle = function(_) {
return arguments.length ? (startAngle = typeof _ === "function" ? _ : constant(+_), arc) : startAngle;
};
arc.endAngle = function(_) {
return arguments.length ? (endAngle = typeof _ === "function" ? _ : constant(+_), arc) : endAngle;
};
arc.padAngle = function(_) {
return arguments.length ? (padAngle = typeof _ === "function" ? _ : constant(+_), arc) : padAngle;
};
arc.context = function(_) {
return arguments.length ? (context = _ == null ? null : _, arc) : context;
};
return arc;
}
export {
d3arc as d
};
//# sourceMappingURL=arc-7c943a40.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"arc-7c943a40.js","sources":["../../../node_modules/.pnpm/d3-shape@3.1.0/node_modules/d3-shape/src/arc.js"],"sourcesContent":["import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) *Line truncated
+6
View File
@@ -0,0 +1,6 @@
function t(r) {
return typeof r == "object" && "length" in r ? r : Array.from(r);
}
export {
t as a
};
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"array-2ff2c7a6.js","sources":["../../../node_modules/.pnpm/d3-shape@3.1.0/node_modules/d3-shape/src/array.js"],"sourcesContent":["export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n"],"names":["array","x"],"mappings":"AAEe,SAAQA,EAACC,GAAG;AACzB,SAAO,OAAOA,KAAM,YAAY,YAAYA,IACxCA,IACA,MAAM,KAAKA,CAAC;AAClB;"}
+6
View File
@@ -0,0 +1,6 @@
function array(x) {
return typeof x === "object" && "length" in x ? x : Array.from(x);
}
export {
array as a
};
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"array-b7dcf730.js","sources":["../../../node_modules/.pnpm/d3-shape@3.1.0/node_modules/d3-shape/src/array.js"],"sourcesContent":["export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n"],"names":[],"mappings":"AAEe,SAAQ,MAAC,GAAG;AACzB,SAAO,OAAO,MAAM,YAAY,YAAY,IACxC,IACA,MAAM,KAAK,CAAC;AAClB;"}
+30
View File
@@ -0,0 +1,30 @@
/**
* assignWithDepth Extends the functionality of {@link Object.assign} with the
* ability to merge arbitrary-depth objects For each key in src with path `k` (recursively)
* performs an Object.assign(dst[`k`], src[`k`]) with a slight change from the typical handling of
* undefined for dst[`k`]: instead of raising an error, dst[`k`] is auto-initialized to `{}` and
* effectively merged with src[`k`]<p> Additionally, dissimilar types will not clobber unless the
* config.clobber parameter === true. Example:
*
* ```
* const config_0 = { foo: { bar: 'bar' }, bar: 'foo' };
* const config_1 = { foo: 'foo', bar: 'bar' };
* const result = assignWithDepth(config_0, config_1);
* console.log(result);
* //-> result: { foo: { bar: 'bar' }, bar: 'bar' }
* ```
*
* Traditional Object.assign would have clobbered foo in config_0 with foo in config_1. If src is a
* destructured array of objects and dst is not an array, assignWithDepth will apply each element
* of src to dst in order.
* @param dst - The destination of the merge
* @param src - The source object(s) to merge into destination
* @param config -
* * depth: depth to traverse within src and dst for merging
* * clobber: should dissimilar types clobber
*/
declare const assignWithDepth: (dst: any, src: any, { depth, clobber }?: {
depth?: number | undefined;
clobber?: boolean | undefined;
}) => any;
export default assignWithDepth;
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"c4Diagram-03ae1c00.js","sources":["../src/diagrams/c4/parser/c4Diagram.jison","../src/diagrams/c4/c4Db.js","../src/diagrams/c4/svgDraw.js","../src/diagrams/c4/c4Renderer.js","../src/diagrams/c4/styles.js","../src/diagrams/c4/c4Diagram.ts"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2022 mzhx.meng@gmail.com\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n\n/* context */\n%x person\n%x person_ext\n%x system\n%x system_db\n%x system_queue\n%x system_ext\n%x system_ext_db\n%x system_ext_queue\n%x boundary\n%x enterprise_boundary\n%x system_boundary\n%x rel\n%x birel\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n\n/* container */\n%x container\n%x container_db\n%x container_queue\n%x container_ext\n%x container_ext_db\n%x container_ext_queue\n%x container_boundary\n\n/* component */\n%x component\n%x component_db\n%x component_queue\n%x component_ext\n%x component_ext_db\n%x component_ext_queue\n\n/* Dynamic diagram */\n%x rel_index\n%x index\n\n/* Deployment diagram */\n%x node\n%x node_l\n%x node_r\n\n/* Relationship Types */\n%x rel\n%x rel_bi\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n%x rel_b\n\n/* Custom tags/stereotypes */\n%x update_el_style\n%x update_rel_style\n%x update_layout_config\n\n%x attribute\n%x string\n%x string_kv\n%x string_kv_key\n%x string_kv_value\n\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n\n%%\n\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n.*direction\\s+TB[^\\n]* return 'direction_tb';\n.*direction\\s+BT[^\\n]* return 'direction_bt';\n.*direction\\s+RL[^\\n]* return 'direction_rl';\n.*direction\\s+LR[^\\n]* return 'direction_lr';\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\n\n\"title\"\\s[^#\\n;]+ return 'title';\n\"accDescription\"\\s[^#\\n;]+ return 'accDescription';\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n\n\n\\%\\%(?!\\{)*[^\\n]*(\\r?\\n?)+ /* skip comments */\n\\%\\%[^\\n]*(\\r?\\n)* c /* skip comments */\n\n\\s*(\\r?\\n)+ return 'NEWLINE';\n\\s+ /* skip whitespace */\n\"C4Context\" return 'C4_CONTEXT';\n\"C4Container\" return 'C4_CONTAINER';\n\"C4Component\" return 'C4_COMPONENT';\n\"C4Dynamic\" return 'C4_DYNAMIC';\n\"C4Deployment\" return 'C4_DEPLOYMENT';\n\n\"Person_Ext\" { this.begin(\"person_ext\"); return 'PERSON_EXT';}\n\"Person\" { this.begin(\"person\"); return 'PERSON';}\n\"SystemQueue_Ext\" { this.begin(\"system_ext_queue\"); return 'SYSTEM_EXT_QUEUE';}\n\"SystemDb_Ext\" { this.begin(\"system_ext_db\"); return 'SYSTEM_EXT_DB';}\n\"System_Ext\" { this.begin(\"system_ext\"); return 'SYSTEM_EXT';}\n\"SystemQueue\" { this.begin(\"system_queue\"); return 'SYSTEM_QUEUE';}\n\"SystemDb\" { this.begin(\"system_db\"); return 'SYSTEM_DB';}\n\"System\" { this.begin(\"system\"); return 'SYSTEM';}\n\n\"Boundary\" { this.begin(\"boundary\"); return 'BOUNDARY';}\n\"Enterprise_Boundary\" { this.begin(\"enterprise_boundary\"); return 'ENTERPRISE_BOUNDARY';}\n\"System_Boundary\" { this.begin(\"system_boundary\"); return 'SYSTEM_BOUNDARY';}\n\n\"ContainerQueue_Ext\" { this.begin(\"container_ext_queue\"); return 'CONTAINER_EXT_QUEUE';}\n\"ContainerDb_Ext\" { this.begin(\"container_ext_db\"); return 'CONTAINER_EXT_DB';}\n\"Container_Ext\" { thisLine truncated
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"c4Diagram-8889d224.js","sources":["../src/diagrams/c4/parser/c4Diagram.jison","../src/diagrams/c4/c4Db.js","../src/diagrams/c4/svgDraw.js","../src/diagrams/c4/c4Renderer.js","../src/diagrams/c4/styles.js","../src/diagrams/c4/c4Diagram.ts"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2022 mzhx.meng@gmail.com\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n\n/* context */\n%x person\n%x person_ext\n%x system\n%x system_db\n%x system_queue\n%x system_ext\n%x system_ext_db\n%x system_ext_queue\n%x boundary\n%x enterprise_boundary\n%x system_boundary\n%x rel\n%x birel\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n\n/* container */\n%x container\n%x container_db\n%x container_queue\n%x container_ext\n%x container_ext_db\n%x container_ext_queue\n%x container_boundary\n\n/* component */\n%x component\n%x component_db\n%x component_queue\n%x component_ext\n%x component_ext_db\n%x component_ext_queue\n\n/* Dynamic diagram */\n%x rel_index\n%x index\n\n/* Deployment diagram */\n%x node\n%x node_l\n%x node_r\n\n/* Relationship Types */\n%x rel\n%x rel_bi\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n%x rel_b\n\n/* Custom tags/stereotypes */\n%x update_el_style\n%x update_rel_style\n%x update_layout_config\n\n%x attribute\n%x string\n%x string_kv\n%x string_kv_key\n%x string_kv_value\n\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n\n%%\n\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n.*direction\\s+TB[^\\n]* return 'direction_tb';\n.*direction\\s+BT[^\\n]* return 'direction_bt';\n.*direction\\s+RL[^\\n]* return 'direction_rl';\n.*direction\\s+LR[^\\n]* return 'direction_lr';\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\n\n\"title\"\\s[^#\\n;]+ return 'title';\n\"accDescription\"\\s[^#\\n;]+ return 'accDescription';\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n\n\n\\%\\%(?!\\{)*[^\\n]*(\\r?\\n?)+ /* skip comments */\n\\%\\%[^\\n]*(\\r?\\n)* c /* skip comments */\n\n\\s*(\\r?\\n)+ return 'NEWLINE';\n\\s+ /* skip whitespace */\n\"C4Context\" return 'C4_CONTEXT';\n\"C4Container\" return 'C4_CONTAINER';\n\"C4Component\" return 'C4_COMPONENT';\n\"C4Dynamic\" return 'C4_DYNAMIC';\n\"C4Deployment\" return 'C4_DEPLOYMENT';\n\n\"Person_Ext\" { this.begin(\"person_ext\"); return 'PERSON_EXT';}\n\"Person\" { this.begin(\"person\"); return 'PERSON';}\n\"SystemQueue_Ext\" { this.begin(\"system_ext_queue\"); return 'SYSTEM_EXT_QUEUE';}\n\"SystemDb_Ext\" { this.begin(\"system_ext_db\"); return 'SYSTEM_EXT_DB';}\n\"System_Ext\" { this.begin(\"system_ext\"); return 'SYSTEM_EXT';}\n\"SystemQueue\" { this.begin(\"system_queue\"); return 'SYSTEM_QUEUE';}\n\"SystemDb\" { this.begin(\"system_db\"); return 'SYSTEM_DB';}\n\"System\" { this.begin(\"system\"); return 'SYSTEM';}\n\n\"Boundary\" { this.begin(\"boundary\"); return 'BOUNDARY';}\n\"Enterprise_Boundary\" { this.begin(\"enterprise_boundary\"); return 'ENTERPRISE_BOUNDARY';}\n\"System_Boundary\" { this.begin(\"system_boundary\"); return 'SYSTEM_BOUNDARY';}\n\n\"ContainerQueue_Ext\" { this.begin(\"container_ext_queue\"); return 'CONTAINER_EXT_QUEUE';}\n\"ContainerDb_Ext\" { this.begin(\"container_ext_db\"); return 'CONTAINER_EXT_DB';}\n\"Container_Ext\" { thisLine truncated
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"c4Diagram-a7af8508.js","sources":["../src/diagrams/c4/parser/c4Diagram.jison","../src/diagrams/c4/c4Db.js","../src/diagrams/c4/svgDraw.js","../src/diagrams/c4/c4Renderer.js","../src/diagrams/c4/styles.js","../src/diagrams/c4/c4Diagram.ts"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2022 mzhx.meng@gmail.com\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n\n/* context */\n%x person\n%x person_ext\n%x system\n%x system_db\n%x system_queue\n%x system_ext\n%x system_ext_db\n%x system_ext_queue\n%x boundary\n%x enterprise_boundary\n%x system_boundary\n%x rel\n%x birel\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n\n/* container */\n%x container\n%x container_db\n%x container_queue\n%x container_ext\n%x container_ext_db\n%x container_ext_queue\n%x container_boundary\n\n/* component */\n%x component\n%x component_db\n%x component_queue\n%x component_ext\n%x component_ext_db\n%x component_ext_queue\n\n/* Dynamic diagram */\n%x rel_index\n%x index\n\n/* Deployment diagram */\n%x node\n%x node_l\n%x node_r\n\n/* Relationship Types */\n%x rel\n%x rel_bi\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n%x rel_b\n\n/* Custom tags/stereotypes */\n%x update_el_style\n%x update_rel_style\n%x update_layout_config\n\n%x attribute\n%x string\n%x string_kv\n%x string_kv_key\n%x string_kv_value\n\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n\n%%\n\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n.*direction\\s+TB[^\\n]* return 'direction_tb';\n.*direction\\s+BT[^\\n]* return 'direction_bt';\n.*direction\\s+RL[^\\n]* return 'direction_rl';\n.*direction\\s+LR[^\\n]* return 'direction_lr';\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\n\n\"title\"\\s[^#\\n;]+ return 'title';\n\"accDescription\"\\s[^#\\n;]+ return 'accDescription';\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n\n\n\\%\\%(?!\\{)*[^\\n]*(\\r?\\n?)+ /* skip comments */\n\\%\\%[^\\n]*(\\r?\\n)* c /* skip comments */\n\n\\s*(\\r?\\n)+ return 'NEWLINE';\n\\s+ /* skip whitespace */\n\"C4Context\" return 'C4_CONTEXT';\n\"C4Container\" return 'C4_CONTAINER';\n\"C4Component\" return 'C4_COMPONENT';\n\"C4Dynamic\" return 'C4_DYNAMIC';\n\"C4Deployment\" return 'C4_DEPLOYMENT';\n\n\"Person_Ext\" { this.begin(\"person_ext\"); return 'PERSON_EXT';}\n\"Person\" { this.begin(\"person\"); return 'PERSON';}\n\"SystemQueue_Ext\" { this.begin(\"system_ext_queue\"); return 'SYSTEM_EXT_QUEUE';}\n\"SystemDb_Ext\" { this.begin(\"system_ext_db\"); return 'SYSTEM_EXT_DB';}\n\"System_Ext\" { this.begin(\"system_ext\"); return 'SYSTEM_EXT';}\n\"SystemQueue\" { this.begin(\"system_queue\"); return 'SYSTEM_QUEUE';}\n\"SystemDb\" { this.begin(\"system_db\"); return 'SYSTEM_DB';}\n\"System\" { this.begin(\"system\"); return 'SYSTEM';}\n\n\"Boundary\" { this.begin(\"boundary\"); return 'BOUNDARY';}\n\"Enterprise_Boundary\" { this.begin(\"enterprise_boundary\"); return 'ENTERPRISE_BOUNDARY';}\n\"System_Boundary\" { this.begin(\"system_boundary\"); return 'SYSTEM_BOUNDARY';}\n\n\"ContainerQueue_Ext\" { this.begin(\"container_ext_queue\"); return 'CONTAINER_EXT_QUEUE';}\n\"ContainerDb_Ext\" { this.begin(\"container_ext_db\"); return 'CONTAINER_EXT_DB';}\n\"Container_Ext\" { thisLine truncated
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"c4Diagram-adf7b82c.js","sources":["../src/diagrams/c4/parser/c4Diagram.jison","../src/diagrams/c4/c4Db.js","../src/diagrams/c4/svgDraw.js","../src/diagrams/c4/c4Renderer.js","../src/diagrams/c4/styles.js","../src/diagrams/c4/c4Diagram.ts"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2022 mzhx.meng@gmail.com\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n\n/* context */\n%x person\n%x person_ext\n%x system\n%x system_db\n%x system_queue\n%x system_ext\n%x system_ext_db\n%x system_ext_queue\n%x boundary\n%x enterprise_boundary\n%x system_boundary\n%x rel\n%x birel\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n\n/* container */\n%x container\n%x container_db\n%x container_queue\n%x container_ext\n%x container_ext_db\n%x container_ext_queue\n%x container_boundary\n\n/* component */\n%x component\n%x component_db\n%x component_queue\n%x component_ext\n%x component_ext_db\n%x component_ext_queue\n\n/* Dynamic diagram */\n%x rel_index\n%x index\n\n/* Deployment diagram */\n%x node\n%x node_l\n%x node_r\n\n/* Relationship Types */\n%x rel\n%x rel_bi\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n%x rel_b\n\n/* Custom tags/stereotypes */\n%x update_el_style\n%x update_rel_style\n%x update_layout_config\n\n%x attribute\n%x string\n%x string_kv\n%x string_kv_key\n%x string_kv_value\n\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n\n%%\n\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n.*direction\\s+TB[^\\n]* return 'direction_tb';\n.*direction\\s+BT[^\\n]* return 'direction_bt';\n.*direction\\s+RL[^\\n]* return 'direction_rl';\n.*direction\\s+LR[^\\n]* return 'direction_lr';\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\n\n\"title\"\\s[^#\\n;]+ return 'title';\n\"accDescription\"\\s[^#\\n;]+ return 'accDescription';\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n\n\n\\%\\%(?!\\{)*[^\\n]*(\\r?\\n?)+ /* skip comments */\n\\%\\%[^\\n]*(\\r?\\n)* c /* skip comments */\n\n\\s*(\\r?\\n)+ return 'NEWLINE';\n\\s+ /* skip whitespace */\n\"C4Context\" return 'C4_CONTEXT';\n\"C4Container\" return 'C4_CONTAINER';\n\"C4Component\" return 'C4_COMPONENT';\n\"C4Dynamic\" return 'C4_DYNAMIC';\n\"C4Deployment\" return 'C4_DEPLOYMENT';\n\n\"Person_Ext\" { this.begin(\"person_ext\"); return 'PERSON_EXT';}\n\"Person\" { this.begin(\"person\"); return 'PERSON';}\n\"SystemQueue_Ext\" { this.begin(\"system_ext_queue\"); return 'SYSTEM_EXT_QUEUE';}\n\"SystemDb_Ext\" { this.begin(\"system_ext_db\"); return 'SYSTEM_EXT_DB';}\n\"System_Ext\" { this.begin(\"system_ext\"); return 'SYSTEM_EXT';}\n\"SystemQueue\" { this.begin(\"system_queue\"); return 'SYSTEM_QUEUE';}\n\"SystemDb\" { this.begin(\"system_db\"); return 'SYSTEM_DB';}\n\"System\" { this.begin(\"system\"); return 'SYSTEM';}\n\n\"Boundary\" { this.begin(\"boundary\"); return 'BOUNDARY';}\n\"Enterprise_Boundary\" { this.begin(\"enterprise_boundary\"); return 'ENTERPRISE_BOUNDARY';}\n\"System_Boundary\" { this.begin(\"system_boundary\"); return 'SYSTEM_BOUNDARY';}\n\n\"ContainerQueue_Ext\" { this.begin(\"container_ext_queue\"); return 'CONTAINER_EXT_QUEUE';}\n\"ContainerDb_Ext\" { this.begin(\"container_ext_db\"); return 'CONTAINER_EXT_DB';}\n\"Container_Ext\" { thisLine truncated
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"c4Diagram-f9e67060.js","sources":["../src/diagrams/c4/parser/c4Diagram.jison","../src/diagrams/c4/c4Db.js","../src/diagrams/c4/svgDraw.js","../src/diagrams/c4/c4Renderer.js","../src/diagrams/c4/styles.js","../src/diagrams/c4/c4Diagram.ts"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2022 mzhx.meng@gmail.com\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n\n/* context */\n%x person\n%x person_ext\n%x system\n%x system_db\n%x system_queue\n%x system_ext\n%x system_ext_db\n%x system_ext_queue\n%x boundary\n%x enterprise_boundary\n%x system_boundary\n%x rel\n%x birel\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n\n/* container */\n%x container\n%x container_db\n%x container_queue\n%x container_ext\n%x container_ext_db\n%x container_ext_queue\n%x container_boundary\n\n/* component */\n%x component\n%x component_db\n%x component_queue\n%x component_ext\n%x component_ext_db\n%x component_ext_queue\n\n/* Dynamic diagram */\n%x rel_index\n%x index\n\n/* Deployment diagram */\n%x node\n%x node_l\n%x node_r\n\n/* Relationship Types */\n%x rel\n%x rel_bi\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n%x rel_b\n\n/* Custom tags/stereotypes */\n%x update_el_style\n%x update_rel_style\n%x update_layout_config\n\n%x attribute\n%x string\n%x string_kv\n%x string_kv_key\n%x string_kv_value\n\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n\n%%\n\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n.*direction\\s+TB[^\\n]* return 'direction_tb';\n.*direction\\s+BT[^\\n]* return 'direction_bt';\n.*direction\\s+RL[^\\n]* return 'direction_rl';\n.*direction\\s+LR[^\\n]* return 'direction_lr';\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\n\n\"title\"\\s[^#\\n;]+ return 'title';\n\"accDescription\"\\s[^#\\n;]+ return 'accDescription';\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n\n\n\\%\\%(?!\\{)*[^\\n]*(\\r?\\n?)+ /* skip comments */\n\\%\\%[^\\n]*(\\r?\\n)* c /* skip comments */\n\n\\s*(\\r?\\n)+ return 'NEWLINE';\n\\s+ /* skip whitespace */\n\"C4Context\" return 'C4_CONTEXT';\n\"C4Container\" return 'C4_CONTAINER';\n\"C4Component\" return 'C4_COMPONENT';\n\"C4Dynamic\" return 'C4_DYNAMIC';\n\"C4Deployment\" return 'C4_DEPLOYMENT';\n\n\"Person_Ext\" { this.begin(\"person_ext\"); return 'PERSON_EXT';}\n\"Person\" { this.begin(\"person\"); return 'PERSON';}\n\"SystemQueue_Ext\" { this.begin(\"system_ext_queue\"); return 'SYSTEM_EXT_QUEUE';}\n\"SystemDb_Ext\" { this.begin(\"system_ext_db\"); return 'SYSTEM_EXT_DB';}\n\"System_Ext\" { this.begin(\"system_ext\"); return 'SYSTEM_EXT';}\n\"SystemQueue\" { this.begin(\"system_queue\"); return 'SYSTEM_QUEUE';}\n\"SystemDb\" { this.begin(\"system_db\"); return 'SYSTEM_DB';}\n\"System\" { this.begin(\"system\"); return 'SYSTEM';}\n\n\"Boundary\" { this.begin(\"boundary\"); return 'BOUNDARY';}\n\"Enterprise_Boundary\" { this.begin(\"enterprise_boundary\"); return 'ENTERPRISE_BOUNDARY';}\n\"System_Boundary\" { this.begin(\"system_boundary\"); return 'SYSTEM_BOUNDARY';}\n\n\"ContainerQueue_Ext\" { this.begin(\"container_ext_queue\"); return 'CONTAINER_EXT_QUEUE';}\n\"ContainerDb_Ext\" { this.begin(\"container_ext_db\"); return 'CONTAINER_EXT_DB';}\n\"Container_Ext\" { thisLine truncated
File diff suppressed because it is too large. Load diff
@@ -0,0 +1 @@
{"version":3,"file":"c4Diagram-fa9ef55f.js","sources":["../src/diagrams/c4/parser/c4Diagram.jison","../src/diagrams/c4/c4Db.js","../src/diagrams/c4/svgDraw.js","../src/diagrams/c4/c4Renderer.js","../src/diagrams/c4/styles.js","../src/diagrams/c4/c4Diagram.ts"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2022 mzhx.meng@gmail.com\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n\n/* context */\n%x person\n%x person_ext\n%x system\n%x system_db\n%x system_queue\n%x system_ext\n%x system_ext_db\n%x system_ext_queue\n%x boundary\n%x enterprise_boundary\n%x system_boundary\n%x rel\n%x birel\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n\n/* container */\n%x container\n%x container_db\n%x container_queue\n%x container_ext\n%x container_ext_db\n%x container_ext_queue\n%x container_boundary\n\n/* component */\n%x component\n%x component_db\n%x component_queue\n%x component_ext\n%x component_ext_db\n%x component_ext_queue\n\n/* Dynamic diagram */\n%x rel_index\n%x index\n\n/* Deployment diagram */\n%x node\n%x node_l\n%x node_r\n\n/* Relationship Types */\n%x rel\n%x rel_bi\n%x rel_u\n%x rel_d\n%x rel_l\n%x rel_r\n%x rel_b\n\n/* Custom tags/stereotypes */\n%x update_el_style\n%x update_rel_style\n%x update_layout_config\n\n%x attribute\n%x string\n%x string_kv\n%x string_kv_key\n%x string_kv_value\n\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n\n%%\n\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n.*direction\\s+TB[^\\n]* return 'direction_tb';\n.*direction\\s+BT[^\\n]* return 'direction_bt';\n.*direction\\s+RL[^\\n]* return 'direction_rl';\n.*direction\\s+LR[^\\n]* return 'direction_lr';\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\n\n\"title\"\\s[^#\\n;]+ return 'title';\n\"accDescription\"\\s[^#\\n;]+ return 'accDescription';\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n\n\n\\%\\%(?!\\{)*[^\\n]*(\\r?\\n?)+ /* skip comments */\n\\%\\%[^\\n]*(\\r?\\n)* c /* skip comments */\n\n\\s*(\\r?\\n)+ return 'NEWLINE';\n\\s+ /* skip whitespace */\n\"C4Context\" return 'C4_CONTEXT';\n\"C4Container\" return 'C4_CONTAINER';\n\"C4Component\" return 'C4_COMPONENT';\n\"C4Dynamic\" return 'C4_DYNAMIC';\n\"C4Deployment\" return 'C4_DEPLOYMENT';\n\n\"Person_Ext\" { this.begin(\"person_ext\"); return 'PERSON_EXT';}\n\"Person\" { this.begin(\"person\"); return 'PERSON';}\n\"SystemQueue_Ext\" { this.begin(\"system_ext_queue\"); return 'SYSTEM_EXT_QUEUE';}\n\"SystemDb_Ext\" { this.begin(\"system_ext_db\"); return 'SYSTEM_EXT_DB';}\n\"System_Ext\" { this.begin(\"system_ext\"); return 'SYSTEM_EXT';}\n\"SystemQueue\" { this.begin(\"system_queue\"); return 'SYSTEM_QUEUE';}\n\"SystemDb\" { this.begin(\"system_db\"); return 'SYSTEM_DB';}\n\"System\" { this.begin(\"system\"); return 'SYSTEM';}\n\n\"Boundary\" { this.begin(\"boundary\"); return 'BOUNDARY';}\n\"Enterprise_Boundary\" { this.begin(\"enterprise_boundary\"); return 'ENTERPRISE_BOUNDARY';}\n\"System_Boundary\" { this.begin(\"system_boundary\"); return 'SYSTEM_BOUNDARY';}\n\n\"ContainerQueue_Ext\" { this.begin(\"container_ext_queue\"); return 'CONTAINER_EXT_QUEUE';}\n\"ContainerDb_Ext\" { this.begin(\"container_ext_db\"); return 'CONTAINER_EXT_DB';}\n\"Container_Ext\" { thisLine truncated
+5
View File
@@ -0,0 +1,5 @@
import { aI as o, aJ as r } from "./mermaid-00886c59.js";
const s = (a, n) => o.lang.round(r.parse(a)[n]), e = s;
export {
e as c
};
+8
View File
@@ -0,0 +1,8 @@
import { aI as _, aJ as Color } from "./mermaid-c5809711.js";
const channel = (color, channel2) => {
return _.lang.round(Color.parse(color)[channel2]);
};
const channel$1 = channel;
export {
channel$1 as c
};
@@ -0,0 +1,97 @@
import { p as W, d as M, s as H } from "./styles-55d85316.js";
import { g as S, l as d, f as u } from "./config-e567ef17.js";
import { G as X, l as Y } from "./layout-d6d8be39.js";
import { s as l } from "./svgDraw-c034b55e.js";
import { c as Z } from "./setupGraphViewbox-a4603a92.js";
import "./utils-aa888deb.js";
import "./commonDb-4dc3d465.js";
import "./mermaidAPI-04b5c286.js";
import "./errorRenderer-a3c4bedb.js";
import "./isPlainObject-a5cb4071.js";
import "./array-2ff2c7a6.js";
import "./constant-2fe7eae5.js";
let h = {};
const g = 20, p = function(e) {
const s = Object.entries(h).find((k) => k[1].label === e);
if (s)
return s[0];
}, D = function(e) {
e.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"), e.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z"), e.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
}, $ = function(e, s, k, a) {
const f = S().class;
h = {}, d.info("Rendering diagram " + e);
const L = S().securityLevel;
let y;
L === "sandbox" && (y = u("#i" + s));
const x = L === "sandbox" ? u(y.nodes()[0].contentDocument.body) : u("body"), n = x.select(`[id='${s}']`);
D(n);
const r = new X({
multigraph: !0
});
r.setGraph({
isMultiGraph: !0
}), r.setDefaultEdgeLabel(function() {
return {};
});
const m = a.db.getClasses(), N = Object.keys(m);
for (const t of N) {
const o = m[t], i = l.drawClass(n, o, f, a);
h[i.id] = i, r.setNode(i.id, i), d.info("Org height: " + i.height);
}
a.db.getRelations().forEach(function(t) {
d.info(
"tjoho" + p(t.id1) + p(t.id2) + JSON.stringify(t)
), r.setEdge(
p(t.id1),
p(t.id2),
{
relation: t
},
t.title || "DEFAULT"
);
}), a.db.getNotes().forEach(function(t) {
d.debug(`Adding note: ${JSON.stringify(t)}`);
const o = l.drawNote(n, t, f, a);
h[o.id] = o, r.setNode(o.id, o), t.class && t.class in m && r.setEdge(
t.id,
p(t.class),
{
relation: {
id1: t.id,
id2: t.class,
relation: {
type1: "none",
type2: "none",
lineType: 10
}
}
},
"DEFAULT"
);
}), Y(r), r.nodes().forEach(function(t) {
t !== void 0 && r.node(t) !== void 0 && (d.debug("Node " + t + ": " + JSON.stringify(r.node(t))), x.select("#" + (a.db.lookUpDomId(t) || t)).attr(
"transform",
"translate(" + (r.node(t).x - r.node(t).width / 2) + "," + (r.node(t).y - r.node(t).height / 2) + " )"
));
}), r.edges().forEach(function(t) {
t !== void 0 && r.edge(t) !== void 0 && (d.debug("Edge " + t.v + " -> " + t.w + ": " + JSON.stringify(r.edge(t))), l.drawEdge(n, r.edge(t), r.edge(t).relation, f, a));
});
const c = n.node().getBBox(), E = c.width + g * 2, b = c.height + g * 2;
Z(n, b, E, f.useMaxWidth);
const w = `${c.x - g} ${c.y - g} ${E} ${b}`;
d.debug(`viewBox ${w}`), n.attr("viewBox", w);
}, B = {
draw: $
}, q = {
parser: W,
db: M,
renderer: B,
styles: H,
init: (e) => {
e.class || (e.class = {}), e.class.arrowMarkerAbsolute = e.arrowMarkerAbsolute, M.clear();
}
};
export {
q as diagram
};
//# sourceMappingURL=classDiagram-17eafd8a.js.map
@@ -0,0 +1 @@
{"version":3,"file":"classDiagram-17eafd8a.js","sources":["../src/diagrams/class/classRenderer.js","../src/diagrams/class/classDiagram.ts"],"sourcesContent":["import { select } from 'd3';\nimport { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js';\nimport * as graphlib from 'dagre-d3-es/src/graphlib/index.js';\nimport { log } from '../../logger';\nimport svgDraw from './svgDraw';\nimport { configureSvgSize } from '../../setupGraphViewbox';\nimport { getConfig } from '../../config';\n\nlet idCache = {};\nconst padding = 20;\n\n/**\n * Gets the ID with the same label as in the cache\n *\n * @param {string} label The label to look for\n * @returns {string} The resulting ID\n */\nconst getGraphId = function (label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n\n if (foundEntry) {\n return foundEntry[0];\n }\n};\n\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param {SVGSVGElement} elem The SVG element to append to\n */\nconst insertMarkers = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n *\n * @param {string} text\n * @param {string} id\n * @param {any} _version\n * @param diagObj\n */\nexport const draw = function (text, id, _version, diagObj) {\n const conf = getConfig().class;\n idCache = {};\n // diagObj.db.clear();\n // diagObj.parser.parse(text);\n\n log.info('Rendering diagram ' + text);\n\n const securityLevel = getConfig().securityLevel;\n // Handle root and Document for when rendering in sandbox mode\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n\n // Fetch the default direction, use TD if none was found\n const diagram = root.select(`[id='${id}']`);\n insertMarkers(diagram);\n\n // Layout graph, Create a new directed graph\n const g = new graphlib.Graph({\n multigraph: true,\n });\n\n // Set an object for the graph label\n g.setGraph({\n isMultiGraph: true,\n });\n\n // Default to assigning a new object as a label for each new edge.\n g.setDefaultEdgeLabel(function () {\n return {};\n });\n\n const classes = diagObj.db.getClasses();\n const keys = Object.keys(classes);\n\n for (const key of keys) {\n const classDef = classes[key];\n const node = svgDraw.drawLine truncated
+363
View File
@@ -0,0 +1,363 @@
import { p as parser, d as db, s as styles } from "./styles-991ebdfc.js";
import { line, curveBasis, select } from "d3";
import { layout } from "dagre-d3-es/src/dagre/index.js";
import * as graphlib from "dagre-d3-es/src/graphlib/index.js";
import { u as utils, l as log, x as parseGenericTypes, c as getConfig, i as configureSvgSize } from "./mermaid-f47111a7.js";
import "ts-dedent";
import "dayjs";
import "@braintree/sanitize-url";
import "dompurify";
import "khroma";
import "lodash-es/memoize.js";
import "lodash-es/merge.js";
import "stylis";
import "lodash-es/isEmpty.js";
let edgeCount = 0;
const drawEdge = function(elem, path, relation, conf, diagObj) {
const getRelationType = function(type) {
switch (type) {
case diagObj.db.relationType.AGGREGATION:
return "aggregation";
case diagObj.db.relationType.EXTENSION:
return "extension";
case diagObj.db.relationType.COMPOSITION:
return "composition";
case diagObj.db.relationType.DEPENDENCY:
return "dependency";
case diagObj.db.relationType.LOLLIPOP:
return "lollipop";
}
};
path.points = path.points.filter((p) => !Number.isNaN(p.y));
const lineData = path.points;
const lineFunction = line().x(function(d) {
return d.x;
}).y(function(d) {
return d.y;
}).curve(curveBasis);
const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "relation");
let url = "";
if (conf.arrowMarkerAbsolute) {
url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
url = url.replace(/\(/g, "\\(");
url = url.replace(/\)/g, "\\)");
}
if (relation.relation.lineType == 1) {
svgPath.attr("class", "relation dashed-line");
}
if (relation.relation.lineType == 10) {
svgPath.attr("class", "relation dotted-line");
}
if (relation.relation.type1 !== "none") {
svgPath.attr(
"marker-start",
"url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)"
);
}
if (relation.relation.type2 !== "none") {
svgPath.attr(
"marker-end",
"url(" + url + "#" + getRelationType(relation.relation.type2) + "End)"
);
}
let x, y;
const l = path.points.length;
let labelPosition = utils.calcLabelPosition(path.points);
x = labelPosition.x;
y = labelPosition.y;
let p1_card_x, p1_card_y;
let p2_card_x, p2_card_y;
if (l % 2 !== 0 && l > 1) {
let cardinality_1_point = utils.calcCardinalityPosition(
relation.relation.type1 !== "none",
path.points,
path.points[0]
);
let cardinality_2_point = utils.calcCardinalityPosition(
relation.relation.type2 !== "none",
path.points,
path.points[l - 1]
);
log.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point));
log.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point));
p1_card_x = cardinality_1_point.x;
p1_card_y = cardinality_1_point.y;
p2_card_x = cardinality_2_point.x;
p2_card_y = cardinality_2_point.y;
}
if (relation.title !== void 0) {
const g = elem.append("g").attr("class", "classLabel");
const label = g.append("text").attr("class", "label").attr("x", x).attr("y", y).attr("fill", "red").attr("text-anchor", "middle").text(relation.title);
window.label = label;
const bounds = label.node().getBBox();
g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds.x - conf.padding / 2).attr("y", bounds.y - conf.padding / 2).attr("width", bounds.width + conf.padding).attr("height", bounds.height + conf.padding);
}
log.info("Rendering relation " + JSON.stringify(relation));
if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") {
const g = elem.append("g").attr("class", "cardinality");
g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1);
}
if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") {
const g = elem.append("g").attr("class", "cardinality");
g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2);
}
edgeCount++;
};
const drawClass = function(elem, classDef, conf, diagObj) {
log.debug("Rendering class ", classDef, conf);
const id = classDef.id;
const classInfo = {
id,
label: classDef.id,
width: 0,
height: 0
};
const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id)).attr("class", "classGroup");
let title;
if (classDef.link) {
title = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
} else {
title = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
}
let isFirst = true;
classDef.annotations.forEach(function(member) {
const titleText2 = title.append("tspan").text("«" + member + "»");
if (!isFirst) {
titleText2.attr("dy", conf.textHeight);
}
isFirst = false;
});
let classTitleString = getClassTitleString(classDef);
const classTitle = title.append("tspan").text(classTitleString).attr("class", "title");
if (!isFirst) {
classTitle.attr("dy", conf.textHeight);
}
const titleHeight = title.node().getBBox().height;
let membersLine;
let membersBox;
let methodsLine;
if (classDef.members.length > 0) {
membersLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2).attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2);
const members = g.append("text").attr("x", conf.padding).attr("y", titleHeight + conf.dividerMargin + conf.textHeight).attr("fill", "white").attr("class", "classText");
isFirst = true;
classDef.members.forEach(function(member) {
addTspan(members, member, isFirst, conf);
isFirst = false;
});
membersBox = members.node().getBBox();
}
if (classDef.methods.length > 0) {
methodsLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr("y2", conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
const methods = g.append("text").attr("x", conf.padding).attr("y", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr("fill", "white").attr("class", "classText");
isFirst = true;
classDef.methods.forEach(function(method) {
addTspan(methods, method, isFirst, conf);
isFirst = false;
});
}
const classBox = g.node().getBBox();
var cssClassStr = " ";
if (classDef.cssClasses.length > 0) {
cssClassStr = cssClassStr + classDef.cssClasses.join(" ");
}
const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf.padding).attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr("class", cssClassStr);
const rectWidth = rect.node().getBBox().width;
title.node().childNodes.forEach(function(x) {
x.setAttribute("x", (rectWidth - x.getBBox().width) / 2);
});
if (classDef.tooltip) {
title.insert("title").text(classDef.tooltip);
}
if (membersLine) {
membersLine.attr("x2", rectWidth);
}
if (methodsLine) {
methodsLine.attr("x2", rectWidth);
}
classInfo.width = rectWidth;
classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
return classInfo;
};
const getClassTitleString = function(classDef) {
let classTitleString = classDef.id;
if (classDef.type) {
classTitleString += "<" + parseGenericTypes(classDef.type) + ">";
}
return classTitleString;
};
const drawNote = function(elem, note, conf, diagObj) {
log.debug("Rendering note ", note, conf);
const id = note.id;
const noteInfo = {
id,
text: note.text,
width: 0,
height: 0
};
const g = elem.append("g").attr("id", id).attr("class", "classGroup");
let text = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
const lines = JSON.parse(`"${note.text}"`).split("\n");
lines.forEach(function(line2) {
log.debug(`Adding line: ${line2}`);
text.append("tspan").text(line2).attr("class", "title").attr("dy", conf.textHeight);
});
const noteBox = g.node().getBBox();
const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf.padding).attr(
"height",
noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin
);
const rectWidth = rect.node().getBBox().width;
text.node().childNodes.forEach(function(x) {
x.setAttribute("x", (rectWidth - x.getBBox().width) / 2);
});
noteInfo.width = rectWidth;
noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin;
return noteInfo;
};
const addTspan = function(textEl, member, isFirst, conf) {
const { displayText, cssStyle } = member.getDisplayDetails();
const tSpan = textEl.append("tspan").attr("x", conf.padding).text(displayText);
if (cssStyle !== "") {
tSpan.attr("style", member.cssStyle);
}
if (!isFirst) {
tSpan.attr("dy", conf.textHeight);
}
};
const svgDraw = {
getClassTitleString,
drawClass,
drawEdge,
drawNote
};
let idCache = {};
const padding = 20;
const getGraphId = function(label) {
const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);
if (foundEntry) {
return foundEntry[0];
}
};
const insertMarkers = function(elem) {
elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
};
const draw = function(text, id, _version, diagObj) {
const conf = getConfig().class;
idCache = {};
log.info("Rendering diagram " + text);
const securityLevel = getConfig().securityLevel;
let sandboxElement;
if (securityLevel === "sandbox") {
sandboxElement = select("#i" + id);
}
const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
const diagram2 = root.select(`[id='${id}']`);
insertMarkers(diagram2);
const g = new graphlib.Graph({
multigraph: true
});
g.setGraph({
isMultiGraph: true
});
g.setDefaultEdgeLabel(function() {
return {};
});
const classes = diagObj.db.getClasses();
const keys = Object.keys(classes);
for (const key of keys) {
const classDef = classes[key];
const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj);
idCache[node.id] = node;
g.setNode(node.id, node);
log.info("Org height: " + node.height);
}
const relations = diagObj.db.getRelations();
relations.forEach(function(relation) {
log.info(
// cspell:ignore tjoho
"tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)
);
g.setEdge(
getGraphId(relation.id1),
getGraphId(relation.id2),
{
relation
},
relation.title || "DEFAULT"
);
});
const notes = diagObj.db.getNotes();
notes.forEach(function(note) {
log.debug(`Adding note: ${JSON.stringify(note)}`);
const node = svgDraw.drawNote(diagram2, note, conf, diagObj);
idCache[node.id] = node;
g.setNode(node.id, node);
if (note.class && note.class in classes) {
g.setEdge(
note.id,
getGraphId(note.class),
{
relation: {
id1: note.id,
id2: note.class,
relation: {
type1: "none",
type2: "none",
lineType: 10
}
}
},
"DEFAULT"
);
}
});
layout(g);
g.nodes().forEach(function(v) {
if (v !== void 0 && g.node(v) !== void 0) {
log.debug("Node " + v + ": " + JSON.stringify(g.node(v)));
root.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr(
"transform",
"translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )"
);
}
});
g.edges().forEach(function(e) {
if (e !== void 0 && g.edge(e) !== void 0) {
log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)));
svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj);
}
});
const svgBounds = diagram2.node().getBBox();
const width = svgBounds.width + padding * 2;
const height = svgBounds.height + padding * 2;
configureSvgSize(diagram2, height, width, conf.useMaxWidth);
const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;
log.debug(`viewBox ${vBox}`);
diagram2.attr("viewBox", vBox);
};
const renderer = {
draw
};
const diagram = {
parser,
db,
renderer,
styles,
init: (cnf) => {
if (!cnf.class) {
cnf.class = {};
}
cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
db.clear();
}
};
export {
diagram
};
+356
View File
@@ -0,0 +1,356 @@
import { p as parser, d as db, s as styles } from "./styles-d48462a7.js";
import { F as curveBasis, A as utils, l as log, G as parseGenericTypes, c as getConfig, j as d3select, k as configureSvgSize } from "./mermaid-c5809711.js";
import { G as Graph } from "./graph-af3d5df6.js";
import { l as layout } from "./layout-6685625a.js";
import { l as line } from "./line-65d70945.js";
import "./array-b7dcf730.js";
import "./path-39bad7e2.js";
let edgeCount = 0;
const drawEdge = function(elem, path, relation, conf, diagObj) {
const getRelationType = function(type) {
switch (type) {
case diagObj.db.relationType.AGGREGATION:
return "aggregation";
case diagObj.db.relationType.EXTENSION:
return "extension";
case diagObj.db.relationType.COMPOSITION:
return "composition";
case diagObj.db.relationType.DEPENDENCY:
return "dependency";
case diagObj.db.relationType.LOLLIPOP:
return "lollipop";
}
};
path.points = path.points.filter((p) => !Number.isNaN(p.y));
const lineData = path.points;
const lineFunction = line().x(function(d) {
return d.x;
}).y(function(d) {
return d.y;
}).curve(curveBasis);
const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "relation");
let url = "";
if (conf.arrowMarkerAbsolute) {
url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
url = url.replace(/\(/g, "\\(");
url = url.replace(/\)/g, "\\)");
}
if (relation.relation.lineType == 1) {
svgPath.attr("class", "relation dashed-line");
}
if (relation.relation.lineType == 10) {
svgPath.attr("class", "relation dotted-line");
}
if (relation.relation.type1 !== "none") {
svgPath.attr(
"marker-start",
"url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)"
);
}
if (relation.relation.type2 !== "none") {
svgPath.attr(
"marker-end",
"url(" + url + "#" + getRelationType(relation.relation.type2) + "End)"
);
}
let x, y;
const l = path.points.length;
let labelPosition = utils.calcLabelPosition(path.points);
x = labelPosition.x;
y = labelPosition.y;
let p1_card_x, p1_card_y;
let p2_card_x, p2_card_y;
if (l % 2 !== 0 && l > 1) {
let cardinality_1_point = utils.calcCardinalityPosition(
relation.relation.type1 !== "none",
path.points,
path.points[0]
);
let cardinality_2_point = utils.calcCardinalityPosition(
relation.relation.type2 !== "none",
path.points,
path.points[l - 1]
);
log.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point));
log.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point));
p1_card_x = cardinality_1_point.x;
p1_card_y = cardinality_1_point.y;
p2_card_x = cardinality_2_point.x;
p2_card_y = cardinality_2_point.y;
}
if (relation.title !== void 0) {
const g = elem.append("g").attr("class", "classLabel");
const label = g.append("text").attr("class", "label").attr("x", x).attr("y", y).attr("fill", "red").attr("text-anchor", "middle").text(relation.title);
window.label = label;
const bounds = label.node().getBBox();
g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds.x - conf.padding / 2).attr("y", bounds.y - conf.padding / 2).attr("width", bounds.width + conf.padding).attr("height", bounds.height + conf.padding);
}
log.info("Rendering relation " + JSON.stringify(relation));
if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") {
const g = elem.append("g").attr("class", "cardinality");
g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1);
}
if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") {
const g = elem.append("g").attr("class", "cardinality");
g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2);
}
edgeCount++;
};
const drawClass = function(elem, classDef, conf, diagObj) {
log.debug("Rendering class ", classDef, conf);
const id = classDef.id;
const classInfo = {
id,
label: classDef.id,
width: 0,
height: 0
};
const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id)).attr("class", "classGroup");
let title;
if (classDef.link) {
title = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
} else {
title = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
}
let isFirst = true;
classDef.annotations.forEach(function(member) {
const titleText2 = title.append("tspan").text("«" + member + "»");
if (!isFirst) {
titleText2.attr("dy", conf.textHeight);
}
isFirst = false;
});
let classTitleString = getClassTitleString(classDef);
const classTitle = title.append("tspan").text(classTitleString).attr("class", "title");
if (!isFirst) {
classTitle.attr("dy", conf.textHeight);
}
const titleHeight = title.node().getBBox().height;
let membersLine;
let membersBox;
let methodsLine;
if (classDef.members.length > 0) {
membersLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2).attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2);
const members = g.append("text").attr("x", conf.padding).attr("y", titleHeight + conf.dividerMargin + conf.textHeight).attr("fill", "white").attr("class", "classText");
isFirst = true;
classDef.members.forEach(function(member) {
addTspan(members, member, isFirst, conf);
isFirst = false;
});
membersBox = members.node().getBBox();
}
if (classDef.methods.length > 0) {
methodsLine = g.append("line").attr("x1", 0).attr("y1", conf.padding + titleHeight + conf.dividerMargin + membersBox.height).attr("y2", conf.padding + titleHeight + conf.dividerMargin + membersBox.height);
const methods = g.append("text").attr("x", conf.padding).attr("y", titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight).attr("fill", "white").attr("class", "classText");
isFirst = true;
classDef.methods.forEach(function(method) {
addTspan(methods, method, isFirst, conf);
isFirst = false;
});
}
const classBox = g.node().getBBox();
var cssClassStr = " ";
if (classDef.cssClasses.length > 0) {
cssClassStr = cssClassStr + classDef.cssClasses.join(" ");
}
const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf.padding).attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin).attr("class", cssClassStr);
const rectWidth = rect.node().getBBox().width;
title.node().childNodes.forEach(function(x) {
x.setAttribute("x", (rectWidth - x.getBBox().width) / 2);
});
if (classDef.tooltip) {
title.insert("title").text(classDef.tooltip);
}
if (membersLine) {
membersLine.attr("x2", rectWidth);
}
if (methodsLine) {
methodsLine.attr("x2", rectWidth);
}
classInfo.width = rectWidth;
classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;
return classInfo;
};
const getClassTitleString = function(classDef) {
let classTitleString = classDef.id;
if (classDef.type) {
classTitleString += "<" + parseGenericTypes(classDef.type) + ">";
}
return classTitleString;
};
const drawNote = function(elem, note, conf, diagObj) {
log.debug("Rendering note ", note, conf);
const id = note.id;
const noteInfo = {
id,
text: note.text,
width: 0,
height: 0
};
const g = elem.append("g").attr("id", id).attr("class", "classGroup");
let text = g.append("text").attr("y", conf.textHeight + conf.padding).attr("x", 0);
const lines = JSON.parse(`"${note.text}"`).split("\n");
lines.forEach(function(line2) {
log.debug(`Adding line: ${line2}`);
text.append("tspan").text(line2).attr("class", "title").attr("dy", conf.textHeight);
});
const noteBox = g.node().getBBox();
const rect = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf.padding).attr(
"height",
noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin
);
const rectWidth = rect.node().getBBox().width;
text.node().childNodes.forEach(function(x) {
x.setAttribute("x", (rectWidth - x.getBBox().width) / 2);
});
noteInfo.width = rectWidth;
noteInfo.height = noteBox.height + lines.length * conf.textHeight + conf.padding + 0.5 * conf.dividerMargin;
return noteInfo;
};
const addTspan = function(textEl, member, isFirst, conf) {
const { displayText, cssStyle } = member.getDisplayDetails();
const tSpan = textEl.append("tspan").attr("x", conf.padding).text(displayText);
if (cssStyle !== "") {
tSpan.attr("style", member.cssStyle);
}
if (!isFirst) {
tSpan.attr("dy", conf.textHeight);
}
};
const svgDraw = {
getClassTitleString,
drawClass,
drawEdge,
drawNote
};
let idCache = {};
const padding = 20;
const getGraphId = function(label) {
const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);
if (foundEntry) {
return foundEntry[0];
}
};
const insertMarkers = function(elem) {
elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
};
const draw = function(text, id, _version, diagObj) {
const conf = getConfig().class;
idCache = {};
log.info("Rendering diagram " + text);
const securityLevel = getConfig().securityLevel;
let sandboxElement;
if (securityLevel === "sandbox") {
sandboxElement = d3select("#i" + id);
}
const root = securityLevel === "sandbox" ? d3select(sandboxElement.nodes()[0].contentDocument.body) : d3select("body");
const diagram2 = root.select(`[id='${id}']`);
insertMarkers(diagram2);
const g = new Graph({
multigraph: true
});
g.setGraph({
isMultiGraph: true
});
g.setDefaultEdgeLabel(function() {
return {};
});
const classes = diagObj.db.getClasses();
const keys = Object.keys(classes);
for (const key of keys) {
const classDef = classes[key];
const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj);
idCache[node.id] = node;
g.setNode(node.id, node);
log.info("Org height: " + node.height);
}
const relations = diagObj.db.getRelations();
relations.forEach(function(relation) {
log.info(
// cspell:ignore tjoho
"tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)
);
g.setEdge(
getGraphId(relation.id1),
getGraphId(relation.id2),
{
relation
},
relation.title || "DEFAULT"
);
});
const notes = diagObj.db.getNotes();
notes.forEach(function(note) {
log.debug(`Adding note: ${JSON.stringify(note)}`);
const node = svgDraw.drawNote(diagram2, note, conf, diagObj);
idCache[node.id] = node;
g.setNode(node.id, node);
if (note.class && note.class in classes) {
g.setEdge(
note.id,
getGraphId(note.class),
{
relation: {
id1: note.id,
id2: note.class,
relation: {
type1: "none",
type2: "none",
lineType: 10
}
}
},
"DEFAULT"
);
}
});
layout(g);
g.nodes().forEach(function(v) {
if (v !== void 0 && g.node(v) !== void 0) {
log.debug("Node " + v + ": " + JSON.stringify(g.node(v)));
root.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr(
"transform",
"translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )"
);
}
});
g.edges().forEach(function(e) {
if (e !== void 0 && g.edge(e) !== void 0) {
log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)));
svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj);
}
});
const svgBounds = diagram2.node().getBBox();
const width = svgBounds.width + padding * 2;
const height = svgBounds.height + padding * 2;
configureSvgSize(diagram2, height, width, conf.useMaxWidth);
const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;
log.debug(`viewBox ${vBox}`);
diagram2.attr("viewBox", vBox);
};
const renderer = {
draw
};
const diagram = {
parser,
db,
renderer,
styles,
init: (cnf) => {
if (!cnf.class) {
cnf.class = {};
}
cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
db.clear();
}
};
export {
diagram
};
+143
View File
@@ -0,0 +1,143 @@
import { p as parser, d as db, s as styles } from "./styles-d6ad8edb.js";
import { g as getConfig, l as log, f as select } from "./config-b4fa35bb.js";
import { G as Graph, l as layout } from "./layout-4663fc19.js";
import { s as svgDraw } from "./svgDraw-9e97e6db.js";
import { c as configureSvgSize } from "./setupGraphViewbox-16a0ba81.js";
import "./utils-872dfc50.js";
import "./commonDb-7f40ab5a.js";
import "./mermaidAPI-6f22a815.js";
import "./errorRenderer-ebf63d74.js";
import "./isPlainObject-91dd8bc9.js";
import "./array-b7dcf730.js";
import "./constant-b644328d.js";
let idCache = {};
const padding = 20;
const getGraphId = function(label) {
const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);
if (foundEntry) {
return foundEntry[0];
}
};
const insertMarkers = function(elem) {
elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
};
const draw = function(text, id, _version, diagObj) {
const conf = getConfig().class;
idCache = {};
log.info("Rendering diagram " + text);
const securityLevel = getConfig().securityLevel;
let sandboxElement;
if (securityLevel === "sandbox") {
sandboxElement = select("#i" + id);
}
const root = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
const diagram2 = root.select(`[id='${id}']`);
insertMarkers(diagram2);
const g = new Graph({
multigraph: true
});
g.setGraph({
isMultiGraph: true
});
g.setDefaultEdgeLabel(function() {
return {};
});
const classes = diagObj.db.getClasses();
const keys = Object.keys(classes);
for (const key of keys) {
const classDef = classes[key];
const node = svgDraw.drawClass(diagram2, classDef, conf, diagObj);
idCache[node.id] = node;
g.setNode(node.id, node);
log.info("Org height: " + node.height);
}
const relations = diagObj.db.getRelations();
relations.forEach(function(relation) {
log.info(
"tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)
);
g.setEdge(
getGraphId(relation.id1),
getGraphId(relation.id2),
{
relation
},
relation.title || "DEFAULT"
);
});
const notes = diagObj.db.getNotes();
notes.forEach(function(note) {
log.debug(`Adding note: ${JSON.stringify(note)}`);
const node = svgDraw.drawNote(diagram2, note, conf, diagObj);
idCache[node.id] = node;
g.setNode(node.id, node);
if (note.class && note.class in classes) {
g.setEdge(
note.id,
getGraphId(note.class),
{
relation: {
id1: note.id,
id2: note.class,
relation: {
type1: "none",
type2: "none",
lineType: 10
}
}
},
"DEFAULT"
);
}
});
layout(g);
g.nodes().forEach(function(v) {
if (v !== void 0 && g.node(v) !== void 0) {
log.debug("Node " + v + ": " + JSON.stringify(g.node(v)));
root.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr(
"transform",
"translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )"
);
}
});
g.edges().forEach(function(e) {
if (e !== void 0 && g.edge(e) !== void 0) {
log.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)));
svgDraw.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf, diagObj);
}
});
const svgBounds = diagram2.node().getBBox();
const width = svgBounds.width + padding * 2;
const height = svgBounds.height + padding * 2;
configureSvgSize(diagram2, height, width, conf.useMaxWidth);
const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;
log.debug(`viewBox ${vBox}`);
diagram2.attr("viewBox", vBox);
};
const renderer = {
draw
};
const diagram = {
parser,
db,
renderer,
styles,
init: (cnf) => {
if (!cnf.class) {
cnf.class = {};
}
cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
db.clear();
}
};
export {
diagram
};
//# sourceMappingURL=classDiagram-3ab3550d.js.map
@@ -0,0 +1 @@
{"version":3,"file":"classDiagram-3ab3550d.js","sources":["../src/diagrams/class/classRenderer.js","../src/diagrams/class/classDiagram.ts"],"sourcesContent":["import { select } from 'd3';\nimport { layout as dagreLayout } from 'dagre-d3-es/src/dagre/index.js';\nimport * as graphlib from 'dagre-d3-es/src/graphlib/index.js';\nimport { log } from '../../logger';\nimport svgDraw from './svgDraw';\nimport { configureSvgSize } from '../../setupGraphViewbox';\nimport { getConfig } from '../../config';\n\nlet idCache = {};\nconst padding = 20;\n\n/**\n * Gets the ID with the same label as in the cache\n *\n * @param {string} label The label to look for\n * @returns {string} The resulting ID\n */\nconst getGraphId = function (label) {\n const foundEntry = Object.entries(idCache).find((entry) => entry[1].label === label);\n\n if (foundEntry) {\n return foundEntry[0];\n }\n};\n\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n *\n * @param {SVGSVGElement} elem The SVG element to append to\n */\nconst insertMarkers = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n *\n * @param {string} text\n * @param {string} id\n * @param {any} _version\n * @param diagObj\n */\nexport const draw = function (text, id, _version, diagObj) {\n const conf = getConfig().class;\n idCache = {};\n // diagObj.db.clear();\n // diagObj.parser.parse(text);\n\n log.info('Rendering diagram ' + text);\n\n const securityLevel = getConfig().securityLevel;\n // Handle root and Document for when rendering in sandbox mode\n let sandboxElement;\n if (securityLevel === 'sandbox') {\n sandboxElement = select('#i' + id);\n }\n const root =\n securityLevel === 'sandbox'\n ? select(sandboxElement.nodes()[0].contentDocument.body)\n : select('body');\n\n // Fetch the default direction, use TD if none was found\n const diagram = root.select(`[id='${id}']`);\n insertMarkers(diagram);\n\n // Layout graph, Create a new directed graph\n const g = new graphlib.Graph({\n multigraph: true,\n });\n\n // Set an object for the graph label\n g.setGraph({\n isMultiGraph: true,\n });\n\n // Default to assigning a new object as a label for each new edge.\n g.setDefaultEdgeLabel(function () {\n return {};\n });\n\n const classes = diagObj.db.getClasses();\n const keys = Object.keys(classes);\n\n for (const key of keys) {\n const classDef = classes[key];\n const node = svgDraw.drawLine truncated
Loaded 100 of 2656 files, more files were not shown because too many files have changed in this diff. Show more