diff --git a/.binder/environment.yml b/.binder/environment.yml index 2f59cb6c..764ddf2d 100644 --- a/.binder/environment.yml +++ b/.binder/environment.yml @@ -54,6 +54,7 @@ dependencies: - docutils >=0.18.1 - jupyter-server-mathjax + - jupyterlab-myst - myst-nb - pkginfo - pydata-sphinx-theme >=0.10.1,<0.11.0 @@ -100,7 +101,6 @@ dependencies: # unit testing - pytest - pytest-console-scripts - - pytest-cov - pytest-html - pytest-tornasync - pytest-xdist diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index e0a3bac0..c23f0cd6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -38,7 +38,7 @@ https://jupyterlab.readthedocs.io/en/latest/getting_started/issue.html - Operating System and version: - Browser and version: - JupyterLab version: -- ipydrawio version(s): +- `ipydrawio-*` version(s):
Required: installed server extensions
@@ -74,10 +74,26 @@ https://jupyterlab.readthedocs.io/en/latest/getting_started/issue.html
 
   Paste the output from your browser JavaScript console replacing the text in here.
 
-  To learn how to open the developer tools in your browser:
-  https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools#How_to_open_the_devtools_in_your_browser
-  If too many messages accumulated after many hours of working in JupyterLab,
-  consider refreshing the window and then reproducing the bug to reduce the noise in the logs.
+To learn how to open the developer tools in your browser:
+https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools#How_to_open_the_devtools_in_your_browser
+If too many messages accumulated after many hours of working in JupyterLab, consider
+refreshing the window and then reproducing the bug to reduce the noise in the logs.
 
 
+ + diff --git a/.github/ISSUE_TEMPLATE/docs.md b/.github/ISSUE_TEMPLATE/docs.md index c1ec4fa9..c25c29a7 100644 --- a/.github/ISSUE_TEMPLATE/docs.md +++ b/.github/ISSUE_TEMPLATE/docs.md @@ -22,3 +22,19 @@ https://jupyterlab.readthedocs.io/en/latest/getting_started/issue.html ## How the project might keep the docs accurate... + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 7419fc73..fe6a3025 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -22,3 +22,21 @@ https://jupyterlab.readthedocs.io/en/latest/getting_started/issue.html ## Design Ideas + + + +s diff --git a/.github/ISSUE_TEMPLATE/release.md b/.github/ISSUE_TEMPLATE/release.md new file mode 100644 index 00000000..deba89bd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/release.md @@ -0,0 +1,48 @@ +--- +name: Release +about: Prepare for a release +labels: maintenance +--- + +- [ ] merge all outstanding PRs +- [ ] ensure the versions have been bumped (check with `doit test:integrity`) +- [ ] ensure the CHANGELOG is up-to-date + - [ ] move the new release to the top of the stack +- [ ] validate on binder +- [ ] validate on ReadTheDocs +- [ ] wait for a successful build of `master` +- [ ] download the `dist` archive and unpack somewhere (maybe a fresh `dist`) +- [ ] create a new release through the GitHub UI + - [ ] paste in the relevant CHANGELOG entries + - [ ] upload the artifacts +- [ ] actually upload to npm.com, pypi.org + ```bash + cd dist + twine upload *.tar.gz *.whl + npm login + npm publish deathbeds-*-$VERSION.tgz + npm logout + ``` +- [ ] postmortem + - [ ] handle `conda-forge` feedstock tasks + - [ ] validate on binder via simplest-possible gists + - [ ] bump to next development version + - [ ] bump the `CACHE_EPOCH` + - [ ] rebuild `yarn.lock` + - [ ] update release procedures with lessons learned + + diff --git a/.github/environment.yml b/.github/environment.yml index 07b2b706..d527a555 100644 --- a/.github/environment.yml +++ b/.github/environment.yml @@ -51,7 +51,6 @@ dependencies: # unit testing - pytest - pytest-console-scripts - - pytest-cov - pytest-html - pytest-tornasync - pytest-xdist diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f5ae1e38..3e8e8977 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -35,9 +35,7 @@ env: # our stuff ATEST_RETRIES: '3' - CACHE_EPOCH: '2' - DOIT_N_BUILD: '-n4' - DOIT_N_TEST: '-n4' + CACHE_EPOCH: '3' CONDA_BUILDERER: mambabuild jobs: @@ -47,7 +45,7 @@ jobs: strategy: matrix: os: [ubuntu] - python-version: ['3.8'] + python-version: ['3.9'] defaults: run: shell: bash -l {0} @@ -86,7 +84,7 @@ jobs: with: path: '**/node_modules' key: | - ${{ env.CACHE_EPOCH }}-${{ runner.os }}-node-build-${{ hashFiles('yarn.lock', '.gitub/pip-build.txt') }} + ${{ env.CACHE_EPOCH }}-${{ runner.os }}-node-build-${{ hashFiles('yarn.lock', '.github/pip-build.txt') }} - name: cache (yarn) uses: actions/cache@v3 @@ -116,14 +114,14 @@ jobs: - name: upload (pip freeze) uses: actions/upload-artifact@v3 with: - name: ipydrawio ${{ github.run_number }} build pip freeze + name: ipydrawio-${{ github.run_number }}-build-pip-freeze path: ./build/pip/ - name: list run: doit list --all --status - name: build - run: doit ${{ matrix.DOIT_N_BUILD }} dist || doit dist + run: doit dist || doit dist - name: status run: doit list --all --status | sort @@ -132,7 +130,7 @@ jobs: - name: upload (dist) uses: actions/upload-artifact@v3 with: - name: ipydrawio ${{ github.run_number }} dist + name: ipydrawio-${{ github.run_number }}-dist path: ./dist conda-build: @@ -144,8 +142,7 @@ jobs: os: ['ubuntu'] steps: - name: configure line endings - run: | - git config --global core.autocrlf false + run: git config --global core.autocrlf false - name: checkout uses: actions/checkout@v3 @@ -169,18 +166,17 @@ jobs: - name: download (dist) uses: actions/download-artifact@v3 with: - name: ipydrawio ${{ github.run_number }} dist + name: ipydrawio-${{ github.run_number }}-dist path: ./dist - name: build (conda) shell: bash -l {0} - run: | - doit -s conda_build + run: doit -s conda_build - name: upload (conda) uses: actions/upload-artifact@v3 with: - name: ipydrawio ${{ github.run_number }} conda + name: ipydrawio-${{ github.run_number }}-conda path: ./build/conda-bld conda-test: @@ -192,8 +188,7 @@ jobs: os: ['ubuntu', 'macos', 'windows'] steps: - name: configure line endings - run: | - git config --global core.autocrlf false + run: git config --global core.autocrlf false - name: checkout uses: actions/checkout@v3 @@ -226,10 +221,10 @@ jobs: - name: download (conda) uses: actions/download-artifact@v3 with: - name: ipydrawio ${{ github.run_number }} conda + name: ipydrawio-${{ github.run_number }}-conda path: ./build/conda-bld - - name: build (conda) + - name: test (conda) shell: bash -l {0} run: | conda index build/conda-bld @@ -243,18 +238,17 @@ jobs: fail-fast: false matrix: os: ['ubuntu', 'macos', 'windows'] - python-version: ['3.7', '3.10'] + python-version: ['3.7', '3.11'] include: - python-version: '3.7' CI_ARTIFACT: 'sdist' - - python-version: '3.10' + - python-version: '3.11' CI_ARTIFACT: 'wheel' env: TESTING_IN_CI: '1' steps: - name: configure line endings - run: | - git config --global core.autocrlf false + run: git config --global core.autocrlf false - name: checkout uses: actions/checkout@v3 @@ -280,28 +274,33 @@ jobs: - name: tweak install (conda) if: matrix.python-version == '3.7' shell: bash -l {0} - run: | - mamba env update -n test --file .github/environment-py37.yml + run: mamba env update -n test --file .github/environment-py37.yml - name: download (dist) uses: actions/download-artifact@v3 with: - name: ipydrawio ${{ github.run_number }} dist + name: ipydrawio-${{ github.run_number }}-dist path: ./dist - - name: test (unix) + - name: unit test (unix) if: matrix.os != 'windows' shell: bash -l {0} - run: | - doit $DOIT_N_TEST test || doit test + run: doit test:pytest:* || doit test:pytest:* + + - name: acceptance test (unix) + if: matrix.os != 'windows' + shell: bash -l {0} + run: doit test || doit test - - name: test (windows) + - name: unit test (windows) if: matrix.os == 'windows' shell: cmd /C CALL {0} - env: - DOIT_N_TEST: '-n1' - run: | - doit %DOIT_N_TEST% test || doit test + run: doit test:pytest:* || doit test:pytest:* + + - name: acceptance test (windows) + if: matrix.os == 'windows' + shell: cmd /C CALL {0} + run: doit test || doit test - name: upload coverage shell: bash -l {0} @@ -311,36 +310,33 @@ jobs: codecov --root ../.. cd ../ipydrawio-export codecov --root ../.. + cd ../ipydrawio-mathjax + codecov --root ../.. - name: upload (utest) if: always() uses: actions/upload-artifact@v3 with: - name: - ipydrawio ${{ github.run_number }} utest ${{ matrix.os }}${{ - matrix.python-version }} + name: |- + ipydrawio-${{ github.run_number }}-utest-${{ matrix.os }}-${{ matrix.python-version }} path: ./build/pytest - name: upload (atest) if: always() uses: actions/upload-artifact@v3 with: - name: - ipydrawio ${{ github.run_number }} atest ${{ matrix.os }}${{ - matrix.python-version }} + name: |- + ipydrawio-${{ github.run_number }}-atest-${{ matrix.os }}-${{matrix.python-version }} path: ./build/atest docs: name: docs - needs: [build] runs-on: ${{ matrix.os }}-latest strategy: fail-fast: false matrix: os: ['ubuntu'] - python-version: ['3.9'] - env: - ATEST_ARGS: '["--exclude","NOTapp:lite"]' + python-version: ['3.10'] steps: - name: checkout uses: actions/checkout@v3 @@ -354,8 +350,18 @@ jobs: restore-keys: | ${{ env.CACHE_EPOCH }}-${{ runner.os }}-conda-docs-${{ matrix.python-version }}- + - name: cache (node) + uses: actions/cache@v3 + id: cache-node-modules + with: + path: '**/node_modules' + key: | + ${{ env.CACHE_EPOCH }}-${{ runner.os }}-node-build-${{ hashFiles('yarn.lock', '.github/pip-build.txt') }} + - name: cache (yarn) uses: actions/cache@v3 + if: steps.cache-node-modules.outputs.cache-hit != 'true' + id: cache-yarn-packages with: path: .yarn-packages key: | @@ -373,41 +379,45 @@ jobs: use-only-tar-bz2: true use-mamba: true - - name: download (dist) - uses: actions/download-artifact@v3 - with: - name: ipydrawio ${{ github.run_number }} dist - path: ./dist + - name: tests (unit) + shell: bash -l {0} + run: doit test:pytest:* || doit test:pytest:* || doit test:pytest:* - name: build docs shell: bash -l {0} - run: | - doit $DOIT_N_TEST docs || doit docs || doit docs + run: doit docs || doit docs || doit docs - name: check docs shell: bash -l {0} - run: | - doit $DOIT_N_TEST check + run: doit check + + - name: tests (robot) + shell: bash -l {0} + run: doit test:robot - - name: lite tests + - name: upload coverage shell: bash -l {0} run: | - doit $DOIT_N_TEST test:robot + set -eux + cd py_packages/ipydrawio + codecov --root ../.. + cd ../ipydrawio-export + codecov --root ../.. + cd ../ipydrawio-mathjax + codecov --root ../.. - - name: upload (atest lite) + - name: upload (atest) if: always() uses: actions/upload-artifact@v3 with: - name: - ipydrawio ${{ github.run_number }} atest ${{ matrix.os }}${{ - matrix.python-version }} + name: |- + ipydrawio-${{ github.run_number }}-atest-${{ matrix.os }}${{ matrix.python-version }} path: ./build/atest - name: upload (docs) if: always() uses: actions/upload-artifact@v3 with: - name: - ipydrawio ${{ github.run_number }} docs ${{ matrix.os }}${{ - matrix.python-version }} + name: |- + ipydrawio-${{ github.run_number }}-docs-${{ matrix.os }}-${{matrix.python-version }} path: ./build/docs diff --git a/.gitignore b/.gitignore index c9ab1fee..e394b183 100644 --- a/.gitignore +++ b/.gitignore @@ -18,15 +18,15 @@ _output *doit.db* atest/output/ build/ +dio/ dist/ docs/api/ts envs/ htmlcov/ node_modules/ -packages/ipydrawio-webpack/dio/ -py_packages/**/src/*/ext/ +py_packages/*/_/ py_packages/ipydrawio-export/ipydrawio-export-* -py_packages/ipydrawio/ipydrawio-* py_packages/ipydrawio-widgets/src/ipydrawio_widgets/js/**/* +py_packages/ipydrawio/ipydrawio-* untitled* Untitled* diff --git a/CHANGELOG.md b/CHANGELOG.md index 02b5b9c2..3044b7c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,14 +10,17 @@ longer under test... but might still work. - support for `notebook 7` will become available some time after a final release - though `jupyterlab 4` will be likely be supported first +- the sizes of all released artifacts are much smaller [#106] + - `mathjax` rendering is no longer included by default + - install it with `(mamba|conda|pip) install ipydrawio-mathjax` #### @deathbeds/ipydrawio 1.2.2 #### @deathbeds/ipydrawio-notebook 1.2.2 -#### @deathbeds/ipydrawio-webpack 20.5.0 +#### @deathbeds/ipydrawio-webpack 20.5.300 -- updates to drawio v20.5.0 +- updates to drawio v20.5.3 [#106] #### @deathbeds/ipydrawio-jupyter-templates 1.2.2 @@ -25,6 +28,16 @@ #### @deathbeds/ipydrawio-pdf 1.2.2 +### ipydrawio-mathjax 1.2.2 + +- now holds the drawio-compatible copy of MathJax [#106] + +#### @deathbeds/ipydrawio-mathjax 1.2.2 + +- initial release + +[#106]: https://github.com/deathbeds/ipydrawio/pull/106 + ## Releases ### ipydrawio-widgets 1.2.1 diff --git a/README.md b/README.md index f954183c..e853f48b 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,8 @@ pip install ipydrawio[all] conda install -c conda-forge ipydrawio-export # or... pip install ipydrawio ipydrawio-export ``` +- `ipydrawio-mathjax` + - include rich LaTeX and AsciiMath typesetting in diagrams > ⓡ: unavailable in RetroLab Ⓛ: unavailable in JupyterLite @@ -130,7 +132,7 @@ browser, powered by [@jgraph/draw-image-export2], `puppeteer`, and `nodejs`. > For example to install all the dependencies: > > ```bash -> conda install -yc conda-forge ipydrawio-export +> conda install -yc conda-forge ipydrawio-export ipydrawio-mathjax > ``` Once installed, you can use the in-browser tools _Export Diagram as PDF_ as well as the diff --git a/conda.recipe/meta.yaml b/conda.recipe/meta.yaml index 05230765..6ec0ca8b 100644 --- a/conda.recipe/meta.yaml +++ b/conda.recipe/meta.yaml @@ -1,4 +1,3 @@ -{% set name = "ipydrawio" %} {% set version = "1.2.2" %} {% set build_number = 0 %} @@ -13,19 +12,24 @@ package: version: {{ version }} source: - - folder: {{ name }}-widgets - url: file://{{ url_base }}/{{ name }}-widgets-{{ version }}.tar.gz - # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz + - folder: ipydrawio-widgets + url: file://{{ url_base }}/ipydrawio-widgets-{{ version }}.tar.gz + # url: https://pypi.io/packages/source/{{ name[0] }}/ipydrawio/ipydrawio-{{ version }}.tar.gz # sha256: - - folder: {{ name }} - url: file://{{ url_base }}/{{ name }}-{{ version }}.tar.gz - # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz + - folder: ipydrawio + url: file://{{ url_base }}/ipydrawio-{{ version }}.tar.gz + # url: https://pypi.io/packages/source/{{ name[0] }}/ipydrawio/ipydrawio-{{ version }}.tar.gz # sha256: - - folder: {{ name }}-export - url: file://{{ url_base }}/{{ name }}-export-{{ version }}.tar.gz - # url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}-export/{{ name }}-export-{{ version }}.tar.gz + - folder: ipydrawio-mathjax + url: file://{{ url_base }}/ipydrawio-mathjax-{{ version }}.tar.gz + # url: https://pypi.io/packages/source/{{ name[0] }}/ipydrawio/ipydrawio-mathjax-{{ version }}.tar.gz + # sha256: + + - folder: ipydrawio-export + url: file://{{ url_base }}/ipydrawio-export-{{ version }}.tar.gz + # url: https://pypi.io/packages/source/{{ name[0] }}/ipydrawio-export/ipydrawio-export-{{ version }}.tar.gz # sha256: build: @@ -44,7 +48,7 @@ test: - echo "tests in outputs" outputs: - - name: {{ name }}-widgets + - name: ipydrawio-widgets version: {{ version }} build: number: {{ build_number }} @@ -59,15 +63,16 @@ outputs: - ipywidgets >=7.6,<9 - python >=3.7 test: + source_files: + - ipydrawio-widgets/tests imports: - ipydrawio_widgets requires: - pip - - pytest-console-scripts - - pytest-cov + - pytest commands: - pip check - - pytest -vv --pyargs ipydrawio_widgets --cov=ipydrawio_widgets --cov-report=term-missing:skip-covered + - pytest -vv ipydrawio-widgets/tests about: home: https://github.com/deathbeds/ipydrawio summary: Draw.io Diagrams as Jupyter Widgets (kernel only) @@ -88,18 +93,19 @@ outputs: - pip - python >=3.7 run: - - ipydrawio-widgets =={{ version }}.* + - {{ pin_subpackage("ipydrawio-widgets", max_pin="x.x.x") }} - jupyterlab ==3.* - jupyterlab_widgets >=1 - lxml - python >=3.7 test: + source_files: + - ipydrawio/tests imports: - ipydrawio requires: - pip - pytest-console-scripts - - pytest-cov - m2-grep # [win] commands: - pip check @@ -110,17 +116,54 @@ outputs: - cat labextensions | grep -ie "@deathbeds/ipydrawio-webpack .*OK" - cat labextensions | grep -ie "@deathbeds/ipydrawio-notebook .*OK" - cat labextensions | grep -ie "@deathbeds/ipydrawio-jupyter-templates .*OK" - - pytest -vv --pyargs ipydrawio --cov=ipydrawio --cov-report=term-missing:skip-covered + - pytest -vv ipydrawio/tests about: home: https://github.com/deathbeds/ipydrawio summary: Draw.io Diagrams as Jupyter Widgets license: Apache-2.0 license_file: - ipydrawio/LICENSE.txt - - ipydrawio/src/ipydrawio/ext/ipd/static/third-party-licenses.json - - ipydrawio/src/ipydrawio/ext/ipdnb/static/third-party-licenses.json - - ipydrawio/src/ipydrawio/ext/ipdwp/static/third-party-licenses.json - - ipydrawio/src/ipydrawio/ext/ipjt/static/third-party-licenses.json + - ipydrawio/_/ipydrawio/static/third-party-licenses.json + - ipydrawio/_/ipydrawio-notebook/static/third-party-licenses.json + - ipydrawio/_/ipydrawio-webpack/static/third-party-licenses.json + - ipydrawio/_/ipydrawio-jupyter-templates/static/third-party-licenses.json + + - name: ipydrawio-mathjax + version: {{ version }} + build: + number: {{ build_number }} + noarch: python + script: + - cd ipydrawio-mathjax && {{ PYTHON }} -m pip install . -vv --no-deps + requirements: + host: + - pip + - python >=3.7 + run: + - {{ pin_subpackage("ipydrawio", max_pin="x.x.x") }} + - python >=3.7 + test: + source_files: + - ipydrawio-mathjax/tests + imports: + - ipydrawio_mathjax + requires: + - m2-grep # [win] + - pip + - pytest + commands: + - pip check + - jupyter labextension list + - jupyter labextension list 1>labextensions 2>&1 + - cat labextensions | grep -ie "@deathbeds/ipydrawio-mathjax .*OK" + - pytest -vv ipydrawio-mathjax/tests + about: + home: https://github.com/deathbeds/ipydrawio + summary: MathJax for ipydrawio + license: Apache-2.0 + license_file: + - ipydrawio-mathjax/LICENSE.txt + - ipydrawio-mathjax/_/ipydrawio-mathjax/static/third-party-licenses.json - name: ipydrawio-export version: {{ version }} @@ -136,7 +179,7 @@ outputs: - pip - python >=3.7 run: - - ipydrawio =={{ version }}.* + - {{ pin_subpackage("ipydrawio", max_pin="x.x.x") }} - lxml - nodejs - pillow @@ -144,12 +187,13 @@ outputs: - python >=3.7 - requests_cache test: + source_files: + - ipydrawio-export/tests imports: - ipydrawio_export requires: - pip - pytest-console-scripts # [unix] - - pytest-cov # [unix] - pytest-tornasync # [unix] - m2-grep # [win] commands: @@ -161,14 +205,14 @@ outputs: - jupyter serverextension list - jupyter serverextension list 1>serverextensions 2>&1 - cat serverextensions | grep -ie "ipydrawio_export .*OK" - - pytest -vv --pyargs ipydrawio_export --script-launch-mode=subprocess --cov=ipydrawio_export --cov-report=term-missing:skip-covered # [unix] + - pytest -vv --script-launch-mode=subprocess ipydrawio-export/tests # [unix] about: home: https://github.com/deathbeds/ipydrawio summary: PDF export for IPyDrawio license: Apache-2.0 license_file: - ipydrawio-export/LICENSE.txt - - ipydrawio-export/src/ipydrawio_export/ext/ipdpdf/static/third-party-licenses.json + - ipydrawio-export/_/ipydrawio-pdf/static/third-party-licenses.json about: home: https://github.com/deathbeds/ipydrawio diff --git a/docs/Diagram Document.ipynb b/docs/Diagram Document.ipynb index c41b57e5..83321892 100644 --- a/docs/Diagram Document.ipynb +++ b/docs/Diagram Document.ipynb @@ -3,7 +3,9 @@ { "cell_type": "markdown", "id": "eligible-lexington", - "metadata": {}, + "metadata": { + "tags": [] + }, "source": [ "# Diagram Document\n", "\n", @@ -74,7 +76,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.11.0" } }, "nbformat": 4, diff --git a/docs/Diagram Rich Display.ipynb b/docs/Diagram Rich Display.ipynb index 2fe44c66..56247d04 100644 --- a/docs/Diagram Rich Display.ipynb +++ b/docs/Diagram Rich Display.ipynb @@ -119,7 +119,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.11.0" } }, "nbformat": 4, diff --git a/docs/Diagram Widget.ipynb b/docs/Diagram Widget.ipynb index ca06cac0..6ab3832e 100644 --- a/docs/Diagram Widget.ipynb +++ b/docs/Diagram Widget.ipynb @@ -259,7 +259,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.11.0" } }, "nbformat": 4, diff --git a/docs/ROADMAP.dio.svg b/docs/ROADMAP.dio.svg index 4679a29a..90b3db97 100644 --- a/docs/ROADMAP.dio.svg +++ b/docs/ROADMAP.dio.svg @@ -1,11 +1,11 @@ - + + +@font-face {font-family: "Fira Code";src: url("https://tools-static.wmflabs.org/fontcdn/css?family=Fira+Code")} +@import url("https://fonts.googleapis.com/css?family=Marker+Felt"); + - + @@ -204,7 +210,7 @@ - + @@ -220,7 +226,7 @@ - + @@ -236,7 +242,7 @@ - + @@ -252,7 +258,7 @@ - + @@ -268,7 +274,7 @@ - + @@ -284,7 +290,7 @@ - + @@ -300,7 +306,7 @@ - + @@ -316,7 +322,7 @@ - + @@ -359,7 +365,7 @@ - + @@ -375,7 +381,7 @@ - + @@ -394,7 +400,7 @@ - + @@ -413,7 +419,7 @@ - + @@ -450,7 +456,7 @@ - + @@ -475,7 +481,7 @@ - + @@ -491,7 +497,7 @@ - + @@ -512,7 +518,7 @@ - + diff --git a/docs/ROADMAP.ipynb b/docs/ROADMAP.ipynb index 3d856c9b..da553b19 100644 --- a/docs/ROADMAP.ipynb +++ b/docs/ROADMAP.ipynb @@ -26,7 +26,8 @@ "\n", "- the out-of-band `puppeteer` provisioning step should be more reliable\n", " - make a separate `conda-forge` package of `puppeteer`/`drawio-export` upstream?\n", - " - use [pyppeteer](https://github.com/pyppeteer/pyppeteer)?" + " - use [pyppeteer](https://github.com/pyppeteer/pyppeteer)?\n", + "- the download and hosting of the drawio assets should be as efficient as possible" ] }, { @@ -146,7 +147,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.11.0" }, "toc-autonumbering": true, "toc-showcode": true, diff --git a/docs/_static/tutorials/designing-jupyter-extensions/affinity.dio.svg b/docs/_static/tutorials/designing-jupyter-extensions/affinity.dio.svg index 1846eea0..bb9fa950 100644 --- a/docs/_static/tutorials/designing-jupyter-extensions/affinity.dio.svg +++ b/docs/_static/tutorials/designing-jupyter-extensions/affinity.dio.svg @@ -1,522 +1,579 @@ - + - + - - - - - - - - - - + + + + + + + + + + - .png + .png - - - - + + + + - - - - - - - - - - + + + + + + + + + + - .pdf + .pdf - - - - - - - + + + + + + + - nodejs + nodejs - - - - + + + + - - - - - - - + + + + + + + - conda + conda - - - - + + + + - - - - - - - + + + + + + + - browsers + browsers - - - - + + + + - - - - - - - - - - + + + + + + + + + + - jupyterlab + jupyterlab - - - - - - - + + + + + + + - document + document - - - - + + + + - - - - - - - + + + + + + + - MIME + MIME - - - - + + + + - - - - + + + + - - - - - - - + + + + + + + - widgets + jupyter + widgets - - - - - - - + + + + + + + - pip + pip - - - - + + + + - - - - - - - - - - + + + + + + + + + + - ipydrawio + ipydrawio - - - - - - + + + + + + - - - - - - - - - - + + + + + + + + + + - ipydrawio- - export + ipydrawio- + export - - - - + + + + - - - - + + + + - - - - - - - - - - + + + + + + + + + + - .svg + .svg - - - - - - + + + + + + - - - - + + + + - - - - - - - + + + + + + + - READERS + READERS - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - + + + + + + + + + + - jlpm + jlpm - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - + + + + + + + + + + - drawio + drawio - - - - + + + + - - - - + + + + - - - - - - - - - - + + + + + + + + + + - .dio + .dio - - - - - - - - - - + + + + + + + + + + - .ipynb + .ipynb - - - - + + + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - + + + + + + + + + + - ipydrawio- - widgets + ipydrawio- + widgets - - - - + + + + - - - - - - - - - - + + + + + + + + + + - jupyterlite + jupyterlite - - - - - - - - - - + + + + + + + + + + - pyolite + pyolite - - - - + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - + + + + + + + + + + - diagrams - .net + diagrams + .net - - - - + + + + + + + + + + + + + + + + + + ipydrawio- + mathjax + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mathjax + + + + + + + diff --git a/docs/_static/tutorials/designing-jupyter-extensions/comp.dio.svg b/docs/_static/tutorials/designing-jupyter-extensions/comp.dio.svg index c64b3935..062ef8d3 100644 --- a/docs/_static/tutorials/designing-jupyter-extensions/comp.dio.svg +++ b/docs/_static/tutorials/designing-jupyter-extensions/comp.dio.svg @@ -1,4 +1,4 @@ - + diff --git a/docs/_static/tutorials/designing-jupyter-extensions/deployment.dio.svg b/docs/_static/tutorials/designing-jupyter-extensions/deployment.dio.svg index ff9be43b..67780963 100644 --- a/docs/_static/tutorials/designing-jupyter-extensions/deployment.dio.svg +++ b/docs/_static/tutorials/designing-jupyter-extensions/deployment.dio.svg @@ -1,9 +1,9 @@ - + - - + + @@ -12,9 +12,9 @@ - + - ipydrawio + ipydrawio @@ -28,8 +28,8 @@ - - + + @@ -38,29 +38,29 @@ - + - ipydrawio + ipydrawio - - + + - + - ipydrawio-webpack + ipydrawio-webpack - - + + - + - ipydrawio-notebook + ipydrawio-notebook @@ -74,39 +74,62 @@ - - + + - + - ipydrawio-jupyter-templates + ipydrawio-jupyter-templates - + - + - + - + - + - ipydrawio-widgets + ipydrawio-widgets - - + + + + + + + + + + + ipydrawio_mathjax + + + + + + ipydrawio-mathjax + + + + + + + + diff --git a/docs/_static/tutorials/designing-jupyter-extensions/mermaid.dio.svg b/docs/_static/tutorials/designing-jupyter-extensions/mermaid.dio.svg index 02630a8a..1310f962 100644 --- a/docs/_static/tutorials/designing-jupyter-extensions/mermaid.dio.svg +++ b/docs/_static/tutorials/designing-jupyter-extensions/mermaid.dio.svg @@ -1,4 +1,4 @@ - + diff --git a/docs/_static/tutorials/designing-jupyter-extensions/mindmap.dio.svg b/docs/_static/tutorials/designing-jupyter-extensions/mindmap.dio.svg index c62e6b74..ad6becd6 100644 --- a/docs/_static/tutorials/designing-jupyter-extensions/mindmap.dio.svg +++ b/docs/_static/tutorials/designing-jupyter-extensions/mindmap.dio.svg @@ -1,4 +1,4 @@ - + diff --git a/docs/_static/tutorials/designing-jupyter-extensions/wireframe.dio.svg b/docs/_static/tutorials/designing-jupyter-extensions/wireframe.dio.svg index e2ed775c..350eb90b 100644 --- a/docs/_static/tutorials/designing-jupyter-extensions/wireframe.dio.svg +++ b/docs/_static/tutorials/designing-jupyter-extensions/wireframe.dio.svg @@ -1,14 +1,14 @@ - + - + - + - + @@ -83,7 +83,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -195,7 +195,7 @@ - + @@ -210,7 +210,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -242,7 +242,7 @@ - + @@ -257,7 +257,7 @@ - + @@ -316,7 +316,7 @@ - + @@ -332,79 +332,79 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/docs/_static/what-can-you-draw.dio.svg b/docs/_static/what-can-you-draw.dio.svg index 154e2385..9c5f0d48 100644 --- a/docs/_static/what-can-you-draw.dio.svg +++ b/docs/_static/what-can-you-draw.dio.svg @@ -1,6 +1,7 @@ - + - + @@ -15,7 +16,7 @@ - + ...or whatever you can imagine diff --git a/docs/environment.yml b/docs/environment.yml index e78b8fcb..3b0ebba2 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -25,6 +25,7 @@ dependencies: - docutils >=0.18.1 - jupyter-server-mathjax + - jupyterlab-myst - myst-nb - pkginfo - pydata-sphinx-theme >=0.10.1,<0.11.0 @@ -70,7 +71,6 @@ dependencies: # unit testing - pytest - pytest-console-scripts - - pytest-cov - pytest-html - pytest-tornasync - pytest-xdist diff --git a/docs/tutorials/designing-jupyter-extensions/index.ipynb b/docs/tutorials/designing-jupyter-extensions/index.ipynb index 6856077f..5d4905bb 100644 --- a/docs/tutorials/designing-jupyter-extensions/index.ipynb +++ b/docs/tutorials/designing-jupyter-extensions/index.ipynb @@ -286,7 +286,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "9976fbb6-e3fb-43b4-a30d-a0ef1d182bbc", "metadata": {}, "outputs": [], @@ -305,17 +305,21 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "168ffd51-051f-40b2-83f5-c1d3c08a3a8d", "metadata": {}, "outputs": [], "source": [ - "packages = {\"#dae8fc\": \"ipydrawio\", \"#f8cecc\": \"ipydrawio_export\"}" + "packages = {\n", + " \"#dae8fc\": \"ipydrawio\",\n", + " \"#f8cecc\": \"ipydrawio_export\",\n", + " \"#d5e8d4\": \"ipydrawio_mathjax\"\n", + "}" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "45a41a7b-3f73-4e74-8c85-9cf2d7d8b012", "metadata": {}, "outputs": [], @@ -332,7 +336,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "ebbd6b25-bcf2-4047-8c72-adde387ec0ee", "metadata": {}, "outputs": [], @@ -374,25 +378,10 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "id": "42de7083-e97a-4b52-a647-9dd718d20b08", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "ipydrawio\n", - "... observed ['@deathbeds/ipydrawio', '@deathbeds/ipydrawio-jupyter-templates', '@deathbeds/ipydrawio-notebook', '@deathbeds/ipydrawio-webpack']\n", - "... expected ['@deathbeds/ipydrawio', '@deathbeds/ipydrawio-jupyter-templates', '@deathbeds/ipydrawio-notebook', '@deathbeds/ipydrawio-webpack']\n", - "... ipydrawio is 🚢-shape!\n", - "ipydrawio_export\n", - "... observed ['@deathbeds/ipydrawio-pdf']\n", - "... expected ['@deathbeds/ipydrawio-pdf']\n", - "... ipydrawio_export is 🚢-shape!\n" - ] - } - ], + "outputs": [], "source": [ "test_deployment()" ] @@ -450,7 +439,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.11.0" } }, "nbformat": 4, diff --git a/docs/tutorials/working-with-custom-libraries/index.ipynb b/docs/tutorials/working-with-custom-libraries/index.ipynb index 2d633012..cb6493f3 100644 --- a/docs/tutorials/working-with-custom-libraries/index.ipynb +++ b/docs/tutorials/working-with-custom-libraries/index.ipynb @@ -292,7 +292,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.1" + "version": "3.11.0" } }, "nbformat": 4, diff --git a/dodo.py b/dodo.py index 70c0c8bf..aef5ac9b 100644 --- a/dodo.py +++ b/dodo.py @@ -29,6 +29,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import os import shutil import subprocess import time @@ -119,7 +120,7 @@ def _clean(): def task_setup(): """perform general steps to get ready for development, testing, or releasing""" - if not P.TESTING_IN_CI: + if not (P.CI and P.YARN_INTEGRITY.exists()): yield dict( name="js", file_dep=[P.PACKAGE, P.OK_SUBMODULES] @@ -131,6 +132,7 @@ def task_setup(): targets=[P.YARN_INTEGRITY], ) + if not P.TESTING_IN_CI: yield dict( name="js:ipde", file_dep=[P.IPDE_DIE2_PACKAGE_JSON, P.YARN_INTEGRITY], @@ -455,7 +457,7 @@ def task_build(): *sum(P.JS_SCHEMAS.values(), []), ], actions=[[*P.LERNA, "run", "build:pre", "--stream"]], - targets=[P.IPDWP_APP], + targets=[P.IPDWP_APP, P.IPDM_STARTUP], ), P.OK_JS_BUILD_PRE, ) @@ -954,9 +956,46 @@ def task_provision(): ) -def _pytest(setup_py, *pytest_args): +def _pytest(setup_py, pycov_args, pytest_args): + return CmdAction( + [ + *P.PYM, + "coverage", + "run", + *pycov_args, + "-m", + "pytest", + *P.PYTEST_ARGS, + *pytest_args, + ], + shell=False, + cwd=str(setup_py.parent), + env=dict( + COVERAGE_PROCESS_START="1", + **os.environ, + ), + ) + + +def _pycov_combine(setup_py): + return CmdAction( + [*P.PYM, "coverage", "combine"], + shell=False, + cwd=str(setup_py.parent), + ) + + +def _pycov_report(setup_py): + return CmdAction( + [*P.PYM, "coverage", "report", "--skip-covered", "--show-missing"], + shell=False, + cwd=str(setup_py.parent), + ) + + +def _pycov_html(setup_py, *pycov_html_args): return CmdAction( - [*P.PYM, "pytest", *P.PYTEST_ARGS, *pytest_args], + [*P.PYM, "coverage", "html", *pycov_html_args], shell=False, cwd=str(setup_py.parent), ) @@ -991,10 +1030,14 @@ def task_test(): html = P.BUILD / f"pytest/{pkg}/test.html" htmlcov = P.BUILD / f"pytest/{pkg}/htmlcov" pytest_args = [ - f"--cov-report=html:{htmlcov}", + "-vv", + "--tb=long", f"--html={html}", "--self-contained-html", + "--script-launch-mode=subprocess", ] + pycov_args = [] + pycov_html_args = [f"--directory={htmlcov.parent}"] if pkg == P.IPD.name: pytest_args += ["-n", "auto"] @@ -1011,10 +1054,13 @@ def task_test(): P.OK_PIP_CHECK, ], actions=[ - (P.delete_some, [htmlcov, html]), - _pytest(setup, *pytest_args), + (P.delete_some, [html]), + _pytest(setup, pycov_args, pytest_args), + _pycov_combine(setup), + _pycov_html(setup, *pycov_html_args), + _pycov_report(setup), ], - targets=[htmlcov / "status.json", html], + targets=[html], ), P.OK_PYTEST[pkg], ) diff --git a/packages/ipydrawio-jupyter-templates/package.json b/packages/ipydrawio-jupyter-templates/package.json index 4654a3da..2c8c4ab7 100644 --- a/packages/ipydrawio-jupyter-templates/package.json +++ b/packages/ipydrawio-jupyter-templates/package.json @@ -35,7 +35,7 @@ "jupyterlab": { "extension": "lib/plugin.js", "schemaDir": "schema", - "outputDir": "../../py_packages/ipydrawio/src/ipydrawio/ext/ipjt", + "outputDir": "../../py_packages/ipydrawio/_/ipydrawio-jupyter-templates", "sharedPackages": { "@deathbeds/ipydrawio": { "bundled": false, diff --git a/packages/ipydrawio-mathjax/.npmignore b/packages/ipydrawio-mathjax/.npmignore new file mode 100644 index 00000000..57902f08 --- /dev/null +++ b/packages/ipydrawio-mathjax/.npmignore @@ -0,0 +1,32 @@ +*.tgz +**/.ipynb_checkpoints +dio/.git* +dio/*.md +dio/*/.npmignore +dio/*/*.orig +dio/connect/* +dio/dropbox* +dio/electron* +dio/git*.html +dio/github* +dio/js/diagramly/* +dio/js/dropbox/* +dio/js/grapheditor/* +dio/js/integrate.min.js +dio/js/onedrive/* +dio/js/viewer.min.js +dio/math/.travis.yml +dio/math/jax/output/HTML-CSS/* +dio/META-INF/* +dio/mxgraph/mxClient.js +dio/onedrive* +dio/onedrive*.html +dio/package.json +dio/service-worker* +dio/teams* +dio/vsdx* +dio/WEB-INF/* +dio/workbox* +dio/yarn.lock +drawio/ +scripts/* diff --git a/packages/ipydrawio-mathjax/LICENSE.txt b/packages/ipydrawio-mathjax/LICENSE.txt new file mode 100644 index 00000000..8dada3ed --- /dev/null +++ b/packages/ipydrawio-mathjax/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/ipydrawio-mathjax/README.md b/packages/ipydrawio-mathjax/README.md new file mode 100644 index 00000000..8cf95e96 --- /dev/null +++ b/packages/ipydrawio-mathjax/README.md @@ -0,0 +1,39 @@ +# `@deathbeds/ipydrawio-weback` + +> JupyterLab 3 Webpack-friendly [drawio](https://www.diagrams.net) assets for embedding +> in lab extensions + +If you'd just like to _use_ this extension, please run: + +```bash +mamba install -c conda-forge ipydrawio # recommended, or... +conda install -c conda-forge ipydrawio # or... +pip install ipydrawio +``` + +See the [project repo](https://github.com/deathbeds/ipydrawio) for more information. + +## Open Source + +This work is licensed under the [Apache-2.0] License. + +The vendored [@jgraph/drawio](https://github.com/jgraph/drawio) is also licensed under +the [Apache-2.0] license. + +``` +Copyright 2022 ipydrawio contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` + +[apache-2.0]: https://github.com/deathbeds/ipydrawio/blob/master/LICENSE.txt diff --git a/packages/ipydrawio-mathjax/lib/_static.js b/packages/ipydrawio-mathjax/lib/_static.js new file mode 100644 index 00000000..51dda227 --- /dev/null +++ b/packages/ipydrawio-mathjax/lib/_static.js @@ -0,0 +1,114 @@ + +/** + All drawio files that should be included in @deathbeds/ipydrawio-mathjax + + This file generated from https://github.com/jgraph/drawio +*/ + +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/assistive-mml.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/complexity.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/explorer.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/semantic-enrich.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/sre.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/adaptors/liteDOM.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/core.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/asciimath.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/mml/entities.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/mml/extensions/mml3.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/mml/extensions/mml3.sef.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/mml.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/action.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/all-packages.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/ams.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/amscd.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/autoload.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/bbox.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/boldsymbol.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/braket.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/bussproofs.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/cancel.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/cases.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/centernot.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/color.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/colortbl.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/colorv2.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/configmacros.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/empheq.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/enclose.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/extpfeil.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/gensymb.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/html.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/mathtools.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/mhchem.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/newcommand.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/noerrors.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/noundefined.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/physics.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/require.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/setoptions.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/tagformat.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/textcomp.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/textmacros.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/unicode.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/upgreek.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/verb.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex-base.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex-full.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/latest.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/loader.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/mml-chtml.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/mml-svg.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/node-main.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/tex.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Zero.woff'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/svg/fonts/tex.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/svg.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/base.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/ca.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/da.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/de.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/en.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/es.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/fr.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/hi.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/it.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/nb.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/nemeth.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/nn.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/sv.json'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/startup.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-chtml-full-speech.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-chtml-full.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-chtml.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-mml-chtml.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-mml-svg.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-svg-full.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-svg.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/ui/lazy.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/ui/menu.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/ui/safe.js'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/package.json'; \ No newline at end of file diff --git a/packages/ipydrawio-mathjax/lib/index.d.ts b/packages/ipydrawio-mathjax/lib/index.d.ts new file mode 100644 index 00000000..f5a3e18a --- /dev/null +++ b/packages/ipydrawio-mathjax/lib/index.d.ts @@ -0,0 +1 @@ +export const DRAWIO_MATHJAX_URL: string; diff --git a/packages/ipydrawio-mathjax/lib/index.js b/packages/ipydrawio-mathjax/lib/index.js new file mode 100644 index 00000000..92ce2742 --- /dev/null +++ b/packages/ipydrawio-mathjax/lib/index.js @@ -0,0 +1,8 @@ +import { URLExt, PageConfig } from '@jupyterlab/coreutils'; +/** + * The path on the server to base application HTML, to be served in an iframe + */ +export const DRAWIO_MATHJAX_URL = URLExt.join( + PageConfig.getOption('fullLabextensionsUrl'), + '@deathbeds/ipydrawio-mathjax/static/dio/' +); diff --git a/packages/ipydrawio-mathjax/lib/plugin.js b/packages/ipydrawio-mathjax/lib/plugin.js new file mode 100644 index 00000000..50899099 --- /dev/null +++ b/packages/ipydrawio-mathjax/lib/plugin.js @@ -0,0 +1,27 @@ +// Copyright 2022 ipydrawio contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +let DEBUG = false; + +const plugin = { + id: '@deathbeds/ipydrawio-mathjax:plugin', + activate: async () => { + if (DEBUG) { + await import('./_static'); + } + }, + autoStart: true, +}; + +export default plugin; diff --git a/packages/ipydrawio-mathjax/package.json b/packages/ipydrawio-mathjax/package.json new file mode 100644 index 00000000..e84d083b --- /dev/null +++ b/packages/ipydrawio-mathjax/package.json @@ -0,0 +1,44 @@ +{ + "name": "@deathbeds/ipydrawio-mathjax", + "version": "1.2.2", + "description": "MathJax for ipydrawio", + "license": "Apache-2.0", + "author": "IPyDrawio Contributors", + "homepage": "https://ipydrawio.rtfd.io", + "repository": { + "type": "git", + "url": "https://github.com/deathbeds/ipydrawio.git" + }, + "bugs": { + "url": "https://github.com/deathbeds/ipydrawio/issues" + }, + "main": "lib/index.js", + "types": "lib/index.d.ts", + "dependencies": { + "@deathbeds/ipydrawio-webpack": "^20.5.300", + "@jupyterlab/application": "^3.1.0" + }, + "devDependencies": { + "@jupyterlab/builder": "^3.4.0" + }, + "keywords": [ + "drawio", + "webpack" + ], + "jupyterlab": { + "extension": "lib/plugin.js", + "outputDir": "../../py_packages/ipydrawio-mathjax/_/ipydrawio-mathjax", + "webpackConfig": "./webpack.config.js", + "discovery": { + "server": { + "base": { + "name": "ipydrawio-mathjax" + }, + "managers": [ + "pip", + "conda" + ] + } + } + } +} diff --git a/packages/ipydrawio-mathjax/webpack.config.js b/packages/ipydrawio-mathjax/webpack.config.js new file mode 100644 index 00000000..c9051203 --- /dev/null +++ b/packages/ipydrawio-mathjax/webpack.config.js @@ -0,0 +1,27 @@ +// Copyright 2022 ipydrawio contributors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +module.exports = { + optimization: { + minimize: false, + }, + module: { + rules: [ + { + test: /dio\/.*/, + type: 'asset/resource', + }, + ], + }, +}; diff --git a/packages/ipydrawio-notebook/package.json b/packages/ipydrawio-notebook/package.json index d34c91d6..513e971d 100644 --- a/packages/ipydrawio-notebook/package.json +++ b/packages/ipydrawio-notebook/package.json @@ -19,7 +19,7 @@ }, "jupyterlab": { "extension": "lib/plugin.js", - "outputDir": "../../py_packages/ipydrawio/src/ipydrawio/ext/ipdnb", + "outputDir": "../../py_packages/ipydrawio/_/ipydrawio-notebook", "sharedPackages": { "@deathbeds/ipydrawio": { "bundled": false, diff --git a/packages/ipydrawio-pdf/package.json b/packages/ipydrawio-pdf/package.json index 9b1551e8..a0655a43 100644 --- a/packages/ipydrawio-pdf/package.json +++ b/packages/ipydrawio-pdf/package.json @@ -18,7 +18,7 @@ }, "jupyterlab": { "extension": "lib/plugin.js", - "outputDir": "../../py_packages/ipydrawio-export/src/ipydrawio_export/ext/ipdpdf", + "outputDir": "../../py_packages/ipydrawio-export/_/ipydrawio-pdf", "sharedPackages": { "@deathbeds/ipydrawio": { "bundled": false, diff --git a/packages/ipydrawio-webpack/.npmignore b/packages/ipydrawio-webpack/.npmignore index e29c65a0..c5dca7c5 100644 --- a/packages/ipydrawio-webpack/.npmignore +++ b/packages/ipydrawio-webpack/.npmignore @@ -1,22 +1,38 @@ *.tgz **/.ipynb_checkpoints -dio/.git* dio/*.md +dio/*/.git* dio/*/.npmignore dio/*/*.orig +dio/*/bower.json +dio/*/composer.json +dio/*/CONTRIBUTING.md +dio/*/README.md +dio/CITATION.cff dio/connect/* dio/dropbox* dio/electron* dio/git*.html dio/github* dio/js/diagramly/* +dio/js/dropbox/* +dio/js/grapheditor/* +dio/js/integrate.min.js +dio/js/onedrive/* +dio/js/viewer.min.js dio/math/.travis.yml dio/math/jax/output/HTML-CSS/* -dio/META-INF/* +dio/META-INF +dio/mxgraph/mxClient.js dio/onedrive* dio/onedrive*.html dio/package.json -dio/WEB-INF/* +dio/service-worker* +dio/stencils +dio/teams* +dio/vsdx* +dio/WEB-INF +dio/workbox* dio/yarn.lock drawio/ scripts/* diff --git a/packages/ipydrawio-webpack/drawio b/packages/ipydrawio-webpack/drawio index 5e0079fb..a46fc8c6 160000 --- a/packages/ipydrawio-webpack/drawio +++ b/packages/ipydrawio-webpack/drawio @@ -1 +1 @@ -Subproject commit 5e0079fb96102d8b272e4dfda435390d31377659 +Subproject commit a46fc8c6238dabd3d077107e0f6818e8ae00012e diff --git a/packages/ipydrawio-webpack/lib/_static.js b/packages/ipydrawio-webpack/lib/_static.js index 5a260dff..9cb2f29b 100644 --- a/packages/ipydrawio-webpack/lib/_static.js +++ b/packages/ipydrawio-webpack/lib/_static.js @@ -1,11 +1,10 @@ /** - All files that should be copied to the labextension folder, available as: + All drawio files that should be included in @deathbeds/ipydrawio-webpack This file generated from https://github.com/jgraph/drawio */ -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/CITATION.cff'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/clear.html'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/disableUpdate.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/export-fonts.css'; @@ -421,8 +420,15 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/atlassian import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/atlassian/Statuspage_Logo.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/atlassian/Stride_Logo.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/atlassian/Trello_Logo.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Azure_Applied_AI.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Azure_Experimentation_Studio.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Azure_Object_Understanding.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Batch_AI.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Bot_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Cognitive_Services.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Genomics.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Language_Services.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Machine_Learning.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Machine_Learning_Studio_Classic_Web_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Machine_Learning_Studio_Web_Service_Plans.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai_machine_learning/Machine_Learning_Studio_Workspaces.svg'; @@ -430,7 +436,10 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ai import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/Analysis_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/Azure_Databricks.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/Azure_Synapse_Analytics.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/Azure_Workbooks.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/Data_Lake_Analytics.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/Data_Lake_Store_Gen1.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/Endpoint_Analytics.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/Event_Hub_Clusters.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/Event_Hubs.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/analytics/HD_Insight_Clusters.svg'; @@ -445,6 +454,9 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ap import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/app_services/CDN_Profiles.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/app_services/Notification_Hubs.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/app_services/Search_Services.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/azure_ecosystem/Applens.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/azure_ecosystem/Azure_Hybrid_Center.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/azure_ecosystem/Collaborative_Service.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/azure_stack/Azure_Stack.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/azure_stack/Capacity.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/azure_stack/Infrastructure_Backup.svg'; @@ -457,11 +469,13 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/az import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/blockchain/ABS_Member.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/blockchain/Azure_Blockchain_Service.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/blockchain/Azure_Token_Service.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/blockchain/Blockchain_Applications.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/blockchain/Consortium.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/blockchain/Outbound_Connection.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/App_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Automanaged_VM.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Availability_Sets.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Azure_Compute_Galleries.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Azure_Spring_Cloud.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Batch_Accounts.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Cloud_Services_Classic.svg'; @@ -472,12 +486,20 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/co import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Disks_Classic.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Disks_Snapshots.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Function_Apps.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Host_Groups.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Hosts.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Image_Definitions.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Image_Templates.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Image_Versions.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Images.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Kubernetes_Services.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Maintenance_Configuration.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Managed_Service_Fabric.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Mesh_Applications.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Metrics_Advisor.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/OS_Images_Classic.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Restore_Points.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Restore_Points_Collections.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Service_Fabric_Clusters.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/Shared_Image_Galleries.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/compute/VM_Images_Classic.svg'; @@ -499,7 +521,10 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/da import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_Database_Migration_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_Database_MySQL_Server.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_Database_PostgreSQL_Server.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_Database_PostgreSQL_Server_Group.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_Purview_Accounts.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_SQL.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_SQL_Edge.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_SQL_Server_Stretch_Databases.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_SQL_VM.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Azure_Synapse_Analytics.svg'; @@ -513,10 +538,12 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/da import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/SQL_Elastic_Pools.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/SQL_Managed_Instance.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/SQL_Server.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/SQL_Server_Registries.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/SSIS_Lift_And_Shift_IR.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/databases/Virtual_Clusters.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/devops/Application_Insights.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/devops/Azure_DevOps.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/devops/CloudTest.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/devops/DevTest_Labs.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/devops/Lab_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/All_Resources.svg'; @@ -580,6 +607,7 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ge import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Power_Up.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Powershell.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Preview.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Preview_Features.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Process_Explorer.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Production_Ready_Database.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Quickstart_Center.svg'; @@ -605,7 +633,9 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ge import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Table.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Tag.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Tags.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Templates.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Toolbox.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Troubleshoot.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Versions.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Web_Slots.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Web_Test.svg'; @@ -613,49 +643,80 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ge import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Website_Staging.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Workbooks.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/general/Workflow.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/AAD_Licenses.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Active_Directory_Connect_Health.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/App_Registrations.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Azure_AD_B2C.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Azure_AD_Domain_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Azure_AD_Identity_Protection.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Azure_AD_Privilege_Identity_Management.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Azure_Active_Directory.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Azure_Information_Protection.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Custom_Azure_AD_Roles.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Enterprise_Applications.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Groups.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Identity_Governance.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Managed_Identities.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/PIM.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Tenant_Properties.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Users.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/identity/Verifiable_Credentials.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/API_Management_Services.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/App_Configuration.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Azure_API_for_FHIR.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Azure_Data_Catalog.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Event_Grid_Domains.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Event_Grid_Subscriptions.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Event_Grid_Topics.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Integration_Accounts.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Integration_Service_Environments.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Logic_Apps.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Logic_Apps_Custom_Connector.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Partner_Namespace.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Partner_Registration.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Partner_Topic.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Relays.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/SQL_Data_Warehouses.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/SendGrid_Accounts.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Service_Bus.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/Software_as_a_Service.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/integration/System_Topic.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/internet_of_things/Digital_Twins.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/internet_of_things/Logic_Apps.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/internet_of_things/Time_Series_Insights_Access_Policies.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Azure_AD_Roles_and_Administrators.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Client_Apps.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Device_Compliance.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Device_Configuration.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Device_Enrollment.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Device_Security_Apple.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Device_Security_Google.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Device_Security_Windows.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Devices.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Exchange_Access.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Intune.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Intune_For_Education.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Mindaro.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Security_Baselines.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Software_Updates.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/Tenant_Status.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/intune/eBooks.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Azure_Maps_Accounts.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Device_Provisioning_Services.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Digital_Twins.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Event_Hubs.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Function_Apps.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Industrial_IoT.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/IoT_Central_Applications.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/IoT_Edge.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/IoT_Hub.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Logic_Apps.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Notification_Hubs.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Stream_Analytics_Jobs.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Time_Series_Data_Sets.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Time_Series_Insights_Environments.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Time_Series_Insights_Event_Sources.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/iot/Windows10_Core_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Activity_Log.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Advisor.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Alerts.svg'; @@ -666,11 +727,13 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ma import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Blueprints.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Compliance.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Cost_Management_and_Billing.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Customer_Lockbox_for_MS_Azure.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Diagnostics_Settings.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Education.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Log_Analytics_Workspaces.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/MachinesAzureArc.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Managed_Applications_Center.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Managed_Desktop.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Metrics.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Monitor.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/My_Customers.svg'; @@ -678,61 +741,136 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/ma import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Policy.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Recovery_Services_Vaults.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Resource_Graph_Explorer.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Scheduler_Job_Collections.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Service_Catalog_MAD.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Service_Providers.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Solutions.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/Universal_Print.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/management_governance/User_Privacy.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/menu/Keys.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/migrate/Azure_Migrate.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/migrate/Cost_Management_and_Billing.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/migrate/Data_Box.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/migrate/Data_Box_Edge.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/migrate/Recovery_Services_Vaults.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/mixed_reality/Remote_Rendering.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/mixed_reality/Spatial_Anchor_Accounts.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/monitor/SAP_Azure_Monitor.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Application_Gateways.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Azure_Firewall_Manager.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Bastions.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/CDN_Profiles.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Connections.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/DDoS_Protection_Plans.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/DNS_Private_Resolver.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/DNS_Zones.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/ExpressRoute_Circuits.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Firewalls.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Front_Doors.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/IP_Groups.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Load_Balancer_Hub.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Load_Balancers.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Local_Network_Gateways.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/NAT.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Network_Interfaces.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Network_Security_Groups.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Network_Watcher.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/On_Premises_Data_Gateways.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Private_Endpoint.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Private_Link.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Private_Link_Hub.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Private_Link_Service.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Proximity_Placement_Groups.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Public_IP_Addresses.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Public_IP_Addresses_Classic.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Public_IP_Prefixes.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Reserved_IP_Addresses_Classic.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Resource_Management_Private_Link.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Route_Filters.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Route_Tables.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Service_Endpoint_Policies.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Spot_VM.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Spot_VMSS.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Traffic_Manager_Profiles.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Virtual_Network_Gateways.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Virtual_Networks.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Virtual_Networks_Classic.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Virtual_Router.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Virtual_WANs.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/networking/Web_Application_Firewall_Policies_WAF.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/ACS_Solutions_Builder.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/API_Proxy.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/AVS_VM.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Aquila.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/AzureAttestation.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Backup_Center.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Chaos_Studio.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Cloud_Shell.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Communication_Services.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Edge_Hardware_Center.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_HPC_Workbench.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Load_Testing.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Monitor_Dashboard.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Network_Function_Manager.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Network_Manager.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Orbital.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Quotas.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Sphere.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azure_Support_Center_Blue.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Azurite.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Bare_Metal_Infrastructure.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Ceres.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Cloud_Services_(extended_support).svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Compliance_Center.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Confidential_Ledger.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Connected_Cache.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Connected_Vehicle_Platform.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Container_App_Environments.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Custom_IP_Prefix.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Dashboard_Hub.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Dedicated_HSM.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Detonation.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Device_Update_IoT_Hub.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Disk_Pool.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Edge_Management.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Exchange_On_Premises_Access.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/ExpressRoute_Direct.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Fiji.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Grafana.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Image_Definition.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Image_Version.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Instance_Pools.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Internet_Analyzer_Profiles.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Intune_Trends.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Load_Testing.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Local_Network_Gateways.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Managed_Instance_Apache_Cassandra.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Marketplace_Management.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Mission_Landing_Zone.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Modular_Data_Center.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Open_Supply_Chain_Platform.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Peering_Service.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Private_Mobile_Network.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/RTOS.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Reserved_Capacity.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Reserved_Capacity_Groups.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Resource_Mover.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/SSH_Keys.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Savings_Plan.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Sonic_Dash.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Storage_Tasks.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Template_Specs.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Test_Base.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Universal_Print.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Update_Center.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/VM_Application_Definition.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/VM_Application_Version.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/WAC.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Web_App_Database.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Web_Jobs.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Windows_Notification_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Windows_Virtual_Desktop.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/other/Worker_Container_App.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/preview/Azure_Cloud_Shell.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/preview/Azure_Sphere.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/preview/Azure_Workbooks.svg'; @@ -746,10 +884,12 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/se import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/security/Azure_Defender.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/security/Azure_Sentinel.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/security/Conditional_Access.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/security/Detonation.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/security/ExtendedSecurityUpdates.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/security/Key_Vaults.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/security/Keys.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/security/Security_Center.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/storage/Azure_Fileshare.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/storage/Azure_HCP_Cache.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/storage/Azure_NetApp_Files.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/storage/Azure_Stack_Edge.svg'; @@ -764,6 +904,7 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/st import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/storage/StorSimple_Device_Managers.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/storage/Storage_Accounts.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/storage/Storage_Accounts_Classic.svg'; +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/storage/Storage_Explorer.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/storage/Storage_Sync_Services.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/web/Azure_Media_Service.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/img/lib/azure2/web/Notification_Hub_Namespaces.svg'; @@ -1750,32 +1891,16 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/clear.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/cryptojs/aes.min.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/deflate/base64.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/deflate/pako.min.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/dropbox/Dropbox-sdk.min.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/embed.dev.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/export-init.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/export.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/extensions.min.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/freehand/perfect-freehand.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Actions.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Dialogs.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Editor.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/EditorUi.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Format.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Graph.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Init.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Menus.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Shapes.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Sidebar.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/grapheditor/Toolbar.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/integrate.min.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/jquery/jquery-3.6.0.min.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/jscolor/jscolor.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/jszip/jszip.min.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/math-print.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/mermaid/mermaid.min.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/onedrive/OneDrive.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/onedrive/OneDriveOrig.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/onedrive/mxODPicker.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/open.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/orgchart/OrgChart.Layout.min.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/orgchart/bridge.collections.min.js'; @@ -1791,117 +1916,6 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/simplepeer/sim import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/spin/spin.min.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/stencils.min.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/viewer-static.min.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/js/viewer.min.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/.github/FUNDING.yml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/bower.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/composer.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/assistive-mml.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/complexity.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/explorer.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/semantic-enrich.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/a11y/sre.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/adaptors/liteDOM.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/core.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/asciimath.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/mml/entities.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/mml/extensions/mml3.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/mml/extensions/mml3.sef.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/mml.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/action.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/all-packages.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/ams.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/amscd.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/autoload.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/bbox.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/boldsymbol.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/braket.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/bussproofs.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/cancel.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/cases.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/centernot.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/color.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/colortbl.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/colorv2.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/configmacros.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/empheq.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/enclose.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/extpfeil.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/gensymb.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/html.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/mathtools.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/mhchem.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/newcommand.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/noerrors.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/noundefined.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/physics.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/require.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/setoptions.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/tagformat.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/textcomp.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/textmacros.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/unicode.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/upgreek.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex/extensions/verb.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex-base.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex-full.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/input/tex.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/latest.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/loader.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/mml-chtml.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/mml-svg.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/node-main.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/tex.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_AMS-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Bold.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Calligraphic-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Bold.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Fraktur-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Main-Bold.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Main-Italic.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Main-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Math-BoldItalic.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Math-Italic.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Math-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Bold.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Italic.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_SansSerif-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Script-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Size1-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Size2-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Size3-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Size4-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Typewriter-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Bold.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Vector-Regular.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml/fonts/woff-v2/MathJax_Zero.woff'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/chtml.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/svg/fonts/tex.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/output/svg.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/base.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/ca.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/da.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/de.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/en.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/es.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/fr.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/hi.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/it.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/nb.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/nemeth.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/nn.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/sre/mathmaps/sv.json'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/startup.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-chtml-full-speech.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-chtml-full.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-chtml.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-mml-chtml.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-mml-svg.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-svg-full.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/tex-svg.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/ui/lazy.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/ui/menu.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/es5/ui/safe.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/math/package.json'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/mxgraph/css/common.css'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/mxgraph/css/explorer.css'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/mxgraph/images/button.gif'; @@ -1921,7 +1935,6 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/mxgraph/images/wa import '!!file-loader?name=[path][name].[ext]&context=.!../dio/mxgraph/images/warning.png'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/mxgraph/images/window-title.gif'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/mxgraph/images/window.gif'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/mxgraph/mxClient.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/newDiagramCats/images/icon-flowchart.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/newDiagramCats/images/icon-mind-map.svg'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/newDiagramCats/images/icon-network.svg'; @@ -2016,8 +2029,6 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/resources/dia_uk. import '!!file-loader?name=[path][name].[ext]&context=.!../dio/resources/dia_vi.txt'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/resources/dia_zh-tw.txt'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/resources/dia_zh.txt'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/service-worker.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/service-worker.js.map'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/shapes/bpmn/mxBpmnShape2.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/shapes/er/mxER.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/shapes/ios7/mxIOS7Ui.js'; @@ -2062,203 +2073,6 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/shapes/pid2/mxPid import '!!file-loader?name=[path][name].[ext]&context=.!../dio/shapes/pid2/mxPidValves.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/shapes/rack/mxRack.js'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/shortcuts.svg'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/LICENSE'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/android/android.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/arrows.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/atlassian.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/compute.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/content_delivery.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/database.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/deployment_management.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/groups.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/messaging.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/misc.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/networking.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/non_service_specific.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/on_demand_workforce.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws/storage.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/administration_and_security.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/analytics.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/app_services.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/compute_and_networking.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/database.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/deployment_and_management.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/developer_tools.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/enterprise_applications.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/game_development.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/internet_of_things.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/management_tools.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/mobile_services.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/networking.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/non-service_specific.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/on-demand_workforce.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/sdks.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/security_and_identity.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws2/storage_and_content_delivery.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws3.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws3d.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/aws4.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/azure.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/basic.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/bootstrap.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/bpmn.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cabinets.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/buildings.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/computers_and_peripherals.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/controllers_and_modules.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/directors.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/hubs_and_gateways.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/misc.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/modems_and_phones.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/people.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/routers.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/security.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/servers.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/storage.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/switches.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco/wireless.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco19.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco_safe/architecture.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco_safe/business_icons.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco_safe/capability.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco_safe/design.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco_safe/iot_things_icons.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco_safe/people_places_things_icons.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco_safe/security_icons.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco_safe/technology_icons.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/cisco_safe/threat.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/citrix.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/clipart/Gear_128x128.png'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/eip.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/abstract.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/capacitors.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/diodes.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/electro-mechanical.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/iec417.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/iec_logic_gates.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/inductors.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/instruments.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/logic_gates.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/miscellaneous.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/mosfets1.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/mosfets2.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/op_amps.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/opto_electronics.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/plc_ladder.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/power_semiconductors.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/radio.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/resistors.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/rot_mech.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/signal_sources.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/thermionic_devices.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/transistors.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/transmission.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/electrical/waveforms.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/floorplan.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/flowchart.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/fluid_power.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/big_data.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/compute.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/developer_tools.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/extras.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/identity_and_security.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/machine_learning.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/management_tools.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/networking.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/product_cards.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp/storage_databases.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gcp2.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/gmdl.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/ibm.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/ios7/icons.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/ios7/misc.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/kubernetes.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/lean_mapping.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mockup/advertising.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mockup/calendars.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mockup/carousel.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mockup/charts_and_tables.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mockup/controls.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mockup/form_elements.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mockup/menus_and_buttons.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mockup/misc.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mockup/tabs.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/cloud.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/deprecated.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/enterprise.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/general.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/general_symbols.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/intune.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/oms.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/opsmanager.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/other.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/system_center.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/mscae/vm.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/networks.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/clouds.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/communications.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/concepts.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/databases.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/devices.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/security.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/servers.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/services.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/sites.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/office/users.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/agitators.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/apparatus_elements.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/centrifuges.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/compressors.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/compressors_iso.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/crushers_grinding.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/driers.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/engines.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/feeders.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/filters.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/fittings.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/flow_sensors.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/heat_exchangers.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/instruments.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/misc.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/mixers.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/piping.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/pumps.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/pumps_din.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/pumps_iso.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/separators.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/shaping_machines.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/valves.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/pid/vessels.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/apc.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/cisco.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/dell.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/f5.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/general.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/hp.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/hpe_aruba/gateways_controllers.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/hpe_aruba/security.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/hpe_aruba/switches.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/ibm.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/rack/oracle.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/animals.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/food.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/healthcare.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/nature.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/people.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/safety.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/science.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/sports.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/tech.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/transportation.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/signs/travel.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/sitemap.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/veeam/2d.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/veeam/3d.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/veeam/veeam.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/veeam/veeam2.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/vvd.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/webicons.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/stencils/weblogos.xml'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/styles/atlas.css'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/styles/dark-default.xml'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/styles/dark.css'; @@ -2271,7 +2085,6 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/styles/sprites.pn import '!!file-loader?name=[path][name].[ext]&context=.!../dio/styles/thumb_horz.png'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/styles/thumb_vertical.png'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/styles/up.gif'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/teams.html'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/LICENSE'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/basic/classes.png'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/basic/classes.xml'; @@ -2575,29 +2388,4 @@ import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/wirefra import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/wireframes/home_page_2.png'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/wireframes/home_page_2.xml'; import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/wireframes/home_page_hero_video_1.png'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/wireframes/home_page_hero_video_1.xml'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/vsdxImporter.html'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-12cca165.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-12cca165.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-4768a546.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-4768a546.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-50a29d49.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-50a29d49.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-5490a1bd.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-5490a1bd.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-7a2a8380.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-7a2a8380.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-99ba3a23.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-99ba3a23.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-9fe249eb.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-9fe249eb.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-bed83ea8.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-bed83ea8.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-d4d5b410.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-d4d5b410.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-dfbb910f.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-dfbb910f.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-f163abaa.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-f163abaa.js.map'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-fa8c4ce5.js'; -import '!!file-loader?name=[path][name].[ext]&context=.!../dio/workbox-fa8c4ce5.js.map'; \ No newline at end of file +import '!!file-loader?name=[path][name].[ext]&context=.!../dio/templates/wireframes/home_page_hero_video_1.xml'; \ No newline at end of file diff --git a/packages/ipydrawio-webpack/package.json b/packages/ipydrawio-webpack/package.json index dfdcfa78..70159494 100644 --- a/packages/ipydrawio-webpack/package.json +++ b/packages/ipydrawio-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@deathbeds/ipydrawio-webpack", - "version": "20.5.0", + "version": "20.5.300", "description": "A webpack-ready repackaging of drawio", "license": "Apache-2.0", "author": "IPyDrawio Contributors", @@ -14,7 +14,7 @@ }, "main": "lib/index.js", "scripts": { - "build:pre": "python scripts/patch.py && python scripts/static.py" + "build:pre": "python -m scripts.patch && python -m scripts.static" }, "types": "lib/index.d.ts", "dependencies": { @@ -29,7 +29,7 @@ ], "jupyterlab": { "extension": "lib/plugin.js", - "outputDir": "../../py_packages/ipydrawio/src/ipydrawio/ext/ipdwp", + "outputDir": "../../py_packages/ipydrawio/_/ipydrawio-webpack", "webpackConfig": "./webpack.config.js", "discovery": { "server": { diff --git a/packages/ipydrawio-webpack/scripts/__init__.py b/packages/ipydrawio-webpack/scripts/__init__.py new file mode 100644 index 00000000..80f1303c --- /dev/null +++ b/packages/ipydrawio-webpack/scripts/__init__.py @@ -0,0 +1,36 @@ +""" handle drawio sources for embedding in JupyterLab""" + +# Copyright 2022 ipydrawio contributors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from pathlib import Path + +HERE = Path(__file__).parent +ROOT = HERE.parent +PACKAGES = ROOT.parent +#: this path is long +DRAWIO = ROOT / "drawio/src/main/webapp" +#: this path is shorter +DIO = ROOT / "dio" +IPDM_DIO = PACKAGES / "ipydrawio-mathjax/dio" + +ALL_DIO = { + "ipydrawio-webpack": DIO, + "ipydrawio-mathjax": IPDM_DIO, +} + +#: these packages will provide these files instead of the main webpack +EXTERNAL = { + DIO / "math": IPDM_DIO / "math", +} diff --git a/packages/ipydrawio-webpack/scripts/patch.py b/packages/ipydrawio-webpack/scripts/patch.py index d00c74bf..70a1c4a0 100644 --- a/packages/ipydrawio-webpack/scripts/patch.py +++ b/packages/ipydrawio-webpack/scripts/patch.py @@ -14,19 +14,18 @@ # See the License for the specific language governing permissions and # limitations under the License. + import shutil import sys -from pathlib import Path -HERE = Path(__file__).parent -ROOT = HERE.parent -DRAWIO = ROOT / "drawio/src/main/webapp" -# a much shorter path -DIO = ROOT / "dio" +from . import DIO, DRAWIO, EXTERNAL, PACKAGES + +IPDM_REL = "../../../ipydrawio-mathjax/static/dio" + PATCHES = { "js/app.min.js": [ { - "name": "global ref so we can get at the App at runtime", + "name": "add global ref so we can get at the App at runtime", "before": "new App(new Editor", "after": "window.IPYDRAWIO_APP = new App(new Editor", }, @@ -35,14 +34,40 @@ "before": "this.editor.isCorsEnabledForUrl(t)||(m=", "after": "(t.match(/^data:/) || this.editor.isCorsEnabledForUrl(t))||(m=", }, + { + "name": "get mathjax from the ipydrawio-mathjax", + "before": "window.DRAW_MATH_URL=", + "after": f'window.DRAW_MATH_URL="{IPDM_REL}/math/es5";', + }, ] } def copy(): if DIO.exists(): + print(f"... cleaning {DIO.relative_to(PACKAGES)}", flush=True) shutil.rmtree(DIO) + + print( + f"... copying {DRAWIO.relative_to(PACKAGES)} --> {DIO.relative_to(PACKAGES)}", + flush=True, + ) shutil.copytree(DRAWIO, DIO) + + for src, dest in EXTERNAL.items(): + rel_src = src.relative_to(PACKAGES) + rel_dest = dest.relative_to(PACKAGES) + if dest.exists(): + print(f" ... cleaning {rel_dest}", flush=True) + shutil.rmtree(dest) + print(f" ... moving {rel_src} --> {rel_dest}", flush=True) + if not src.exists(): + print(f" !!! {rel_src} is missing", flush=True) + return 1 + if not dest.parent.exists(): + dest.parent.mkdir(parents=True, exist_ok=True) + shutil.move(src, dest) + return 0 diff --git a/packages/ipydrawio-webpack/scripts/static.py b/packages/ipydrawio-webpack/scripts/static.py index 037084ad..4da5b6ca 100644 --- a/packages/ipydrawio-webpack/scripts/static.py +++ b/packages/ipydrawio-webpack/scripts/static.py @@ -14,23 +14,22 @@ # See the License for the specific language governing permissions and # limitations under the License. +import pprint +import shutil from fnmatch import fnmatch -from pathlib import Path -from pprint import pprint -HERE = Path(__file__).parent -ROOT = HERE.parent.resolve() -DIO = ROOT / "dio" +from . import ALL_DIO, PACKAGES, ROOT + IGNORE = ROOT / ".npmignore" IGNORED = { glob.strip(): 0 for glob in IGNORE.read_text().strip().splitlines() if glob.startswith("dio/") } -STATIC = ROOT / "lib/_static.js" + HEADER = """ /** - All files that should be copied to the labextension folder, available as: + All drawio files that should be included in @deathbeds/{pkg} This file generated from https://github.com/jgraph/drawio */ @@ -40,32 +39,53 @@ """ -def is_ignored(path): +def is_ignored(path, root): + rel = str(path.relative_to(root)) + print("... considering", rel, flush=True) for ignore in IGNORED: - if fnmatch(str(path.relative_to(ROOT)), ignore): + if fnmatch(rel, ignore): IGNORED[ignore] += 1 + print(" ... ignored!") return True return False -def update_static(): - print("ignoring\n", "\n".join(IGNORED)) +def update_one_static(pkg, dio, static): + print(f"... updating {static}", flush=True) lines = [] - for path in sorted(DIO.rglob("*")): + all_paths = sorted(dio.rglob("*")) + + for path in all_paths: + if is_ignored(path, dio.parent): + if path.is_dir(): + shutil.rmtree(path) + elif path.exists(): + path.unlink() + continue if path.is_dir(): continue - if is_ignored(path): + if not path.exists(): continue lines += [ - TMPL.format(str(path.as_posix()).replace(str(DIO.as_posix()), "")).strip() + TMPL.format(str(path.as_posix()).replace(str(dio.as_posix()), "")).strip() ] assert lines - STATIC.write_text("\n".join([HEADER, *lines])) - print(f"wrote {len(lines)} lines") - pprint(IGNORED) + static.write_text("\n".join([HEADER.format(pkg=pkg), *lines])) + print( + f" ... {static.relative_to(PACKAGES)} wrote {len(lines)} lines", flush=True + ) + + +def update_static(): + for pkg, dio in ALL_DIO.items(): + static = dio.parent / "lib/_static.js" + if static.exists(): + static.unlink() + update_one_static(pkg, dio, static) + print("ignored\n", pprint.pformat(IGNORED)) if __name__ == "__main__": diff --git a/packages/ipydrawio/package.json b/packages/ipydrawio/package.json index 95f27d57..fa303783 100644 --- a/packages/ipydrawio/package.json +++ b/packages/ipydrawio/package.json @@ -21,7 +21,7 @@ }, "types": "lib/index.d.ts", "dependencies": { - "@deathbeds/ipydrawio-webpack": "^20.5.0", + "@deathbeds/ipydrawio-webpack": "^20.5.300", "@jupyterlab/application": "^3.1.0", "@jupyterlab/launcher": "^3.1.0", "@jupyterlab/mainmenu": "^3.1.0" @@ -46,7 +46,7 @@ "extension": "lib/plugin.js", "mimeExtension": "lib/mime.js", "schemaDir": "schema", - "outputDir": "../../py_packages/ipydrawio/src/ipydrawio/ext/ipd", + "outputDir": "../../py_packages/ipydrawio/_/ipydrawio", "sharedPackages": { "@deathbeds/ipydrawio-webpack": { "bundled": false, diff --git a/packages/tsconfig.typedoc.json b/packages/tsconfig.typedoc.json index 341c8b06..f5e1dab2 100644 --- a/packages/tsconfig.typedoc.json +++ b/packages/tsconfig.typedoc.json @@ -39,6 +39,12 @@ { "path": "./ipydrawio-notebook" }, + { + "path": "./ipydrawio-mathjax/src" + }, + { + "path": "./ipydrawio-mathjax" + }, { "path": "./ipydrawio-pdf/src" }, diff --git a/packages/typedoc.json b/packages/typedoc.json index 1181cab7..0aefb681 100644 --- a/packages/typedoc.json +++ b/packages/typedoc.json @@ -1,10 +1,10 @@ { "$schema": "https://typedoc.org/schema.json", "entryPointStrategy": "packages", - "excludePrivate": true, "entryPoints": [ "ipydrawio", "ipydrawio-jupyter-templates", + "ipydrawio-mathjax/lib/index.d.ts", "ipydrawio-notebook", "ipydrawio-pdf" ], @@ -14,8 +14,9 @@ "**/test/**", "**/lib/**" ], + "excludePrivate": true, "name": "@deathbeds/ipydrawio", "out": "../build/typedoc", "readme": "none", "tsconfig": "./tsconfig.typedoc.json" -} +} \ No newline at end of file diff --git a/py_packages/ipydrawio-export/MANIFEST.in b/py_packages/ipydrawio-export/MANIFEST.in index a8cb8681..ad5f46c1 100644 --- a/py_packages/ipydrawio-export/MANIFEST.in +++ b/py_packages/ipydrawio-export/MANIFEST.in @@ -1,7 +1,6 @@ include README.md LICENSE.txt +recursive-include tests *.* recursive-include src/ipydrawio_export/etc *.json -recursive-include src/ipydrawio_export/ext *.* -recursive-include src/ipydrawio_export/tests/fixtures *.* recursive-include src/ipydrawio_export/vendor/draw-image-export2 *.json *.js README.md LICENSE yarn.lock recursive-exclude src/ipydrawio_export/vendor/draw-image-export2/node_modules *.* LICENSE *.md *.json recursive-exclude src/ipydrawio_export/vendor/draw-image-export2/iisnode *.* LICENSE *.md *.json diff --git a/py_packages/ipydrawio-export/setup.cfg b/py_packages/ipydrawio-export/setup.cfg index 961b2b94..372e9108 100644 --- a/py_packages/ipydrawio-export/setup.cfg +++ b/py_packages/ipydrawio-export/setup.cfg @@ -21,7 +21,7 @@ url = https://ipydrawio.rtfd.io author = ipydrawio Contributors author_email = ripxl@example.com license = Apache-2.0 -license_file = LICENSE.txt +license_files = LICENSE.txt project_urls = Bug Tracker = https://github.com/deathbeds/ipydrawio/issues Changelog = https://github.com/deathbeds/ipydrawio/blob/master/CHANGELOG.md @@ -43,6 +43,7 @@ classifiers = Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 Topic :: Multimedia :: Graphics :: Editors :: Vector-Based Topic :: Multimedia :: Graphics :: Presentation @@ -70,6 +71,11 @@ where = console_scripts = jupyter-ipydrawio-export = ipydrawio_export.app:main +[options.extras_require] +test = + pytest + pytest-console-scripts + [aliases] test = pytest @@ -78,20 +84,15 @@ exclude = .git,__pycache__,envs,.ipynb_checkpoints,.mypy_cache max-line-length = 88 ignore = E203 -[tool:pytest] -junit_family=xunit2 -script_launch_mode = subprocess -addopts = - -vv - --tb long - --pyargs ipydrawio_export - --cov ipydrawio_export - --cov-branch - --cov-report term-missing:skip-covered - --no-cov-on-fail - [isort] combine_as_imports = True include_trailing_comma = True line_length = 88 multi_line_output = 3 + +[coverage:run] +branch = True +source_pkgs = + ipydrawio_export +concurrency = multiprocessing +parallel = True diff --git a/py_packages/ipydrawio-export/setup.py b/py_packages/ipydrawio-export/setup.py index 75083f8a..c834bfb8 100644 --- a/py_packages/ipydrawio-export/setup.py +++ b/py_packages/ipydrawio-export/setup.py @@ -18,9 +18,9 @@ from pathlib import Path HERE = Path(__file__).parent -EXT = HERE / "src/ipydrawio_export/ext" +EXT = HERE / "_" -PDF = EXT / "ipdpdf" +PDF = EXT / "ipydrawio-pdf" SHARE = "share/jupyter/labextensions" diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/__init__.py b/py_packages/ipydrawio-export/src/ipydrawio_export/__init__.py index 92bf9163..e7d3abdd 100644 --- a/py_packages/ipydrawio-export/src/ipydrawio_export/__init__.py +++ b/py_packages/ipydrawio-export/src/ipydrawio_export/__init__.py @@ -14,25 +14,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json -from pathlib import Path +from ipydrawio import _ipydrawio_labextension_paths -from ._version import __js__, __version__ +from ._version import __ext__, __js__, __prefix__, __version__ from .manager import DRAWIO_STATIC, IPyDrawioExportManager from .serverextension import load_jupyter_server_extension def _jupyter_labextension_paths(): """static paths to link for interactive installation""" - here = Path(__file__).parent - exts = [] - for pkg in here.glob("ext/*/package.json"): - exts += [ - dict( - src=str(pkg.parent.relative_to(here).as_posix()), - dest=json.loads(pkg.read_text(encoding="utf-8"))["name"], - ) - ] + exts = _ipydrawio_labextension_paths(prefix=__prefix__, extensions=__ext__) return exts diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/_version.py b/py_packages/ipydrawio-export/src/ipydrawio_export/_version.py index ae1ded81..37f9a579 100644 --- a/py_packages/ipydrawio-export/src/ipydrawio_export/_version.py +++ b/py_packages/ipydrawio-export/src/ipydrawio_export/_version.py @@ -1,6 +1,7 @@ -""" source of truth for ipydrawio-export version""" +"""source of truth for ipydrawio version""" # Copyright 2022 ipydrawio contributors +# Copyright 2020 jupyterlab-drawio contributors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,14 +15,25 @@ # See the License for the specific language governing permissions and # limitations under the License. - import json from pathlib import Path +from ipydrawio._version import IN_PREFIX, __ns__ + HERE = Path(__file__).parent +__ext__ = [ + "ipydrawio-pdf", # source the version from here +] + +IN_TREE = (HERE / "../../_").resolve() + +__prefix__ = IN_TREE if IN_TREE.exists() else IN_PREFIX + +PKG_JSON = __prefix__ / __ext__[0] / "package.json" + +__js__ = json.loads(PKG_JSON.read_text(encoding="utf-8")) -__js__ = json.loads((HERE / "ext/ipdpdf/package.json").read_text(encoding="utf-8")) __version__ = __js__["version"] -__all__ = ["__version__", "__js__"] +__all__ = ["__version__", "__js__", "__ns__", "__ext__", "__prefix__"] diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/__init__.py b/py_packages/ipydrawio-export/tests/__init__.py similarity index 100% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/__init__.py rename to py_packages/ipydrawio-export/tests/__init__.py diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/conftest.py b/py_packages/ipydrawio-export/tests/conftest.py similarity index 97% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/conftest.py rename to py_packages/ipydrawio-export/tests/conftest.py index cb8e9973..ed683645 100644 --- a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/conftest.py +++ b/py_packages/ipydrawio-export/tests/conftest.py @@ -19,7 +19,7 @@ import pytest -from ..app import PDFApp +from ipydrawio_export.app import PDFApp FIXTURES = Path(__file__).parent / "fixtures" FIXTURE_FILES = sorted([f for f in FIXTURES.glob("*") if not f.is_dir()]) diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/fixtures/a.svg b/py_packages/ipydrawio-export/tests/fixtures/a.svg similarity index 100% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/fixtures/a.svg rename to py_packages/ipydrawio-export/tests/fixtures/a.svg diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/fixtures/b.png b/py_packages/ipydrawio-export/tests/fixtures/b.png similarity index 100% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/fixtures/b.png rename to py_packages/ipydrawio-export/tests/fixtures/b.png diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/fixtures/empty.dio b/py_packages/ipydrawio-export/tests/fixtures/empty.dio similarity index 100% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/fixtures/empty.dio rename to py_packages/ipydrawio-export/tests/fixtures/empty.dio diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/fixtures/empty.ipynb b/py_packages/ipydrawio-export/tests/fixtures/empty.ipynb similarity index 100% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/fixtures/empty.ipynb rename to py_packages/ipydrawio-export/tests/fixtures/empty.ipynb diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_app.py b/py_packages/ipydrawio-export/tests/test_app.py similarity index 100% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_app.py rename to py_packages/ipydrawio-export/tests/test_app.py diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_cli.py b/py_packages/ipydrawio-export/tests/test_cli.py similarity index 96% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_cli.py rename to py_packages/ipydrawio-export/tests/test_cli.py index 375161db..1f2ea9cc 100644 --- a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_cli.py +++ b/py_packages/ipydrawio-export/tests/test_cli.py @@ -18,7 +18,7 @@ import pytest -from .. import __version__ +from ipydrawio_export import __version__ @pytest.mark.skipif(platform.system() == "Windows", reason="no capture on win") diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_meta.py b/py_packages/ipydrawio-export/tests/test_meta.py similarity index 100% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_meta.py rename to py_packages/ipydrawio-export/tests/test_meta.py diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_pdf.py b/py_packages/ipydrawio-export/tests/test_pdf.py similarity index 100% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_pdf.py rename to py_packages/ipydrawio-export/tests/test_pdf.py diff --git a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_serverextension.py b/py_packages/ipydrawio-export/tests/test_serverextension.py similarity index 97% rename from py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_serverextension.py rename to py_packages/ipydrawio-export/tests/test_serverextension.py index e85a731c..735ea8a2 100644 --- a/py_packages/ipydrawio-export/src/ipydrawio_export/tests/test_serverextension.py +++ b/py_packages/ipydrawio-export/tests/test_serverextension.py @@ -20,7 +20,7 @@ import pytest from tornado.simple_httpclient import HTTPTimeoutError -from .. import load_jupyter_server_extension +from ipydrawio_export import load_jupyter_server_extension @pytest.fixture diff --git a/py_packages/ipydrawio-mathjax/LICENSE.txt b/py_packages/ipydrawio-mathjax/LICENSE.txt new file mode 100644 index 00000000..8dada3ed --- /dev/null +++ b/py_packages/ipydrawio-mathjax/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/py_packages/ipydrawio-mathjax/MANIFEST.in b/py_packages/ipydrawio-mathjax/MANIFEST.in new file mode 100644 index 00000000..072e4136 --- /dev/null +++ b/py_packages/ipydrawio-mathjax/MANIFEST.in @@ -0,0 +1,2 @@ +include README.md LICENSE.txt +recursive-include tests *.* diff --git a/py_packages/ipydrawio-mathjax/README.md b/py_packages/ipydrawio-mathjax/README.md new file mode 100644 index 00000000..3762c997 --- /dev/null +++ b/py_packages/ipydrawio-mathjax/README.md @@ -0,0 +1,59 @@ +# IPyDrawio Math + +[![docs][docs-badge]][docs] [![binder-badge][]][binder] +[![install from pypi][pypi-badge]][pypi] [![install from conda-forge][conda-badge]][conda] +[![build][workflow-badge]][workflow] [![coverage][cov-badge]][cov] + +> MathJax for ipydrawio + +See the [main project repo](https://github.com/deathbeds/ipydrawio) for more +information. + +## Installation + +> _Note: the `mamba`/`conda` installation method ensures `nodejs` is available_ + +```bash +mamba install -c conda-forge ipydrawio-mathjax # recommended, or... +conda install -c conda-forge ipydrawio-mathjax # or... +pip install ipydrawio-mathjax +``` + +## Open Source + +This work is licensed under the [Apache-2.0] License. + +``` +Copyright 2022 ipydrawio contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` + +[apache-2.0]: + https://github.com/deathbeds/ipydrawio/blob/master/py_packages/ipydrawio-mathjax/LICENSE.txt +[binder]: + http://mybinder.org/v2/gh/deathbeds/ipydrawio/master?urlpath=lab/tree/docs/Poster.dio.svg +[binder-badge]: https://mybinder.org/badge_logo.svg +[pypi-badge]: https://img.shields.io/pypi/v/ipydrawio-mathjax +[pypi]: https://pypi.org/project/ipydrawio-mathjax +[conda-badge]: https://img.shields.io/conda/vn/conda-forge/ipydrawio-mathjax +[conda]: https://anaconda.org/conda-forge/ipydrawio-mathjax +[workflow-badge]: + https://github.com/deathbeds/ipydrawio/workflows/.github/workflows/ci.yml/badge.svg +[workflow]: + https://github.com/deathbeds/ipydrawio/actions?query=branch%3Amaster+workflow%3A.github%2Fworkflows%2Fci.yml +[cov-badge]: + https://codecov.io/gh/deathbeds/ipydrawio/branch/master/graph/badge.svg?token=9B74VKHQDK +[cov]: https://codecov.io/gh/deathbeds/ipydrawio +[docs-badge]: https://readthedocs.org/projects/ipydrawio/badge/?version=latest +[docs]: https://ipydrawio.rtfd.io diff --git a/py_packages/ipydrawio-mathjax/setup.cfg b/py_packages/ipydrawio-mathjax/setup.cfg new file mode 100644 index 00000000..adf1cdcf --- /dev/null +++ b/py_packages/ipydrawio-mathjax/setup.cfg @@ -0,0 +1,86 @@ +# Copyright 2022 ipydrawio contributors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +[metadata] +name = ipydrawio-mathjax +description = MathJax for ipydrawio +long_description = file: ./README.md +long_description_content_type = text/markdown +url = https://ipydrawio.rtfd.io +author = ipydrawio Contributors +author_email = ripxl@example.com +license = Apache-2.0 +license_files = LICENSE.txt +project_urls = + Bug Tracker = https://github.com/deathbeds/ipydrawio/issues + Changelog = https://github.com/deathbeds/ipydrawio/blob/master/CHANGELOG.md + Coverage = https://app.codecov.io/gh/deathbeds/ipydrawio + Documentation = https://ipydrawio.rtfd.io + Source Code = https://github.com/deathbeds/ipydrawio +classifiers = + Development Status :: 4 - Beta + Framework :: Jupyter + Framework :: Jupyter :: JupyterLab :: 3 + Framework :: Jupyter :: JupyterLab :: Extensions + Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt + Intended Audience :: Developers + Intended Audience :: Information Technology + License :: OSI Approved :: Apache Software License + Programming Language :: Python + Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 + Topic :: Multimedia :: Graphics :: Editors :: Vector-Based + Topic :: Multimedia :: Graphics :: Presentation + +[options] +python_requires = >=3.7 +package_dir = + = src + +packages = find: +include_package_data = True +zip_safe = False + +install_requires = + ipydrawio ==1.2.2 + +[options.packages.find] +where = + src + +[options.extras_require] +test = + pytest + +[flake8] +exclude = .git,__pycache__,envs,.ipynb_checkpoints,.mypy_cache +max-line-length = 88 +ignore = E203 + +[isort] +combine_as_imports = True +include_trailing_comma = True +line_length = 88 +multi_line_output = 3 + +[coverage:run] +branch = True +source_pkgs = + ipydrawio_mathjax +concurrency = multiprocessing +parallel = True diff --git a/py_packages/ipydrawio-mathjax/setup.py b/py_packages/ipydrawio-mathjax/setup.py new file mode 100644 index 00000000..32a46616 --- /dev/null +++ b/py_packages/ipydrawio-mathjax/setup.py @@ -0,0 +1,53 @@ +"""dynamic setup information for setuptools, also see package.json and setup.cfg""" + +# Copyright 2022 ipydrawio contributors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +from pathlib import Path + +HERE = Path(__file__).parent +EXT = HERE / "_" + +MATH = EXT / "ipydrawio-mathjax" + +SHARE = "share/jupyter/labextensions" + +__js__ = json.loads((MATH / "package.json").read_text(encoding="utf-8")) + +FILES = [] + +for package_json in EXT.glob("*/package.json"): + pkg = json.loads(package_json.read_text(encoding="utf-8")) + + FILES += [ + (f"""{SHARE}/{pkg["name"]}""", ["src/ipydrawio_mathjax/etc/install.json"]) + ] + + for path in package_json.parent.rglob("*"): + if path.is_dir(): + continue + parent = path.parent.relative_to(package_json.parent).as_posix() + FILES += [ + ( + f"""{SHARE}/{pkg["name"]}/{parent}""", + [str(path.relative_to(HERE).as_posix())], + ) + ] + + +if __name__ == "__main__": + import setuptools + + setuptools.setup(version=__js__["version"], data_files=FILES) diff --git a/py_packages/ipydrawio-mathjax/src/ipydrawio_mathjax/__init__.py b/py_packages/ipydrawio-mathjax/src/ipydrawio_mathjax/__init__.py new file mode 100644 index 00000000..a18347e3 --- /dev/null +++ b/py_packages/ipydrawio-mathjax/src/ipydrawio_mathjax/__init__.py @@ -0,0 +1,32 @@ +"""MathJax for ipydrawio""" + +# Copyright 2022 ipydrawio contributors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from ipydrawio import _ipydrawio_labextension_paths + +from ._version import __ext__, __js__, __prefix__, __version__ + + +def _jupyter_labextension_paths(): + """static paths to link for interactive installation""" + exts = _ipydrawio_labextension_paths(prefix=__prefix__, extensions=__ext__) + return exts + + +__all__ = [ + "__js__", + "__version__", + "_jupyter_labextension_paths", +] diff --git a/py_packages/ipydrawio-mathjax/src/ipydrawio_mathjax/_version.py b/py_packages/ipydrawio-mathjax/src/ipydrawio_mathjax/_version.py new file mode 100644 index 00000000..b2dd8de6 --- /dev/null +++ b/py_packages/ipydrawio-mathjax/src/ipydrawio_mathjax/_version.py @@ -0,0 +1,39 @@ +"""source of truth for ipydrawio version""" + +# Copyright 2022 ipydrawio contributors +# Copyright 2020 jupyterlab-drawio contributors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +from pathlib import Path + +from ipydrawio._version import IN_PREFIX, __ns__ + +HERE = Path(__file__).parent +__ext__ = [ + "ipydrawio-mathjax", # source the version from here +] + +IN_TREE = (HERE / "../../_").resolve() + +__prefix__ = IN_TREE if IN_TREE.exists() else IN_PREFIX + +PKG_JSON = __prefix__ / __ext__[0] / "package.json" + +__js__ = json.loads(PKG_JSON.read_text(encoding="utf-8")) + + +__version__ = __js__["version"] + +__all__ = ["__version__", "__js__", "__ns__", "__ext__", "__prefix__"] diff --git a/py_packages/ipydrawio-mathjax/src/ipydrawio_mathjax/etc/install.json b/py_packages/ipydrawio-mathjax/src/ipydrawio_mathjax/etc/install.json new file mode 100644 index 00000000..7f593f9c --- /dev/null +++ b/py_packages/ipydrawio-mathjax/src/ipydrawio_mathjax/etc/install.json @@ -0,0 +1,5 @@ +{ + "packageManager": "python", + "packageName": "ipydrawio-mathjax", + "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package ipydrawio-mathjax" +} diff --git a/py_packages/ipydrawio-mathjax/tests/__init__.py b/py_packages/ipydrawio-mathjax/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/py_packages/ipydrawio-mathjax/tests/conftest.py b/py_packages/ipydrawio-mathjax/tests/conftest.py new file mode 100644 index 00000000..e69de29b diff --git a/py_packages/ipydrawio-mathjax/tests/test_labextensions.py b/py_packages/ipydrawio-mathjax/tests/test_labextensions.py new file mode 100644 index 00000000..db90f684 --- /dev/null +++ b/py_packages/ipydrawio-mathjax/tests/test_labextensions.py @@ -0,0 +1,29 @@ +"""minimal tests of metadata""" + +# Copyright 2022 ipydrawio contributors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import ipydrawio_mathjax + + +def test_version(): + assert ipydrawio_mathjax.__version__ + + +def test_js(): + assert ipydrawio_mathjax.__js__ + + +def test_labextensions(): + assert len(ipydrawio_mathjax._jupyter_labextension_paths()) == 1, "no labextensions" diff --git a/py_packages/ipydrawio-widgets/MANIFEST.in b/py_packages/ipydrawio-widgets/MANIFEST.in index 40950287..2ca8d8c9 100644 --- a/py_packages/ipydrawio-widgets/MANIFEST.in +++ b/py_packages/ipydrawio-widgets/MANIFEST.in @@ -1,2 +1,3 @@ include LICENSE.txt +recursive-include tests *.* recursive-include src/ipydrawio_widgets/js *.json diff --git a/py_packages/ipydrawio-widgets/setup.cfg b/py_packages/ipydrawio-widgets/setup.cfg index 42654cd7..0f19dbb6 100644 --- a/py_packages/ipydrawio-widgets/setup.cfg +++ b/py_packages/ipydrawio-widgets/setup.cfg @@ -21,7 +21,7 @@ url = https://ipydrawio.rtfd.io author = ipydrawio Contributors author_email = ripxl@example.com license = Apache-2.0 -license_file = LICENSE.txt +license_files = LICENSE.txt project_urls = Bug Tracker = https://github.com/deathbeds/ipydrawio/issues Changelog = https://github.com/deathbeds/ipydrawio/blob/master/CHANGELOG.md @@ -41,6 +41,7 @@ classifiers = Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 [options] python_requires = >=3.7 @@ -60,7 +61,6 @@ test = jsonpointer pytest pytest-console-scripts - pytest-cov [options.packages.find] where = @@ -71,20 +71,15 @@ exclude = .git,__pycache__,envs,.ipynb_checkpoints,.mypy_cache max-line-length = 88 ignore = E203 -[tool:pytest] -junit_family=xunit2 -script_launch_mode = subprocess -addopts = - -vv - --tb long - --pyargs ipydrawio_widgets - --cov ipydrawio_widgets - --cov-branch - --cov-report term-missing:skip-covered - --no-cov-on-fail - [isort] combine_as_imports = True include_trailing_comma = True line_length = 88 multi_line_output = 3 + +[coverage:run] +branch = True +source_pkgs = + ipydrawio_widgets +concurrency = multiprocessing +parallel = True diff --git a/py_packages/ipydrawio-widgets/src/ipydrawio_widgets/tests/__init__.py b/py_packages/ipydrawio-widgets/tests/__init__.py similarity index 100% rename from py_packages/ipydrawio-widgets/src/ipydrawio_widgets/tests/__init__.py rename to py_packages/ipydrawio-widgets/tests/__init__.py diff --git a/py_packages/ipydrawio-widgets/src/ipydrawio_widgets/tests/test_schema.py b/py_packages/ipydrawio-widgets/tests/test_schema.py similarity index 100% rename from py_packages/ipydrawio-widgets/src/ipydrawio_widgets/tests/test_schema.py rename to py_packages/ipydrawio-widgets/tests/test_schema.py diff --git a/py_packages/ipydrawio-widgets/src/ipydrawio_widgets/tests/test_widgets.py b/py_packages/ipydrawio-widgets/tests/test_widgets.py similarity index 100% rename from py_packages/ipydrawio-widgets/src/ipydrawio_widgets/tests/test_widgets.py rename to py_packages/ipydrawio-widgets/tests/test_widgets.py diff --git a/py_packages/ipydrawio/MANIFEST.in b/py_packages/ipydrawio/MANIFEST.in index f316d1a9..072e4136 100644 --- a/py_packages/ipydrawio/MANIFEST.in +++ b/py_packages/ipydrawio/MANIFEST.in @@ -1,3 +1,2 @@ include README.md LICENSE.txt -recursive-include src/ipydrawio/ext *.* -recursive-include src/ipydrawio/tests/fixtures *.* +recursive-include tests *.* diff --git a/py_packages/ipydrawio/README.md b/py_packages/ipydrawio/README.md index f954183c..e853f48b 100644 --- a/py_packages/ipydrawio/README.md +++ b/py_packages/ipydrawio/README.md @@ -49,6 +49,8 @@ pip install ipydrawio[all] conda install -c conda-forge ipydrawio-export # or... pip install ipydrawio ipydrawio-export ``` +- `ipydrawio-mathjax` + - include rich LaTeX and AsciiMath typesetting in diagrams > ⓡ: unavailable in RetroLab Ⓛ: unavailable in JupyterLite @@ -130,7 +132,7 @@ browser, powered by [@jgraph/draw-image-export2], `puppeteer`, and `nodejs`. > For example to install all the dependencies: > > ```bash -> conda install -yc conda-forge ipydrawio-export +> conda install -yc conda-forge ipydrawio-export ipydrawio-mathjax > ``` Once installed, you can use the in-browser tools _Export Diagram as PDF_ as well as the diff --git a/py_packages/ipydrawio/setup.cfg b/py_packages/ipydrawio/setup.cfg index 7beb1520..4039f1c6 100644 --- a/py_packages/ipydrawio/setup.cfg +++ b/py_packages/ipydrawio/setup.cfg @@ -21,7 +21,7 @@ url = https://ipydrawio.rtfd.io author = ipydrawio Contributors author_email = ripxl@example.com license = Apache-2.0 -license_file = LICENSE.txt +license_files = LICENSE.txt project_urls = Bug Tracker = https://github.com/deathbeds/ipydrawio/issues Changelog = https://github.com/deathbeds/ipydrawio/blob/master/CHANGELOG.md @@ -44,6 +44,7 @@ classifiers = Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 Topic :: Multimedia :: Graphics :: Editors :: Vector-Based Topic :: Multimedia :: Graphics :: Presentation @@ -75,7 +76,6 @@ test = jsonpointer pytest pytest-console-scripts - pytest-cov [options.packages.find] where = @@ -90,20 +90,15 @@ exclude = .git,__pycache__,envs,.ipynb_checkpoints,.mypy_cache max-line-length = 88 ignore = E203 -[tool:pytest] -junit_family=xunit2 -script_launch_mode = subprocess -addopts = - -vv - --tb long - --pyargs ipydrawio - --cov ipydrawio - --cov-branch - --cov-report term-missing:skip-covered - --no-cov-on-fail - [isort] combine_as_imports = True include_trailing_comma = True line_length = 88 multi_line_output = 3 + +[coverage:run] +branch = True +source_pkgs = + ipydrawio +concurrency = multiprocessing +parallel = True diff --git a/py_packages/ipydrawio/setup.py b/py_packages/ipydrawio/setup.py index d6fe863b..fd05948b 100644 --- a/py_packages/ipydrawio/setup.py +++ b/py_packages/ipydrawio/setup.py @@ -19,8 +19,8 @@ HERE = Path(__file__).parent -EXT = HERE / "src/ipydrawio/ext" -CORE = EXT / "ipd" +EXT = HERE / "_" +CORE = EXT / "ipydrawio" SHARE = "share/jupyter/labextensions" diff --git a/py_packages/ipydrawio/src/ipydrawio/__init__.py b/py_packages/ipydrawio/src/ipydrawio/__init__.py index d081cfe3..6c8ba8ce 100644 --- a/py_packages/ipydrawio/src/ipydrawio/__init__.py +++ b/py_packages/ipydrawio/src/ipydrawio/__init__.py @@ -14,26 +14,21 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json -from pathlib import Path from ipydrawio_widgets import XML, Diagram -from ._version import __js__, __version__ +from ._version import __ext__, __js__, __ns__, __prefix__, __version__ -def _jupyter_labextension_paths(): - here = Path(__file__).parent +def _ipydrawio_labextension_paths(prefix=__prefix__, extensions=__ext__): + """Reused by other ipydrawio extensions with other prefixes/extensions.""" + labextension_paths = [ + dict(src=str(prefix / e), dest=f"{__ns__}/{e}") for e in extensions + ] + return labextension_paths - exts = [] - for pkg in here.glob("ext/*/package.json"): - exts += [ - dict( - src=str(pkg.parent.relative_to(here).as_posix()), - dest=json.loads(pkg.read_text(encoding="utf-8"))["name"], - ) - ] - return exts + +_jupyter_labextension_paths = _ipydrawio_labextension_paths __all__ = [ diff --git a/py_packages/ipydrawio/src/ipydrawio/_version.py b/py_packages/ipydrawio/src/ipydrawio/_version.py index cd50ac32..df4ea62a 100644 --- a/py_packages/ipydrawio/src/ipydrawio/_version.py +++ b/py_packages/ipydrawio/src/ipydrawio/_version.py @@ -16,13 +16,28 @@ # limitations under the License. import json +import sys from pathlib import Path HERE = Path(__file__).parent -PKG_JSON = HERE / "ext/ipd/package.json" +__ns__ = "@deathbeds" +__ext__ = [ + "ipydrawio", # source the version from here + "ipydrawio-webpack", + "ipydrawio-jupyter-templates", + "ipydrawio-notebook", +] + +IN_TREE = (HERE / "../../_").resolve() +IN_PREFIX = Path(sys.prefix) / f"share/jupyter/labextensions/{__ns__}" + +__prefix__ = IN_TREE if IN_TREE.exists() else IN_PREFIX + +PKG_JSON = __prefix__ / __ext__[0] / "package.json" __js__ = json.loads(PKG_JSON.read_text(encoding="utf-8")) + __version__ = __js__["version"] -__all__ = ["__version__", "__js__"] +__all__ = ["__version__", "__js__", "__ns__", "__ext__", "__prefix__"] diff --git a/py_packages/ipydrawio/src/ipydrawio/ext/README.md b/py_packages/ipydrawio/src/ipydrawio/ext/README.md deleted file mode 100644 index be9c61cc..00000000 --- a/py_packages/ipydrawio/src/ipydrawio/ext/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# `ipydrawio` labextensions - -`ipydrawio` ships, and enables by default, several JupyterLab 3 _federated extensions_. -At some point in the future, these might become smaller packages, and are independently -reusable by other _federated modules_. - -- `@deathbeds/ipydrawio-webpack` - - a mostly-automated re-packaging (and light patching) of the official [drawio] - repo -- `@deathbeds/ipydrawio` - - the core renderer library -- `@deathbeds/ipydrawio-widget` - - the Jupyter Widgets -- `@deathbeds/ipydrawio-notebook` - - the custom `ipynb` format -- `@deathbeds/ipydrawio` - - the core renderer library -- `@deathbeds/ipydrawio-jupyter-templates` - - some templates for building Jupyter-related diagrams - -[drawio]: https://github.com/jgraph/drawio diff --git a/py_packages/ipydrawio/src/ipydrawio/tests/__init__.py b/py_packages/ipydrawio/tests/__init__.py similarity index 100% rename from py_packages/ipydrawio/src/ipydrawio/tests/__init__.py rename to py_packages/ipydrawio/tests/__init__.py diff --git a/py_packages/ipydrawio/src/ipydrawio/tests/conftest.py b/py_packages/ipydrawio/tests/conftest.py similarity index 97% rename from py_packages/ipydrawio/src/ipydrawio/tests/conftest.py rename to py_packages/ipydrawio/tests/conftest.py index 26f92a96..a155fc39 100644 --- a/py_packages/ipydrawio/src/ipydrawio/tests/conftest.py +++ b/py_packages/ipydrawio/tests/conftest.py @@ -20,7 +20,7 @@ import nbformat import pytest -from ..constants import IPYNB_METADATA, MIMETYPE +from ipydrawio.constants import IPYNB_METADATA, MIMETYPE HERE = Path(__file__).parent FIXTURES = HERE / "fixtures" diff --git a/py_packages/ipydrawio/src/ipydrawio/tests/fixtures/empty.dio b/py_packages/ipydrawio/tests/fixtures/empty.dio similarity index 100% rename from py_packages/ipydrawio/src/ipydrawio/tests/fixtures/empty.dio rename to py_packages/ipydrawio/tests/fixtures/empty.dio diff --git a/py_packages/ipydrawio/src/ipydrawio/tests/fixtures/empty.dio.svg b/py_packages/ipydrawio/tests/fixtures/empty.dio.svg similarity index 100% rename from py_packages/ipydrawio/src/ipydrawio/tests/fixtures/empty.dio.svg rename to py_packages/ipydrawio/tests/fixtures/empty.dio.svg diff --git a/py_packages/ipydrawio/src/ipydrawio/tests/fixtures/empty.ipynb b/py_packages/ipydrawio/tests/fixtures/empty.ipynb similarity index 100% rename from py_packages/ipydrawio/src/ipydrawio/tests/fixtures/empty.ipynb rename to py_packages/ipydrawio/tests/fixtures/empty.ipynb diff --git a/py_packages/ipydrawio/src/ipydrawio/tests/test_cli.py b/py_packages/ipydrawio/tests/test_cli.py similarity index 98% rename from py_packages/ipydrawio/src/ipydrawio/tests/test_cli.py rename to py_packages/ipydrawio/tests/test_cli.py index 02f9f61f..c430f298 100644 --- a/py_packages/ipydrawio/src/ipydrawio/tests/test_cli.py +++ b/py_packages/ipydrawio/tests/test_cli.py @@ -19,7 +19,7 @@ import pytest -from .. import __version__ +from ipydrawio import __version__ @pytest.mark.skipif(platform.system() == "Windows", reason="no capture on win") diff --git a/py_packages/ipydrawio/src/ipydrawio/tests/test_labextensions.py b/py_packages/ipydrawio/tests/test_labextensions.py similarity index 100% rename from py_packages/ipydrawio/src/ipydrawio/tests/test_labextensions.py rename to py_packages/ipydrawio/tests/test_labextensions.py diff --git a/scripts/integrity.py b/scripts/integrity.py index ead81cc0..3661ba72 100644 --- a/scripts/integrity.py +++ b/scripts/integrity.py @@ -84,7 +84,9 @@ def test_drawio_versions(): def test_recipe_versions(): """is the conda recipe version correct""" - assert f"""version = "{P.IPD_VERSION}" """ in P.RECIPE.read_text(**P.ENC) + assert f"""version = "{P.PY_VERSION["ipydrawio"]}" """ in P.RECIPE.read_text( + **P.ENC + ) @pytest.mark.parametrize( @@ -164,7 +166,7 @@ def test_setup_cfg_version(path, upstream, version): @pytest.mark.parametrize( "path,py_count", [ - [P.RECIPE, 8], + [P.RECIPE, 10], [P.ENV_BINDER, 1], ], ) diff --git a/scripts/project.py b/scripts/project.py index 24949285..22dc60f0 100644 --- a/scripts/project.py +++ b/scripts/project.py @@ -301,7 +301,7 @@ def _norm_js_version(pkg): if (v.parent / "schema").exists() } -# special things for ipydrawio-webpack +# special things for ipydrawio-webpack and friends IPDWP = JS_PKG_JSON["ipydrawio-webpack"].parent IPDWP_APP = IPDWP / "dio/js/app.min.js" IPDWP_PY = (IPDWP / "scripts").rglob("*.py") @@ -310,6 +310,10 @@ def _norm_js_version(pkg): IPDWP_IGNORE = IPDWP / ".npmignore" ALL_IPDWP_JS = IPDWP_LIB.glob("*.js") +IPDM_JS = JS_PKG_JSON["ipydrawio-mathjax"].parent +IPDM_JS_LIB = IPDM_JS / "lib" +ALL_IPDM_JS = IPDM_JS_LIB.glob("*.js") + IPJT = JS_PKG_JSON["ipydrawio-jupyter-templates"].parent IPJT_TMPL = IPJT / "tmpl" IPJT_TMPL_DIO = _clean( @@ -327,11 +331,13 @@ def _norm_js_version(pkg): "ipydrawio": JS_PKG_DATA["ipydrawio"]["version"], "ipydrawio-export": JS_PKG_DATA["ipydrawio-pdf"]["version"], "ipydrawio-widgets": JS_PKG_DATA["ipydrawio"]["version"], + "ipydrawio-mathjax": JS_PKG_DATA["ipydrawio-mathjax"]["version"], } IPD = PY_SETUP["ipydrawio"].parent IPDE = PY_SETUP["ipydrawio-export"].parent IPDW = PY_SETUP["ipydrawio-widgets"].parent +IPDM = PY_SETUP["ipydrawio-mathjax"].parent IPDE_VENDOR = IPDE / "src/ipydrawio_export/vendor" IPDE_DIE2 = IPDE_VENDOR / "draw-image-export2" @@ -344,15 +350,9 @@ def _norm_js_version(pkg): JS_PKG_JSON["ipydrawio"].parent / "schema/plugin.json": IPDW_SRC / "js/plugin.json", } -IPD_VERSION = PY_VERSION["ipydrawio"] -IPDW_VERSION = PY_VERSION["ipydrawio-widgets"] -IPDE_VERSION = PY_VERSION["ipydrawio-export"] +IPDM_STARTUP = JS_PKG_JSON["ipydrawio-mathjax"].parent / "dio/math/es5/startup.js" -PY_HAS_EXT = { - IPD: True, - IPDE: True, - IPDW: False, -} +PY_HAS_EXT = {IPD: True, IPDE: True, IPDW: False, IPDM: True} SERVER_EXT = { k: sorted(v.parent.glob("src/*/serverextension.py"))[0] @@ -376,24 +376,21 @@ def _norm_js_version(pkg): IPD: lambda: [OK_PYSETUP["ipydrawio-widgets"]], IPDE: lambda: [OK_PYSETUP["ipydrawio"]], IPDW: lambda: [*IPDW_DEPS.values()], + IPDM: lambda: [OK_PYSETUP["ipydrawio"], IPDM_STARTUP], } PY_SDIST = { - IPDE.name: IPDE / "dist" / f"{IPDE.name}-{IPDE_VERSION}.tar.gz", - IPD.name: IPD / "dist" / f"{IPD.name}-{IPD_VERSION}.tar.gz", - IPDW.name: IPDW / "dist" / f"{IPDW.name}-{IPDW_VERSION}.tar.gz", + name: PY_PACKAGES / name / f"dist/{name}-{PY_VERSION[name]}.tar.gz" + for name, version in PY_VERSION.items() } + PY_WHEEL = { - IPDE.name: IPDE - / "dist" - / f"""{IPDE.name.replace("-", "_")}-{IPDE_VERSION}-py3-none-any.whl""", - IPD.name: IPD - / "dist" - / f"""{IPD.name.replace("-", "_")}-{IPD_VERSION}-py3-none-any.whl""", - IPDW.name: IPDW - / "dist" - / f"""{IPDW.name.replace("-", "_")}-{IPDW_VERSION}-py3-none-any.whl""", + name: PY_PACKAGES + / name + / f"""dist/{name.replace("-", "_")}-{PY_VERSION[name]}-py3-none-any.whl""" + for name, version in PY_VERSION.items() } + PY_TEST_DEP = {} # demo @@ -515,7 +512,7 @@ def _norm_js_version(pkg): ], ] ALL_DIO = [*DOCS_DIO, *IPJT_TMPL_DIO, *ATEST_DIO] -ALL_MD = [*ROOT.glob("*.md"), *PACKAGES.glob("*/*.md"), *DOCS_MD] +ALL_MD = [*ROOT.glob("*.md"), *PACKAGES.glob("*/*.md"), *DOCS_MD, *GH.rglob("*.md")] ALL_SETUP_CFG = [SETUP_CFG, *PY_SETUP_CFG.values()] ALL_JS = [PACKAGES / ".eslintrc.js"] ALL_TS = sum(JS_TSSRC.values(), []) @@ -562,12 +559,17 @@ def _norm_js_version(pkg): ], [], ) + +# drawio-derived JS_PKG_PACK[IPDWP.name][0] += [ IPDWP_IGNORE, IPDWP_APP, *ALL_IPDWP_JS, ] +JS_PKG_PACK[IPDM.name][0] += [IPDWP_IGNORE, IPDWP_APP, *ALL_IPDM_JS, IPDM_STARTUP] + + # provisioning stuff IPYDRAWIO_DATA_DIR = Path(sys.prefix) / "share/jupyter/ipydrawio_export" @@ -862,7 +864,7 @@ def _copy_one(src, dest): if not src.exists(): return False if not dest.parent.exists(): - dest.parent.mkdir(parents=True) + dest.parent.mkdir(parents=True, exist_ok=True) if dest.exists(): if dest.is_dir(): shutil.rmtree(dest) diff --git a/yarn.lock b/yarn.lock index 2cbfe44c..f44d7756 100644 --- a/yarn.lock +++ b/yarn.lock @@ -99,14 +99,14 @@ "@jupyterlab/application" "^3.1.0" "@deathbeds/ipydrawio-webpack@file:packages/ipydrawio-webpack": - version "20.5.0" + version "20.5.300" dependencies: "@jupyterlab/application" "^3.1.0" "@deathbeds/ipydrawio@file:packages/ipydrawio": version "1.2.2" dependencies: - "@deathbeds/ipydrawio-webpack" "^20.5.0" + "@deathbeds/ipydrawio-webpack" "^20.5.300" "@jupyterlab/application" "^3.1.0" "@jupyterlab/launcher" "^3.1.0" "@jupyterlab/mainmenu" "^3.1.0"