From ef09bc622860441d957b68e74099ef5158bdf0f5 Mon Sep 17 00:00:00 2001 From: sidharthv96 Date: Wed, 2 Jun 2021 18:58:50 +0000 Subject: [PATCH] deploy: 3ca2075f654eb003bc2badb86f8456b4630620ca --- .eslintrc.cjs | 38 - .github/ISSUE_TEMPLATE/bug_report.md | 41 - .github/ISSUE_TEMPLATE/feature_request.md | 19 - .github/codeql/config.yml | 7 - .github/dependabot.yml | 8 - .github/pull_request_template.md | 17 - .github/workflows/codeql-analysis.yml | 68 - .github/workflows/cypress.yml | 41 - .github/workflows/deploy.yml | 57 - .github/workflows/stale.yml | 17 - .gitignore | 13 - .husky/.gitignore | 1 - .husky/pre-commit | 4 - .npmrc | 1 - .prettierignore | 6 - .prettierrc | 8 - CODE_OF_CONDUCT.md | 46 - Dockerfile | 17 - LICENSE | 21 - README.md | 58 - .../assets/pages/__layout.svelte-adbca494.css | 0 .../assets/pages/edit.svelte-05f3059c.css | 0 {docs/_app => _app}/assets/start-0826e215.css | 0 {docs/_app => _app}/assets/util-53f38408.css | 0 ...analytics-plugin-ga.browser.es-9bc8c1dc.js | 0 .../chunks/analytics.browser.es-eaddcc60.js | 0 {docs/_app => _app}/chunks/paths-45dac81d.js | 0 .../chunks/preload-helper-9f12a5fd.js | 0 .../chunks/singletons-bb9012b7.js | 0 {docs/_app => _app}/chunks/util-b71e0722.js | 0 {docs/_app => _app}/chunks/vendor-8b597521.js | 0 {docs/_app => _app}/error.svelte-690d0ef1.js | 0 .../pages/__layout.svelte-809d1245.js | 0 _app/pages/edit.svelte-7b949399.js | 1 + .../pages/index.svelte-c7dd545d.js | 0 .../pages/view.svelte-4d357761.js | 0 .../start-96e74604.js | 2 +- bin/beta-release | 21 - bin/fix-path | 6 - cypress.json | 11 - cypress/.eslintrc | 12 - cypress/fixtures/example.json | 5 - cypress/integration/actions.spec.ts | 20 - cypress/integration/diagramUpdate.spec.ts | 33 - cypress/integration/history.spec.ts | 60 - cypress/integration/loadSite.spec.ts | 32 - cypress/plugins/index.cjs | 31 - cypress/snapshots.js | 19 - cypress/support/commands.ts | 38 - cypress/support/index.js | 27 - cypress/tsconfig.json | 7 - docs/.nojekyll | 0 docs/_app/pages/edit.svelte-da6fda5c.js | 1 - {docs/view => edit}/index.html | 4 +- docs/favicon.png => favicon.png | Bin docs/icon-192.png => icon-192.png | Bin docs/icon-512.png => icon-512.png | Bin docs/index.html => index.html | 4 +- docs/manifest.json => manifest.json | 0 package.json | 68 - postcss.config.cjs | 23 - docs/robots.txt => robots.txt | 0 docs/service-worker.js => service-worker.js | 0 snapshots.js | 0 src/app.html | 63 - src/app.postcss | 14 - src/global.d.ts | 1 - src/lib/components/actions.svelte | 167 - src/lib/components/card/card.svelte | 26 - src/lib/components/card/tabs.svelte | 51 - src/lib/components/editor/editor.svelte | 76 - src/lib/components/editor/util.ts | 77 - src/lib/components/history/history.svelte | 117 - src/lib/components/history/history.ts | 60 - src/lib/components/navbar.svelte | 80 - src/lib/components/preset.svelte | 114 - src/lib/components/view.svelte | 68 - src/lib/types.d.ts | 39 - src/lib/util/error.ts | 3 - src/lib/util/notify.ts | 7 - src/lib/util/state.ts | 93 - src/lib/util/stats.ts | 49 - src/lib/util/util.ts | 21 - src/routes/__layout.svelte | 25 - src/routes/edit.svelte | 202 - src/routes/index.svelte | 17 - src/routes/manifest.json.ts | 28 - src/routes/view.svelte | 8 - static/.nojekyll | 0 static/favicon.png | Bin 16157 -> 0 bytes static/icon-192.png | Bin 15835 -> 0 bytes static/icon-512.png | Bin 79965 -> 0 bytes static/robots.txt | 3 - static/service-worker.js | 2 - svelte.config.js | 30 - tailwind.config.cjs | 25 - tsconfig.json | 38 - {docs/edit => view}/index.html | 4 +- yarn.lock | 4851 ----------------- 99 files changed, 8 insertions(+), 7264 deletions(-) delete mode 100644 .eslintrc.cjs delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 .github/codeql/config.yml delete mode 100644 .github/dependabot.yml delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/codeql-analysis.yml delete mode 100644 .github/workflows/cypress.yml delete mode 100644 .github/workflows/deploy.yml delete mode 100644 .github/workflows/stale.yml delete mode 100644 .gitignore delete mode 100644 .husky/.gitignore delete mode 100755 .husky/pre-commit delete mode 100644 .npmrc delete mode 100644 .prettierignore delete mode 100644 .prettierrc delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 Dockerfile delete mode 100644 LICENSE delete mode 100644 README.md rename {docs/_app => _app}/assets/pages/__layout.svelte-adbca494.css (100%) rename {docs/_app => _app}/assets/pages/edit.svelte-05f3059c.css (100%) rename {docs/_app => _app}/assets/start-0826e215.css (100%) rename {docs/_app => _app}/assets/util-53f38408.css (100%) rename {docs/_app => _app}/chunks/analytics-plugin-ga.browser.es-9bc8c1dc.js (100%) rename {docs/_app => _app}/chunks/analytics.browser.es-eaddcc60.js (100%) rename {docs/_app => _app}/chunks/paths-45dac81d.js (100%) rename {docs/_app => _app}/chunks/preload-helper-9f12a5fd.js (100%) rename {docs/_app => _app}/chunks/singletons-bb9012b7.js (100%) rename {docs/_app => _app}/chunks/util-b71e0722.js (100%) rename {docs/_app => _app}/chunks/vendor-8b597521.js (100%) rename {docs/_app => _app}/error.svelte-690d0ef1.js (100%) rename {docs/_app => _app}/pages/__layout.svelte-809d1245.js (100%) create mode 100644 _app/pages/edit.svelte-7b949399.js rename {docs/_app => _app}/pages/index.svelte-c7dd545d.js (100%) rename {docs/_app => _app}/pages/view.svelte-4d357761.js (100%) rename docs/_app/start-50d0be99.js => _app/start-96e74604.js (99%) delete mode 100755 bin/beta-release delete mode 100755 bin/fix-path delete mode 100644 cypress.json delete mode 100644 cypress/.eslintrc delete mode 100644 cypress/fixtures/example.json delete mode 100644 cypress/integration/actions.spec.ts delete mode 100644 cypress/integration/diagramUpdate.spec.ts delete mode 100644 cypress/integration/history.spec.ts delete mode 100644 cypress/integration/loadSite.spec.ts delete mode 100644 cypress/plugins/index.cjs delete mode 100644 cypress/snapshots.js delete mode 100644 cypress/support/commands.ts delete mode 100644 cypress/support/index.js delete mode 100644 cypress/tsconfig.json delete mode 100644 docs/.nojekyll delete mode 100644 docs/_app/pages/edit.svelte-da6fda5c.js rename {docs/view => edit}/index.html (97%) rename docs/favicon.png => favicon.png (100%) rename docs/icon-192.png => icon-192.png (100%) rename docs/icon-512.png => icon-512.png (100%) rename docs/index.html => index.html (97%) rename docs/manifest.json => manifest.json (100%) delete mode 100644 package.json delete mode 100644 postcss.config.cjs rename docs/robots.txt => robots.txt (100%) rename docs/service-worker.js => service-worker.js (100%) delete mode 100644 snapshots.js delete mode 100644 src/app.html delete mode 100644 src/app.postcss delete mode 100644 src/global.d.ts delete mode 100644 src/lib/components/actions.svelte delete mode 100644 src/lib/components/card/card.svelte delete mode 100644 src/lib/components/card/tabs.svelte delete mode 100644 src/lib/components/editor/editor.svelte delete mode 100644 src/lib/components/editor/util.ts delete mode 100644 src/lib/components/history/history.svelte delete mode 100644 src/lib/components/history/history.ts delete mode 100644 src/lib/components/navbar.svelte delete mode 100644 src/lib/components/preset.svelte delete mode 100644 src/lib/components/view.svelte delete mode 100644 src/lib/types.d.ts delete mode 100644 src/lib/util/error.ts delete mode 100644 src/lib/util/notify.ts delete mode 100644 src/lib/util/state.ts delete mode 100644 src/lib/util/stats.ts delete mode 100644 src/lib/util/util.ts delete mode 100644 src/routes/__layout.svelte delete mode 100644 src/routes/edit.svelte delete mode 100644 src/routes/index.svelte delete mode 100644 src/routes/manifest.json.ts delete mode 100644 src/routes/view.svelte delete mode 100644 static/.nojekyll delete mode 100644 static/favicon.png delete mode 100644 static/icon-192.png delete mode 100644 static/icon-512.png delete mode 100644 static/robots.txt delete mode 100644 static/service-worker.js delete mode 100644 svelte.config.js delete mode 100644 tailwind.config.cjs delete mode 100644 tsconfig.json rename {docs/edit => view}/index.html (97%) delete mode 100644 yarn.lock diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 8d839f89..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,38 +0,0 @@ -module.exports = { - root: true, - parser: '@typescript-eslint/parser', - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - // 'plugin:@typescript-eslint/recommended-requiring-type-checking', - 'prettier' - ], - plugins: ['svelte3', 'tailwindcss', '@typescript-eslint'], - ignorePatterns: ['docs/*', '*.cjs', 'snapshots.js', 'svelte.config.js', 'package.json'], - overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], - settings: { - 'svelte3/typescript': () => require('typescript') - }, - parserOptions: { - sourceType: 'module', - ecmaVersion: 2019, - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - extraFileExtensions: ['.svelte'] - }, - env: { - browser: true, - es2017: true, - node: true - }, - rules: { - '@typescript-eslint/ban-ts-comment': [ - 'error', - { - 'ts-ignore': 'allow-with-description' - } - ], - '@typescript-eslint/no-unsafe-member-access': 'warn', - '@typescript-eslint/no-unsafe-assignment': 'warn' - } -}; diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 9246b53c..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: bug -assignees: '' ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Link to Live Editor: -Steps to reproduce the behavior: - -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - -- OS: [e.g. iOS] -- Browser [e.g. chrome, safari] -- Version [e.g. 22] - -**Smartphone (please complete the following information):** - -- Device: [e.g. iPhone6] -- OS: [e.g. iOS8.1] -- Browser [e.g. stock browser, safari] -- Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 5f0a04ce..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: enhancement -assignees: '' ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/codeql/config.yml b/.github/codeql/config.yml deleted file mode 100644 index af2bab52..00000000 --- a/.github/codeql/config.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: 'Mermaid CodeQL config' - -paths: - - src -paths-ignore: - - node_modules - - '**/*.spec.js' diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 9b517748..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: 2 -updates: - - package-ecosystem: 'npm' - directory: '/' - target-branch: 'develop' - schedule: - interval: 'weekly' - day: 'friday' diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index ba659117..00000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,17 +0,0 @@ -## :bookmark_tabs: Summary - -Brief description about the content of your PR: - -Resolves # - -## :straight_ruler: Design Decisions - -Describe the way your implementation works or what design decisions you made if applicable: - -### :clipboard: Tasks - -Make sure you - -- [ ] :book: have read the [contribution guidelines](https://github.com/mermaid-js/mermaid/blob/develop/CONTRIBUTING.md) -- [ ] :computer: have added unit/e2e tests (if appropriate) -- [ ] :bookmark: targeted `master` branch diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 3e562342..00000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,68 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: 'CodeQL' - -on: - push: - branches: [master] - pull_request: - # The branches below must be a subset of the branches above - branches: [master] - schedule: - - cron: '36 1 * * 2' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - language: ['javascript'] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - config-file: ./.github/codeql/config.yml - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - # - name: Autobuild - # uses: github/codeql-action/autobuild@v1 - - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml deleted file mode 100644 index 13cf59fa..00000000 --- a/.github/workflows/cypress.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Cypress Tests - -on: - push: - pull_request: - branches: - - master - -jobs: - cypress-run: - runs-on: ubuntu-latest - container: cypress/browsers:node14.16.0-chrome90-ff88 - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - uses: actions/cache@v2 - id: yarn-and-build-cache - with: - path: | - ~/.cache/Cypress - build - node_modules - key: ${{ runner.os }}-node_modules-build-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-node_modules-build- - - # Install NPM dependencies, cache them correctly - # and run all Cypress tests - - name: Cypress run - uses: cypress-io/github-action@v2 - with: - build: yarn build - start: yarn preview - wait-on: 'http://localhost:3000' - wait-on-timeout: 120 - # record: true - headless: true - env: - CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 1a790775..00000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Deploy Live Editor -on: - push: - branches: - - master - pull_request: - branches: - - master -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/setup-node@v2 - with: - node-version: '14' - - - name: Checkout - uses: actions/checkout@v2 - - - uses: actions/cache@v2 - id: yarn-and-build-cache - with: - path: | - node_modules - key: ${{ runner.os }}-node_modules-build-deploy-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-node_modules-build-deploy- - - - name: Setup Beta - if: ${{ github.event_name == 'pull_request' }} - run: | - export BETA=true - rm -rf docs/beta/ - - - name: Cleanup build - if: ${{ github.event_name != 'pull_request' }} - run: | - rm -rf docs/_app/ - - - name: Build & Deploy - run: | - npm i -g yarn - export DEPLOY=true - echo "$GITHUB_EVENT_NAME" - yarn install - # yarn run lint - version=$(yarn version --patch --no-git-tag-version | grep "New version" | cut -d':' -f 2) - yarn build - cd bin - ./fix-path - cd .. - git config user.name github-actions - git config user.email github-actions@github.com - git pull origin gh-pages - git add . - git commit -nm "Release $version" - git push origin gh-pages diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index d9a8f32d..00000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Mark stale issues and pull requests - -on: - schedule: - - cron: '0 0 * * 4' - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v3 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - exempt-issue-labels: 'retained' - exempt-pr-labels: 'retained' - stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days' - stale-pr-message: 'This pr is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days' diff --git a/.gitignore b/.gitignore deleted file mode 100644 index edc0e07e..00000000 --- a/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -node_modules/ -coverage/ -.cache/ -build/ -yarn-error.log -.npmrc -.DS_Store -/.svelte-kit -/build -/functions -/snapshots.js -/cypress/videos -/cypress/screenshots diff --git a/.husky/.gitignore b/.husky/.gitignore deleted file mode 100644 index 31354ec1..00000000 --- a/.husky/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_ diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index d0612ad3..00000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npm run pre-commit diff --git a/.npmrc b/.npmrc deleted file mode 100644 index b6f27f13..00000000 --- a/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 1a41f98d..00000000 --- a/.prettierignore +++ /dev/null @@ -1,6 +0,0 @@ -docs/** -.svelte-kit/** -static/** -build/** -node_modules/** -snapshots.js \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index b193cb40..00000000 --- a/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "singleQuote": true, - "svelteSortOrder": "options-scripts-markup-styles", - "svelteBracketNewLine": false, - "useTabs": true, - "trailingComma": "none", - "printWidth": 100 -} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index bd507041..00000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,46 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -- Using welcoming and inclusive language -- Being respectful of differing viewpoints and experiences -- Gracefully accepting constructive criticism -- Focusing on what is best for the community -- Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -- The use of sexualized language or imagery and unwelcome sexual attention or advances -- Trolling, insulting/derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or electronic address, without explicit permission -- Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the maintainers. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index fcfaf19b..00000000 --- a/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# Two-stage docker container for mermaid-js/mermaid-live-editor -# Build : docker build -t mermaid-js/mermaid-live-editor . -# Run : docker run --name mermaid-live-editor --publish 8080:80 mermaid-js/mermaid-live-editor -# Start : docker start mermaid-live-editor -# Use webbrowser : http://localhost:8080 -# Stop : press ctrl + c -# or -# docker stop mermaid-live-editor - -FROM node:14.16.0-alpine3.13 as mermaid-live-editor-builder -COPY --chown=node:node . /home -WORKDIR /home -RUN yarn install -RUN yarn build - -FROM nginx:alpine as mermaid-live-editor-runner -COPY --from=mermaid-live-editor-builder --chown=nginx:nginx /home/docs /usr/share/nginx/html diff --git a/LICENSE b/LICENSE deleted file mode 100644 index e2d2ad4e..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 - 2021 Knut Sveidqvist - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 13b95909..00000000 --- a/README.md +++ /dev/null @@ -1,58 +0,0 @@ -[![Join our Slack!](https://img.shields.io/static/v1?message=join%20chat&color=9cf&logo=slack&label=slack)](https://join.slack.com/t/mermaid-talk/shared_invite/enQtNzc4NDIyNzk4OTAyLWVhYjQxOTI2OTg4YmE1ZmJkY2Y4MTU3ODliYmIwOTY3NDJlYjA0YjIyZTdkMDMyZTUwOGI0NjEzYmEwODcwOTE) - -# Contributors are welcome - -If you want to speed up the progress for mermaid-live-editor, join the slack channel and contact knsv. - -# mermaid-live-editor - -Edit, preview and share mermaid charts/diagrams. - -## Features - -- Edit and preview flowcharts, sequence diagrams, gantt diagrams in real time. -- Save the result as a svg -- Get a link to a viewer of the diagram so that you can share it with others. -- Get a link to edit the diagram so that someone else can tweak it and send a new link back - -## Live demo - -You can try out a live version [here](https://mermaid-js.github.io/mermaid-live-editor/). - -## Setup - -[Volta](https://volta.sh) is used for managing node and yarn versions. - -This project is set up using [Yarn](https://classic.yarnpkg.com/en/docs/getting-started). : - -``` -yarn install -``` - -or in develop branch to use the beta version of mermaid use - -``` -yarn install --update-checksums -``` - -This together with a .npmrc file: - -``` -registry=https://registry.npmjs.com/ -@mermaid-js:registry=https://npm.pkg.github.com -//npm.pkg.github.com/:_authToken="XXXXXXXXX" -``` - -## Development - -``` -yarn dev -- --open -``` - -This app is created with Svelte Kit. - -## Release - -``` -yarn release -``` diff --git a/docs/_app/assets/pages/__layout.svelte-adbca494.css b/_app/assets/pages/__layout.svelte-adbca494.css similarity index 100% rename from docs/_app/assets/pages/__layout.svelte-adbca494.css rename to _app/assets/pages/__layout.svelte-adbca494.css diff --git a/docs/_app/assets/pages/edit.svelte-05f3059c.css b/_app/assets/pages/edit.svelte-05f3059c.css similarity index 100% rename from docs/_app/assets/pages/edit.svelte-05f3059c.css rename to _app/assets/pages/edit.svelte-05f3059c.css diff --git a/docs/_app/assets/start-0826e215.css b/_app/assets/start-0826e215.css similarity index 100% rename from docs/_app/assets/start-0826e215.css rename to _app/assets/start-0826e215.css diff --git a/docs/_app/assets/util-53f38408.css b/_app/assets/util-53f38408.css similarity index 100% rename from docs/_app/assets/util-53f38408.css rename to _app/assets/util-53f38408.css diff --git a/docs/_app/chunks/analytics-plugin-ga.browser.es-9bc8c1dc.js b/_app/chunks/analytics-plugin-ga.browser.es-9bc8c1dc.js similarity index 100% rename from docs/_app/chunks/analytics-plugin-ga.browser.es-9bc8c1dc.js rename to _app/chunks/analytics-plugin-ga.browser.es-9bc8c1dc.js diff --git a/docs/_app/chunks/analytics.browser.es-eaddcc60.js b/_app/chunks/analytics.browser.es-eaddcc60.js similarity index 100% rename from docs/_app/chunks/analytics.browser.es-eaddcc60.js rename to _app/chunks/analytics.browser.es-eaddcc60.js diff --git a/docs/_app/chunks/paths-45dac81d.js b/_app/chunks/paths-45dac81d.js similarity index 100% rename from docs/_app/chunks/paths-45dac81d.js rename to _app/chunks/paths-45dac81d.js diff --git a/docs/_app/chunks/preload-helper-9f12a5fd.js b/_app/chunks/preload-helper-9f12a5fd.js similarity index 100% rename from docs/_app/chunks/preload-helper-9f12a5fd.js rename to _app/chunks/preload-helper-9f12a5fd.js diff --git a/docs/_app/chunks/singletons-bb9012b7.js b/_app/chunks/singletons-bb9012b7.js similarity index 100% rename from docs/_app/chunks/singletons-bb9012b7.js rename to _app/chunks/singletons-bb9012b7.js diff --git a/docs/_app/chunks/util-b71e0722.js b/_app/chunks/util-b71e0722.js similarity index 100% rename from docs/_app/chunks/util-b71e0722.js rename to _app/chunks/util-b71e0722.js diff --git a/docs/_app/chunks/vendor-8b597521.js b/_app/chunks/vendor-8b597521.js similarity index 100% rename from docs/_app/chunks/vendor-8b597521.js rename to _app/chunks/vendor-8b597521.js diff --git a/docs/_app/error.svelte-690d0ef1.js b/_app/error.svelte-690d0ef1.js similarity index 100% rename from docs/_app/error.svelte-690d0ef1.js rename to _app/error.svelte-690d0ef1.js diff --git a/docs/_app/pages/__layout.svelte-809d1245.js b/_app/pages/__layout.svelte-809d1245.js similarity index 100% rename from docs/_app/pages/__layout.svelte-809d1245.js rename to _app/pages/__layout.svelte-809d1245.js diff --git a/_app/pages/edit.svelte-7b949399.js b/_app/pages/edit.svelte-7b949399.js new file mode 100644 index 00000000..86229965 --- /dev/null +++ b/_app/pages/edit.svelte-7b949399.js @@ -0,0 +1 @@ +var e;import{S as t,i as a,s as n,e as s,c as i,a as o,d as r,b as l,f as c,G as h,H as d,I as u,z as f,J as m,K as g,k as p,t as v,n as $,g as w,F as b,L as x,M as y,N as E,O as k,P as I,Q as D,h as C,R as O,T,U as S,v as A,B as V,r as N,u as M,V as _,D as R,E as L,j as P,m as B,o as U,W as G,w as H,X as j,Y,Z as z,_ as J,$ as q,a0 as F,a1 as K,a2 as W,a3 as Z,C as X,a4 as Q,a5 as ee,a6 as te,l as ae,a7 as ne,a8 as se}from"../chunks/vendor-8b597521.js";import{c as ie,a as oe,u as re,g as le,V as ce,b as he,e as de,i as ue,s as fe,d as me}from"../chunks/util-b71e0722.js";import{b as ge}from"../chunks/paths-45dac81d.js";import"../chunks/preload-helper-9f12a5fd.js";function pe(e){let t;return{c(){t=s("div"),this.h()},l(e){t=i(e,"DIV",{id:!0,class:!0}),o(t).forEach(r),this.h()},h(){l(t,"id","editor"),l(t,"class","overflow-hidden")},m(a,n){c(a,t,n),e[9](t)},p:h,i:h,o:h,d(a){a&&r(t),e[9](null)}}}function ve(e,t,a){let n;d(e,ie,(e=>a(8,n=e)));var s=this&&this.__awaiter||function(e,t,a,n){return new(a||(a=Promise))((function(s,i){function o(e){try{l(n.next(e))}catch(t){i(t)}}function r(e){try{l(n.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(o,r)}l((n=n.apply(e,t||[])).next())}))};let i,o,r=null,{text:l}=t,{language:c}=t,{editorOptions:h={value:l,language:c,scrollBeyondLastLine:!1,minimap:{enabled:!1},theme:"myCoolTheme",overviewRulerLanes:0}}=t,{errorMarkers:g=[]}=t,p=l;const v=u();return f((()=>s(void 0,void 0,void 0,(function*(){var e;yield s(void 0,void 0,void 0,(function*(){let e=0;for(;e++<10;)try{return void a(6,o=monaco)}catch(t){yield new Promise((e=>setTimeout(e,500)))}alert("Loading Monaco Editor failed. Please try refreshing the page.")})),(e=o).languages.register({id:"mermaid"}),e.languages.setMonarchTokensProvider("mermaid",{typeKeywords:["graph","stateDiagram","sequenceDiagram","classDiagram","pie","erDiagram","flowchart","gantt","gitGraph","journey"],keywords:["patricipant","as"],arrows:["---","===","--\x3e","==>","->>","->"],tokenizer:{root:[[/[{}]/,"delimiter.bracket"],[/[a-z_$][\w$]*/,{cases:{"@typeKeywords":"keyword","@keywords":"keyword"}}],[/[-=>ox]+/,{cases:{"@arrows":"transition"}}],[/[[{(}]+.+?[)\]}]+/,"string"],[/".*"/,"string"]]},whitespace:[[/[ \t\r\n]+/,"white"],[/%%.*$/,"comment"]]}),e.editor.defineTheme("myCoolTheme",{base:"vs",inherit:!1,rules:[{token:"keyword",foreground:"880000",fontStyle:"bold"},{token:"custom-error",foreground:"ff0000",fontStyle:"bold"},{token:"string",foreground:"AA8500"},{token:"transition",foreground:"008800",fontStyle:"bold"},{token:"delimiter.bracket",foreground:"000000",fontStyle:"bold"}]}),e.languages.registerCompletionItemProvider("mermaid",{provideCompletionItems:()=>({suggestions:[{label:"simpleText",kind:e.languages.CompletionItemKind.Text,insertText:"simpleText"},{label:"testing",kind:e.languages.CompletionItemKind.Keyword,insertText:"testing(${1:condition})",insertTextRules:e.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"ifelse",kind:e.languages.CompletionItemKind.Snippet,insertText:["if (${1:condition}) {","\t$0","} else {","\t","}"].join("\n"),insertTextRules:e.languages.CompletionItemInsertTextRule.InsertAsSnippet,documentation:"If-Else Statement"}]})}),a(5,i=o.editor.create(r,h)),i.onDidChangeModelContent((()=>{a(1,l=i.getValue()),v("update",{text:l})}));return new ResizeObserver((e=>{i.layout({height:e[0].contentRect.height,width:e[0].contentRect.width})})).observe(r.parentElement),()=>{i.dispose()}})))),e.$$set=e=>{"text"in e&&a(1,l=e.text),"language"in e&&a(2,c=e.language),"editorOptions"in e&&a(3,h=e.editorOptions),"errorMarkers"in e&&a(4,g=e.errorMarkers)},e.$$.update=()=>{100&e.$$.dirty&&(null==o||o.editor.setModelLanguage(i.getModel(),c)),498&e.$$.dirty&&(l!==p&&(n.updateEditor&&(null==i||i.setValue(l)),a(7,p=l)),null==o||o.editor.setModelMarkers(i.getModel(),"test",g))},[r,l,c,h,g,i,o,p,n,function(e){m[e?"unshift":"push"]((()=>{r=e,a(0,r)}))}]}class $e extends t{constructor(e){super(),a(this,e,ve,pe,n,{text:1,language:2,editorOptions:3,errorMarkers:4})}}function we(e,t,a){const n=e.slice();return n[1]=t[a].title,n[2]=t[a].href,n[3]=t[a].icon,n}function be(e){let t,a,n,d,u,f=e[1]+"",m=e[3]&&function(e){let t;return{c(){t=s("i"),this.h()},l(e){t=i(e,"I",{class:!0}),o(t).forEach(r),this.h()},h(){l(t,"class",e[3])},m(e,a){c(e,t,a)},p:h,d(e){e&&r(t)}}}(e);return{c(){t=s("li"),a=s("a"),m&&m.c(),n=p(),d=v(f),u=p(),this.h()},l(e){t=i(e,"LI",{});var s=o(t);a=i(s,"A",{class:!0,target:!0,href:!0});var l=o(a);m&&m.l(l),n=$(l),d=w(l,f),l.forEach(r),u=$(s),s.forEach(r),this.h()},h(){l(a,"class","nav-btn"),l(a,"target","_blank"),l(a,"href",e[2])},m(e,s){c(e,t,s),b(t,a),m&&m.m(a,null),b(a,n),b(a,d),b(t,u)},p(e,t){e[3]&&m.p(e,t)},d(e){e&&r(t),m&&m.d()}}}function xe(e){let t,a,n,d,u,f,m,E,k,I,D,C,O,T,S,A,V,N,M,_,R=e[0],L=[];for(let s=0;s{a||(a=T(t,S,{},!0)),a.run(1)})),n=!0)},o(e){a||(a=T(t,S,{},!1)),a.run(0),n=!1},d(e){e&&r(t),y(d,e),e&&a&&a.end()}}}function Ce(e){let t,a,n,h,d,u,f,m,g,x,y=e[10].title+"";function E(){return e[7](e[10])}return{c(){t=s("li"),a=s("div"),n=s("i"),d=p(),u=v(y),m=p(),this.h()},l(e){t=i(e,"LI",{class:!0});var s=o(t);a=i(s,"DIV",{class:!0});var l=o(a);n=i(l,"I",{class:!0}),o(n).forEach(r),d=$(l),u=w(l,y),l.forEach(r),m=$(s),s.forEach(r),this.h()},h(){l(n,"class",h=k(e[10].icon)+" svelte-1qkpo3v"),l(a,"class",f="text cursor-pointer font-semibold min-w-16 w-auto px-2 py-1 -mb-4 rounded-t block leading-normal "+(e[4]===e[10].id?"text-indigo-500 bg-white border-white":"text-white bg-indigo-500 border-indigo-500 hover:bg-indigo-600")),l(t,"class","mr-2 last:mr-0 w-28 h-6 flex-auto text-center")},m(e,s){c(e,t,s),b(t,a),b(a,n),b(a,d),b(a,u),b(t,m),g||(x=I(a,"click",D(E)),g=!0)},p(t,s){e=t,4&s&&h!==(h=k(e[10].icon)+" svelte-1qkpo3v")&&l(n,"class",h),4&s&&y!==(y=e[10].title+"")&&C(u,y),20&s&&f!==(f="text cursor-pointer font-semibold min-w-16 w-auto px-2 py-1 -mb-4 rounded-t block leading-normal "+(e[4]===e[10].id?"text-indigo-500 bg-white border-white":"text-white bg-indigo-500 border-indigo-500 hover:bg-indigo-600"))&&l(a,"class",f)},d(e){e&&r(t),g=!1,x()}}}function Oe(e){let t,a,n,h,d,u,f,m,g=e[1]&&Ie(e),x=e[0]&&e[2]&&De(e);return{c(){t=s("div"),a=s("span"),g&&g.c(),n=p(),h=v(e[3]),d=p(),x&&x.c(),this.h()},l(s){t=i(s,"DIV",{class:!0});var l=o(t);a=i(l,"SPAN",{class:!0});var c=o(a);g&&g.l(c),n=$(c),h=w(c,e[3]),c.forEach(r),d=$(l),x&&x.l(l),l.forEach(r),this.h()},h(){l(a,"class","text-white mr-2 font-semibold"),l(t,"class","flex cursor-default")},m(s,i){c(s,t,i),b(t,a),g&&g.m(a,null),b(a,n),b(a,h),b(t,d),x&&x.m(t,null),u=!0,f||(m=I(a,"click",D(e[6])),f=!0)},p(e,[s]){e[1]?g?g.p(e,s):(g=Ie(e),g.c(),g.m(a,n)):g&&(g.d(1),g=null),(!u||8&s)&&C(h,e[3]),e[0]&&e[2]?x?(x.p(e,s),5&s&&A(x,1)):(x=De(e),x.c(),A(x,1),x.m(t,null)):x&&(V(),N(x,1,1,(()=>{x=null})),M())},i(e){u||(A(x),u=!0)},o(e){N(x),u=!1},d(e){e&&r(t),g&&g.d(),x&&x.d(),f=!1,m()}}}function Te(e,t,a){var n;let{isCloseable:s=!0}=t,{tabs:i=[]}=t,{title:o}=t,{isOpen:r=!1}=t,l=null===(n=i[0])||void 0===n?void 0:n.id;const c=u(),h=e=>{a(4,l=e.id),c("select",e)};return e.$$set=e=>{"isCloseable"in e&&a(1,s=e.isCloseable),"tabs"in e&&a(2,i=e.tabs),"title"in e&&a(3,o=e.title),"isOpen"in e&&a(0,r=e.isOpen)},[r,s,i,o,l,h,()=>a(0,r=!r),e=>h(e)]}class Se extends t{constructor(e){super(),a(this,e,Te,Oe,n,{isCloseable:1,tabs:2,title:3,isOpen:0})}}const Ae=e=>({}),Ve=e=>({});function Ne(e){let t,a,n;const h=e[5].default,d=R(h,e,e[4],null);return{c(){t=s("div"),d&&d.c(),this.h()},l(e){t=i(e,"DIV",{class:!0});var a=o(t);d&&d.l(a),a.forEach(r),this.h()},h(){l(t,"class","flex-grow overflow-auto")},m(e,a){c(e,t,a),d&&d.m(t,null),n=!0},p(e,t){d&&d.p&&(!n||16&t)&&L(d,h,e,e[4],t,null,null)},i(e){n||(A(d,e),O((()=>{a||(a=T(t,j,{},!0)),a.run(1)})),n=!0)},o(e){N(d,e),a||(a=T(t,j,{},!1)),a.run(0),n=!1},d(e){e&&r(t),d&&d.d(e),e&&a&&a.end()}}}function Me(e){let t,a,n,h,d,u,f,g,v,w,x;function y(t){e[6](t)}let E={tabs:e[2],title:e[3],isCloseable:e[1]};void 0!==e[0]&&(E.isOpen=e[0]),h=new Se({props:E}),m.push((()=>_(h,"isOpen",y))),h.$on("select",e[7]);const k=e[5].actions,D=R(k,e,e[4],Ve);let C=e[0]&&Ne(e);return{c(){t=s("div"),a=s("div"),n=s("div"),P(h.$$.fragment),u=p(),f=s("div"),D&&D.c(),g=p(),C&&C.c(),this.h()},l(e){t=i(e,"DIV",{class:!0});var s=o(t);a=i(s,"DIV",{class:!0});var l=o(a);n=i(l,"DIV",{class:!0});var c=o(n);B(h.$$.fragment,c),u=$(c),f=i(c,"DIV",{class:!0});var d=o(f);D&&D.l(d),d.forEach(r),c.forEach(r),l.forEach(r),g=$(s),C&&C.l(s),s.forEach(r),this.h()},h(){l(f,"class","flex gap-x-4 items-center text-white"),l(n,"class","flex justify-between"),l(a,"class","bg-indigo-400 border-gray-400 p-2 flex-none"),l(t,"class","bg-white rounded overflow-hidden shadow m-2 flex-grow flex flex-col")},m(s,i){c(s,t,i),b(t,a),b(a,n),U(h,n,null),b(n,u),b(n,f),D&&D.m(f,null),b(t,g),C&&C.m(t,null),v=!0,w||(x=I(a,"click",e[8]),w=!0)},p(e,[a]){const n={};4&a&&(n.tabs=e[2]),8&a&&(n.title=e[3]),2&a&&(n.isCloseable=e[1]),!d&&1&a&&(d=!0,n.isOpen=e[0],G((()=>d=!1))),h.$set(n),D&&D.p&&(!v||16&a)&&L(D,k,e,e[4],a,Ae,Ve),e[0]?C?(C.p(e,a),1&a&&A(C,1)):(C=Ne(e),C.c(),A(C,1),C.m(t,null)):C&&(V(),N(C,1,1,(()=>{C=null})),M())},i(e){v||(A(h.$$.fragment,e),A(D,e),A(C),v=!0)},o(e){N(h.$$.fragment,e),N(D,e),N(C),v=!1},d(e){e&&r(t),H(h),D&&D.d(e),C&&C.d(),w=!1,x()}}}function _e(e,t,a){let{$$slots:n={},$$scope:s}=t,{isCloseable:i=!0}=t,{isOpen:o=!0}=t,{tabs:r=[]}=t,{title:l}=t;return e.$$set=e=>{"isCloseable"in e&&a(1,i=e.isCloseable),"isOpen"in e&&a(0,o=e.isOpen),"tabs"in e&&a(2,r=e.tabs),"title"in e&&a(3,l=e.title),"$$scope"in e&&a(4,s=e.$$scope)},e.$$.update=()=>{3&e.$$.dirty&&a(0,o=!i||o)},[o,i,r,l,s,n,function(e){o=e,a(0,o),a(1,i)},function(t){Y(e,t)},()=>a(0,o=!o)]}class Re extends t{constructor(e){super(),a(this,e,_e,Me,n,{isCloseable:1,isOpen:0,tabs:2,title:3})}}function Le(e,t,a){const n=e.slice();return n[3]=t[a],n}function Pe(e){let t,a,n,h,d=e[3]+"";function u(){return e[2](e[3])}return{c(){t=s("button"),a=v(d),this.h()},l(e){t=i(e,"BUTTON",{class:!0});var n=o(t);a=w(n,d),n.forEach(r),this.h()},h(){l(t,"class","action-btn")},m(e,s){c(e,t,s),b(t,a),n||(h=I(t,"click",u),n=!0)},p(t,a){e=t},d(e){e&&r(t),n=!1,h()}}}function Be(e){let t,a=Object.keys(e[0]),n=[];for(let s=0;s>+John: Hello John, how are you?\n Alice->>+John: John, can you hear me?\n John--\x3e>-Alice: Hi Alice, I can hear you!\n John--\x3e>-Alice: I feel great!\n ","Class Diagram":"classDiagram\n Animal <|-- Duck\n Animal <|-- Fish\n Animal <|-- Zebra\n Animal : +int age\n Animal : +String gender\n Animal: +isMammal()\n Animal: +mate()\n class Duck{\n +String beakColor\n +swim()\n +quack()\n }\n class Fish{\n -int sizeInFeet\n -canEat()\n }\n class Zebra{\n +bool is_wild\n +run()\n }\n ","State Diagram":"stateDiagram-v2\n [*] --\x3e Still\n Still --\x3e [*]\n Still --\x3e Moving\n Moving --\x3e Still\n Moving --\x3e Crash\n Crash --\x3e [*]\n ","Gantt Chart":"gantt\n title A Gantt Diagram\n dateFormat YYYY-MM-DD\n section Section\n A task :a1, 2014-01-01, 30d\n Another task :after a1 , 20d\n section Another\n Task in sec :2014-01-12 , 12d\n another task : 24d\n ","Pie Chart":'pie title Pets adopted by volunteers\n "Dogs" : 386\n "Cats" : 85\n "Rats" : 15\n ',"ER Diagram":'erDiagram\n CUSTOMER }|..|{ DELIVERY-ADDRESS : has\n CUSTOMER ||--o{ ORDER : places\n CUSTOMER ||--o{ INVOICE : "liable for"\n DELIVERY-ADDRESS ||--o{ ORDER : receives\n INVOICE ||--|{ ORDER : covers\n ORDER ||--|{ ORDER-ITEM : includes\n PRODUCT-CATEGORY ||--|{ PRODUCT : contains\n PRODUCT ||--o{ ORDER-ITEM : "ordered in"\n ',"Git Graph":'gitGraph:\noptions\n{\n "nodeSpacing": 150,\n "nodeRadius": 10\n}\nend\ncommit\nbranch newbranch\ncheckout newbranch\ncommit\ncommit\ncheckout master\ncommit\ncommit\nmerge newbranch\n\n ',"User Journey":" journey\n title My working day\n section Go to work\n Make tea: 5: Me\n Go upstairs: 3: Me\n Do work: 1: Me, Cat\n section Go home\n Go downstairs: 5: Me\n Sit down: 3: Me\n "},a=e=>{re(t[e],!0,!0)};return[t,a,e=>a(e)]}class He extends t{constructor(e){super(),a(this,e,Ge,Ue,n,{})}}function je(e){let t,a,n;return{c(){t=s("input"),this.h()},l(e){t=i(e,"INPUT",{id:!0,type:!0,min:!0,max:!0}),this.h()},h(){l(t,"id","height"),l(t,"type","number"),l(t,"min","3"),l(t,"max","10000")},m(s,i){c(s,t,i),J(t,e[4]),a||(n=I(t,"input",e[14]),a=!0)},p(e,a){16&a&&q(t.value)!==e[4]&&J(t,e[4])},d(e){e&&r(t),a=!1,n()}}}function Ye(e){let t,a,n,d,u,f,m,g,x,y,E,k,D,C,O,T,S,A,V,N,M,_,R,L,P,B,U,G,H,j,Y,z,J,q,K,W,Z,X,Q,ee,te,ae,ne,se,ie,oe=e[5](),re=oe&&function(e){let t,a,n,d,u;return{c(){t=s("button"),a=s("i"),n=v(" Copy Image to clipboard"),this.h()},l(e){t=i(e,"BUTTON",{class:!0});var s=o(t);a=i(s,"I",{class:!0}),o(a).forEach(r),n=w(s," Copy Image to clipboard"),s.forEach(r),this.h()},h(){l(a,"class","far fa-copy"),l(t,"class","action-btn w-full")},m(s,i){c(s,t,i),b(t,a),b(t,n),d||(u=I(t,"click",e[6]),d=!0)},p:h,d(e){e&&r(t),d=!1,u()}}}(e),le="auto"!==e[3]&&je(e);return{c(){t=s("div"),re&&re.c(),a=p(),n=s("button"),d=s("i"),u=v(" PNG"),f=p(),m=s("button"),g=s("i"),x=v(" SVG"),y=p(),E=s("button"),k=s("a"),D=s("i"),C=v(" PNG"),O=p(),T=s("button"),S=s("a"),A=s("i"),V=v(" SVG"),N=p(),M=s("div"),_=v("PNG size\n\t\t\t"),R=s("input"),L=p(),P=s("label"),B=v("Auto"),U=p(),G=s("input"),H=p(),j=s("label"),Y=v("Width"),z=p(),J=s("input"),q=p(),K=s("label"),W=v("Height"),Z=p(),le&&le.c(),X=p(),Q=s("div"),ee=s("label"),te=v("Copy Markdown"),ae=p(),ne=s("input"),this.h()},l(e){t=i(e,"DIV",{class:!0});var s=o(t);re&&re.l(s),a=$(s),n=i(s,"BUTTON",{class:!0});var l=o(n);d=i(l,"I",{class:!0}),o(d).forEach(r),u=w(l," PNG"),l.forEach(r),f=$(s),m=i(s,"BUTTON",{class:!0});var c=o(m);g=i(c,"I",{class:!0}),o(g).forEach(r),x=w(c," SVG"),c.forEach(r),y=$(s),E=i(s,"BUTTON",{class:!0});var h=o(E);k=i(h,"A",{target:!0,href:!0});var p=o(k);D=i(p,"I",{class:!0}),o(D).forEach(r),C=w(p," PNG"),p.forEach(r),h.forEach(r),O=$(s),T=i(s,"BUTTON",{class:!0});var v=o(T);S=i(v,"A",{target:!0,href:!0});var b=o(S);A=i(b,"I",{class:!0}),o(A).forEach(r),V=w(b," SVG"),b.forEach(r),v.forEach(r),N=$(s),M=i(s,"DIV",{class:!0});var I=o(M);_=w(I,"PNG size\n\t\t\t"),R=i(I,"INPUT",{type:!0,value:!0,id:!0}),L=$(I),P=i(I,"LABEL",{for:!0});var F=o(P);B=w(F,"Auto"),F.forEach(r),U=$(I),G=i(I,"INPUT",{type:!0,value:!0,id:!0}),H=$(I),j=i(I,"LABEL",{for:!0});var se=o(j);Y=w(se,"Width"),se.forEach(r),z=$(I),J=i(I,"INPUT",{type:!0,value:!0,id:!0}),q=$(I),K=i(I,"LABEL",{for:!0});var ie=o(K);W=w(ie,"Height"),ie.forEach(r),Z=$(I),le&&le.l(I),I.forEach(r),X=$(s),Q=i(s,"DIV",{class:!0});var oe=o(Q);ee=i(oe,"LABEL",{for:!0});var ce=o(ee);te=w(ce,"Copy Markdown"),ce.forEach(r),ae=$(oe),ne=i(oe,"INPUT",{class:!0,id:!0,type:!0,value:!0}),oe.forEach(r),s.forEach(r),this.h()},h(){l(d,"class","fas fa-download"),l(n,"class","action-btn flex-auto"),l(g,"class","fas fa-download"),l(m,"class","action-btn flex-auto"),l(D,"class","fas fa-external-link-alt"),l(k,"target","_blank"),l(k,"href",e[0]),l(E,"class","action-btn flex-auto"),l(A,"class","fas fa-external-link-alt"),l(S,"target","_blank"),l(S,"href",e[1]),l(T,"class","action-btn flex-auto"),l(R,"type","radio"),R.__value="auto",R.value=R.__value,l(R,"id","autosize"),e[11][0].push(R),l(P,"for","autosize"),l(G,"type","radio"),G.__value="width",G.value=G.__value,l(G,"id","width-active"),e[11][0].push(G),l(j,"for","width"),l(J,"type","radio"),J.__value="height",J.value=J.__value,l(J,"id","height-active"),e[11][0].push(J),l(K,"for","height"),l(M,"class","flex gap-2 items-center"),l(ee,"for","markdown"),l(ne,"class","flex-1"),l(ne,"id","markdown"),l(ne,"type","text"),ne.value=e[2],l(Q,"class","w-full flex gap-2 items-center"),l(t,"class","flex flex-wrap gap-2 m-2")},m(s,i){c(s,t,i),re&&re.m(t,null),b(t,a),b(t,n),b(n,d),b(n,u),b(t,f),b(t,m),b(m,g),b(m,x),b(t,y),b(t,E),b(E,k),b(k,D),b(k,C),b(t,O),b(t,T),b(T,S),b(S,A),b(S,V),b(t,N),b(t,M),b(M,_),b(M,R),R.checked=R.__value===e[3],b(M,L),b(M,P),b(P,B),b(M,U),b(M,G),G.checked=G.__value===e[3],b(M,H),b(M,j),b(j,Y),b(M,z),b(M,J),J.checked=J.__value===e[3],b(M,q),b(M,K),b(K,W),b(M,Z),le&&le.m(M,null),b(t,X),b(t,Q),b(Q,ee),b(ee,te),b(Q,ae),b(Q,ne),se||(ie=[I(n,"click",e[7]),I(m,"click",e[8]),I(R,"change",e[10]),I(G,"change",e[12]),I(J,"change",e[13]),I(ne,"click",e[9])],se=!0)},p(e,t){oe&&re.p(e,t),1&t&&l(k,"href",e[0]),2&t&&l(S,"href",e[1]),8&t&&(R.checked=R.__value===e[3]),8&t&&(G.checked=G.__value===e[3]),8&t&&(J.checked=J.__value===e[3]),"auto"!==e[3]?le?le.p(e,t):(le=je(e),le.c(),le.m(M,null)):le&&(le.d(1),le=null),4&t&&ne.value!==e[2]&&(ne.value=e[2])},d(a){a&&r(t),re&&re.d(),e[11][0].splice(e[11][0].indexOf(R),1),e[11][0].splice(e[11][0].indexOf(G),1),e[11][0].splice(e[11][0].indexOf(J),1),le&&le.d(),se=!1,F(ie)}}}function ze(e){let t,a;return t=new Re({props:{title:"Actions",isOpen:!1,$$slots:{default:[Ye]},$$scope:{ctx:e}}}),{c(){P(t.$$.fragment)},l(e){B(t.$$.fragment,e)},m(e,n){U(t,e,n),a=!0},p(e,[a]){const n={};1048607&a&&(n.$$scope={dirty:a,ctx:e}),t.$set(n)},i(e){a||(A(t.$$.fragment,e),a=!0)},o(e){N(t.$$.fragment,e),a=!1},d(e){H(t,e)}}}function Je(e,t,a){const n=(e,t,a)=>{null==e||e.setAttribute("height",`${a}px`),null==e||e.setAttribute("width",`${t}px`),e||(e=document.querySelector("#container svg"));const n=e.outerHTML.replaceAll("
","
");return z(n)},s=(e,t)=>{const a=document.createElement("canvas"),s=document.querySelector("#container svg"),i=s.getBoundingClientRect();if(a.width=i.width,a.height=i.height,"width"===d){const e=i.height/i.width;a.width=u,a.height=u*e}else if("height"===d){const e=i.width/i.height;a.width=u*e,a.height=u}const o=a.getContext("2d");o.fillStyle="white",o.fillRect(0,0,a.width,a.height);const r=new Image;r.onload=t(o,r),r.src=`data:image/svg+xml;base64,${n(s,a.width,a.height)}`,e.stopPropagation(),e.preventDefault()},i=(e,t)=>{const a=document.createElement("a");a.download=e,a.href=t,a.click(),a.remove()},o=(e,t)=>()=>{const{canvas:a}=e;e.drawImage(t,0,0,a.width,a.height),i(`mermaid-diagram-${K().format("YYYYMMDDHHmmss")}.png`,a.toDataURL("image/png").replace("image/png","image/octet-stream"))},r=(e,t)=>()=>{const{canvas:a}=e;e.drawImage(t,0,0,a.width,a.height),a.toBlob((e=>{try{navigator.clipboard.write([new ClipboardItem({[e.type]:e})])}catch(t){console.error(t)}}))};let l,c,h,d="auto",u=1080;ie.subscribe((e=>{const t=JSON.parse(JSON.stringify(e));"string"==typeof t.mermaid&&(t.mermaid=JSON.parse(t.mermaid));const n=z(JSON.stringify(t),!0);a(0,l=`https://mermaid.ink/img/${n}`),a(1,c=`https://mermaid.ink/svg/${n}`),a(2,h=`[![](${l})](${window.location.protocol}//${window.location.host}${window.location.pathname}#${window.location.hash})`)}));return[l,c,h,d,u,()=>Object.prototype.hasOwnProperty.call(window,"ClipboardItem"),e=>{s(e,r)},e=>{s(e,o)},()=>{i(`mermaid-diagram-${K().format("YYYYMMDDHHmmss")}.svg`,`data:image/svg+xml;base64,${n()}`)},e=>{e.target.select(),document.execCommand("Copy")},function(){d=this.__value,a(3,d)},[[]],function(){d=this.__value,a(3,d)},function(){d=this.__value,a(3,d)},function(){u=q(this.value),a(4,u)}]}class qe extends t{constructor(e){super(),a(this,e,Je,ze,n,{})}}const Fe=W(X(!0),Z(),"autoHistoryMode"),Ke=W(X([]),Z(),"autoHistoryStore"),We=W(X([]),Z(),"manualHistoryStore"),Ze=Q([Fe,Ke,We],(([e,t,a],n)=>{n(e?t:a)}));function Xe(e,t,a){const n=e.slice();return n[14]=t[a].state,n[15]=t[a].time,n[16]=t[a].name,n}function Qe(e){let t,a,n,d,u,f;return{c(){t=s("div"),a=v("No items in History"),n=s("br"),d=v("\n\t\t\t\tClick the Save button to save current state and restore it later."),u=s("br"),f=v("\n\t\t\t\tTimeline will automatically be saved every minute."),this.h()},l(e){t=i(e,"DIV",{class:!0});var s=o(t);a=w(s,"No items in History"),n=i(s,"BR",{}),d=w(s,"\n\t\t\t\tClick the Save button to save current state and restore it later."),u=i(s,"BR",{}),f=w(s,"\n\t\t\t\tTimeline will automatically be saved every minute."),s.forEach(r),this.h()},h(){l(t,"class","m-2 text-gray-600")},m(e,s){c(e,t,s),b(t,a),b(t,n),b(t,d),b(t,u),b(t,f)},p:h,d(e){e&&r(t)}}}function et(e){let t,a=e[1],n=[];for(let s=0;s0?et:Qe}let n=a(e),h=n(e);return{c(){t=s("ul"),h.c(),this.h()},l(e){t=i(e,"UL",{class:!0,id:!0});var a=o(t);h.l(a),a.forEach(r),this.h()},h(){l(t,"class","p-2 space-y-2 overflow-auto h-56"),l(t,"id","historyList")},m(e,a){c(e,t,a),h.m(t,null)},p(e,s){n===(n=a(e))&&h?h.p(e,s):(h.d(1),h=n(e),h&&(h.c(),h.m(t,null)))},d(e){e&&r(t),h.d()}}}function nt(e){let t,a,n,d,u,f,m,g;return{c(){t=s("div"),a=s("button"),n=s("i"),d=p(),u=s("button"),f=s("i"),this.h()},l(e){t=i(e,"DIV",{slot:!0});var s=o(t);a=i(s,"BUTTON",{id:!0,class:!0,title:!0});var l=o(a);n=i(l,"I",{class:!0}),o(n).forEach(r),l.forEach(r),d=$(s),u=i(s,"BUTTON",{id:!0,class:!0,title:!0});var c=o(u);f=i(c,"I",{class:!0}),o(f).forEach(r),c.forEach(r),s.forEach(r),this.h()},h(){l(n,"class","far fa-save"),l(a,"id","saveHistory"),l(a,"class","btn"),l(a,"title","Save current state"),l(f,"class","fas fa-trash-alt"),l(u,"id","clearHistory"),l(u,"class","btn text-red-400"),l(u,"title","Delete all saved states"),l(t,"slot","actions")},m(s,i){c(s,t,i),b(t,a),b(a,n),b(t,d),b(t,u),b(u,f),m||(g=[I(a,"click",D(e[8])),I(u,"click",D(e[9]))],m=!0)},p:h,d(e){e&&r(t),m=!1,F(g)}}}function st(e){let t,a,n;function s(t){e[12](t)}let i={tabs:e[3],title:"History",$$slots:{actions:[nt],default:[at]},$$scope:{ctx:e}};return void 0!==e[0]&&(i.isOpen=e[0]),t=new Re({props:i}),m.push((()=>_(t,"isOpen",s))),t.$on("select",e[2]),{c(){P(t.$$.fragment)},l(e){B(t.$$.fragment,e)},m(e,a){U(t,e,a),n=!0},p(e,[n]){const s={};524290&n&&(s.$$scope={dirty:n,ctx:e}),!a&&1&n&&(a=!0,s.isOpen=e[0],G((()=>a=!1))),t.$set(s)},i(e){n||(A(t.$$.fragment,e),n=!0)},o(e){N(t.$$.fragment,e),n=!1},d(e){H(t,e)}}}function it(e,t,a){let n,s;d(e,ie,(e=>a(13,n=e))),d(e,Ze,(e=>a(1,s=e)));const i=(e=!1)=>{const t=le();var a;(e=>{const t=te(e?Ke:We);return t.length>0?JSON.stringify(t[0].state):""})(e)!==t?((a={state:n,time:Date.now(),auto:e}).name=ee(2),a.auto?Ke.update((e=>(30===e.length&&e.pop(),[a,...e]))):We.update((e=>[a,...e]))):e||alert("State already saved.")},o=e=>{var t;(e||confirm("Clear all saved items?"))&&(t=e,(te(Fe)?Ke:We).update((e=>e.filter((e=>t&&e.time!=t)))))},r=e=>{ie.set(Object.assign(Object.assign({},e),{updateEditor:!0,updateDiagram:!0}))};f((()=>{Fe.set(!1),setInterval((()=>{i(!0)}),6e4)}));let l=!0;return[l,s,e=>{Fe.set("timeline"===e.detail.id)},[{id:"saved",title:"Saved",icon:"far fa-bookmark"},{id:"timeline",title:"Timeline",icon:"fas fa-history"}],i,o,r,e=>{const t=new Date(e);return`${new Date(t).toLocaleString()} (${K(t).fromNow()})`},()=>i(),()=>o(),e=>r(e),e=>o(e),function(e){l=e,a(0,l)}]}class ot extends t{constructor(e){super(),a(this,e,it,st,n,{})}}function rt(e){let t,a,n;function s(t){e[10](t)}let i={language:e[2],errorMarkers:e[3]};return void 0!==e[1]&&(i.text=e[1]),t=new $e({props:i}),m.push((()=>_(t,"text",s))),t.$on("update",e[6]),{c(){P(t.$$.fragment)},l(e){B(t.$$.fragment,e)},m(e,a){U(t,e,a),n=!0},p(e,n){const s={};4&n&&(s.language=e[2]),8&n&&(s.errorMarkers=e[3]),!a&&2&n&&(a=!0,s.text=e[1],G((()=>a=!1))),t.$set(s)},i(e){n||(A(t.$$.fragment,e),n=!0)},o(e){N(t.$$.fragment,e),n=!1},d(e){H(t,e)}}}function lt(e){let t,a,n,d;return{c(){t=s("button"),a=s("i"),this.h()},l(e){t=i(e,"BUTTON",{class:!0,title:!0,"data-cy":!0});var n=o(t);a=i(n,"I",{class:!0}),o(a).forEach(r),n.forEach(r),this.h()},h(){l(a,"class","fas fa-sync"),l(t,"class","bg-indigo-500 hover:bg-indigo-700 rounded px-4 mx-2"),l(t,"title","Sync Diagram"),l(t,"data-cy","sync")},m(e,s){c(e,t,s),b(t,a),n||(d=I(t,"click",fe),n=!0)},p:h,d(e){e&&r(t),n=!1,d()}}}function ct(e){let t,a,n,h,d,u,f,m=!e[0].autoSync&<();return{c(){t=s("div"),m&&m.c(),a=p(),n=s("label"),h=s("input"),d=v("\n\t\t\t\t\t\tAuto sync"),this.h()},l(e){t=i(e,"DIV",{slot:!0});var s=o(t);m&&m.l(s),a=$(s),n=i(s,"LABEL",{for:!0,style:!0});var l=o(n);h=i(l,"INPUT",{type:!0,id:!0}),d=w(l,"\n\t\t\t\t\t\tAuto sync"),l.forEach(r),s.forEach(r),this.h()},h(){l(h,"type","checkbox"),l(h,"id","autoSync"),l(n,"for","autoSync"),ne(n,"white-space","nowrap"),ne(n,"overflow","hidden"),ne(n,"text-overflow","ellipsis"),l(t,"slot","actions")},m(s,i){c(s,t,i),m&&m.m(t,null),b(t,a),b(t,n),b(n,h),h.checked=e[0].autoSync,b(n,d),u||(f=I(h,"change",e[9]),u=!0)},p(e,n){e[0].autoSync?m&&(m.d(1),m=null):m?m.p(e,n):(m=lt(),m.c(),m.m(t,a)),1&n&&(h.checked=e[0].autoSync)},d(e){e&&r(t),m&&m.d(),u=!1,f()}}}function ht(e){let t,a,n;return a=new ce({}),{c(){t=s("div"),P(a.$$.fragment),this.h()},l(e){t=i(e,"DIV",{class:!0});var n=o(t);B(a.$$.fragment,n),n.forEach(r),this.h()},h(){l(t,"class","flex-1 overflow-auto")},m(e,s){c(e,t,s),U(a,t,null),n=!0},i(e){n||(A(a.$$.fragment,e),n=!0)},o(e){N(a.$$.fragment,e),n=!1},d(e){e&&r(t),H(a)}}}function dt(e){let t,a,n,d,u;return{c(){t=s("button"),a=s("i"),n=v(" View"),this.h()},l(e){t=i(e,"BUTTON",{slot:!0,class:!0,title:!0});var s=o(t);a=i(s,"I",{class:!0}),o(a).forEach(r),n=w(s," View"),s.forEach(r),this.h()},h(){l(a,"class","far fa-eye"),l(t,"slot","actions"),l(t,"class","btn"),l(t,"title","View diagram in new page")},m(s,i){c(s,t,i),b(t,a),b(t,n),d||(u=I(t,"click",D(e[11])),d=!0)},p:h,d(e){e&&r(t),d=!1,u()}}}function ut(e){let t,a,n,h,d,u,f,m,g,x,y,E,k,I,D,C,O,T,S,V,M,_;return a=new Ee({}),u=new Re({props:{tabs:e[5],isCloseable:!1,title:"Mermaid",$$slots:{actions:[ct],default:[rt]},$$scope:{ctx:e}}}),u.$on("select",e[4]),g=new He({}),y=new ot({}),k=new qe({}),T=new Re({props:{title:"Diagram",isCloseable:!1,$$slots:{actions:[dt],default:[ht]},$$scope:{ctx:e}}}),{c(){t=s("div"),P(a.$$.fragment),n=p(),h=s("div"),d=s("div"),P(u.$$.fragment),f=p(),m=s("div"),P(g.$$.fragment),x=p(),P(y.$$.fragment),E=p(),P(k.$$.fragment),I=p(),D=s("div"),C=p(),O=s("div"),P(T.$$.fragment),S=p(),V=s("div"),M=v("Code editing not supported on mobile. Please use a desktop browser."),this.h()},l(e){t=i(e,"DIV",{class:!0});var s=o(t);B(a.$$.fragment,s),n=$(s),h=i(s,"DIV",{class:!0});var l=o(h);d=i(l,"DIV",{class:!0,id:!0,style:!0});var c=o(d);B(u.$$.fragment,c),f=$(c),m=i(c,"DIV",{class:!0});var p=o(m);B(g.$$.fragment,p),x=$(p),B(y.$$.fragment,p),E=$(p),B(k.$$.fragment,p),p.forEach(r),c.forEach(r),I=$(l),D=i(l,"DIV",{id:!0,class:!0}),o(D).forEach(r),C=$(l),O=i(l,"DIV",{class:!0});var v=o(O);B(T.$$.fragment,v),S=$(v),V=i(v,"DIV",{class:!0});var b=o(V);M=w(b,"Code editing not supported on mobile. Please use a desktop browser."),b.forEach(r),v.forEach(r),l.forEach(r),s.forEach(r),this.h()},h(){l(m,"class","-mt-2"),l(d,"class","hidden md:flex flex-col"),l(d,"id","editorPane"),ne(d,"width","40%"),l(D,"id","resizeHandler"),l(D,"class","svelte-ub8fux"),l(V,"class","md:hidden bg-white rounded shadow p-2 mx-2"),l(O,"class","flex-1 flex flex-col overflow-hidden"),l(h,"class","flex-1 flex overflow-hidden"),l(t,"class","h-full flex flex-col overflow-hidden bg-gray-100")},m(e,s){c(e,t,s),U(a,t,null),b(t,n),b(t,h),b(h,d),U(u,d,null),b(d,f),b(d,m),U(g,m,null),b(m,x),U(y,m,null),b(m,E),U(k,m,null),b(h,I),b(h,D),b(h,C),b(h,O),U(T,O,null),b(O,S),b(O,V),b(V,M),_=!0},p(e,[t]){const a={};262159&t&&(a.$$scope={dirty:t,ctx:e}),u.$set(a);const n={};262144&t&&(n.$$scope={dirty:t,ctx:e}),T.$set(n)},i(e){_||(A(a.$$.fragment,e),A(u.$$.fragment,e),A(g.$$.fragment,e),A(y.$$.fragment,e),A(k.$$.fragment,e),A(T.$$.fragment,e),_=!0)},o(e){N(a.$$.fragment,e),N(u.$$.fragment,e),N(g.$$.fragment,e),N(y.$$.fragment,e),N(k.$$.fragment,e),N(T.$$.fragment,e),_=!1},d(e){e&&r(t),H(a),H(u),H(g),H(y),H(k),H(T)}}}function ft(e,t,a){let n,s;d(e,ie,(e=>a(0,n=e))),d(e,he,(e=>a(12,s=e)));var i=this&&this.__awaiter||function(e,t,a,n){return new(a||(a=Promise))((function(s,i){function o(e){try{l(n.next(e))}catch(t){i(t)}}function r(e){try{l(n.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(o,r)}l((n=n.apply(e,t||[])).next())}))};const o=window.mermaid;let r="code";const l={code:"mermaid",config:"json"};let c="",h="mermaid",u=[];ie.subscribe((e=>{e.updateEditor&&a(1,c="code"===r?e.code:e.mermaid)}));const m=()=>{window.open(`${ge}/view#${s}`,"_blank").focus()};f((()=>i(void 0,void 0,void 0,(function*(){yield ue();const e=document.getElementById("resizeHandler"),t=document.getElementById("editorPane"),a=e=>{const a=e.pageX-t.getBoundingClientRect().left;a>50&&(t.style.width=`${a}px`)},n=()=>{window.removeEventListener("mousemove",a)};e.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",a),window.addEventListener("mouseup",n)}))}))));return e.$$.update=()=>{256&e.$$.dirty&&a(2,h=l[r]),257&e.$$.dirty&&a(1,c="code"===r?n.code:n.mermaid)},[n,c,h,u,e=>{se(ie,n.updateEditor=!0,n),a(8,r=e.detail.id)},[{id:"code",title:"Code",icon:"fas fa-code"},{id:"config",title:"Config",icon:"fas fa-cogs"}],e=>{try{"code"===r?(n=e.detail.text,o.parse(n),re(n,!1)):(t=e.detail.text,JSON.parse(t),me(t,!1)),de.set(void 0),a(3,u=[])}catch(s){if(de.set(s),s.hash){const e={severity:8,startLineNumber:s.hash.loc.first_line,startColumn:s.hash.loc.first_column,endLineNumber:s.hash.loc.last_line,endColumn:s.hash.loc.last_column+1,message:s.str};u.push(e),a(3,u=u.filter((t=>t.startLineNumber>=e.startLineNumber&&t.startColumn>=e.startColumn)))}console.error(s)}var t,n},m,r,function(){n.autoSync=this.checked,ie.set(n)},function(e){c=e,a(1,c),a(8,r),a(0,n)},()=>m()]}export default class extends t{constructor(e){super(),a(this,e,ft,ut,n,{})}} diff --git a/docs/_app/pages/index.svelte-c7dd545d.js b/_app/pages/index.svelte-c7dd545d.js similarity index 100% rename from docs/_app/pages/index.svelte-c7dd545d.js rename to _app/pages/index.svelte-c7dd545d.js diff --git a/docs/_app/pages/view.svelte-4d357761.js b/_app/pages/view.svelte-4d357761.js similarity index 100% rename from docs/_app/pages/view.svelte-4d357761.js rename to _app/pages/view.svelte-4d357761.js diff --git a/docs/_app/start-50d0be99.js b/_app/start-96e74604.js similarity index 99% rename from docs/_app/start-50d0be99.js rename to _app/start-96e74604.js index 9eafdedd..9f092482 100644 --- a/docs/_app/start-50d0be99.js +++ b/_app/start-96e74604.js @@ -1 +1 @@ -var t=Object.defineProperty,e=Object.defineProperties,r=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,n=(e,r,s)=>r in e?t(e,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[r]=s,i=(t,e)=>{for(var r in e||(e={}))a.call(e,r)&&n(t,r,e[r]);if(s)for(var r of s(e))o.call(e,r)&&n(t,r,e[r]);return t};import{S as l,i as c,s as u,e as h,c as d,a as p,d as f,b as g,f as m,t as _,g as y,h as b,j as v,k as $,l as w,m as x,n as E,o as q,p as R,q as S,r as L,u as k,v as j,w as O,x as U,y as A,z as P,A as T,B as I,C as N}from"./chunks/vendor-8b597521.js";import{_ as C}from"./chunks/preload-helper-9f12a5fd.js";import{i as D}from"./chunks/singletons-bb9012b7.js";import{s as V}from"./chunks/paths-45dac81d.js";function B(t){let e,r,s;const a=[t[2]||{}];var o=t[0][1];function n(t){let e={$$slots:{default:[M]},$$scope:{ctx:t}};for(let r=0;r{O(t,1)})),k()}o?(e=new o(n(t)),v(e.$$.fragment),j(e.$$.fragment,1),q(e,r.parentNode,r)):e=null}else o&&e.$set(i)},i(t){s||(e&&j(e.$$.fragment,t),s=!0)},o(t){e&&L(e.$$.fragment,t),s=!1},d(t){t&&f(r),e&&O(e,t)}}}function K(t){let e,r,s;const a=[t[3]||{}];var o=t[0][2];function n(t){let e={};for(let r=0;r{O(t,1)})),k()}o?(e=new o(n()),v(e.$$.fragment),j(e.$$.fragment,1),q(e,r.parentNode,r)):e=null}else o&&e.$set(i)},i(t){s||(e&&j(e.$$.fragment,t),s=!0)},o(t){e&&L(e.$$.fragment,t),s=!1},d(t){t&&f(r),e&&O(e,t)}}}function M(t){let e,r,s=t[0][2]&&K(t);return{c(){s&&s.c(),e=w()},l(t){s&&s.l(t),e=w()},m(t,a){s&&s.m(t,a),m(t,e,a),r=!0},p(t,r){t[0][2]?s?(s.p(t,r),1&r&&j(s,1)):(s=K(t),s.c(),j(s,1),s.m(e.parentNode,e)):s&&(I(),L(s,1,1,(()=>{s=null})),k())},i(t){r||(j(s),r=!0)},o(t){L(s),r=!1},d(t){s&&s.d(t),t&&f(e)}}}function W(t){let e,r,s=t[0][1]&&B(t);return{c(){s&&s.c(),e=w()},l(t){s&&s.l(t),e=w()},m(t,a){s&&s.m(t,a),m(t,e,a),r=!0},p(t,r){t[0][1]?s?(s.p(t,r),1&r&&j(s,1)):(s=B(t),s.c(),j(s,1),s.m(e.parentNode,e)):s&&(I(),L(s,1,1,(()=>{s=null})),k())},i(t){r||(j(s),r=!0)},o(t){L(s),r=!1},d(t){s&&s.d(t),t&&f(e)}}}function Y(t){let e,r=t[5]&&z(t);return{c(){e=h("div"),r&&r.c(),this.h()},l(t){e=d(t,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,class:!0});var s=p(e);r&&r.l(s),s.forEach(f),this.h()},h(){g(e,"id","svelte-announcer"),g(e,"aria-live","assertive"),g(e,"aria-atomic","true"),g(e,"class","svelte-1pdgbjn")},m(t,s){m(t,e,s),r&&r.m(e,null)},p(t,s){t[5]?r?r.p(t,s):(r=z(t),r.c(),r.m(e,null)):r&&(r.d(1),r=null)},d(t){t&&f(e),r&&r.d()}}}function z(t){let e;return{c(){e=_(t[6])},l(r){e=y(r,t[6])},m(t,r){m(t,e,r)},p(t,r){64&r&&b(e,t[6])},d(t){t&&f(e)}}}function G(t){let e,r,s,a;const o=[t[1]||{}];var n=t[0][0];function i(t){let e={$$slots:{default:[W]},$$scope:{ctx:t}};for(let r=0;r{O(t,1)})),k()}n?(e=new n(i(t)),v(e.$$.fragment),j(e.$$.fragment,1),q(e,r.parentNode,r)):e=null}else n&&e.$set(c);t[4]?l?l.p(t,a):(l=Y(t),l.c(),l.m(s.parentNode,s)):l&&(l.d(1),l=null)},i(t){a||(e&&j(e.$$.fragment,t),a=!0)},o(t){e&&L(e.$$.fragment,t),a=!1},d(t){e&&O(e,t),t&&f(r),l&&l.d(t),t&&f(s)}}}function J(t,e,r){let{stores:s}=e,{page:a}=e,{components:o}=e,{props_0:n=null}=e,{props_1:i=null}=e,{props_2:l=null}=e;U("__svelte__",s),A(s.page.notify);let c=!1,u=!1,h=null;return P((()=>{const t=s.page.subscribe((()=>{c&&(r(5,u=!0),r(6,h=document.title||"untitled page"))}));return r(4,c=!0),t})),t.$$set=t=>{"stores"in t&&r(7,s=t.stores),"page"in t&&r(8,a=t.page),"components"in t&&r(0,o=t.components),"props_0"in t&&r(1,n=t.props_0),"props_1"in t&&r(2,i=t.props_1),"props_2"in t&&r(3,l=t.props_2)},t.$$.update=()=>{384&t.$$.dirty&&s.page.set(a)},[o,n,i,l,c,u,h,s,a]}class X extends l{constructor(t){super(),c(this,t,J,G,u,{stores:7,page:8,components:0,props_0:1,props_1:2,props_2:3})}}const F=[()=>C((()=>import("./pages/__layout.svelte-809d1245.js")),["/mermaid-live-editor/_app/pages/__layout.svelte-809d1245.js","/mermaid-live-editor/_app/assets/pages/__layout.svelte-adbca494.css","/mermaid-live-editor/_app/chunks/vendor-8b597521.js","/mermaid-live-editor/_app/chunks/paths-45dac81d.js"]),()=>C((()=>import("./error.svelte-690d0ef1.js")),["/mermaid-live-editor/_app/error.svelte-690d0ef1.js","/mermaid-live-editor/_app/chunks/vendor-8b597521.js"]),()=>C((()=>import("./pages/index.svelte-c7dd545d.js")),["/mermaid-live-editor/_app/pages/index.svelte-c7dd545d.js","/mermaid-live-editor/_app/chunks/vendor-8b597521.js","/mermaid-live-editor/_app/chunks/singletons-bb9012b7.js","/mermaid-live-editor/_app/chunks/paths-45dac81d.js"]),()=>C((()=>import("./pages/edit.svelte-da6fda5c.js")),["/mermaid-live-editor/_app/pages/edit.svelte-da6fda5c.js","/mermaid-live-editor/_app/assets/pages/edit.svelte-05f3059c.css","/mermaid-live-editor/_app/chunks/vendor-8b597521.js","/mermaid-live-editor/_app/chunks/util-b71e0722.js","/mermaid-live-editor/_app/assets/util-53f38408.css","/mermaid-live-editor/_app/chunks/preload-helper-9f12a5fd.js","/mermaid-live-editor/_app/chunks/paths-45dac81d.js"]),()=>C((()=>import("./pages/view.svelte-4d357761.js")),["/mermaid-live-editor/_app/pages/view.svelte-4d357761.js","/mermaid-live-editor/_app/chunks/vendor-8b597521.js","/mermaid-live-editor/_app/chunks/util-b71e0722.js","/mermaid-live-editor/_app/assets/util-53f38408.css","/mermaid-live-editor/_app/chunks/preload-helper-9f12a5fd.js"])],H=[[/^\/$/,[F[0],F[2]],[F[1]]],[/^\/manifest\.json$/],[/^\/edit\/?$/,[F[0],F[3]],[F[1]]],[/^\/view\/?$/,[F[0],F[4]],[F[1]]]],Q=[F[0](),F[1]()];function Z(){return{x:pageXOffset,y:pageYOffset}}function tt(t){for(;t&&"A"!==t.nodeName.toUpperCase();)t=t.parentNode;return t}class et{constructor({base:t,routes:e,trailing_slash:r}){this.base=t,this.routes=e,this.trailing_slash=r}init(t){let s;this.renderer=t,t.router=this,this.enabled=!0,"scrollRestoration"in history&&(history.scrollRestoration="manual"),addEventListener("beforeunload",(()=>{history.scrollRestoration="auto"})),addEventListener("load",(()=>{history.scrollRestoration="manual"})),addEventListener("scroll",(()=>{clearTimeout(s),s=setTimeout((()=>{const t=(s=i({},history.state||{}),a={"sveltekit:scroll":Z()},e(s,r(a)));var s,a;history.replaceState(t,document.title,window.location.href)}),50)}));const a=t=>{const e=tt(t.target);e&&e.href&&e.hasAttribute("sveltekit:prefetch")&&this.prefetch(new URL(e.href))};let o;addEventListener("touchstart",a),addEventListener("mousemove",(t=>{clearTimeout(o),o=setTimeout((()=>{a(t)}),20)})),addEventListener("click",(t=>{var e;if(!this.enabled)return;if(t.button||1!==t.which)return;if(t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;if(t.defaultPrevented)return;const r=tt(t.target);if(!r)return;if(!r.href)return;const s="object"==typeof r.href&&"SVGAnimatedString"===r.href.constructor.name,a=String(s?r.href.baseVal:r.href);if(a===location.href)return void(location.hash||t.preventDefault());const o=null==(e=r.getAttribute("rel"))?void 0:e.split(/\s+/);if(r.hasAttribute("download")||o&&o.includes("external"))return;if(s?r.target.baseVal:r.target)return;const n=new URL(a);if(!this.owns(n))return;const i=r.hasAttribute("sveltekit:noscroll");history.pushState({},"",n.href),this._navigate(n,i?Z():null,[],n.hash),t.preventDefault()})),addEventListener("popstate",(t=>{if(t.state&&this.enabled){const e=new URL(location.href);this._navigate(e,t.state["sveltekit:scroll"],[])}})),document.body.setAttribute("tabindex","-1"),history.replaceState(history.state||{},"",location.href)}owns(t){return t.origin===location.origin&&t.pathname.startsWith(this.base)}parse(t){if(this.owns(t)){const e=decodeURIComponent(t.pathname.slice(this.base.length)||"/"),r=this.routes.filter((([t])=>t.test(e))),s=new URLSearchParams(t.search);return{id:`${e}?${s}`,routes:r,path:e,query:s}}}async goto(t,{noscroll:e=!1,replaceState:r=!1}={},s){const a=new URL(t,function(t){let e=t.baseURI;if(!e){const r=t.getElementsByTagName("base");e=r.length?r[0].href:t.URL}return e}(document));return this.enabled&&this.owns(a)?(history[r?"replaceState":"pushState"]({},"",t),this._navigate(a,e?Z():null,s,a.hash)):(location.href=a.href,new Promise((()=>{})))}enable(){this.enabled=!0}disable(){this.enabled=!1}async prefetch(t){const e=this.parse(t);if(!e)throw new Error("Attempted to prefetch a URL that does not belong to this app");return this.renderer.load(e)}async _navigate(t,e,r,s){const a=this.parse(t);if(!a)throw new Error("Attempted to navigate to a URL that does not belong to this app");if("/"!==a.path){const t=a.path.endsWith("/");(t&&"never"===this.trailing_slash||!t&&"always"===this.trailing_slash&&!a.path.split("/").pop().includes("."))&&(a.path=t?a.path.slice(0,-1):a.path+"/",history.replaceState({},"",`${a.path}${location.search}`))}this.renderer.notify({path:a.path,query:a.query}),await this.renderer.update(a,r,!1),document.body.focus();const o=s&&document.getElementById(s.slice(1));e?scrollTo(e.x,e.y):o?scrollTo(0,o.getBoundingClientRect().top+scrollY):scrollTo(0,0)}}function rt(t){const e=N(t);let r=!0;return{notify:function(){r=!0,e.update((t=>t))},set:function(t){r=!1,e.set(t)},subscribe:function(t){let s;return e.subscribe((e=>{(void 0===s||r&&e!==s)&&t(s=e)}))}}}function st(t,e){let r=`script[type="svelte-data"][url="${"string"==typeof t?t:t.url}"]`;e&&"string"==typeof e.body&&(r+=`[body="${function(t){let e=5381,r=t.length;if("string"==typeof t)for(;r;)e=33*e^t.charCodeAt(--r);else for(;r;)e=33*e^t[--r];return(e>>>0).toString(36)}(e.body)}"]`);const n=document.querySelector(r);if(n){const t=JSON.parse(n.textContent),{body:e}=t,r=((t,e)=>{var r={};for(var n in t)a.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&s)for(var n of s(t))e.indexOf(n)<0&&o.call(t,n)&&(r[n]=t[n]);return r})(t,["body"]);return Promise.resolve(new Response(e,r))}return fetch(t,e)}class at{constructor({Root:t,fallback:e,target:r,session:s,host:a}){this.Root=t,this.fallback=e,this.host=a,this.router=null,this.target=r,this.started=!1,this.session_id=1,this.invalid=new Set,this.invalidating=null,this.current={page:null,session_id:null,branch:[]},this.cache=new Map,this.loading={id:null,promise:null},this.stores={page:rt({}),navigating:N(null),session:N(s)},this.$session=null,this.root=null;let o=!1;this.stores.session.subscribe((async t=>{if(this.$session=t,!o)return;this.session_id+=1;const e=this.router.parse(new URL(location.href));this.update(e,[],!0)})),o=!0}async start({status:t,error:e,nodes:r,page:s}){const a=[];let o,n,l,c={};try{for(let o=0;o10||e.includes(t.path)))return void(this.router?this.router.goto(a.redirect,{replaceState:!0},[...e,t.path]):location.href=new URL(a.redirect,location.href).href);a=await this._load_error({status:500,error:new Error("Redirect loop"),path:t.path,query:t.query})}a.reload?location.reload():this.started?(this.current=a.state,this.root.$set(a.props),this.stores.navigating.set(null),await 0):this._init(a),dispatchEvent(new CustomEvent("sveltekit:navigation-end")),this.loading.promise=null,this.loading.id=null;const o=a.state.branch[a.state.branch.length-1];o&&!1===o.module.router?this.router.disable():this.router.enable()}load(t){return this.loading.promise=this._get_navigation_result(t,!1),this.loading.id=t.id,this.loading.promise}invalidate(t){return this.invalid.add(t),this.invalidating||(this.invalidating=Promise.resolve().then((async()=>{const t=this.router.parse(new URL(location.href));await this.update(t,[],!0),this.invalidating=null}))),this.invalidating}_init(t){this.current=t.state;const e=document.querySelector("style[data-svelte]");e&&e.remove(),this.root=new this.Root({target:this.target,props:i({stores:this.stores},t.props),hydrate:!0}),this.started=!0}async _get_navigation_result(t,e){if(this.loading.id===t.id)return this.loading.promise;for(let r=0;rt())),a+=1}const o=await this._load({route:s,path:t.path,query:t.query},e);if(o)return o}return await this._load_error({status:404,error:new Error(`Not found: ${t.path}`),path:t.path,query:t.query})}async _get_navigation_result_from_branch({page:t,branch:e}){const r=e.filter(Boolean),s={state:{page:t,branch:e,session_id:this.session_id},props:{components:r.map((t=>t.module.default))}};for(let n=0;n{this.cache.get(e)===s&&this.cache.delete(e),i(),clearTimeout(n)},n=setTimeout(a,1e3*o),i=this.stores.session.subscribe((()=>{r&&a()}));r=!0,this.cache.set(e,s)}return s}async _load_node({status:t,error:e,module:r,page:s,context:a}){const o={module:r,uses:{params:new Set,path:!1,query:!1,session:!1,context:!1,dependencies:[]},loaded:null,context:a},n={};for(const i in s.params)Object.defineProperty(n,i,{get:()=>(o.uses.params.add(i),s.params[i]),enumerable:!0});const l=this.$session;if(r.load){const{started:c}=this,u={page:{host:s.host,params:n,get path(){return o.uses.path=!0,s.path},get query(){return o.uses.query=!0,s.query}},get session(){return o.uses.session=!0,l},get context(){return o.uses.context=!0,i({},a)},fetch(t,e){const r="string"==typeof t?t:t.url,{href:a}=new URL(r,new URL(s.path,document.baseURI));return o.uses.dependencies.push(a),c?fetch(t,e):st(t,e)}};e&&(u.status=t,u.error=e);const h=await r.load.call(null,u);if(!h)return;o.loaded=function(t){if(t.error){const e="string"==typeof t.error?new Error(t.error):t.error,r=t.status;return e instanceof Error?!r||r<400||r>599?(console.warn('"error" returned from load() without a valid status code — defaulting to 500'),{status:500,error:e}):{status:r,error:e}:{status:500,error:new Error(`"error" property returned from load() must be a string or instance of Error, received type "${typeof e}"`)}}if(t.redirect){if(!t.status||3!==Math.floor(t.status/100))return{status:500,error:new Error('"redirect" property returned from load() must be accompanied by a 3xx status code')};if("string"!=typeof t.redirect)return{status:500,error:new Error('"redirect" property returned from load() must be a string')}}return t}(h),o.loaded.context&&(o.context=o.loaded.context)}return o}async _load({route:t,path:e,query:r},s){const a=`${e}?${r}`;if(!s&&this.cache.has(a))return this.cache.get(a);const[o,n,l,c]=t,u=c?c(o.exec(e)):{},h=this.current.page&&{path:e!==this.current.page.path,params:Object.keys(u).filter((t=>this.current.page.params[t]!==u[t])),query:r.toString()!==this.current.page.query.toString(),session:this.session_id!==this.current.session_id},d={host:this.host,path:e,query:r,params:u},p=[];let f={},g=!1,m=200,_=null;n.forEach((t=>t()));t:for(let b=0;br.uses.params.has(t)))||h.query&&r.uses.query||h.session&&r.uses.session||r.uses.dependencies.some((t=>this.invalid.has(t)))||g&&r.uses.context){t=await this._load_node({module:e,page:d,context:f});const r=b===n.length-1;if(t&&t.loaded){if(t.loaded.error&&(m=t.loaded.status,_=t.loaded.error),t.loaded.redirect)return{redirect:t.loaded.redirect};t.loaded.context&&(g=!0)}else if(r&&e.load)return}else t=r}catch(y){m=500,_=y}if(_){for(;b--;)if(l[b]){let t,e,r=b;for(;!(e=p[r]);)r-=1;try{if(t=await this._load_node({status:m,error:_,module:await l[b](),page:d,context:e.context}),t.loaded.error)continue;p.push(t);break t}catch(y){continue}}return await this._load_error({status:m,error:_,path:e,query:r})}t&&t.loaded&&t.loaded.context&&(f=i(i({},f),t.loaded.context)),p.push(t)}return await this._get_navigation_result_from_branch({page:d,branch:p})}async _load_error({status:t,error:e,path:r,query:s}){const a={host:this.host,path:r,query:s,params:{}},o=await this._load_node({module:await this.fallback[0],page:a,context:{}}),n=[o,await this._load_node({status:t,error:e,module:await this.fallback[1],page:a,context:o&&o.loaded&&o.loaded.context})];return await this._get_navigation_result_from_branch({page:a,branch:n})}}async function ot({paths:t,target:e,session:r,host:s,route:a,spa:o,trailing_slash:n,hydrate:i}){const l=a&&new et({base:t.base,routes:H,trailing_slash:n}),c=new at({Root:X,fallback:Q,target:e,session:r,host:s});D(l),V(t),i&&await c.start(i),a&&l.init(c),o&&l.goto(location.href,{replaceState:!0},[]),dispatchEvent(new CustomEvent("sveltekit:start"))}export{ot as start}; +var t=Object.defineProperty,e=Object.defineProperties,r=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,n=(e,r,s)=>r in e?t(e,r,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[r]=s,i=(t,e)=>{for(var r in e||(e={}))a.call(e,r)&&n(t,r,e[r]);if(s)for(var r of s(e))o.call(e,r)&&n(t,r,e[r]);return t};import{S as l,i as c,s as u,e as h,c as d,a as p,d as f,b as g,f as m,t as _,g as y,h as b,j as v,k as $,l as w,m as x,n as E,o as q,p as R,q as S,r as L,u as k,v as j,w as O,x as U,y as A,z as P,A as T,B as I,C as N}from"./chunks/vendor-8b597521.js";import{_ as C}from"./chunks/preload-helper-9f12a5fd.js";import{i as D}from"./chunks/singletons-bb9012b7.js";import{s as V}from"./chunks/paths-45dac81d.js";function B(t){let e,r,s;const a=[t[2]||{}];var o=t[0][1];function n(t){let e={$$slots:{default:[M]},$$scope:{ctx:t}};for(let r=0;r{O(t,1)})),k()}o?(e=new o(n(t)),v(e.$$.fragment),j(e.$$.fragment,1),q(e,r.parentNode,r)):e=null}else o&&e.$set(i)},i(t){s||(e&&j(e.$$.fragment,t),s=!0)},o(t){e&&L(e.$$.fragment,t),s=!1},d(t){t&&f(r),e&&O(e,t)}}}function K(t){let e,r,s;const a=[t[3]||{}];var o=t[0][2];function n(t){let e={};for(let r=0;r{O(t,1)})),k()}o?(e=new o(n()),v(e.$$.fragment),j(e.$$.fragment,1),q(e,r.parentNode,r)):e=null}else o&&e.$set(i)},i(t){s||(e&&j(e.$$.fragment,t),s=!0)},o(t){e&&L(e.$$.fragment,t),s=!1},d(t){t&&f(r),e&&O(e,t)}}}function M(t){let e,r,s=t[0][2]&&K(t);return{c(){s&&s.c(),e=w()},l(t){s&&s.l(t),e=w()},m(t,a){s&&s.m(t,a),m(t,e,a),r=!0},p(t,r){t[0][2]?s?(s.p(t,r),1&r&&j(s,1)):(s=K(t),s.c(),j(s,1),s.m(e.parentNode,e)):s&&(I(),L(s,1,1,(()=>{s=null})),k())},i(t){r||(j(s),r=!0)},o(t){L(s),r=!1},d(t){s&&s.d(t),t&&f(e)}}}function W(t){let e,r,s=t[0][1]&&B(t);return{c(){s&&s.c(),e=w()},l(t){s&&s.l(t),e=w()},m(t,a){s&&s.m(t,a),m(t,e,a),r=!0},p(t,r){t[0][1]?s?(s.p(t,r),1&r&&j(s,1)):(s=B(t),s.c(),j(s,1),s.m(e.parentNode,e)):s&&(I(),L(s,1,1,(()=>{s=null})),k())},i(t){r||(j(s),r=!0)},o(t){L(s),r=!1},d(t){s&&s.d(t),t&&f(e)}}}function Y(t){let e,r=t[5]&&z(t);return{c(){e=h("div"),r&&r.c(),this.h()},l(t){e=d(t,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,class:!0});var s=p(e);r&&r.l(s),s.forEach(f),this.h()},h(){g(e,"id","svelte-announcer"),g(e,"aria-live","assertive"),g(e,"aria-atomic","true"),g(e,"class","svelte-1pdgbjn")},m(t,s){m(t,e,s),r&&r.m(e,null)},p(t,s){t[5]?r?r.p(t,s):(r=z(t),r.c(),r.m(e,null)):r&&(r.d(1),r=null)},d(t){t&&f(e),r&&r.d()}}}function z(t){let e;return{c(){e=_(t[6])},l(r){e=y(r,t[6])},m(t,r){m(t,e,r)},p(t,r){64&r&&b(e,t[6])},d(t){t&&f(e)}}}function G(t){let e,r,s,a;const o=[t[1]||{}];var n=t[0][0];function i(t){let e={$$slots:{default:[W]},$$scope:{ctx:t}};for(let r=0;r{O(t,1)})),k()}n?(e=new n(i(t)),v(e.$$.fragment),j(e.$$.fragment,1),q(e,r.parentNode,r)):e=null}else n&&e.$set(c);t[4]?l?l.p(t,a):(l=Y(t),l.c(),l.m(s.parentNode,s)):l&&(l.d(1),l=null)},i(t){a||(e&&j(e.$$.fragment,t),a=!0)},o(t){e&&L(e.$$.fragment,t),a=!1},d(t){e&&O(e,t),t&&f(r),l&&l.d(t),t&&f(s)}}}function J(t,e,r){let{stores:s}=e,{page:a}=e,{components:o}=e,{props_0:n=null}=e,{props_1:i=null}=e,{props_2:l=null}=e;U("__svelte__",s),A(s.page.notify);let c=!1,u=!1,h=null;return P((()=>{const t=s.page.subscribe((()=>{c&&(r(5,u=!0),r(6,h=document.title||"untitled page"))}));return r(4,c=!0),t})),t.$$set=t=>{"stores"in t&&r(7,s=t.stores),"page"in t&&r(8,a=t.page),"components"in t&&r(0,o=t.components),"props_0"in t&&r(1,n=t.props_0),"props_1"in t&&r(2,i=t.props_1),"props_2"in t&&r(3,l=t.props_2)},t.$$.update=()=>{384&t.$$.dirty&&s.page.set(a)},[o,n,i,l,c,u,h,s,a]}class X extends l{constructor(t){super(),c(this,t,J,G,u,{stores:7,page:8,components:0,props_0:1,props_1:2,props_2:3})}}const F=[()=>C((()=>import("./pages/__layout.svelte-809d1245.js")),["/mermaid-live-editor/_app/pages/__layout.svelte-809d1245.js","/mermaid-live-editor/_app/assets/pages/__layout.svelte-adbca494.css","/mermaid-live-editor/_app/chunks/vendor-8b597521.js","/mermaid-live-editor/_app/chunks/paths-45dac81d.js"]),()=>C((()=>import("./error.svelte-690d0ef1.js")),["/mermaid-live-editor/_app/error.svelte-690d0ef1.js","/mermaid-live-editor/_app/chunks/vendor-8b597521.js"]),()=>C((()=>import("./pages/index.svelte-c7dd545d.js")),["/mermaid-live-editor/_app/pages/index.svelte-c7dd545d.js","/mermaid-live-editor/_app/chunks/vendor-8b597521.js","/mermaid-live-editor/_app/chunks/singletons-bb9012b7.js","/mermaid-live-editor/_app/chunks/paths-45dac81d.js"]),()=>C((()=>import("./pages/edit.svelte-7b949399.js")),["/mermaid-live-editor/_app/pages/edit.svelte-7b949399.js","/mermaid-live-editor/_app/assets/pages/edit.svelte-05f3059c.css","/mermaid-live-editor/_app/chunks/vendor-8b597521.js","/mermaid-live-editor/_app/chunks/util-b71e0722.js","/mermaid-live-editor/_app/assets/util-53f38408.css","/mermaid-live-editor/_app/chunks/preload-helper-9f12a5fd.js","/mermaid-live-editor/_app/chunks/paths-45dac81d.js"]),()=>C((()=>import("./pages/view.svelte-4d357761.js")),["/mermaid-live-editor/_app/pages/view.svelte-4d357761.js","/mermaid-live-editor/_app/chunks/vendor-8b597521.js","/mermaid-live-editor/_app/chunks/util-b71e0722.js","/mermaid-live-editor/_app/assets/util-53f38408.css","/mermaid-live-editor/_app/chunks/preload-helper-9f12a5fd.js"])],H=[[/^\/$/,[F[0],F[2]],[F[1]]],[/^\/manifest\.json$/],[/^\/edit\/?$/,[F[0],F[3]],[F[1]]],[/^\/view\/?$/,[F[0],F[4]],[F[1]]]],Q=[F[0](),F[1]()];function Z(){return{x:pageXOffset,y:pageYOffset}}function tt(t){for(;t&&"A"!==t.nodeName.toUpperCase();)t=t.parentNode;return t}class et{constructor({base:t,routes:e,trailing_slash:r}){this.base=t,this.routes=e,this.trailing_slash=r}init(t){let s;this.renderer=t,t.router=this,this.enabled=!0,"scrollRestoration"in history&&(history.scrollRestoration="manual"),addEventListener("beforeunload",(()=>{history.scrollRestoration="auto"})),addEventListener("load",(()=>{history.scrollRestoration="manual"})),addEventListener("scroll",(()=>{clearTimeout(s),s=setTimeout((()=>{const t=(s=i({},history.state||{}),a={"sveltekit:scroll":Z()},e(s,r(a)));var s,a;history.replaceState(t,document.title,window.location.href)}),50)}));const a=t=>{const e=tt(t.target);e&&e.href&&e.hasAttribute("sveltekit:prefetch")&&this.prefetch(new URL(e.href))};let o;addEventListener("touchstart",a),addEventListener("mousemove",(t=>{clearTimeout(o),o=setTimeout((()=>{a(t)}),20)})),addEventListener("click",(t=>{var e;if(!this.enabled)return;if(t.button||1!==t.which)return;if(t.metaKey||t.ctrlKey||t.shiftKey||t.altKey)return;if(t.defaultPrevented)return;const r=tt(t.target);if(!r)return;if(!r.href)return;const s="object"==typeof r.href&&"SVGAnimatedString"===r.href.constructor.name,a=String(s?r.href.baseVal:r.href);if(a===location.href)return void(location.hash||t.preventDefault());const o=null==(e=r.getAttribute("rel"))?void 0:e.split(/\s+/);if(r.hasAttribute("download")||o&&o.includes("external"))return;if(s?r.target.baseVal:r.target)return;const n=new URL(a);if(!this.owns(n))return;const i=r.hasAttribute("sveltekit:noscroll");history.pushState({},"",n.href),this._navigate(n,i?Z():null,[],n.hash),t.preventDefault()})),addEventListener("popstate",(t=>{if(t.state&&this.enabled){const e=new URL(location.href);this._navigate(e,t.state["sveltekit:scroll"],[])}})),document.body.setAttribute("tabindex","-1"),history.replaceState(history.state||{},"",location.href)}owns(t){return t.origin===location.origin&&t.pathname.startsWith(this.base)}parse(t){if(this.owns(t)){const e=decodeURIComponent(t.pathname.slice(this.base.length)||"/"),r=this.routes.filter((([t])=>t.test(e))),s=new URLSearchParams(t.search);return{id:`${e}?${s}`,routes:r,path:e,query:s}}}async goto(t,{noscroll:e=!1,replaceState:r=!1}={},s){const a=new URL(t,function(t){let e=t.baseURI;if(!e){const r=t.getElementsByTagName("base");e=r.length?r[0].href:t.URL}return e}(document));return this.enabled&&this.owns(a)?(history[r?"replaceState":"pushState"]({},"",t),this._navigate(a,e?Z():null,s,a.hash)):(location.href=a.href,new Promise((()=>{})))}enable(){this.enabled=!0}disable(){this.enabled=!1}async prefetch(t){const e=this.parse(t);if(!e)throw new Error("Attempted to prefetch a URL that does not belong to this app");return this.renderer.load(e)}async _navigate(t,e,r,s){const a=this.parse(t);if(!a)throw new Error("Attempted to navigate to a URL that does not belong to this app");if("/"!==a.path){const t=a.path.endsWith("/");(t&&"never"===this.trailing_slash||!t&&"always"===this.trailing_slash&&!a.path.split("/").pop().includes("."))&&(a.path=t?a.path.slice(0,-1):a.path+"/",history.replaceState({},"",`${a.path}${location.search}`))}this.renderer.notify({path:a.path,query:a.query}),await this.renderer.update(a,r,!1),document.body.focus();const o=s&&document.getElementById(s.slice(1));e?scrollTo(e.x,e.y):o?scrollTo(0,o.getBoundingClientRect().top+scrollY):scrollTo(0,0)}}function rt(t){const e=N(t);let r=!0;return{notify:function(){r=!0,e.update((t=>t))},set:function(t){r=!1,e.set(t)},subscribe:function(t){let s;return e.subscribe((e=>{(void 0===s||r&&e!==s)&&t(s=e)}))}}}function st(t,e){let r=`script[type="svelte-data"][url="${"string"==typeof t?t:t.url}"]`;e&&"string"==typeof e.body&&(r+=`[body="${function(t){let e=5381,r=t.length;if("string"==typeof t)for(;r;)e=33*e^t.charCodeAt(--r);else for(;r;)e=33*e^t[--r];return(e>>>0).toString(36)}(e.body)}"]`);const n=document.querySelector(r);if(n){const t=JSON.parse(n.textContent),{body:e}=t,r=((t,e)=>{var r={};for(var n in t)a.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&s)for(var n of s(t))e.indexOf(n)<0&&o.call(t,n)&&(r[n]=t[n]);return r})(t,["body"]);return Promise.resolve(new Response(e,r))}return fetch(t,e)}class at{constructor({Root:t,fallback:e,target:r,session:s,host:a}){this.Root=t,this.fallback=e,this.host=a,this.router=null,this.target=r,this.started=!1,this.session_id=1,this.invalid=new Set,this.invalidating=null,this.current={page:null,session_id:null,branch:[]},this.cache=new Map,this.loading={id:null,promise:null},this.stores={page:rt({}),navigating:N(null),session:N(s)},this.$session=null,this.root=null;let o=!1;this.stores.session.subscribe((async t=>{if(this.$session=t,!o)return;this.session_id+=1;const e=this.router.parse(new URL(location.href));this.update(e,[],!0)})),o=!0}async start({status:t,error:e,nodes:r,page:s}){const a=[];let o,n,l,c={};try{for(let o=0;o10||e.includes(t.path)))return void(this.router?this.router.goto(a.redirect,{replaceState:!0},[...e,t.path]):location.href=new URL(a.redirect,location.href).href);a=await this._load_error({status:500,error:new Error("Redirect loop"),path:t.path,query:t.query})}a.reload?location.reload():this.started?(this.current=a.state,this.root.$set(a.props),this.stores.navigating.set(null),await 0):this._init(a),dispatchEvent(new CustomEvent("sveltekit:navigation-end")),this.loading.promise=null,this.loading.id=null;const o=a.state.branch[a.state.branch.length-1];o&&!1===o.module.router?this.router.disable():this.router.enable()}load(t){return this.loading.promise=this._get_navigation_result(t,!1),this.loading.id=t.id,this.loading.promise}invalidate(t){return this.invalid.add(t),this.invalidating||(this.invalidating=Promise.resolve().then((async()=>{const t=this.router.parse(new URL(location.href));await this.update(t,[],!0),this.invalidating=null}))),this.invalidating}_init(t){this.current=t.state;const e=document.querySelector("style[data-svelte]");e&&e.remove(),this.root=new this.Root({target:this.target,props:i({stores:this.stores},t.props),hydrate:!0}),this.started=!0}async _get_navigation_result(t,e){if(this.loading.id===t.id)return this.loading.promise;for(let r=0;rt())),a+=1}const o=await this._load({route:s,path:t.path,query:t.query},e);if(o)return o}return await this._load_error({status:404,error:new Error(`Not found: ${t.path}`),path:t.path,query:t.query})}async _get_navigation_result_from_branch({page:t,branch:e}){const r=e.filter(Boolean),s={state:{page:t,branch:e,session_id:this.session_id},props:{components:r.map((t=>t.module.default))}};for(let n=0;n{this.cache.get(e)===s&&this.cache.delete(e),i(),clearTimeout(n)},n=setTimeout(a,1e3*o),i=this.stores.session.subscribe((()=>{r&&a()}));r=!0,this.cache.set(e,s)}return s}async _load_node({status:t,error:e,module:r,page:s,context:a}){const o={module:r,uses:{params:new Set,path:!1,query:!1,session:!1,context:!1,dependencies:[]},loaded:null,context:a},n={};for(const i in s.params)Object.defineProperty(n,i,{get:()=>(o.uses.params.add(i),s.params[i]),enumerable:!0});const l=this.$session;if(r.load){const{started:c}=this,u={page:{host:s.host,params:n,get path(){return o.uses.path=!0,s.path},get query(){return o.uses.query=!0,s.query}},get session(){return o.uses.session=!0,l},get context(){return o.uses.context=!0,i({},a)},fetch(t,e){const r="string"==typeof t?t:t.url,{href:a}=new URL(r,new URL(s.path,document.baseURI));return o.uses.dependencies.push(a),c?fetch(t,e):st(t,e)}};e&&(u.status=t,u.error=e);const h=await r.load.call(null,u);if(!h)return;o.loaded=function(t){if(t.error){const e="string"==typeof t.error?new Error(t.error):t.error,r=t.status;return e instanceof Error?!r||r<400||r>599?(console.warn('"error" returned from load() without a valid status code — defaulting to 500'),{status:500,error:e}):{status:r,error:e}:{status:500,error:new Error(`"error" property returned from load() must be a string or instance of Error, received type "${typeof e}"`)}}if(t.redirect){if(!t.status||3!==Math.floor(t.status/100))return{status:500,error:new Error('"redirect" property returned from load() must be accompanied by a 3xx status code')};if("string"!=typeof t.redirect)return{status:500,error:new Error('"redirect" property returned from load() must be a string')}}return t}(h),o.loaded.context&&(o.context=o.loaded.context)}return o}async _load({route:t,path:e,query:r},s){const a=`${e}?${r}`;if(!s&&this.cache.has(a))return this.cache.get(a);const[o,n,l,c]=t,u=c?c(o.exec(e)):{},h=this.current.page&&{path:e!==this.current.page.path,params:Object.keys(u).filter((t=>this.current.page.params[t]!==u[t])),query:r.toString()!==this.current.page.query.toString(),session:this.session_id!==this.current.session_id},d={host:this.host,path:e,query:r,params:u},p=[];let f={},g=!1,m=200,_=null;n.forEach((t=>t()));t:for(let b=0;br.uses.params.has(t)))||h.query&&r.uses.query||h.session&&r.uses.session||r.uses.dependencies.some((t=>this.invalid.has(t)))||g&&r.uses.context){t=await this._load_node({module:e,page:d,context:f});const r=b===n.length-1;if(t&&t.loaded){if(t.loaded.error&&(m=t.loaded.status,_=t.loaded.error),t.loaded.redirect)return{redirect:t.loaded.redirect};t.loaded.context&&(g=!0)}else if(r&&e.load)return}else t=r}catch(y){m=500,_=y}if(_){for(;b--;)if(l[b]){let t,e,r=b;for(;!(e=p[r]);)r-=1;try{if(t=await this._load_node({status:m,error:_,module:await l[b](),page:d,context:e.context}),t.loaded.error)continue;p.push(t);break t}catch(y){continue}}return await this._load_error({status:m,error:_,path:e,query:r})}t&&t.loaded&&t.loaded.context&&(f=i(i({},f),t.loaded.context)),p.push(t)}return await this._get_navigation_result_from_branch({page:d,branch:p})}async _load_error({status:t,error:e,path:r,query:s}){const a={host:this.host,path:r,query:s,params:{}},o=await this._load_node({module:await this.fallback[0],page:a,context:{}}),n=[o,await this._load_node({status:t,error:e,module:await this.fallback[1],page:a,context:o&&o.loaded&&o.loaded.context})];return await this._get_navigation_result_from_branch({page:a,branch:n})}}async function ot({paths:t,target:e,session:r,host:s,route:a,spa:o,trailing_slash:n,hydrate:i}){const l=a&&new et({base:t.base,routes:H,trailing_slash:n}),c=new at({Root:X,fallback:Q,target:e,session:r,host:s});D(l),V(t),i&&await c.start(i),a&&l.init(c),o&&l.goto(location.href,{replaceState:!0},[]),dispatchEvent(new CustomEvent("sveltekit:start"))}export{ot as start}; diff --git a/bin/beta-release b/bin/beta-release deleted file mode 100755 index 0cfc6af3..00000000 --- a/bin/beta-release +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -# Clone mermaid-js/docs parallel with the mermaid live editor. - -# git clone git@github.com:mermaid-js/docs.git -# git clone https://github.com/mermaid-js/docs.git -set -e -rm -rf docs -yarn release -pushd . -if [ ! -d ../docs ]; then - echo "Clone https://github.com/mermaid-js/docs to parent folder before continuing." - exit -fi -rm -rf ../docs/mermaid-live-editor-beta/* -cp -r docs/* ../docs/mermaid-live-editor-beta -cd ../docs -git add . -git commit -m "Beta updated with latest changes" -git push -popd diff --git a/bin/fix-path b/bin/fix-path deleted file mode 100755 index 6c0fdcc3..00000000 --- a/bin/fix-path +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -pushd ../docs -# find ./ -type f -exec sed -i 's/service-worker.js/mermaid-live-editor\/service-worker.js/g' {} \; -find ./ -type f -exec sed -i 's/manifest.json/\/mermaid-live-editor\/manifest.json/g' {} \; -find ./ -type f -exec sed -i 's/favicon.png/\/mermaid-live-editor\/favicon.png/g' {} \; -popd \ No newline at end of file diff --git a/cypress.json b/cypress.json deleted file mode 100644 index 70b8e6bd..00000000 --- a/cypress.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "projectId": "2ckppp", - "$schema": "https://on.cypress.io/cypress.schema.json", - "baseUrl": "http://localhost:3000", - "pluginsFile": "./cypress/plugins/index.cjs", - "viewportWidth": 1440, - "viewportHeight": 768, - "snapshotFileName": "./cypress/snapshots.js", - "defaultCommandTimeout": 16000, - "requestTimeout": 16000 -} diff --git a/cypress/.eslintrc b/cypress/.eslintrc deleted file mode 100644 index 2fc83573..00000000 --- a/cypress/.eslintrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "plugins": ["cypress", "mocha"], - "extends": ["plugin:cypress/recommended", "plugin:mocha/recommended"], - "rules": { - "jest/expect-expect": "off", - "mocha/no-mocha-arrows": "off" - }, - "env": { - "cypress/globals": true, - "mocha": true - } -} diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json deleted file mode 100644 index 0ff2d645..00000000 --- a/cypress/fixtures/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io", - "body": "Fixtures are a great way to mock data for responses to routes" -} diff --git a/cypress/integration/actions.spec.ts b/cypress/integration/actions.spec.ts deleted file mode 100644 index 6a2a8268..00000000 --- a/cypress/integration/actions.spec.ts +++ /dev/null @@ -1,20 +0,0 @@ -describe('Check actions', () => { - // eslint-disable-next-line mocha/no-hooks-for-single-case - beforeEach(() => { - cy.clearLocalStorage(); - cy.visit('/edit'); - cy.contains('Actions').click(); - }); - it('should update markdown code', () => { - cy.get('#markdown') - .invoke('val') - .then((oldText) => { - cy.get('#editor').click('bottom').type('{enter}C --> HistoryTest'); - cy.get('#markdown') - .invoke('val') - .then((newText) => { - expect(oldText).to.not.eq(newText); - }); - }); - }); -}); diff --git a/cypress/integration/diagramUpdate.spec.ts b/cypress/integration/diagramUpdate.spec.ts deleted file mode 100644 index 0edcf569..00000000 --- a/cypress/integration/diagramUpdate.spec.ts +++ /dev/null @@ -1,33 +0,0 @@ -describe('Auto sync tests', () => { - beforeEach(() => { - cy.clearLocalStorage(); - cy.visit('/'); - }); - it('should dim diagram when code is edited', () => { - cy.contains('Auto sync').click(); - cy.get('#view').should('not.have.class', 'outOfSync'); - cy.get('#editor').type(' C --> Test'); - cy.get('#view').should('have.class', 'outOfSync'); - cy.getLocalStorage('codeStore').snapshot(); - }); - - it('should show/hide sync button with auto sync', () => { - cy.get('[data-cy=sync]').should('not.exist'); - cy.contains('Auto sync').click(); - cy.get('[data-cy=sync]').should('exist'); - cy.get('#autoSync').check(); - cy.get('[data-cy=sync]').should('not.exist'); - }); - it('should not dim diagram when code is in sync', () => { - cy.contains('Auto sync').click(); - cy.get('#view').should('not.have.class', 'outOfSync'); - cy.get('#editor').type(' C --> Test'); - cy.get('#view').should('have.class', 'outOfSync'); - cy.get('[data-cy=sync]').click(); - cy.get('#view').should('not.have.class', 'outOfSync'); - cy.get('#autoSync').check(); - cy.get('#editor').type('ing'); - cy.get('#view').should('not.have.class', 'outOfSync'); - cy.getLocalStorage('codeStore').snapshot(); - }); -}); diff --git a/cypress/integration/history.spec.ts b/cypress/integration/history.spec.ts deleted file mode 100644 index 5bdedef0..00000000 --- a/cypress/integration/history.spec.ts +++ /dev/null @@ -1,60 +0,0 @@ -describe('Save History', () => { - beforeEach(() => { - cy.clearLocalStorage(); - cy.visit('/edit'); - }); - it('should save when clicked', () => { - cy.get('#historyList').find('li').should('have.length', 0); - cy.get('#historyList').contains('No items in History'); - cy.get('#saveHistory').click(); - cy.get('#historyList').find('No items in History').should('not.exist'); - cy.get('#historyList').find('li').should('have.length', 1); - cy.get('#saveHistory').click(); - cy.on('window:alert', (str) => { - expect(str).to.equal('State already saved.'); - }); - cy.on('window:confirm', () => true); - cy.get('#editor').type(' C --> HistoryTest'); - cy.get('#saveHistory').click(); - cy.get('#historyList').find('li').should('have.length', 2); - }); - - it('should be able to restore and delete', () => { - cy.get('#saveHistory').click(); - cy.get('#editor').type(' C --> HistoryTest'); - cy.get('#historyList').find('No items in History').should('not.exist'); - cy.get('#historyList').find('li').should('have.length', 1); - cy.contains('HistoryTest'); - cy.contains('Restore').click(); - cy.contains('HistoryTest').should('not.exist'); - cy.contains('Delete').click(); - cy.get('#historyList').find('li').should('have.length', 0); - cy.get('#historyList').contains('No items in History'); - cy.get('#saveHistory').click(); - cy.get('#editor').type(' C --> HistoryTest'); - cy.get('#saveHistory').click(); - cy.get('#editor').type('ing'); - cy.get('#clearHistory').click(); - cy.on('window:alert', (str) => { - expect(str).to.equal('Clear all saved items?'); - }); - cy.on('window:confirm', () => true); - cy.get('#historyList').contains('No items in History'); - }); - - it('should auto save history', () => { - cy.clock(); - cy.get('#editor').type(' C --> HistoryTest'); - cy.tick(70000); - cy.contains('Timeline').click(); - cy.get('#historyList').find('li').should('have.length', 1); - cy.get('#editor').type('ing'); - cy.tick(70000); - cy.get('#historyList').find('li').should('have.length', 2); - for (let i = 0; i < 31; i++) { - cy.get('#editor').type('.'); - cy.tick(70000); - } - cy.get('#historyList').find('li').should('have.length', 30); - }); -}); diff --git a/cypress/integration/loadSite.spec.ts b/cypress/integration/loadSite.spec.ts deleted file mode 100644 index 0c58d373..00000000 --- a/cypress/integration/loadSite.spec.ts +++ /dev/null @@ -1,32 +0,0 @@ -describe('Site Loads', () => { - beforeEach(() => { - cy.clearLocalStorage(); - }); - it('Check Home page load', () => { - cy.visit('/'); - cy.url().should('include', '/edit'); - cy.contains('History').click(); - cy.getLocalStorage('codeStore').snapshot(); - }); - - it('Check Redirect from old URL', () => { - cy.visit( - '/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0NocmlzdG1hc10gLS0-fEdldCBtb25leXwgQihHbyBzaG9wcGluZylcbiAgICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgICBDIC0tPnxPbmV8IERbTGFwdG9wXVxuICAgIEMgLS0-fFR3b3wgRVtpUGhvbmVdXG4gICAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ' - ); - cy.url().should( - 'include', - '/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0NocmlzdG1hc10gLS0-fEdldCBtb25leXwgQihHbyBzaG9wcGluZylcbiAgICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgICBDIC0tPnxPbmV8IERbTGFwdG9wXVxuICAgIEMgLS0-fFR3b3wgRVtpUGhvbmVdXG4gICAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ' - ); - - cy.contains('History').click(); - cy.getLocalStorage('codeStore').snapshot(); - }); - - it('should load sample diagrams when clicked', () => { - cy.contains('Sample Diagrams').click(); - cy.contains('Pie Chart').click(); - cy.contains('pie title Pets adopted by volunteers'); - cy.contains('Class Diagram').click(); - cy.contains('classDiagram'); - }); -}); diff --git a/cypress/plugins/index.cjs b/cypress/plugins/index.cjs deleted file mode 100644 index f7ffbe14..00000000 --- a/cypress/plugins/index.cjs +++ /dev/null @@ -1,31 +0,0 @@ -/// -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -/** - * @type {Cypress.PluginConfig} - */ -// eslint-disable-next-line no-unused-vars -import * as fs from 'fs'; - -module.exports = (on, config) => { - on('task', { - readFileMaybe(filename) { - if (fs.existsSync(filename)) { - return fs.readFileSync(filename, 'utf8'); - } - - return null; - } - }); -}; diff --git a/cypress/snapshots.js b/cypress/snapshots.js deleted file mode 100644 index f94d5e4a..00000000 --- a/cypress/snapshots.js +++ /dev/null @@ -1,19 +0,0 @@ -module.exports = { - "Site Loads": { - "Check Home page load": { - "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":true,\"autoSync\":true,\"updateDiagram\":true}" - }, - "Check Redirect from old URL": { - "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}" - } - }, - "__version": "7.3.0", - "Auto sync tests": { - "should dim diagram when code is edited": { - "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Test\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":false,\"updateDiagram\":false}" - }, - "should not dim diagram when code is in sync": { - "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Testing\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}" - } - } -} diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts deleted file mode 100644 index fe4e2603..00000000 --- a/cypress/support/commands.ts +++ /dev/null @@ -1,38 +0,0 @@ -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// -// -// -- This is a parent command -- -// Cypress.Commands.add('login', (email, password) => { ... }) -// -// -// -- This is a child command -- -// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) -import { register } from '@cypress/snapshot'; -// eslint-disable-next-line @typescript-eslint/no-unsafe-call -register(); -declare global { - // eslint-disable-next-line @typescript-eslint/no-namespace - namespace Cypress { - interface Chainable { - snapshot(): void; - } - } -} - -import 'cypress-localstorage-commands'; diff --git a/cypress/support/index.js b/cypress/support/index.js deleted file mode 100644 index 01ff920f..00000000 --- a/cypress/support/index.js +++ /dev/null @@ -1,27 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; - -// Alternatively you can use CommonJS syntax: -// require('./commands') -const resizeObserverLoopErrRe = /^[^(ResizeObserver loop limit exceeded)]/; -Cypress.on('uncaught:exception', (err) => { - /* returning false here prevents Cypress from failing the test */ - if (resizeObserverLoopErrRe.test(err.message)) { - return false; - } -}); diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json deleted file mode 100644 index 77501744..00000000 --- a/cypress/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "compilerOptions": { - "allowJs": true, - "types": ["cypress", "cypress-localstorage-commands"] - }, - "include": ["**/*.ts"] -} diff --git a/docs/.nojekyll b/docs/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/_app/pages/edit.svelte-da6fda5c.js b/docs/_app/pages/edit.svelte-da6fda5c.js deleted file mode 100644 index 26a63519..00000000 --- a/docs/_app/pages/edit.svelte-da6fda5c.js +++ /dev/null @@ -1 +0,0 @@ -var e;import{S as t,i as a,s as n,e as s,c as i,a as r,d as o,b as l,f as c,G as h,H as d,I as u,z as f,J as m,K as g,k as p,t as v,n as $,g as w,F as b,L as x,M as E,N as y,O as k,P as I,Q as D,h as C,R as O,T,U as S,v as A,B as V,r as N,u as M,V as _,D as R,E as L,j as P,m as B,o as U,W as G,w as H,X as j,Y,Z as z,_ as J,$ as q,a0 as F,a1 as K,a2 as W,a3 as Z,C as X,a4 as Q,a5 as ee,a6 as te,l as ae,a7 as ne,a8 as se}from"../chunks/vendor-8b597521.js";import{c as ie,a as re,u as oe,g as le,V as ce,b as he,e as de,i as ue,s as fe,d as me}from"../chunks/util-b71e0722.js";import{b as ge}from"../chunks/paths-45dac81d.js";import"../chunks/preload-helper-9f12a5fd.js";function pe(e){let t;return{c(){t=s("div"),this.h()},l(e){t=i(e,"DIV",{id:!0,class:!0}),r(t).forEach(o),this.h()},h(){l(t,"id","editor"),l(t,"class","overflow-hidden")},m(a,n){c(a,t,n),e[9](t)},p:h,i:h,o:h,d(a){a&&o(t),e[9](null)}}}function ve(e,t,a){let n;d(e,ie,(e=>a(8,n=e)));var s=this&&this.__awaiter||function(e,t,a,n){return new(a||(a=Promise))((function(s,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function o(e){try{l(n.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(r,o)}l((n=n.apply(e,t||[])).next())}))};let i,r,o=null,{text:l}=t,{language:c}=t,{editorOptions:h={value:l,language:c,scrollBeyondLastLine:!1,minimap:{enabled:!1},theme:"myCoolTheme",overviewRulerLanes:0}}=t,{errorMarkers:g=[]}=t,p=l;const v=u();return f((()=>s(void 0,void 0,void 0,(function*(){var e;a(6,r=monaco),(e=r).languages.register({id:"mermaid"}),e.languages.setMonarchTokensProvider("mermaid",{typeKeywords:["graph","stateDiagram","sequenceDiagram","classDiagram","pie","erDiagram","flowchart","gantt","gitGraph","journey"],keywords:["patricipant","as"],arrows:["---","===","--\x3e","==>","->>","->"],tokenizer:{root:[[/[{}]/,"delimiter.bracket"],[/[a-z_$][\w$]*/,{cases:{"@typeKeywords":"keyword","@keywords":"keyword"}}],[/[-=>ox]+/,{cases:{"@arrows":"transition"}}],[/[[{(}]+.+?[)\]}]+/,"string"],[/".*"/,"string"]]},whitespace:[[/[ \t\r\n]+/,"white"],[/%%.*$/,"comment"]]}),e.editor.defineTheme("myCoolTheme",{base:"vs",inherit:!1,rules:[{token:"keyword",foreground:"880000",fontStyle:"bold"},{token:"custom-error",foreground:"ff0000",fontStyle:"bold"},{token:"string",foreground:"AA8500"},{token:"transition",foreground:"008800",fontStyle:"bold"},{token:"delimiter.bracket",foreground:"000000",fontStyle:"bold"}]}),e.languages.registerCompletionItemProvider("mermaid",{provideCompletionItems:()=>({suggestions:[{label:"simpleText",kind:e.languages.CompletionItemKind.Text,insertText:"simpleText"},{label:"testing",kind:e.languages.CompletionItemKind.Keyword,insertText:"testing(${1:condition})",insertTextRules:e.languages.CompletionItemInsertTextRule.InsertAsSnippet},{label:"ifelse",kind:e.languages.CompletionItemKind.Snippet,insertText:["if (${1:condition}) {","\t$0","} else {","\t","}"].join("\n"),insertTextRules:e.languages.CompletionItemInsertTextRule.InsertAsSnippet,documentation:"If-Else Statement"}]})}),a(5,i=r.editor.create(o,h)),i.onDidChangeModelContent((()=>{a(1,l=i.getValue()),v("update",{text:l})}));return new ResizeObserver((e=>{i.layout({height:e[0].contentRect.height,width:e[0].contentRect.width})})).observe(o.parentElement),()=>{i.dispose()}})))),e.$$set=e=>{"text"in e&&a(1,l=e.text),"language"in e&&a(2,c=e.language),"editorOptions"in e&&a(3,h=e.editorOptions),"errorMarkers"in e&&a(4,g=e.errorMarkers)},e.$$.update=()=>{100&e.$$.dirty&&(null==r||r.editor.setModelLanguage(i.getModel(),c)),498&e.$$.dirty&&(l!==p&&(n.updateEditor&&(null==i||i.setValue(l)),a(7,p=l)),null==r||r.editor.setModelMarkers(i.getModel(),"test",g))},[o,l,c,h,g,i,r,p,n,function(e){m[e?"unshift":"push"]((()=>{o=e,a(0,o)}))}]}class $e extends t{constructor(e){super(),a(this,e,ve,pe,n,{text:1,language:2,editorOptions:3,errorMarkers:4})}}function we(e,t,a){const n=e.slice();return n[1]=t[a].title,n[2]=t[a].href,n[3]=t[a].icon,n}function be(e){let t,a,n,d,u,f=e[1]+"",m=e[3]&&function(e){let t;return{c(){t=s("i"),this.h()},l(e){t=i(e,"I",{class:!0}),r(t).forEach(o),this.h()},h(){l(t,"class",e[3])},m(e,a){c(e,t,a)},p:h,d(e){e&&o(t)}}}(e);return{c(){t=s("li"),a=s("a"),m&&m.c(),n=p(),d=v(f),u=p(),this.h()},l(e){t=i(e,"LI",{});var s=r(t);a=i(s,"A",{class:!0,target:!0,href:!0});var l=r(a);m&&m.l(l),n=$(l),d=w(l,f),l.forEach(o),u=$(s),s.forEach(o),this.h()},h(){l(a,"class","nav-btn"),l(a,"target","_blank"),l(a,"href",e[2])},m(e,s){c(e,t,s),b(t,a),m&&m.m(a,null),b(a,n),b(a,d),b(t,u)},p(e,t){e[3]&&m.p(e,t)},d(e){e&&o(t),m&&m.d()}}}function xe(e){let t,a,n,d,u,f,m,y,k,I,D,C,O,T,S,A,V,N,M,_,R=e[0],L=[];for(let s=0;s{a||(a=T(t,S,{},!0)),a.run(1)})),n=!0)},o(e){a||(a=T(t,S,{},!1)),a.run(0),n=!1},d(e){e&&o(t),E(d,e),e&&a&&a.end()}}}function Ce(e){let t,a,n,h,d,u,f,m,g,x,E=e[10].title+"";function y(){return e[7](e[10])}return{c(){t=s("li"),a=s("div"),n=s("i"),d=p(),u=v(E),m=p(),this.h()},l(e){t=i(e,"LI",{class:!0});var s=r(t);a=i(s,"DIV",{class:!0});var l=r(a);n=i(l,"I",{class:!0}),r(n).forEach(o),d=$(l),u=w(l,E),l.forEach(o),m=$(s),s.forEach(o),this.h()},h(){l(n,"class",h=k(e[10].icon)+" svelte-1qkpo3v"),l(a,"class",f="text cursor-pointer font-semibold min-w-16 w-auto px-2 py-1 -mb-4 rounded-t block leading-normal "+(e[4]===e[10].id?"text-indigo-500 bg-white border-white":"text-white bg-indigo-500 border-indigo-500 hover:bg-indigo-600")),l(t,"class","mr-2 last:mr-0 w-28 h-6 flex-auto text-center")},m(e,s){c(e,t,s),b(t,a),b(a,n),b(a,d),b(a,u),b(t,m),g||(x=I(a,"click",D(y)),g=!0)},p(t,s){e=t,4&s&&h!==(h=k(e[10].icon)+" svelte-1qkpo3v")&&l(n,"class",h),4&s&&E!==(E=e[10].title+"")&&C(u,E),20&s&&f!==(f="text cursor-pointer font-semibold min-w-16 w-auto px-2 py-1 -mb-4 rounded-t block leading-normal "+(e[4]===e[10].id?"text-indigo-500 bg-white border-white":"text-white bg-indigo-500 border-indigo-500 hover:bg-indigo-600"))&&l(a,"class",f)},d(e){e&&o(t),g=!1,x()}}}function Oe(e){let t,a,n,h,d,u,f,m,g=e[1]&&Ie(e),x=e[0]&&e[2]&&De(e);return{c(){t=s("div"),a=s("span"),g&&g.c(),n=p(),h=v(e[3]),d=p(),x&&x.c(),this.h()},l(s){t=i(s,"DIV",{class:!0});var l=r(t);a=i(l,"SPAN",{class:!0});var c=r(a);g&&g.l(c),n=$(c),h=w(c,e[3]),c.forEach(o),d=$(l),x&&x.l(l),l.forEach(o),this.h()},h(){l(a,"class","text-white mr-2 font-semibold"),l(t,"class","flex cursor-default")},m(s,i){c(s,t,i),b(t,a),g&&g.m(a,null),b(a,n),b(a,h),b(t,d),x&&x.m(t,null),u=!0,f||(m=I(a,"click",D(e[6])),f=!0)},p(e,[s]){e[1]?g?g.p(e,s):(g=Ie(e),g.c(),g.m(a,n)):g&&(g.d(1),g=null),(!u||8&s)&&C(h,e[3]),e[0]&&e[2]?x?(x.p(e,s),5&s&&A(x,1)):(x=De(e),x.c(),A(x,1),x.m(t,null)):x&&(V(),N(x,1,1,(()=>{x=null})),M())},i(e){u||(A(x),u=!0)},o(e){N(x),u=!1},d(e){e&&o(t),g&&g.d(),x&&x.d(),f=!1,m()}}}function Te(e,t,a){var n;let{isCloseable:s=!0}=t,{tabs:i=[]}=t,{title:r}=t,{isOpen:o=!1}=t,l=null===(n=i[0])||void 0===n?void 0:n.id;const c=u(),h=e=>{a(4,l=e.id),c("select",e)};return e.$$set=e=>{"isCloseable"in e&&a(1,s=e.isCloseable),"tabs"in e&&a(2,i=e.tabs),"title"in e&&a(3,r=e.title),"isOpen"in e&&a(0,o=e.isOpen)},[o,s,i,r,l,h,()=>a(0,o=!o),e=>h(e)]}class Se extends t{constructor(e){super(),a(this,e,Te,Oe,n,{isCloseable:1,tabs:2,title:3,isOpen:0})}}const Ae=e=>({}),Ve=e=>({});function Ne(e){let t,a,n;const h=e[5].default,d=R(h,e,e[4],null);return{c(){t=s("div"),d&&d.c(),this.h()},l(e){t=i(e,"DIV",{class:!0});var a=r(t);d&&d.l(a),a.forEach(o),this.h()},h(){l(t,"class","flex-grow overflow-auto")},m(e,a){c(e,t,a),d&&d.m(t,null),n=!0},p(e,t){d&&d.p&&(!n||16&t)&&L(d,h,e,e[4],t,null,null)},i(e){n||(A(d,e),O((()=>{a||(a=T(t,j,{},!0)),a.run(1)})),n=!0)},o(e){N(d,e),a||(a=T(t,j,{},!1)),a.run(0),n=!1},d(e){e&&o(t),d&&d.d(e),e&&a&&a.end()}}}function Me(e){let t,a,n,h,d,u,f,g,v,w,x;function E(t){e[6](t)}let y={tabs:e[2],title:e[3],isCloseable:e[1]};void 0!==e[0]&&(y.isOpen=e[0]),h=new Se({props:y}),m.push((()=>_(h,"isOpen",E))),h.$on("select",e[7]);const k=e[5].actions,D=R(k,e,e[4],Ve);let C=e[0]&&Ne(e);return{c(){t=s("div"),a=s("div"),n=s("div"),P(h.$$.fragment),u=p(),f=s("div"),D&&D.c(),g=p(),C&&C.c(),this.h()},l(e){t=i(e,"DIV",{class:!0});var s=r(t);a=i(s,"DIV",{class:!0});var l=r(a);n=i(l,"DIV",{class:!0});var c=r(n);B(h.$$.fragment,c),u=$(c),f=i(c,"DIV",{class:!0});var d=r(f);D&&D.l(d),d.forEach(o),c.forEach(o),l.forEach(o),g=$(s),C&&C.l(s),s.forEach(o),this.h()},h(){l(f,"class","flex gap-x-4 items-center text-white"),l(n,"class","flex justify-between"),l(a,"class","bg-indigo-400 border-gray-400 p-2 flex-none"),l(t,"class","bg-white rounded overflow-hidden shadow m-2 flex-grow flex flex-col")},m(s,i){c(s,t,i),b(t,a),b(a,n),U(h,n,null),b(n,u),b(n,f),D&&D.m(f,null),b(t,g),C&&C.m(t,null),v=!0,w||(x=I(a,"click",e[8]),w=!0)},p(e,[a]){const n={};4&a&&(n.tabs=e[2]),8&a&&(n.title=e[3]),2&a&&(n.isCloseable=e[1]),!d&&1&a&&(d=!0,n.isOpen=e[0],G((()=>d=!1))),h.$set(n),D&&D.p&&(!v||16&a)&&L(D,k,e,e[4],a,Ae,Ve),e[0]?C?(C.p(e,a),1&a&&A(C,1)):(C=Ne(e),C.c(),A(C,1),C.m(t,null)):C&&(V(),N(C,1,1,(()=>{C=null})),M())},i(e){v||(A(h.$$.fragment,e),A(D,e),A(C),v=!0)},o(e){N(h.$$.fragment,e),N(D,e),N(C),v=!1},d(e){e&&o(t),H(h),D&&D.d(e),C&&C.d(),w=!1,x()}}}function _e(e,t,a){let{$$slots:n={},$$scope:s}=t,{isCloseable:i=!0}=t,{isOpen:r=!0}=t,{tabs:o=[]}=t,{title:l}=t;return e.$$set=e=>{"isCloseable"in e&&a(1,i=e.isCloseable),"isOpen"in e&&a(0,r=e.isOpen),"tabs"in e&&a(2,o=e.tabs),"title"in e&&a(3,l=e.title),"$$scope"in e&&a(4,s=e.$$scope)},e.$$.update=()=>{3&e.$$.dirty&&a(0,r=!i||r)},[r,i,o,l,s,n,function(e){r=e,a(0,r),a(1,i)},function(t){Y(e,t)},()=>a(0,r=!r)]}class Re extends t{constructor(e){super(),a(this,e,_e,Me,n,{isCloseable:1,isOpen:0,tabs:2,title:3})}}function Le(e,t,a){const n=e.slice();return n[3]=t[a],n}function Pe(e){let t,a,n,h,d=e[3]+"";function u(){return e[2](e[3])}return{c(){t=s("button"),a=v(d),this.h()},l(e){t=i(e,"BUTTON",{class:!0});var n=r(t);a=w(n,d),n.forEach(o),this.h()},h(){l(t,"class","action-btn")},m(e,s){c(e,t,s),b(t,a),n||(h=I(t,"click",u),n=!0)},p(t,a){e=t},d(e){e&&o(t),n=!1,h()}}}function Be(e){let t,a=Object.keys(e[0]),n=[];for(let s=0;s>+John: Hello John, how are you?\n Alice->>+John: John, can you hear me?\n John--\x3e>-Alice: Hi Alice, I can hear you!\n John--\x3e>-Alice: I feel great!\n ","Class Diagram":"classDiagram\n Animal <|-- Duck\n Animal <|-- Fish\n Animal <|-- Zebra\n Animal : +int age\n Animal : +String gender\n Animal: +isMammal()\n Animal: +mate()\n class Duck{\n +String beakColor\n +swim()\n +quack()\n }\n class Fish{\n -int sizeInFeet\n -canEat()\n }\n class Zebra{\n +bool is_wild\n +run()\n }\n ","State Diagram":"stateDiagram-v2\n [*] --\x3e Still\n Still --\x3e [*]\n Still --\x3e Moving\n Moving --\x3e Still\n Moving --\x3e Crash\n Crash --\x3e [*]\n ","Gantt Chart":"gantt\n title A Gantt Diagram\n dateFormat YYYY-MM-DD\n section Section\n A task :a1, 2014-01-01, 30d\n Another task :after a1 , 20d\n section Another\n Task in sec :2014-01-12 , 12d\n another task : 24d\n ","Pie Chart":'pie title Pets adopted by volunteers\n "Dogs" : 386\n "Cats" : 85\n "Rats" : 15\n ',"ER Diagram":'erDiagram\n CUSTOMER }|..|{ DELIVERY-ADDRESS : has\n CUSTOMER ||--o{ ORDER : places\n CUSTOMER ||--o{ INVOICE : "liable for"\n DELIVERY-ADDRESS ||--o{ ORDER : receives\n INVOICE ||--|{ ORDER : covers\n ORDER ||--|{ ORDER-ITEM : includes\n PRODUCT-CATEGORY ||--|{ PRODUCT : contains\n PRODUCT ||--o{ ORDER-ITEM : "ordered in"\n ',"Git Graph":'gitGraph:\noptions\n{\n "nodeSpacing": 150,\n "nodeRadius": 10\n}\nend\ncommit\nbranch newbranch\ncheckout newbranch\ncommit\ncommit\ncheckout master\ncommit\ncommit\nmerge newbranch\n\n ',"User Journey":" journey\n title My working day\n section Go to work\n Make tea: 5: Me\n Go upstairs: 3: Me\n Do work: 1: Me, Cat\n section Go home\n Go downstairs: 5: Me\n Sit down: 3: Me\n "},a=e=>{oe(t[e],!0,!0)};return[t,a,e=>a(e)]}class He extends t{constructor(e){super(),a(this,e,Ge,Ue,n,{})}}function je(e){let t,a,n;return{c(){t=s("input"),this.h()},l(e){t=i(e,"INPUT",{id:!0,type:!0,min:!0,max:!0}),this.h()},h(){l(t,"id","height"),l(t,"type","number"),l(t,"min","3"),l(t,"max","10000")},m(s,i){c(s,t,i),J(t,e[4]),a||(n=I(t,"input",e[14]),a=!0)},p(e,a){16&a&&q(t.value)!==e[4]&&J(t,e[4])},d(e){e&&o(t),a=!1,n()}}}function Ye(e){let t,a,n,d,u,f,m,g,x,E,y,k,D,C,O,T,S,A,V,N,M,_,R,L,P,B,U,G,H,j,Y,z,J,q,K,W,Z,X,Q,ee,te,ae,ne,se,ie,re=e[5](),oe=re&&function(e){let t,a,n,d,u;return{c(){t=s("button"),a=s("i"),n=v(" Copy Image to clipboard"),this.h()},l(e){t=i(e,"BUTTON",{class:!0});var s=r(t);a=i(s,"I",{class:!0}),r(a).forEach(o),n=w(s," Copy Image to clipboard"),s.forEach(o),this.h()},h(){l(a,"class","far fa-copy"),l(t,"class","action-btn w-full")},m(s,i){c(s,t,i),b(t,a),b(t,n),d||(u=I(t,"click",e[6]),d=!0)},p:h,d(e){e&&o(t),d=!1,u()}}}(e),le="auto"!==e[3]&&je(e);return{c(){t=s("div"),oe&&oe.c(),a=p(),n=s("button"),d=s("i"),u=v(" PNG"),f=p(),m=s("button"),g=s("i"),x=v(" SVG"),E=p(),y=s("button"),k=s("a"),D=s("i"),C=v(" PNG"),O=p(),T=s("button"),S=s("a"),A=s("i"),V=v(" SVG"),N=p(),M=s("div"),_=v("PNG size\n\t\t\t"),R=s("input"),L=p(),P=s("label"),B=v("Auto"),U=p(),G=s("input"),H=p(),j=s("label"),Y=v("Width"),z=p(),J=s("input"),q=p(),K=s("label"),W=v("Height"),Z=p(),le&&le.c(),X=p(),Q=s("div"),ee=s("label"),te=v("Copy Markdown"),ae=p(),ne=s("input"),this.h()},l(e){t=i(e,"DIV",{class:!0});var s=r(t);oe&&oe.l(s),a=$(s),n=i(s,"BUTTON",{class:!0});var l=r(n);d=i(l,"I",{class:!0}),r(d).forEach(o),u=w(l," PNG"),l.forEach(o),f=$(s),m=i(s,"BUTTON",{class:!0});var c=r(m);g=i(c,"I",{class:!0}),r(g).forEach(o),x=w(c," SVG"),c.forEach(o),E=$(s),y=i(s,"BUTTON",{class:!0});var h=r(y);k=i(h,"A",{target:!0,href:!0});var p=r(k);D=i(p,"I",{class:!0}),r(D).forEach(o),C=w(p," PNG"),p.forEach(o),h.forEach(o),O=$(s),T=i(s,"BUTTON",{class:!0});var v=r(T);S=i(v,"A",{target:!0,href:!0});var b=r(S);A=i(b,"I",{class:!0}),r(A).forEach(o),V=w(b," SVG"),b.forEach(o),v.forEach(o),N=$(s),M=i(s,"DIV",{class:!0});var I=r(M);_=w(I,"PNG size\n\t\t\t"),R=i(I,"INPUT",{type:!0,value:!0,id:!0}),L=$(I),P=i(I,"LABEL",{for:!0});var F=r(P);B=w(F,"Auto"),F.forEach(o),U=$(I),G=i(I,"INPUT",{type:!0,value:!0,id:!0}),H=$(I),j=i(I,"LABEL",{for:!0});var se=r(j);Y=w(se,"Width"),se.forEach(o),z=$(I),J=i(I,"INPUT",{type:!0,value:!0,id:!0}),q=$(I),K=i(I,"LABEL",{for:!0});var ie=r(K);W=w(ie,"Height"),ie.forEach(o),Z=$(I),le&&le.l(I),I.forEach(o),X=$(s),Q=i(s,"DIV",{class:!0});var re=r(Q);ee=i(re,"LABEL",{for:!0});var ce=r(ee);te=w(ce,"Copy Markdown"),ce.forEach(o),ae=$(re),ne=i(re,"INPUT",{class:!0,id:!0,type:!0,value:!0}),re.forEach(o),s.forEach(o),this.h()},h(){l(d,"class","fas fa-download"),l(n,"class","action-btn flex-auto"),l(g,"class","fas fa-download"),l(m,"class","action-btn flex-auto"),l(D,"class","fas fa-external-link-alt"),l(k,"target","_blank"),l(k,"href",e[0]),l(y,"class","action-btn flex-auto"),l(A,"class","fas fa-external-link-alt"),l(S,"target","_blank"),l(S,"href",e[1]),l(T,"class","action-btn flex-auto"),l(R,"type","radio"),R.__value="auto",R.value=R.__value,l(R,"id","autosize"),e[11][0].push(R),l(P,"for","autosize"),l(G,"type","radio"),G.__value="width",G.value=G.__value,l(G,"id","width-active"),e[11][0].push(G),l(j,"for","width"),l(J,"type","radio"),J.__value="height",J.value=J.__value,l(J,"id","height-active"),e[11][0].push(J),l(K,"for","height"),l(M,"class","flex gap-2 items-center"),l(ee,"for","markdown"),l(ne,"class","flex-1"),l(ne,"id","markdown"),l(ne,"type","text"),ne.value=e[2],l(Q,"class","w-full flex gap-2 items-center"),l(t,"class","flex flex-wrap gap-2 m-2")},m(s,i){c(s,t,i),oe&&oe.m(t,null),b(t,a),b(t,n),b(n,d),b(n,u),b(t,f),b(t,m),b(m,g),b(m,x),b(t,E),b(t,y),b(y,k),b(k,D),b(k,C),b(t,O),b(t,T),b(T,S),b(S,A),b(S,V),b(t,N),b(t,M),b(M,_),b(M,R),R.checked=R.__value===e[3],b(M,L),b(M,P),b(P,B),b(M,U),b(M,G),G.checked=G.__value===e[3],b(M,H),b(M,j),b(j,Y),b(M,z),b(M,J),J.checked=J.__value===e[3],b(M,q),b(M,K),b(K,W),b(M,Z),le&&le.m(M,null),b(t,X),b(t,Q),b(Q,ee),b(ee,te),b(Q,ae),b(Q,ne),se||(ie=[I(n,"click",e[7]),I(m,"click",e[8]),I(R,"change",e[10]),I(G,"change",e[12]),I(J,"change",e[13]),I(ne,"click",e[9])],se=!0)},p(e,t){re&&oe.p(e,t),1&t&&l(k,"href",e[0]),2&t&&l(S,"href",e[1]),8&t&&(R.checked=R.__value===e[3]),8&t&&(G.checked=G.__value===e[3]),8&t&&(J.checked=J.__value===e[3]),"auto"!==e[3]?le?le.p(e,t):(le=je(e),le.c(),le.m(M,null)):le&&(le.d(1),le=null),4&t&&ne.value!==e[2]&&(ne.value=e[2])},d(a){a&&o(t),oe&&oe.d(),e[11][0].splice(e[11][0].indexOf(R),1),e[11][0].splice(e[11][0].indexOf(G),1),e[11][0].splice(e[11][0].indexOf(J),1),le&&le.d(),se=!1,F(ie)}}}function ze(e){let t,a;return t=new Re({props:{title:"Actions",isOpen:!1,$$slots:{default:[Ye]},$$scope:{ctx:e}}}),{c(){P(t.$$.fragment)},l(e){B(t.$$.fragment,e)},m(e,n){U(t,e,n),a=!0},p(e,[a]){const n={};1048607&a&&(n.$$scope={dirty:a,ctx:e}),t.$set(n)},i(e){a||(A(t.$$.fragment,e),a=!0)},o(e){N(t.$$.fragment,e),a=!1},d(e){H(t,e)}}}function Je(e,t,a){const n=(e,t,a)=>{null==e||e.setAttribute("height",`${a}px`),null==e||e.setAttribute("width",`${t}px`),e||(e=document.querySelector("#container svg"));const n=e.outerHTML.replaceAll("
","
");return z(n)},s=(e,t)=>{const a=document.createElement("canvas"),s=document.querySelector("#container svg"),i=s.getBoundingClientRect();if(a.width=i.width,a.height=i.height,"width"===d){const e=i.height/i.width;a.width=u,a.height=u*e}else if("height"===d){const e=i.width/i.height;a.width=u*e,a.height=u}const r=a.getContext("2d");r.fillStyle="white",r.fillRect(0,0,a.width,a.height);const o=new Image;o.onload=t(r,o),o.src=`data:image/svg+xml;base64,${n(s,a.width,a.height)}`,e.stopPropagation(),e.preventDefault()},i=(e,t)=>{const a=document.createElement("a");a.download=e,a.href=t,a.click(),a.remove()},r=(e,t)=>()=>{const{canvas:a}=e;e.drawImage(t,0,0,a.width,a.height),i(`mermaid-diagram-${K().format("YYYYMMDDHHmmss")}.png`,a.toDataURL("image/png").replace("image/png","image/octet-stream"))},o=(e,t)=>()=>{const{canvas:a}=e;e.drawImage(t,0,0,a.width,a.height),a.toBlob((e=>{try{navigator.clipboard.write([new ClipboardItem({[e.type]:e})])}catch(t){console.error(t)}}))};let l,c,h,d="auto",u=1080;ie.subscribe((e=>{const t=JSON.parse(JSON.stringify(e));"string"==typeof t.mermaid&&(t.mermaid=JSON.parse(t.mermaid));const n=z(JSON.stringify(t),!0);a(0,l=`https://mermaid.ink/img/${n}`),a(1,c=`https://mermaid.ink/svg/${n}`),a(2,h=`[![](${l})](${window.location.protocol}//${window.location.host}${window.location.pathname}#${window.location.hash})`)}));return[l,c,h,d,u,()=>Object.prototype.hasOwnProperty.call(window,"ClipboardItem"),e=>{s(e,o)},e=>{s(e,r)},()=>{i(`mermaid-diagram-${K().format("YYYYMMDDHHmmss")}.svg`,`data:image/svg+xml;base64,${n()}`)},e=>{e.target.select(),document.execCommand("Copy")},function(){d=this.__value,a(3,d)},[[]],function(){d=this.__value,a(3,d)},function(){d=this.__value,a(3,d)},function(){u=q(this.value),a(4,u)}]}class qe extends t{constructor(e){super(),a(this,e,Je,ze,n,{})}}const Fe=W(X(!0),Z(),"autoHistoryMode"),Ke=W(X([]),Z(),"autoHistoryStore"),We=W(X([]),Z(),"manualHistoryStore"),Ze=Q([Fe,Ke,We],(([e,t,a],n)=>{n(e?t:a)}));function Xe(e,t,a){const n=e.slice();return n[14]=t[a].state,n[15]=t[a].time,n[16]=t[a].name,n}function Qe(e){let t,a,n,d,u,f;return{c(){t=s("div"),a=v("No items in History"),n=s("br"),d=v("\n\t\t\t\tClick the Save button to save current state and restore it later."),u=s("br"),f=v("\n\t\t\t\tTimeline will automatically be saved every minute."),this.h()},l(e){t=i(e,"DIV",{class:!0});var s=r(t);a=w(s,"No items in History"),n=i(s,"BR",{}),d=w(s,"\n\t\t\t\tClick the Save button to save current state and restore it later."),u=i(s,"BR",{}),f=w(s,"\n\t\t\t\tTimeline will automatically be saved every minute."),s.forEach(o),this.h()},h(){l(t,"class","m-2 text-gray-600")},m(e,s){c(e,t,s),b(t,a),b(t,n),b(t,d),b(t,u),b(t,f)},p:h,d(e){e&&o(t)}}}function et(e){let t,a=e[1],n=[];for(let s=0;s0?et:Qe}let n=a(e),h=n(e);return{c(){t=s("ul"),h.c(),this.h()},l(e){t=i(e,"UL",{class:!0,id:!0});var a=r(t);h.l(a),a.forEach(o),this.h()},h(){l(t,"class","p-2 space-y-2 overflow-auto h-56"),l(t,"id","historyList")},m(e,a){c(e,t,a),h.m(t,null)},p(e,s){n===(n=a(e))&&h?h.p(e,s):(h.d(1),h=n(e),h&&(h.c(),h.m(t,null)))},d(e){e&&o(t),h.d()}}}function nt(e){let t,a,n,d,u,f,m,g;return{c(){t=s("div"),a=s("button"),n=s("i"),d=p(),u=s("button"),f=s("i"),this.h()},l(e){t=i(e,"DIV",{slot:!0});var s=r(t);a=i(s,"BUTTON",{id:!0,class:!0,title:!0});var l=r(a);n=i(l,"I",{class:!0}),r(n).forEach(o),l.forEach(o),d=$(s),u=i(s,"BUTTON",{id:!0,class:!0,title:!0});var c=r(u);f=i(c,"I",{class:!0}),r(f).forEach(o),c.forEach(o),s.forEach(o),this.h()},h(){l(n,"class","far fa-save"),l(a,"id","saveHistory"),l(a,"class","btn"),l(a,"title","Save current state"),l(f,"class","fas fa-trash-alt"),l(u,"id","clearHistory"),l(u,"class","btn text-red-400"),l(u,"title","Delete all saved states"),l(t,"slot","actions")},m(s,i){c(s,t,i),b(t,a),b(a,n),b(t,d),b(t,u),b(u,f),m||(g=[I(a,"click",D(e[8])),I(u,"click",D(e[9]))],m=!0)},p:h,d(e){e&&o(t),m=!1,F(g)}}}function st(e){let t,a,n;function s(t){e[12](t)}let i={tabs:e[3],title:"History",$$slots:{actions:[nt],default:[at]},$$scope:{ctx:e}};return void 0!==e[0]&&(i.isOpen=e[0]),t=new Re({props:i}),m.push((()=>_(t,"isOpen",s))),t.$on("select",e[2]),{c(){P(t.$$.fragment)},l(e){B(t.$$.fragment,e)},m(e,a){U(t,e,a),n=!0},p(e,[n]){const s={};524290&n&&(s.$$scope={dirty:n,ctx:e}),!a&&1&n&&(a=!0,s.isOpen=e[0],G((()=>a=!1))),t.$set(s)},i(e){n||(A(t.$$.fragment,e),n=!0)},o(e){N(t.$$.fragment,e),n=!1},d(e){H(t,e)}}}function it(e,t,a){let n,s;d(e,ie,(e=>a(13,n=e))),d(e,Ze,(e=>a(1,s=e)));const i=(e=!1)=>{const t=le();var a;(e=>{const t=te(e?Ke:We);return t.length>0?JSON.stringify(t[0].state):""})(e)!==t?((a={state:n,time:Date.now(),auto:e}).name=ee(2),a.auto?Ke.update((e=>(30===e.length&&e.pop(),[a,...e]))):We.update((e=>[a,...e]))):e||alert("State already saved.")},r=e=>{var t;(e||confirm("Clear all saved items?"))&&(t=e,(te(Fe)?Ke:We).update((e=>e.filter((e=>t&&e.time!=t)))))},o=e=>{ie.set(Object.assign(Object.assign({},e),{updateEditor:!0,updateDiagram:!0}))};f((()=>{Fe.set(!1),setInterval((()=>{i(!0)}),6e4)}));let l=!0;return[l,s,e=>{Fe.set("timeline"===e.detail.id)},[{id:"saved",title:"Saved",icon:"far fa-bookmark"},{id:"timeline",title:"Timeline",icon:"fas fa-history"}],i,r,o,e=>{const t=new Date(e);return`${new Date(t).toLocaleString()} (${K(t).fromNow()})`},()=>i(),()=>r(),e=>o(e),e=>r(e),function(e){l=e,a(0,l)}]}class rt extends t{constructor(e){super(),a(this,e,it,st,n,{})}}function ot(e){let t,a,n;function s(t){e[10](t)}let i={language:e[2],errorMarkers:e[3]};return void 0!==e[1]&&(i.text=e[1]),t=new $e({props:i}),m.push((()=>_(t,"text",s))),t.$on("update",e[6]),{c(){P(t.$$.fragment)},l(e){B(t.$$.fragment,e)},m(e,a){U(t,e,a),n=!0},p(e,n){const s={};4&n&&(s.language=e[2]),8&n&&(s.errorMarkers=e[3]),!a&&2&n&&(a=!0,s.text=e[1],G((()=>a=!1))),t.$set(s)},i(e){n||(A(t.$$.fragment,e),n=!0)},o(e){N(t.$$.fragment,e),n=!1},d(e){H(t,e)}}}function lt(e){let t,a,n,d;return{c(){t=s("button"),a=s("i"),this.h()},l(e){t=i(e,"BUTTON",{class:!0,title:!0,"data-cy":!0});var n=r(t);a=i(n,"I",{class:!0}),r(a).forEach(o),n.forEach(o),this.h()},h(){l(a,"class","fas fa-sync"),l(t,"class","bg-indigo-500 hover:bg-indigo-700 rounded px-4 mx-2"),l(t,"title","Sync Diagram"),l(t,"data-cy","sync")},m(e,s){c(e,t,s),b(t,a),n||(d=I(t,"click",fe),n=!0)},p:h,d(e){e&&o(t),n=!1,d()}}}function ct(e){let t,a,n,h,d,u,f,m=!e[0].autoSync&<();return{c(){t=s("div"),m&&m.c(),a=p(),n=s("label"),h=s("input"),d=v("\n\t\t\t\t\t\tAuto sync"),this.h()},l(e){t=i(e,"DIV",{slot:!0});var s=r(t);m&&m.l(s),a=$(s),n=i(s,"LABEL",{for:!0,style:!0});var l=r(n);h=i(l,"INPUT",{type:!0,id:!0}),d=w(l,"\n\t\t\t\t\t\tAuto sync"),l.forEach(o),s.forEach(o),this.h()},h(){l(h,"type","checkbox"),l(h,"id","autoSync"),l(n,"for","autoSync"),ne(n,"white-space","nowrap"),ne(n,"overflow","hidden"),ne(n,"text-overflow","ellipsis"),l(t,"slot","actions")},m(s,i){c(s,t,i),m&&m.m(t,null),b(t,a),b(t,n),b(n,h),h.checked=e[0].autoSync,b(n,d),u||(f=I(h,"change",e[9]),u=!0)},p(e,n){e[0].autoSync?m&&(m.d(1),m=null):m?m.p(e,n):(m=lt(),m.c(),m.m(t,a)),1&n&&(h.checked=e[0].autoSync)},d(e){e&&o(t),m&&m.d(),u=!1,f()}}}function ht(e){let t,a,n;return a=new ce({}),{c(){t=s("div"),P(a.$$.fragment),this.h()},l(e){t=i(e,"DIV",{class:!0});var n=r(t);B(a.$$.fragment,n),n.forEach(o),this.h()},h(){l(t,"class","flex-1 overflow-auto")},m(e,s){c(e,t,s),U(a,t,null),n=!0},i(e){n||(A(a.$$.fragment,e),n=!0)},o(e){N(a.$$.fragment,e),n=!1},d(e){e&&o(t),H(a)}}}function dt(e){let t,a,n,d,u;return{c(){t=s("button"),a=s("i"),n=v(" View"),this.h()},l(e){t=i(e,"BUTTON",{slot:!0,class:!0,title:!0});var s=r(t);a=i(s,"I",{class:!0}),r(a).forEach(o),n=w(s," View"),s.forEach(o),this.h()},h(){l(a,"class","far fa-eye"),l(t,"slot","actions"),l(t,"class","btn"),l(t,"title","View diagram in new page")},m(s,i){c(s,t,i),b(t,a),b(t,n),d||(u=I(t,"click",D(e[11])),d=!0)},p:h,d(e){e&&o(t),d=!1,u()}}}function ut(e){let t,a,n,h,d,u,f,m,g,x,E,y,k,I,D,C,O,T,S,V,M,_;return a=new ye({}),u=new Re({props:{tabs:e[5],isCloseable:!1,title:"Mermaid",$$slots:{actions:[ct],default:[ot]},$$scope:{ctx:e}}}),u.$on("select",e[4]),g=new He({}),E=new rt({}),k=new qe({}),T=new Re({props:{title:"Diagram",isCloseable:!1,$$slots:{actions:[dt],default:[ht]},$$scope:{ctx:e}}}),{c(){t=s("div"),P(a.$$.fragment),n=p(),h=s("div"),d=s("div"),P(u.$$.fragment),f=p(),m=s("div"),P(g.$$.fragment),x=p(),P(E.$$.fragment),y=p(),P(k.$$.fragment),I=p(),D=s("div"),C=p(),O=s("div"),P(T.$$.fragment),S=p(),V=s("div"),M=v("Code editing not supported on mobile. Please use a desktop browser."),this.h()},l(e){t=i(e,"DIV",{class:!0});var s=r(t);B(a.$$.fragment,s),n=$(s),h=i(s,"DIV",{class:!0});var l=r(h);d=i(l,"DIV",{class:!0,id:!0,style:!0});var c=r(d);B(u.$$.fragment,c),f=$(c),m=i(c,"DIV",{class:!0});var p=r(m);B(g.$$.fragment,p),x=$(p),B(E.$$.fragment,p),y=$(p),B(k.$$.fragment,p),p.forEach(o),c.forEach(o),I=$(l),D=i(l,"DIV",{id:!0,class:!0}),r(D).forEach(o),C=$(l),O=i(l,"DIV",{class:!0});var v=r(O);B(T.$$.fragment,v),S=$(v),V=i(v,"DIV",{class:!0});var b=r(V);M=w(b,"Code editing not supported on mobile. Please use a desktop browser."),b.forEach(o),v.forEach(o),l.forEach(o),s.forEach(o),this.h()},h(){l(m,"class","-mt-2"),l(d,"class","hidden md:flex flex-col"),l(d,"id","editorPane"),ne(d,"width","40%"),l(D,"id","resizeHandler"),l(D,"class","svelte-ub8fux"),l(V,"class","md:hidden bg-white rounded shadow p-2 mx-2"),l(O,"class","flex-1 flex flex-col overflow-hidden"),l(h,"class","flex-1 flex overflow-hidden"),l(t,"class","h-full flex flex-col overflow-hidden bg-gray-100")},m(e,s){c(e,t,s),U(a,t,null),b(t,n),b(t,h),b(h,d),U(u,d,null),b(d,f),b(d,m),U(g,m,null),b(m,x),U(E,m,null),b(m,y),U(k,m,null),b(h,I),b(h,D),b(h,C),b(h,O),U(T,O,null),b(O,S),b(O,V),b(V,M),_=!0},p(e,[t]){const a={};262159&t&&(a.$$scope={dirty:t,ctx:e}),u.$set(a);const n={};262144&t&&(n.$$scope={dirty:t,ctx:e}),T.$set(n)},i(e){_||(A(a.$$.fragment,e),A(u.$$.fragment,e),A(g.$$.fragment,e),A(E.$$.fragment,e),A(k.$$.fragment,e),A(T.$$.fragment,e),_=!0)},o(e){N(a.$$.fragment,e),N(u.$$.fragment,e),N(g.$$.fragment,e),N(E.$$.fragment,e),N(k.$$.fragment,e),N(T.$$.fragment,e),_=!1},d(e){e&&o(t),H(a),H(u),H(g),H(E),H(k),H(T)}}}function ft(e,t,a){let n,s;d(e,ie,(e=>a(0,n=e))),d(e,he,(e=>a(12,s=e)));var i=this&&this.__awaiter||function(e,t,a,n){return new(a||(a=Promise))((function(s,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function o(e){try{l(n.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(r,o)}l((n=n.apply(e,t||[])).next())}))};const r=window.mermaid;let o="code";const l={code:"mermaid",config:"json"};let c="",h="mermaid",u=[];ie.subscribe((e=>{e.updateEditor&&a(1,c="code"===o?e.code:e.mermaid)}));const m=()=>{window.open(`${ge}/view#${s}`,"_blank").focus()};f((()=>i(void 0,void 0,void 0,(function*(){yield ue();const e=document.getElementById("resizeHandler"),t=document.getElementById("editorPane"),a=e=>{const a=e.pageX-t.getBoundingClientRect().left;a>50&&(t.style.width=`${a}px`)},n=()=>{window.removeEventListener("mousemove",a)};e.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",a),window.addEventListener("mouseup",n)}))}))));return e.$$.update=()=>{256&e.$$.dirty&&a(2,h=l[o]),257&e.$$.dirty&&a(1,c="code"===o?n.code:n.mermaid)},[n,c,h,u,e=>{se(ie,n.updateEditor=!0,n),a(8,o=e.detail.id)},[{id:"code",title:"Code",icon:"fas fa-code"},{id:"config",title:"Config",icon:"fas fa-cogs"}],e=>{try{"code"===o?(n=e.detail.text,r.parse(n),oe(n,!1)):(t=e.detail.text,JSON.parse(t),me(t,!1)),de.set(void 0),a(3,u=[])}catch(s){if(de.set(s),s.hash){const e={severity:8,startLineNumber:s.hash.loc.first_line,startColumn:s.hash.loc.first_column,endLineNumber:s.hash.loc.last_line,endColumn:s.hash.loc.last_column+1,message:s.str};u.push(e),a(3,u=u.filter((t=>t.startLineNumber>=e.startLineNumber&&t.startColumn>=e.startColumn)))}console.error(s)}var t,n},m,o,function(){n.autoSync=this.checked,ie.set(n)},function(e){c=e,a(1,c),a(8,o),a(0,n)},()=>m()]}export default class extends t{constructor(e){super(),a(this,e,ft,ut,n,{})}} diff --git a/docs/view/index.html b/edit/index.html similarity index 97% rename from docs/view/index.html rename to edit/index.html index 18885ade..8cc9cb02 100644 --- a/docs/view/index.html +++ b/edit/index.html @@ -59,7 +59,7 @@ - + @@ -67,7 +67,7 @@ - - - - - - - %svelte.head% - - -
%svelte.body%
- - diff --git a/src/app.postcss b/src/app.postcss deleted file mode 100644 index ce6711bb..00000000 --- a/src/app.postcss +++ /dev/null @@ -1,14 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -.nav-btn { - @apply lg:p-2 py-3 px-0 block border-b-2 border-transparent hover:border-white; -} - -.btn { - @apply bg-indigo-500 hover:bg-indigo-700 rounded px-4 shadow; -} -.action-btn { - @apply rounded p-2 bg-indigo-400 shadow flex-auto text-white hover:bg-indigo-500; -} diff --git a/src/global.d.ts b/src/global.d.ts deleted file mode 100644 index 63908c66..00000000 --- a/src/global.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/src/lib/components/actions.svelte b/src/lib/components/actions.svelte deleted file mode 100644 index a119c4d5..00000000 --- a/src/lib/components/actions.svelte +++ /dev/null @@ -1,167 +0,0 @@ - - - -
- {#if isClipboardAvailable()} - - {/if} - - - - - -
- PNG size - - - - - - - {#if imagemodeselected !== 'auto'} - - {/if} -
- -
- - -
-
-
diff --git a/src/lib/components/card/card.svelte b/src/lib/components/card/card.svelte deleted file mode 100644 index 91e80024..00000000 --- a/src/lib/components/card/card.svelte +++ /dev/null @@ -1,26 +0,0 @@ - - -
-
(isOpen = !isOpen)}> -
- -
- -
-
-
- {#if isOpen} -
- -
- {/if} -
diff --git a/src/lib/components/card/tabs.svelte b/src/lib/components/card/tabs.svelte deleted file mode 100644 index fc11b338..00000000 --- a/src/lib/components/card/tabs.svelte +++ /dev/null @@ -1,51 +0,0 @@ - - -
- (isOpen = !isOpen)}> - {#if isCloseable} - - {/if} - {title} - {#if isOpen && tabs} -
    - {#each tabs as tab} -
  • -
    toggleTabs(tab)}> - - {tab.title} -
    -
  • - {/each} -
- {/if} -
- - diff --git a/src/lib/components/editor/editor.svelte b/src/lib/components/editor/editor.svelte deleted file mode 100644 index 3b562c27..00000000 --- a/src/lib/components/editor/editor.svelte +++ /dev/null @@ -1,76 +0,0 @@ - - -
diff --git a/src/lib/components/editor/util.ts b/src/lib/components/editor/util.ts deleted file mode 100644 index 6fcfbde9..00000000 --- a/src/lib/components/editor/util.ts +++ /dev/null @@ -1,77 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -export const initEditor = (monacoEditor): void => { - monacoEditor.languages.register({ id: 'mermaid' }); - - // Register a tokens provider for the language - monacoEditor.languages.setMonarchTokensProvider('mermaid', { - typeKeywords: [ - 'graph', - 'stateDiagram', - 'sequenceDiagram', - 'classDiagram', - 'pie', - 'erDiagram', - 'flowchart', - 'gantt', - 'gitGraph', - 'journey' - ], - keywords: ['patricipant', 'as'], - arrows: ['---', '===', '-->', '==>', '->>', '->'], - tokenizer: { - root: [ - [/[{}]/, 'delimiter.bracket'], - [/[a-z_$][\w$]*/, { cases: { '@typeKeywords': 'keyword', '@keywords': 'keyword' } }], - [/[-=>ox]+/, { cases: { '@arrows': 'transition' } }], - [/[[{(}]+.+?[)\]}]+/, 'string'], - [/".*"/, 'string'] - ] - }, - whitespace: [ - [/[ \t\r\n]+/, 'white'], - [/%%.*$/, 'comment'] - ] - }); - - monacoEditor.editor.defineTheme('myCoolTheme', { - base: 'vs', - inherit: false, - rules: [ - { token: 'keyword', foreground: '880000', fontStyle: 'bold' }, - { token: 'custom-error', foreground: 'ff0000', fontStyle: 'bold' }, - { token: 'string', foreground: 'AA8500' }, - { token: 'transition', foreground: '008800', fontStyle: 'bold' }, - { token: 'delimiter.bracket', foreground: '000000', fontStyle: 'bold' } - ] - }); - - // Register a completion item provider for the new language - monacoEditor.languages.registerCompletionItemProvider('mermaid', { - provideCompletionItems: () => { - const suggestions = [ - { - label: 'simpleText', - kind: monacoEditor.languages.CompletionItemKind.Text, - insertText: 'simpleText' - }, - { - label: 'testing', - kind: monacoEditor.languages.CompletionItemKind.Keyword, - insertText: 'testing(${1:condition})', - insertTextRules: monacoEditor.languages.CompletionItemInsertTextRule.InsertAsSnippet - }, - { - label: 'ifelse', - kind: monacoEditor.languages.CompletionItemKind.Snippet, - insertText: ['if (${1:condition}) {', '\t$0', '} else {', '\t', '}'].join('\n'), - insertTextRules: monacoEditor.languages.CompletionItemInsertTextRule.InsertAsSnippet, - documentation: 'If-Else Statement' - } - ]; - return { suggestions: suggestions }; - } - }); -}; diff --git a/src/lib/components/history/history.svelte b/src/lib/components/history/history.svelte deleted file mode 100644 index 1010d40d..00000000 --- a/src/lib/components/history/history.svelte +++ /dev/null @@ -1,117 +0,0 @@ - - - -
- - -
-
    - {#if $historyStore.length > 0} - {#each $historyStore as { state, time, name }} -
  • -
    -
    -
    - {name} - {relativeTime(time)} -
    -
    -
    - - -
    -
    -
  • - {/each} - {:else} -
    - No items in History
    - Click the Save button to save current state and restore it later.
    - Timeline will automatically be saved every minute. -
    - {/if} -
-
diff --git a/src/lib/components/history/history.ts b/src/lib/components/history/history.ts deleted file mode 100644 index 4b7677a6..00000000 --- a/src/lib/components/history/history.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { derived, Readable, Writable, writable, get } from 'svelte/store'; -import { persist, localStorage } from '@macfja/svelte-persistent-store'; -import { generateSlug } from 'random-word-slugs'; -import type { HistoryEntry } from '../../types'; - -const MAX_AUTO_HISTORY_LENGTH = 30; - -export const autoHistoryMode: Writable = persist( - writable(true), - localStorage(), - 'autoHistoryMode' -); - -const autoHistoryStore: Writable = persist( - writable([]), - localStorage(), - 'autoHistoryStore' -); - -const manualHistoryStore: Writable = persist( - writable([]), - localStorage(), - 'manualHistoryStore' -); - -export const historyStore: Readable = derived( - [autoHistoryMode, autoHistoryStore, manualHistoryStore], - ([autoMode, autoHistories, manualHistories], set) => { - set(autoMode ? autoHistories : manualHistories); - } -); - -export const addHistoryEntry = (entry: HistoryEntry): void => { - entry.name = generateSlug(2); - - if (!entry.auto) { - manualHistoryStore.update((entries) => [entry, ...entries]); - return; - } - autoHistoryStore.update((entries) => { - if (entries.length === MAX_AUTO_HISTORY_LENGTH) { - entries.pop(); - } - return [entry, ...entries]; - }); -}; - -export const clearHistoryData = (time?: number): void => { - (get(autoHistoryMode) ? autoHistoryStore : manualHistoryStore).update((entries) => - entries.filter((entry) => time && entry.time != time) - ); -}; - -export const getPreviousState = (auto: boolean): string => { - const entries = get(auto ? autoHistoryStore : manualHistoryStore); - if (entries.length > 0) { - return JSON.stringify(entries[0].state); - } - return ''; -}; diff --git a/src/lib/components/navbar.svelte b/src/lib/components/navbar.svelte deleted file mode 100644 index 3f0e93a0..00000000 --- a/src/lib/components/navbar.svelte +++ /dev/null @@ -1,80 +0,0 @@ - - - - -
- - - - - - -
- - diff --git a/src/lib/components/preset.svelte b/src/lib/components/preset.svelte deleted file mode 100644 index efeca6f4..00000000 --- a/src/lib/components/preset.svelte +++ /dev/null @@ -1,114 +0,0 @@ - - - -
- {#each Object.keys(samples) as sample} - - {/each} -
-
diff --git a/src/lib/components/view.svelte b/src/lib/components/view.svelte deleted file mode 100644 index 718a158f..00000000 --- a/src/lib/components/view.svelte +++ /dev/null @@ -1,68 +0,0 @@ - - -
-
-
- - diff --git a/src/lib/types.d.ts b/src/lib/types.d.ts deleted file mode 100644 index 3f121d93..00000000 --- a/src/lib/types.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** - * Can be made globally available by placing this - * inside `global.d.ts` and removing `export` keyword - */ -export interface Locals { - userid: string; -} - -export interface EditorUpdateEvent { - text: string; -} -export interface EditorEvents { - update: EditorUpdateEvent; -} - -export interface TabEvents { - select: Tab; -} - -export interface Tab { - id: string; - title: string; - icon: string; -} - -export interface State { - code: string; - mermaid: string; - updateEditor: boolean; - updateDiagram: boolean; - autoSync: boolean; -} - -export interface HistoryEntry { - state: State; - time: number; - name?: string; - auto: boolean; -} diff --git a/src/lib/util/error.ts b/src/lib/util/error.ts deleted file mode 100644 index 43829bf6..00000000 --- a/src/lib/util/error.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { writable } from 'svelte/store'; - -export const errorStore = writable(undefined); diff --git a/src/lib/util/notify.ts b/src/lib/util/notify.ts deleted file mode 100644 index b9c54a27..00000000 --- a/src/lib/util/notify.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const notify = (message: string): void => { - alert(message); -}; - -export const prompt = (message: string): boolean => { - return confirm(message); -}; diff --git a/src/lib/util/state.ts b/src/lib/util/state.ts deleted file mode 100644 index ebb839d5..00000000 --- a/src/lib/util/state.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { writable, get, derived } from 'svelte/store'; -import { toBase64, fromBase64 } from 'js-base64'; -import { persist, localStorage } from '@macfja/svelte-persistent-store'; -import type { State } from '$lib/types'; -import { saveStatistcs } from './stats'; - -const defaultState: State = { - code: `graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - C -->|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - `, - mermaid: JSON.stringify( - { - theme: 'default' - }, - null, - 2 - ), - updateEditor: false, - autoSync: true, - updateDiagram: true -}; - -export const codeStore = persist(writable(defaultState), localStorage(), 'codeStore'); -export const base64State = derived([codeStore], ([code], set) => { - set(toBase64(JSON.stringify(code), true)); -}); - -export const loadState = (data: string): void => { - let state: State; - try { - const stateStr = fromBase64(data); - console.log(`Tring to load state: ${stateStr}`); - state = JSON.parse(stateStr); - if (typeof state.mermaid !== 'string') { - state.mermaid = JSON.stringify(state.mermaid, null, 2); - } - } catch (e) { - if (data) { - console.error('Init error', e); - } - state = get(codeStore); - console.log(state); - } - updateCodeStore({ ...state, updateEditor: true }); -}; - -export const updateCodeStore = (newState: State): void => { - codeStore.update((state) => { - return { ...state, ...newState }; - }); -}; - -let prompted = false; -export const updateCode = (code: string, updateEditor: boolean, updateDiagram = false): void => { - saveStatistcs(code); - const lines = (code.match(/\n/g) || '').length + 1; - - if (lines > 50 && !prompted && get(codeStore).autoSync) { - const turnOff = confirm( - 'Long diagram deteced. Turn off Auto Sync? Click the sync logo to manually sync.' - ); - prompted = true; - if (turnOff) { - updateCodeStore({ - autoSync: false - } as State); - } - } - - codeStore.update((state) => { - return { ...state, code, updateEditor, updateDiagram }; - }); -}; - -export const updateConfig = (config: string, updateEditor: boolean): void => { - codeStore.update((state) => { - return { ...state, mermaid: config, updateEditor }; - }); -}; - -export const initURLSubscription = (): void => { - base64State.subscribe((state: string) => { - history.replaceState(undefined, undefined, `#${state}`); - }); -}; - -export const getStateString = (): string => { - return JSON.stringify(get(codeStore)); -}; diff --git a/src/lib/util/stats.ts b/src/lib/util/stats.ts deleted file mode 100644 index 0a8ae69e..00000000 --- a/src/lib/util/stats.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { browser } from '$app/env'; -import type { AnalyticsInstance } from 'analytics'; - -export let analytics: AnalyticsInstance; - -export const initAnalytics = async (): Promise => { - if (browser && !analytics) { - try { - const { Analytics } = await import('analytics'); - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - const googleAnalytics = await import('@analytics/google-analytics'); - analytics = Analytics({ - app: 'mermaid-live-editor', - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - plugins: [ - // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access - googleAnalytics.init({ - trackingId: 'UA-153180559-1' - }) - ] - }); - } catch { - console.info('Analytics blocked ;)'); - } - } -}; - -const detectType = (text: string): string => { - return text - .replace(/^\s*%%.*\n/g, '\n') - .trimStart() - .split(' ')[0]; -}; - -// manual debounce -let timeout; -export const saveStatistcs = (graph: string): void => { - if (analytics) { - clearTimeout(timeout); - // Only save statistcs after a 5 sec delay - timeout = setTimeout(function () { - const graphType = detectType(graph); - console.debug('ga:', 'send', 'event', 'render', graphType); - void analytics.track('render', { - graphType - }); - }, 5000); - } -}; diff --git a/src/lib/util/util.ts b/src/lib/util/util.ts deleted file mode 100644 index 482dab1c..00000000 --- a/src/lib/util/util.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { State } from '$lib/types'; -import { initURLSubscription, loadState, updateCodeStore } from './state'; -import { analytics, initAnalytics } from './stats'; - -export const loadStateFromURL = (): void => { - loadState(window.location.hash.slice(1)); -}; - -export const syncDiagram = (): void => { - updateCodeStore({ - updateDiagram: true - } as State); -}; - -export const initHandler = async (): Promise => { - loadStateFromURL(); - syncDiagram(); - initURLSubscription(); - await initAnalytics(); - analytics?.page(); -}; diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte deleted file mode 100644 index f17b2f6e..00000000 --- a/src/routes/__layout.svelte +++ /dev/null @@ -1,25 +0,0 @@ - - -
- -
diff --git a/src/routes/edit.svelte b/src/routes/edit.svelte deleted file mode 100644 index 8f065c10..00000000 --- a/src/routes/edit.svelte +++ /dev/null @@ -1,202 +0,0 @@ - - -
- -
- -
-
- - - -
- -
-
-
- Code editing not supported on mobile. Please use a desktop browser. -
-
-
-
- - diff --git a/src/routes/index.svelte b/src/routes/index.svelte deleted file mode 100644 index ca9daa13..00000000 --- a/src/routes/index.svelte +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/src/routes/manifest.json.ts b/src/routes/manifest.json.ts deleted file mode 100644 index f8e5f95e..00000000 --- a/src/routes/manifest.json.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { base } from '$app/paths'; -export const get = (): { body: unknown } => { - return { - body: { - short_name: 'Mermaid', - name: 'Mermaid Live Editor', - icons: [ - { - src: `${base}/icon-192.png`, - type: 'image/png', - sizes: '192x192' - }, - { - src: `${base}/icon-512.png`, - type: 'image/png', - sizes: '512x512' - } - ], - start_url: `${base}/edit/`, - background_color: '#6366F1', - display: 'standalone', - scope: `${base}/edit/`, - theme_color: '#6366F1', - description: 'FlowChart & Diagrams Editor.', - orientation: 'landscape' - } - }; -}; diff --git a/src/routes/view.svelte b/src/routes/view.svelte deleted file mode 100644 index 216251f0..00000000 --- a/src/routes/view.svelte +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/static/.nojekyll b/static/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/static/favicon.png b/static/favicon.png deleted file mode 100644 index 5a015fd66010a18080af3b534b03ea66ddf95a33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16157 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 diff --git a/static/icon-192.png b/static/icon-192.png deleted file mode 100644 index f7e1344fa433745a196ec4223910b0ce02bfd905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15835 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

ID6guRF(WTI#ocH~Aw?&FAzvJ!4FNxq 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 z zS?i3lURDmUpSD}F8-K_jMdTUYu%rEKI~2}B27&d>WaA5B4N73*R}}S49CTM-U25py z>gL;xO?7E0+#0eBdsnGC1`_Zo$WGn7qR9{ARL2r4Ml%qh^CIEyHAQP7`DnI#1y?1= zaGgb^L-}>%2WVAFRY`wTUvivZ82zP1j|HPYOk2K1Z)HYlK%=y32b@sqGK#@1s+F%< zlVC#}_X&S^f5smVEA)_~^fpm^S!$szD`!(THMqFFxgCwT9Nt{ydb`*$#ekc&+EC?I zXvv>O3q5+MjI|G0kDBC8B~uWQwu@GgK-0fYnl9#$vtcU@yj4D7yt`E+DQ94MyhLli z&Y8{xiKfAwHuHj(U5xLm^D)Ui8up^v6y+@dy*+o_qoOY9gqTfq7`Wm+)$>`ce689S zbpn2zDobbBG?bxu?JYBWMW){r$MOb|9%EgFL)_c2t{a^G;kPzjk6FWwUQ5=vrE-re zAp3M1rRND|v{I9nV?AX$_+9UGtfLr4Pv@vaiZS(K9qV00LSvWnHgmMeEJ+{=sH1G@ zn}m75Q-GJX|zrD+@P6FI}x~TTXXq_9xypbgOp^ZHj;0 zm~556cnsjxpoUh8DFkh;rSz5*9P@aVHz{D&jY~no$|E-)vm`3vlIfnWcj0|raFTC= zct0~Lxs^T3L|tC<73b!aD`Y4cY#*;vhBjpa(WH)=Xxfv_?#6jnoyf8!*`fE@fiuoD zi+NhTJgb7X$5?j}_QFy<;P;H7nZr4Hk@mkMt)WcQVDzqU)Zb zmK{*AYSCkd#)Y1?$NOGVa9h{{j#{Yz0MPG=RybeEhuQJ)Cn|+h1K?m{Re53mDUFdJ zm`Kv)$G?5S!;=5V!)gV$eI)+|>Y%?!p9Sqc32`ybj5D^MBZ$}bV$N^`1Yz1AhKG3I zkph?tLm>}QM-0B^+D=7{i55L$y@;WwvES25943-jYr#wuLKaw1(mK1uvS2!4~Bny7(^YqML%jgL|wc~H&y{J$8 z<13US?B!K@D;ISK{x{DyKuOHo2aWA5%rbOjg9Dt8YYas^tENjEq0rH0lDw){*vmig z*+Q_u;y8eMfb0$UkZYX-u`60!zA4te7_Qah51g`){Uoh#lW1ZRL4siId^~FNWIV%5 z8(AX*oHURMJ%Ay9XC}Ik>6Kz^&j)vy-nbxs78$(+nyOYSS7j|A^U|iT)hI^r_S}y* z`3_gz#GDxp7EIdK}Y7l=CU1EM$nnkWmm-Gnsw zu2#%U(u-E64If<@IHs0)ZTvm~jQWRojy zot_}L^GUfiC}C%W*10rh_A8g=>|@=_8kR#23#3uAaOW1YV+t9=!q^W$BmZw`z-o07 z^yC*K#f885kl$TYSnbTkKl(Q=;lYfSAI82hRY%T$l44lfcf)L?ojfr$TD%RkZ$~4g zm+!2P>PhRRGj!0)gtak)#o#H-0zFN2#X<4@O`_PSxv2?)gCGmD{p;`#C?WL#e54Sza;Hy^Rz*DM)V{gs zd-Ehgr<8zO6MO?|vjDdkJ#&Sl)3p(aV1i%kSc(g)-8(gguEVG-(OSM}@Q`S*mzY!2=Lr1hA zyHD7=ZX>%fh9%^zPfUz-sbLTAwRNHRAMq(mY1KiQH|nXc?R=`E=Z#L6(EvTUz!FUgm}_Cf{;}I0kGc&}-dr6#L%WxE7T$;s9d)UE=eenF)?i3S zKRrJPPFOc1_-q4CW#T8JOAzuPzL {}); diff --git a/svelte.config.js b/svelte.config.js deleted file mode 100644 index 64da24ed..00000000 --- a/svelte.config.js +++ /dev/null @@ -1,30 +0,0 @@ -import preprocess from 'svelte-preprocess'; -import adapter from '@sveltejs/adapter-static'; - -/** @type {import('@sveltejs/kit').Config} */ -const config = { - // Consult https://github.com/sveltejs/svelte-preprocess - // for more information about preprocessors - preprocess: [ - preprocess({ - postcss: true - }) - ], - - kit: { - adapter: adapter({ - pages: `docs${process.env['BETA'] ? '/beta' : ''}` - }), - paths: process.env['DEPLOY'] - ? { - base: `${process.env['BETA'] ? '/beta' : ''}/mermaid-live-editor` - } - : {}, - ssr: false, - // hydrate the

element in src/app.html - target: '#svelte', - trailingSlash: 'ignore' - } -}; - -export default config; diff --git a/tailwind.config.cjs b/tailwind.config.cjs deleted file mode 100644 index 88ad83f5..00000000 --- a/tailwind.config.cjs +++ /dev/null @@ -1,25 +0,0 @@ -const { tailwindExtractor } = require('tailwindcss/lib/lib/purgeUnusedStyles'); - -module.exports = { - mode: 'aot', - purge: { - content: ['./src/**/*.{html,js,svelte,ts}'], - options: { - defaultExtractor: (content) => [ - // If this stops working, please open an issue at https://github.com/svelte-add/tailwindcss/issues rather than bothering Tailwind Labs about it - ...tailwindExtractor(content), - // Match Svelte class: directives (https://github.com/tailwindlabs/tailwindcss/discussions/1731) - ...[...content.matchAll(/(?:class:)*([\w\d-/:%.]+)/gm)].map( - ([_match, group, ..._rest]) => group - ) - ] - }, - safelist: [/^svelte-[\d\w]+$/] - }, - theme: { - extend: {} - }, - variants: { - extend: {} - } -}; diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 975f193c..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "compilerOptions": { - "moduleResolution": "node", - "module": "es2020", - "lib": ["es2020", "ESNext"], - "target": "es2019", - /** - svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript - to enforce using \`import type\` instead of \`import\` for Types. - */ - "importsNotUsedAsValues": "error", - "isolatedModules": true, - "resolveJsonModule": true, - /** - To have warnings/errors of the Svelte compiler at the correct position, - enable source maps by default. - */ - "sourceMap": true, - "esModuleInterop": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "baseUrl": ".", - "allowJs": true, - "checkJs": true, - "paths": { - "$lib/*": ["src/lib/*"] - } - }, - "include": [ - "src/**/*.d.ts", - "src/**/*.js", - "src/**/*.ts", - "src/**/*.svelte", - "cypress/**/*.ts", - "cypress/**/*.js", - "static/**/*.js" - ] -} diff --git a/docs/edit/index.html b/view/index.html similarity index 97% rename from docs/edit/index.html rename to view/index.html index 18885ade..8cc9cb02 100644 --- a/docs/edit/index.html +++ b/view/index.html @@ -59,7 +59,7 @@ - + @@ -67,7 +67,7 @@