Spaces:
Runtime error
Bump to Version 1.0.1 (#4)
Browse files* chore: delete not needed CI file
* feat: updating image build action to only run on release
* Feat: Added Action to build & lint python app
* chore
* Fix: Updating run options for actions
* Fix: Updated run options
* Chore: Cleanup
* Feat: Updating Action to run only with building branch
* Fix: Correcting File
* chore: simplifying application, making fixes
* chore: updating idea config
* chore: cleanup
* chore: updating markdown
* feat: implementing controller and other updates
* Fixing CI Actions (#5)
* Chore; Updating File Name
* Create hgf-sync-main.yml
* Update python-app.yml
* Delete .github/workflows/hgf-sync-bulding.yml
* chore: implementing linting with pylint, black and updating ci
* chore: fixing linting errors
* chore: fixing gh action workflow file
* feat: implementing latest version and basic interpretability methods
* feat: implementing everything for release version 1.0.0
- .dockerignore +7 -1
- .github/workflows/docker-publish.yml +10 -8
- .github/workflows/{hgf-sync.yml → hgf-sync-main.yml} +11 -3
- .github/workflows/hgf.yml +0 -20
- .github/workflows/python-app.yml +43 -0
- .gitignore +2 -1
- .idea/.gitignore +8 -0
- .idea/inspectionProfiles/profiles_settings.xml +6 -0
- .idea/misc.xml +7 -0
- .idea/modules.xml +8 -0
- .idea/thesis-webapp.iml +14 -0
- .idea/vcs.xml +6 -0
- .pre-commit-config.yaml +25 -0
- Compose.yaml +0 -7
- Dockerfile +10 -9
- Dockerfile-Base +2 -1
- Dockerfile-Light +0 -19
- LICENSE.md +1 -1
- README.md +8 -10
- __init__.py +2 -0
- backend/__init__.py +2 -0
- backend/controller.py +104 -0
- components/iframe/.gitignore +9 -0
- components/iframe/README.md +10 -0
- components/iframe/backend/gradio_iframe/__init__.py +3 -0
- components/iframe/backend/gradio_iframe/iframe.py +72 -0
- components/iframe/backend/gradio_iframe/templates/component/index.js +1994 -0
- components/iframe/backend/gradio_iframe/templates/component/style.css +1 -0
- components/iframe/backend/gradio_iframe/templates/example/index.js +80 -0
- components/iframe/backend/gradio_iframe/templates/example/style.css +1 -0
- {memory → components/iframe/demo}/__init__.py +0 -0
- components/iframe/demo/app.py +13 -0
- components/iframe/frontend/Example.svelte +20 -0
- components/iframe/frontend/Index.svelte +47 -0
- components/iframe/frontend/package-lock.json +933 -0
- components/iframe/frontend/package.json +20 -0
- components/iframe/frontend/shared/HTML.svelte +28 -0
- components/iframe/pyproject.toml +42 -0
- entrypoint.sh +2 -1
- explanation/__init__.py +2 -0
- explanation/interpret.py +122 -0
- explanation/visualize.py +110 -0
- main.py +185 -72
- memory/controller.py +0 -29
- memory/db.json +0 -0
- model/__init__.py +2 -0
- model/godel.py +63 -0
- model/llama2.md +0 -6
- model/llama2.py +0 -0
- model/mistral.md +0 -6
@@ -3,4 +3,10 @@ Compose.yaml
|
|
3 |
Dockerfile-Base
|
4 |
Dockerfile-Light
|
5 |
entrypoint.sh
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
Dockerfile-Base
|
4 |
Dockerfile-Light
|
5 |
entrypoint.sh
|
6 |
+
.gitignore
|
7 |
+
.github
|
8 |
+
.git
|
9 |
+
.pre-commit-config.yaml
|
10 |
+
start-venv.sh
|
11 |
+
/components/
|
12 |
+
/components/*
|
@@ -1,27 +1,30 @@
|
|
|
|
|
|
1 |
name: Docker Build & Publish
|
2 |
|
|
|
3 |
on:
|
4 |
release:
|
5 |
types: [created]
|
6 |
|
7 |
env:
|
8 |
-
#
|
9 |
REGISTRY: ghcr.io
|
10 |
-
# github.repository as <account>/<repo>
|
11 |
-
IMAGE_NAME: ${{ github.repository }}
|
12 |
-
|
13 |
|
|
|
14 |
jobs:
|
15 |
-
build:
|
16 |
|
|
|
|
|
17 |
runs-on: ubuntu-latest
|
18 |
permissions:
|
19 |
contents: read
|
20 |
packages: write
|
21 |
-
# This is used to complete the identity challenge
|
22 |
-
# with sigstore/fulcio when running outside of PRs.
|
23 |
id-token: write
|
24 |
|
|
|
25 |
steps:
|
26 |
- name: Checkout repository
|
27 |
uses: actions/checkout@v3
|
@@ -29,7 +32,6 @@ jobs:
|
|
29 |
# Install the cosign tool except on PR
|
30 |
# https://github.com/sigstore/cosign-installer
|
31 |
- name: Install cosign
|
32 |
-
if: github.event_name != 'pull_request'
|
33 |
uses: sigstore/cosign-installer@6e04d228eb30da1757ee4e1dd75a0ec73a653e06 #v3.1.1
|
34 |
with:
|
35 |
cosign-release: 'v2.1.1'
|
|
|
1 |
+
# Docker image build and publish workflow
|
2 |
+
# CREDIT: Adopted from
|
3 |
name: Docker Build & Publish
|
4 |
|
5 |
+
# running on every release and on manual dispatch
|
6 |
on:
|
7 |
release:
|
8 |
types: [created]
|
9 |
|
10 |
env:
|
11 |
+
# set the registry to the GitHub Container Registry
|
12 |
REGISTRY: ghcr.io
|
13 |
+
# set github.repository as <account>/<repo>
|
14 |
+
IMAGE_NAME: ${{ github.repository }}:${{ github.ref }}
|
|
|
15 |
|
16 |
+
# jobs to run
|
17 |
jobs:
|
|
|
18 |
|
19 |
+
# build job
|
20 |
+
build:
|
21 |
runs-on: ubuntu-latest
|
22 |
permissions:
|
23 |
contents: read
|
24 |
packages: write
|
|
|
|
|
25 |
id-token: write
|
26 |
|
27 |
+
# steps to run on the job
|
28 |
steps:
|
29 |
- name: Checkout repository
|
30 |
uses: actions/checkout@v3
|
|
|
32 |
# Install the cosign tool except on PR
|
33 |
# https://github.com/sigstore/cosign-installer
|
34 |
- name: Install cosign
|
|
|
35 |
uses: sigstore/cosign-installer@6e04d228eb30da1757ee4e1dd75a0ec73a653e06 #v3.1.1
|
36 |
with:
|
37 |
cosign-release: 'v2.1.1'
|
@@ -1,20 +1,28 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
2 |
on:
|
3 |
push:
|
4 |
branches: [main]
|
5 |
|
6 |
-
# to run this workflow manually from the Actions tab
|
7 |
workflow_dispatch:
|
8 |
|
|
|
9 |
jobs:
|
|
|
10 |
sync-to-hub:
|
11 |
runs-on: ubuntu-latest
|
12 |
steps:
|
|
|
13 |
- uses: actions/checkout@v3
|
14 |
with:
|
15 |
fetch-depth: 0
|
16 |
lfs: true
|
|
|
17 |
- name: Push to hub
|
18 |
env:
|
19 |
HF_TOKEN: ${{ secrets.HF_TOKEN }}
|
20 |
-
run
|
|
|
|
1 |
+
# workflow that syncs the main branch to the Hugging Face Hub (Huggingface Spaces)
|
2 |
+
#CREDIT Copied from Hugging Face, Inc.
|
3 |
+
|
4 |
+
name: HGF Hub Sync (Main)
|
5 |
+
# runs on pushes to the main branch and manually triggered workflows
|
6 |
on:
|
7 |
push:
|
8 |
branches: [main]
|
9 |
|
|
|
10 |
workflow_dispatch:
|
11 |
|
12 |
+
# jobs to run
|
13 |
jobs:
|
14 |
+
# sync job
|
15 |
sync-to-hub:
|
16 |
runs-on: ubuntu-latest
|
17 |
steps:
|
18 |
+
# checkout the repository
|
19 |
- uses: actions/checkout@v3
|
20 |
with:
|
21 |
fetch-depth: 0
|
22 |
lfs: true
|
23 |
+
# push to hub with huggingface token
|
24 |
- name: Push to hub
|
25 |
env:
|
26 |
HF_TOKEN: ${{ secrets.HF_TOKEN }}
|
27 |
+
# run git push
|
28 |
+
run: git push https://LennardZuendorf:[email protected]/spaces/LennardZuendorf/thesis-webapp-docker main
|
@@ -1,20 +0,0 @@
|
|
1 |
-
name: Sync to Hugging Face hub
|
2 |
-
on:
|
3 |
-
push:
|
4 |
-
branches: [main]
|
5 |
-
|
6 |
-
# to run this workflow manually from the Actions tab
|
7 |
-
workflow_dispatch:
|
8 |
-
|
9 |
-
jobs:
|
10 |
-
sync-to-hub:
|
11 |
-
runs-on: ubuntu-latest
|
12 |
-
steps:
|
13 |
-
- uses: actions/checkout@v3
|
14 |
-
with:
|
15 |
-
fetch-depth: 0
|
16 |
-
lfs: true
|
17 |
-
- name: Push to hub
|
18 |
-
env:
|
19 |
-
HF_TOKEN: ${{ secrets.HF_TOKEN }}
|
20 |
-
run: git push https://LennardZuendorf:[email protected]/spaces/LennardZuendorf/thesis-webapp main
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# workflow file tp build a python app and lint it
|
2 |
+
# CREDIT: Adopted from Github Actions Documentation
|
3 |
+
## see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
|
4 |
+
|
5 |
+
name: Python Install and Linting
|
6 |
+
|
7 |
+
# runs on every push/pr to any repo and on manual dispatch
|
8 |
+
on:
|
9 |
+
push:
|
10 |
+
|
11 |
+
pull_request:
|
12 |
+
|
13 |
+
workflow_dispatch:
|
14 |
+
|
15 |
+
permissions:
|
16 |
+
contents: read
|
17 |
+
|
18 |
+
# jobs to run
|
19 |
+
jobs:
|
20 |
+
# main build job that installs dependencies and lints
|
21 |
+
build:
|
22 |
+
runs-on: ubuntu-latest
|
23 |
+
|
24 |
+
steps:
|
25 |
+
# checkout the repository
|
26 |
+
- uses: actions/checkout@v3
|
27 |
+
# set up python 3.10
|
28 |
+
- name: Set up Python 3.10
|
29 |
+
uses: actions/setup-python@v3
|
30 |
+
with:
|
31 |
+
python-version: "3.10"
|
32 |
+
# install dependencies from requirements.txt
|
33 |
+
- name: Install dependencies
|
34 |
+
run: |
|
35 |
+
python -m pip install --upgrade pip
|
36 |
+
pip install pylint black
|
37 |
+
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
38 |
+
# lint and format all files with black (as defined in pyproject.toml)
|
39 |
+
- name: Lint & Fix with Black
|
40 |
+
run: black .
|
41 |
+
# lint with pylint
|
42 |
+
- name: Lint with Pylint
|
43 |
+
run: pylint .
|
@@ -1,2 +1,3 @@
|
|
1 |
/.env/
|
2 |
-
__pycache__/
|
|
|
|
1 |
/.env/
|
2 |
+
__pycache__/
|
3 |
+
/start-venv.sh
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Default ignored files
|
2 |
+
/shelf/
|
3 |
+
/workspace.xml
|
4 |
+
# Editor-based HTTP Client requests
|
5 |
+
/httpRequests/
|
6 |
+
# Datasource local storage ignored files
|
7 |
+
/dataSources/
|
8 |
+
/dataSources.local.xml
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<component name="InspectionProjectProfileManager">
|
2 |
+
<settings>
|
3 |
+
<option name="USE_PROJECT_PROFILE" value="false" />
|
4 |
+
<version value="1.0" />
|
5 |
+
</settings>
|
6 |
+
</component>
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="Black">
|
4 |
+
<option name="sdkName" value="Python 3.11.6 WSL (Ubuntu): (/home/lennard/.virtualenvs/thesis/bin/python)" />
|
5 |
+
</component>
|
6 |
+
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11.6 WSL (Ubuntu): (/home/lennard/.virtualenvs/thesis/bin/python)" project-jdk-type="Python SDK" />
|
7 |
+
</project>
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="ProjectModuleManager">
|
4 |
+
<modules>
|
5 |
+
<module fileurl="file://$PROJECT_DIR$/.idea/thesis-webapp.iml" filepath="$PROJECT_DIR$/.idea/thesis-webapp.iml" />
|
6 |
+
</modules>
|
7 |
+
</component>
|
8 |
+
</project>
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<module type="PYTHON_MODULE" version="4">
|
3 |
+
<component name="NewModuleRootManager">
|
4 |
+
<content url="file://$MODULE_DIR$">
|
5 |
+
<sourceFolder url="file://$MODULE_DIR$/components/bertviz/backend" isTestSource="false" />
|
6 |
+
<sourceFolder url="file://$MODULE_DIR$/components/iframe/backend" isTestSource="false" />
|
7 |
+
<sourceFolder url="file://$MODULE_DIR$/components/shap-plots/backend" isTestSource="false" />
|
8 |
+
<sourceFolder url="file://$MODULE_DIR$/components/shap/backend" isTestSource="false" />
|
9 |
+
<sourceFolder url="file://$MODULE_DIR$/components/visualizer/backend" isTestSource="false" />
|
10 |
+
</content>
|
11 |
+
<orderEntry type="jdk" jdkName="Python 3.11.6 WSL (Ubuntu): (/home/lennard/.virtualenvs/thesis/bin/python)" jdkType="Python SDK" />
|
12 |
+
<orderEntry type="sourceFolder" forTests="false" />
|
13 |
+
</component>
|
14 |
+
</module>
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project version="4">
|
3 |
+
<component name="VcsDirectoryMappings">
|
4 |
+
<mapping directory="" vcs="Git" />
|
5 |
+
</component>
|
6 |
+
</project>
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
repos:
|
2 |
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
3 |
+
rev: v2.3.0
|
4 |
+
hooks:
|
5 |
+
- id: check-yaml
|
6 |
+
- id: end-of-file-fixer
|
7 |
+
- id: trailing-whitespace
|
8 |
+
- repo: https://github.com/psf/black-pre-commit-mirror
|
9 |
+
rev: 23.12.1
|
10 |
+
hooks:
|
11 |
+
- id: black
|
12 |
+
language_version: python3.11
|
13 |
+
exclude: ^components/
|
14 |
+
- repo: local
|
15 |
+
hooks:
|
16 |
+
- id: pylint
|
17 |
+
name: pylint
|
18 |
+
entry: pylint
|
19 |
+
exclude: ^components/
|
20 |
+
language: system
|
21 |
+
types: [python]
|
22 |
+
args:
|
23 |
+
[
|
24 |
+
"-rn", # Only display messages
|
25 |
+
]
|
@@ -1,7 +0,0 @@
|
|
1 |
-
version: '3.8'
|
2 |
-
|
3 |
-
services:
|
4 |
-
application:
|
5 |
-
build: .
|
6 |
-
ports:
|
7 |
-
- "80:80"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1,22 +1,23 @@
|
|
1 |
-
#
|
2 |
|
3 |
-
|
4 |
-
FROM python:3.11.6
|
5 |
|
6 |
-
|
7 |
-
|
8 |
|
9 |
-
# install dependencies and copy files
|
10 |
COPY requirements.txt .
|
11 |
RUN pip install --no-cache-dir --upgrade -r requirements.txt
|
12 |
RUN pip install fastapi uvicorn
|
13 |
COPY . .
|
14 |
|
|
|
15 |
RUN ls --recursive .
|
16 |
|
17 |
# setting config and run command
|
18 |
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]
|
19 |
|
20 |
-
# build and run commands
|
21 |
-
## docker build -t thesis:0.
|
22 |
-
## docker run -d --name thesis -p 8080:8080 thesis:0.
|
|
|
1 |
+
# standard Dockerfile to build a complete, working image of the webapp
|
2 |
|
3 |
+
# complete build based on clean python (slower)
|
4 |
+
#FROM python:3.11.6
|
5 |
|
6 |
+
# build based on python with dependencies (quicker) - for dev
|
7 |
+
FROM thesis:0.2.0-base
|
8 |
|
9 |
+
# install dependencies and copy files into image folder
|
10 |
COPY requirements.txt .
|
11 |
RUN pip install --no-cache-dir --upgrade -r requirements.txt
|
12 |
RUN pip install fastapi uvicorn
|
13 |
COPY . .
|
14 |
|
15 |
+
# display files in image folder (for debugging)
|
16 |
RUN ls --recursive .
|
17 |
|
18 |
# setting config and run command
|
19 |
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]
|
20 |
|
21 |
+
# build and run commands:
|
22 |
+
## docker build -t thesis:0.2.0-full -f Dockerfile .
|
23 |
+
## docker run -d --name thesis -p 8080:8080 thesis:0.2.0
|
@@ -1,4 +1,5 @@
|
|
1 |
-
# Dockerfile to create base image with all needed dependencies
|
|
|
2 |
|
3 |
# using newest python as a base image
|
4 |
FROM python:3.11.6
|
|
|
1 |
+
# Dockerfile to create base image with all needed dependencies. for the quick dockerfile build of the webapp
|
2 |
+
# because all dependencies are already installed, the next webapp build using this base image is much quicker
|
3 |
|
4 |
# using newest python as a base image
|
5 |
FROM python:3.11.6
|
@@ -1,19 +0,0 @@
|
|
1 |
-
# Light Dockerfile with not ready built dependencies (1GB vs. 7-8 GB)
|
2 |
-
|
3 |
-
## newest python version as base image
|
4 |
-
FROM python:3.11.6
|
5 |
-
|
6 |
-
#set working directory and copying files, endpoint script
|
7 |
-
COPY . .
|
8 |
-
COPY entrypoint.sh .
|
9 |
-
|
10 |
-
# show files in directory
|
11 |
-
RUN ls --recursive .
|
12 |
-
|
13 |
-
# setting config and run command
|
14 |
-
RUN chmod +x ./entrypoint.sh
|
15 |
-
ENTRYPOINT [ "/webapp/entrypoint.sh" ]
|
16 |
-
|
17 |
-
# build and run commands
|
18 |
-
## docker build -t thesis:0.1.6-small -f Dockerfile-Light .
|
19 |
-
## docker run -d --name thesis -p 80:80 thesis:0.1.6-small
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18 |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
-
SOFTWARE.
|
|
|
18 |
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
+
SOFTWARE.
|
@@ -12,33 +12,31 @@ app_port: 8080
|
|
12 |
---
|
13 |
|
14 |
# Bachelor Thesis
|
|
|
15 |
#### This is the ui showcase for my thesis about interpretability in a LLM based chatbot application and applications of XAI.
|
16 |
|
17 |
## 🔗 Links:
|
18 |
|
19 |
-
**[Github Repository](https://github.com/LennardZuendorf/thesis)**
|
|
|
20 |
|
21 |
## 🏗️ Tech Stack:
|
22 |
|
23 |
-
**Language and Framework:** Python
|
24 |
|
25 |
-
**Noteable Packages:** 🤗 Transformers, Gradio, SHAP, BERTViz
|
26 |
|
27 |
## 👨💻 Author and Credits:</h2>
|
28 |
|
29 |
-
|
30 |
**Author:** [@LennardZuendorf](https://github.com/LennardZuendorf)
|
31 |
|
32 |
-
**Thesis Supervisor**: [Prof. Dr. Simbeck](https://www.htw-berlin.de/hochschule/personen/person/?eid=9862)
|
33 |
<br> Second Corrector: [Prof. Dr. Hochstein](https://www.htw-berlin.de/hochschule/personen/person/?eid=10628)
|
34 |
|
|
|
35 |
|
36 |
-
|
37 |
-
|
38 |
-
- Mistral AI
|
39 |
- SHAP:
|
40 |
- BERTViz:
|
41 |
|
42 |
-
|
43 |
This Project was part of my studies of Business Computing at University of Applied Science for Technology and Business Berlin (HTW Berlin).
|
44 |
-
|
|
|
12 |
---
|
13 |
|
14 |
# Bachelor Thesis
|
15 |
+
## Webapp
|
16 |
#### This is the ui showcase for my thesis about interpretability in a LLM based chatbot application and applications of XAI.
|
17 |
|
18 |
## 🔗 Links:
|
19 |
|
20 |
+
**[Github Repository](https://github.com/LennardZuendorf/thesis-webapp)**
|
21 |
+
**[Huggingface Spaces Showcase](https://huggingface.co/spaces/lennardzuendorf/thesis-webapp-docker**
|
22 |
|
23 |
## 🏗️ Tech Stack:
|
24 |
|
25 |
+
**Language and Framework:** Python
|
26 |
|
27 |
+
**Noteable Packages:** 🤗 Transformers, FastAPI, Gradio, SHAP, BERTViz
|
28 |
|
29 |
## 👨💻 Author and Credits:</h2>
|
30 |
|
|
|
31 |
**Author:** [@LennardZuendorf](https://github.com/LennardZuendorf)
|
32 |
|
33 |
+
**Thesis Supervisor**: [Prof. Dr. Simbeck](https://www.htw-berlin.de/hochschule/personen/person/?eid=9862)
|
34 |
<br> Second Corrector: [Prof. Dr. Hochstein](https://www.htw-berlin.de/hochschule/personen/person/?eid=10628)
|
35 |
|
36 |
+
See code for in detailed credits, work is based on
|
37 |
|
38 |
+
- GODEL:
|
|
|
|
|
39 |
- SHAP:
|
40 |
- BERTViz:
|
41 |
|
|
|
42 |
This Project was part of my studies of Business Computing at University of Applied Science for Technology and Business Berlin (HTW Berlin).
|
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
# empty init file for the package
|
2 |
+
# for fastapi to recognize the module
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
# empty init file for the package
|
2 |
+
# for fastapi to recognize the module
|
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# controller for the application that calls the model and explanation functions
|
2 |
+
# and returns the updated conversation history
|
3 |
+
|
4 |
+
# external imports
|
5 |
+
import gradio as gr
|
6 |
+
|
7 |
+
# internal imports
|
8 |
+
from model import godel
|
9 |
+
from explanation import interpret, visualize
|
10 |
+
|
11 |
+
|
12 |
+
# main interference function that that calls chat functions depending on selections
|
13 |
+
# TODO: Limit maximum tokens/model input
|
14 |
+
def interference(
|
15 |
+
prompt: str,
|
16 |
+
history: list,
|
17 |
+
knowledge: str,
|
18 |
+
system_prompt: str,
|
19 |
+
xai_selection: str,
|
20 |
+
):
|
21 |
+
# if no system prompt is given, use a default one
|
22 |
+
if system_prompt == "":
|
23 |
+
system_prompt = """
|
24 |
+
You are a helpful, respectful and honest assistant.
|
25 |
+
Always answer as helpfully as possible, while being safe.
|
26 |
+
"""
|
27 |
+
|
28 |
+
# if a XAI approach is selected, grab the XAI instance
|
29 |
+
if xai_selection in ("SHAP", "Visualizer"):
|
30 |
+
match xai_selection.lower():
|
31 |
+
case "shap":
|
32 |
+
xai = interpret
|
33 |
+
case "visualizer":
|
34 |
+
xai = visualize
|
35 |
+
case _:
|
36 |
+
# use Gradio warning to display error message
|
37 |
+
gr.Warning(f"""
|
38 |
+
There was an error in the selected XAI Approach.
|
39 |
+
It is "{xai_selection}"
|
40 |
+
""")
|
41 |
+
raise RuntimeError("There was an error in the selected XAI approach.")
|
42 |
+
|
43 |
+
# call the explained chat function
|
44 |
+
prompt_output, history_output, xai_graphic, xai_plot = explained_chat(
|
45 |
+
model=godel,
|
46 |
+
xai=xai,
|
47 |
+
message=prompt,
|
48 |
+
history=history,
|
49 |
+
system_prompt=system_prompt,
|
50 |
+
knowledge=knowledge,
|
51 |
+
)
|
52 |
+
# if no (or invalid) XAI approach is selected call the vanilla chat function
|
53 |
+
else:
|
54 |
+
# call the vanilla chat function
|
55 |
+
prompt_output, history_output = vanilla_chat(
|
56 |
+
model=godel,
|
57 |
+
message=prompt,
|
58 |
+
history=history,
|
59 |
+
system_prompt=system_prompt,
|
60 |
+
knowledge=knowledge,
|
61 |
+
)
|
62 |
+
# set XAI outputs to disclaimer html/none
|
63 |
+
xai_graphic, xai_plot = (
|
64 |
+
"""
|
65 |
+
<div style="text-align: center"><h4>Without Selected XAI Approach,
|
66 |
+
no graphic will be displayed</h4></div>
|
67 |
+
""",
|
68 |
+
None,
|
69 |
+
)
|
70 |
+
|
71 |
+
# return the outputs
|
72 |
+
return prompt_output, history_output, xai_graphic, xai_plot
|
73 |
+
|
74 |
+
|
75 |
+
# simple chat function that calls the model
|
76 |
+
# formats prompts, calls for an answer and returns updated conversation history
|
77 |
+
def vanilla_chat(
|
78 |
+
model, message: str, history: list, system_prompt: str, knowledge: str = ""
|
79 |
+
):
|
80 |
+
# formatting the prompt using the model's format_prompt function
|
81 |
+
prompt = model.format_prompt(message, history, system_prompt, knowledge)
|
82 |
+
# generating an answer using the model's respond function
|
83 |
+
answer = model.respond(prompt)
|
84 |
+
|
85 |
+
# updating the chat history with the new answer
|
86 |
+
history.append((message, answer))
|
87 |
+
|
88 |
+
# returning the updated history
|
89 |
+
return "", history
|
90 |
+
|
91 |
+
|
92 |
+
def explained_chat(
|
93 |
+
model, xai, message: str, history: list, system_prompt: str, knowledge: str = ""
|
94 |
+
):
|
95 |
+
# formatting the prompt using the model's format_prompt function
|
96 |
+
prompt = model.format_prompt(message, history, system_prompt, knowledge)
|
97 |
+
|
98 |
+
# generating an answer using the xai methods explain and respond function
|
99 |
+
answer, xai_graphic, xai_plot = xai.chat_explained(model, prompt)
|
100 |
+
# updating the chat history with the new answer
|
101 |
+
history.append((message, answer))
|
102 |
+
|
103 |
+
# returning the updated history, xai graphic and xai plot elements
|
104 |
+
return "", history, xai_graphic, xai_plot
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.eggs/
|
2 |
+
dist/
|
3 |
+
*.pyc
|
4 |
+
__pycache__/
|
5 |
+
*.py[cod]
|
6 |
+
*$py.class
|
7 |
+
__tmp/*
|
8 |
+
*.pyi
|
9 |
+
node_modules
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
# gradio_iframe
|
3 |
+
A Custom Gradio component.
|
4 |
+
|
5 |
+
## Example usage
|
6 |
+
|
7 |
+
```python
|
8 |
+
import gradio as gr
|
9 |
+
from gradio_iframe import iframe
|
10 |
+
```
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
from .iframe import iframe
|
2 |
+
|
3 |
+
__all__ = ["iframe"]
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""gr.HTML() component."""
|
2 |
+
|
3 |
+
from __future__ import annotations
|
4 |
+
|
5 |
+
from typing import Any, Callable
|
6 |
+
|
7 |
+
from gradio_client.documentation import document, set_documentation_group
|
8 |
+
|
9 |
+
from gradio.components.base import Component
|
10 |
+
from gradio.events import Events
|
11 |
+
|
12 |
+
set_documentation_group("component")
|
13 |
+
|
14 |
+
|
15 |
+
@document()
|
16 |
+
class iframe(Component):
|
17 |
+
"""
|
18 |
+
Used to display arbitrary iframe output.
|
19 |
+
Preprocessing: this component does *not* accept input.
|
20 |
+
Postprocessing: expects a valid iframe {str}.
|
21 |
+
|
22 |
+
Demos: text_analysis
|
23 |
+
Guides: key-features
|
24 |
+
"""
|
25 |
+
|
26 |
+
EVENTS = [Events.change]
|
27 |
+
|
28 |
+
def __init__(
|
29 |
+
self,
|
30 |
+
value: str | Callable = "",
|
31 |
+
*,
|
32 |
+
label: str | None = None,
|
33 |
+
every: float | None = None,
|
34 |
+
show_label: bool | None = None,
|
35 |
+
visible: bool = True,
|
36 |
+
elem_id: str | None = None,
|
37 |
+
elem_classes: list[str] | str | None = None,
|
38 |
+
render: bool = True,
|
39 |
+
):
|
40 |
+
"""
|
41 |
+
Parameters:
|
42 |
+
value: Default value. If callable, the function will be called whenever the app loads to set the initial value of the component.
|
43 |
+
label: The label for this component. Is used as the header if there are a table of examples for this component. If None and used in a `gr.Interface`, the label will be the name of the parameter this component is assigned to.
|
44 |
+
every: If `value` is a callable, run the function 'every' number of seconds while the client connection is open. Has no effect otherwise. Queue must be enabled. The event can be accessed (e.g. to cancel it) via this component's .load_event attribute.
|
45 |
+
show_label: This parameter has no effect.
|
46 |
+
visible: If False, component will be hidden.
|
47 |
+
elem_id: An optional string that is assigned as the id of this component in the iframe DOM. Can be used for targeting CSS styles.
|
48 |
+
elem_classes: An optional list of strings that are assigned as the classes of this component in the iframe DOM. Can be used for targeting CSS styles.
|
49 |
+
render: If False, component will not render be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later.
|
50 |
+
"""
|
51 |
+
super().__init__(
|
52 |
+
label=label,
|
53 |
+
every=every,
|
54 |
+
show_label=show_label,
|
55 |
+
visible=visible,
|
56 |
+
elem_id=elem_id,
|
57 |
+
elem_classes=elem_classes,
|
58 |
+
render=render,
|
59 |
+
value=value,
|
60 |
+
)
|
61 |
+
|
62 |
+
def example_inputs(self) -> Any:
|
63 |
+
return "<p>Hello</p>"
|
64 |
+
|
65 |
+
def preprocess(self, payload: str | None) -> str | None:
|
66 |
+
return payload
|
67 |
+
|
68 |
+
def postprocess(self, value: str | None) -> str | None:
|
69 |
+
return value
|
70 |
+
|
71 |
+
def api_info(self) -> dict[str, Any]:
|
72 |
+
return {"type": "string"}
|
@@ -0,0 +1,1994 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const {
|
2 |
+
SvelteComponent: lt,
|
3 |
+
attr: he,
|
4 |
+
detach: nt,
|
5 |
+
element: it,
|
6 |
+
init: st,
|
7 |
+
insert: ft,
|
8 |
+
noop: we,
|
9 |
+
safe_not_equal: ot,
|
10 |
+
toggle_class: W
|
11 |
+
} = window.__gradio__svelte__internal, { createEventDispatcher: at } = window.__gradio__svelte__internal;
|
12 |
+
function rt(n) {
|
13 |
+
let t, e;
|
14 |
+
return {
|
15 |
+
c() {
|
16 |
+
t = it("div"), he(t, "class", e = "prose " + /*elem_classes*/
|
17 |
+
n[0].join(" ") + " svelte-2qygph"), W(
|
18 |
+
t,
|
19 |
+
"min",
|
20 |
+
/*min_height*/
|
21 |
+
n[3]
|
22 |
+
), W(t, "hide", !/*visible*/
|
23 |
+
n[2]);
|
24 |
+
},
|
25 |
+
m(l, i) {
|
26 |
+
ft(l, t, i), t.innerHTML = /*value*/
|
27 |
+
n[1];
|
28 |
+
},
|
29 |
+
p(l, [i]) {
|
30 |
+
i & /*value*/
|
31 |
+
2 && (t.innerHTML = /*value*/
|
32 |
+
l[1]), i & /*elem_classes*/
|
33 |
+
1 && e !== (e = "prose " + /*elem_classes*/
|
34 |
+
l[0].join(" ") + " svelte-2qygph") && he(t, "class", e), i & /*elem_classes, min_height*/
|
35 |
+
9 && W(
|
36 |
+
t,
|
37 |
+
"min",
|
38 |
+
/*min_height*/
|
39 |
+
l[3]
|
40 |
+
), i & /*elem_classes, visible*/
|
41 |
+
5 && W(t, "hide", !/*visible*/
|
42 |
+
l[2]);
|
43 |
+
},
|
44 |
+
i: we,
|
45 |
+
o: we,
|
46 |
+
d(l) {
|
47 |
+
l && nt(t);
|
48 |
+
}
|
49 |
+
};
|
50 |
+
}
|
51 |
+
function _t(n, t, e) {
|
52 |
+
let { elem_classes: l = [] } = t, { value: i } = t, { visible: f = !0 } = t, { min_height: o = !1 } = t;
|
53 |
+
const a = at();
|
54 |
+
return n.$$set = (r) => {
|
55 |
+
"elem_classes" in r && e(0, l = r.elem_classes), "value" in r && e(1, i = r.value), "visible" in r && e(2, f = r.visible), "min_height" in r && e(3, o = r.min_height);
|
56 |
+
}, n.$$.update = () => {
|
57 |
+
n.$$.dirty & /*value*/
|
58 |
+
2 && a("change");
|
59 |
+
}, [l, i, f, o];
|
60 |
+
}
|
61 |
+
class ut extends lt {
|
62 |
+
constructor(t) {
|
63 |
+
super(), st(this, t, _t, rt, ot, {
|
64 |
+
elem_classes: 0,
|
65 |
+
value: 1,
|
66 |
+
visible: 2,
|
67 |
+
min_height: 3
|
68 |
+
});
|
69 |
+
}
|
70 |
+
}
|
71 |
+
function X(n) {
|
72 |
+
let t = ["", "k", "M", "G", "T", "P", "E", "Z"], e = 0;
|
73 |
+
for (; n > 1e3 && e < t.length - 1; )
|
74 |
+
n /= 1e3, e++;
|
75 |
+
let l = t[e];
|
76 |
+
return (Number.isInteger(n) ? n : n.toFixed(1)) + l;
|
77 |
+
}
|
78 |
+
function ee() {
|
79 |
+
}
|
80 |
+
function ct(n, t) {
|
81 |
+
return n != n ? t == t : n !== t || n && typeof n == "object" || typeof n == "function";
|
82 |
+
}
|
83 |
+
const Oe = typeof window < "u";
|
84 |
+
let ve = Oe ? () => window.performance.now() : () => Date.now(), Re = Oe ? (n) => requestAnimationFrame(n) : ee;
|
85 |
+
const Y = /* @__PURE__ */ new Set();
|
86 |
+
function Ue(n) {
|
87 |
+
Y.forEach((t) => {
|
88 |
+
t.c(n) || (Y.delete(t), t.f());
|
89 |
+
}), Y.size !== 0 && Re(Ue);
|
90 |
+
}
|
91 |
+
function dt(n) {
|
92 |
+
let t;
|
93 |
+
return Y.size === 0 && Re(Ue), {
|
94 |
+
promise: new Promise((e) => {
|
95 |
+
Y.add(t = { c: n, f: e });
|
96 |
+
}),
|
97 |
+
abort() {
|
98 |
+
Y.delete(t);
|
99 |
+
}
|
100 |
+
};
|
101 |
+
}
|
102 |
+
const H = [];
|
103 |
+
function mt(n, t = ee) {
|
104 |
+
let e;
|
105 |
+
const l = /* @__PURE__ */ new Set();
|
106 |
+
function i(a) {
|
107 |
+
if (ct(n, a) && (n = a, e)) {
|
108 |
+
const r = !H.length;
|
109 |
+
for (const s of l)
|
110 |
+
s[1](), H.push(s, n);
|
111 |
+
if (r) {
|
112 |
+
for (let s = 0; s < H.length; s += 2)
|
113 |
+
H[s][0](H[s + 1]);
|
114 |
+
H.length = 0;
|
115 |
+
}
|
116 |
+
}
|
117 |
+
}
|
118 |
+
function f(a) {
|
119 |
+
i(a(n));
|
120 |
+
}
|
121 |
+
function o(a, r = ee) {
|
122 |
+
const s = [a, r];
|
123 |
+
return l.add(s), l.size === 1 && (e = t(i, f) || ee), a(n), () => {
|
124 |
+
l.delete(s), l.size === 0 && e && (e(), e = null);
|
125 |
+
};
|
126 |
+
}
|
127 |
+
return { set: i, update: f, subscribe: o };
|
128 |
+
}
|
129 |
+
function ye(n) {
|
130 |
+
return Object.prototype.toString.call(n) === "[object Date]";
|
131 |
+
}
|
132 |
+
function se(n, t, e, l) {
|
133 |
+
if (typeof e == "number" || ye(e)) {
|
134 |
+
const i = l - e, f = (e - t) / (n.dt || 1 / 60), o = n.opts.stiffness * i, a = n.opts.damping * f, r = (o - a) * n.inv_mass, s = (f + r) * n.dt;
|
135 |
+
return Math.abs(s) < n.opts.precision && Math.abs(i) < n.opts.precision ? l : (n.settled = !1, ye(e) ? new Date(e.getTime() + s) : e + s);
|
136 |
+
} else {
|
137 |
+
if (Array.isArray(e))
|
138 |
+
return e.map(
|
139 |
+
(i, f) => se(n, t[f], e[f], l[f])
|
140 |
+
);
|
141 |
+
if (typeof e == "object") {
|
142 |
+
const i = {};
|
143 |
+
for (const f in e)
|
144 |
+
i[f] = se(n, t[f], e[f], l[f]);
|
145 |
+
return i;
|
146 |
+
} else
|
147 |
+
throw new Error(`Cannot spring ${typeof e} values`);
|
148 |
+
}
|
149 |
+
}
|
150 |
+
function ke(n, t = {}) {
|
151 |
+
const e = mt(n), { stiffness: l = 0.15, damping: i = 0.8, precision: f = 0.01 } = t;
|
152 |
+
let o, a, r, s = n, _ = n, c = 1, w = 0, h = !1;
|
153 |
+
function y(p, L = {}) {
|
154 |
+
_ = p;
|
155 |
+
const F = r = {};
|
156 |
+
return n == null || L.hard || C.stiffness >= 1 && C.damping >= 1 ? (h = !0, o = ve(), s = p, e.set(n = _), Promise.resolve()) : (L.soft && (w = 1 / ((L.soft === !0 ? 0.5 : +L.soft) * 60), c = 0), a || (o = ve(), h = !1, a = dt((u) => {
|
157 |
+
if (h)
|
158 |
+
return h = !1, a = null, !1;
|
159 |
+
c = Math.min(c + w, 1);
|
160 |
+
const k = {
|
161 |
+
inv_mass: c,
|
162 |
+
opts: C,
|
163 |
+
settled: !0,
|
164 |
+
dt: (u - o) * 60 / 1e3
|
165 |
+
}, m = se(k, s, n, _);
|
166 |
+
return o = u, s = n, e.set(n = m), k.settled && (a = null), !k.settled;
|
167 |
+
})), new Promise((u) => {
|
168 |
+
a.promise.then(() => {
|
169 |
+
F === r && u();
|
170 |
+
});
|
171 |
+
}));
|
172 |
+
}
|
173 |
+
const C = {
|
174 |
+
set: y,
|
175 |
+
update: (p, L) => y(p(_, n), L),
|
176 |
+
subscribe: e.subscribe,
|
177 |
+
stiffness: l,
|
178 |
+
damping: i,
|
179 |
+
precision: f
|
180 |
+
};
|
181 |
+
return C;
|
182 |
+
}
|
183 |
+
const {
|
184 |
+
SvelteComponent: bt,
|
185 |
+
append: N,
|
186 |
+
attr: v,
|
187 |
+
component_subscribe: pe,
|
188 |
+
detach: gt,
|
189 |
+
element: ht,
|
190 |
+
init: wt,
|
191 |
+
insert: vt,
|
192 |
+
noop: qe,
|
193 |
+
safe_not_equal: yt,
|
194 |
+
set_style: x,
|
195 |
+
svg_element: T,
|
196 |
+
toggle_class: Fe
|
197 |
+
} = window.__gradio__svelte__internal, { onMount: kt } = window.__gradio__svelte__internal;
|
198 |
+
function pt(n) {
|
199 |
+
let t, e, l, i, f, o, a, r, s, _, c, w;
|
200 |
+
return {
|
201 |
+
c() {
|
202 |
+
t = ht("div"), e = T("svg"), l = T("g"), i = T("path"), f = T("path"), o = T("path"), a = T("path"), r = T("g"), s = T("path"), _ = T("path"), c = T("path"), w = T("path"), v(i, "d", "M255.926 0.754768L509.702 139.936V221.027L255.926 81.8465V0.754768Z"), v(i, "fill", "#FF7C00"), v(i, "fill-opacity", "0.4"), v(i, "class", "svelte-43sxxs"), v(f, "d", "M509.69 139.936L254.981 279.641V361.255L509.69 221.55V139.936Z"), v(f, "fill", "#FF7C00"), v(f, "class", "svelte-43sxxs"), v(o, "d", "M0.250138 139.937L254.981 279.641V361.255L0.250138 221.55V139.937Z"), v(o, "fill", "#FF7C00"), v(o, "fill-opacity", "0.4"), v(o, "class", "svelte-43sxxs"), v(a, "d", "M255.923 0.232622L0.236328 139.936V221.55L255.923 81.8469V0.232622Z"), v(a, "fill", "#FF7C00"), v(a, "class", "svelte-43sxxs"), x(l, "transform", "translate(" + /*$top*/
|
203 |
+
n[1][0] + "px, " + /*$top*/
|
204 |
+
n[1][1] + "px)"), v(s, "d", "M255.926 141.5L509.702 280.681V361.773L255.926 222.592V141.5Z"), v(s, "fill", "#FF7C00"), v(s, "fill-opacity", "0.4"), v(s, "class", "svelte-43sxxs"), v(_, "d", "M509.69 280.679L254.981 420.384V501.998L509.69 362.293V280.679Z"), v(_, "fill", "#FF7C00"), v(_, "class", "svelte-43sxxs"), v(c, "d", "M0.250138 280.681L254.981 420.386V502L0.250138 362.295V280.681Z"), v(c, "fill", "#FF7C00"), v(c, "fill-opacity", "0.4"), v(c, "class", "svelte-43sxxs"), v(w, "d", "M255.923 140.977L0.236328 280.68V362.294L255.923 222.591V140.977Z"), v(w, "fill", "#FF7C00"), v(w, "class", "svelte-43sxxs"), x(r, "transform", "translate(" + /*$bottom*/
|
205 |
+
n[2][0] + "px, " + /*$bottom*/
|
206 |
+
n[2][1] + "px)"), v(e, "viewBox", "-1200 -1200 3000 3000"), v(e, "fill", "none"), v(e, "xmlns", "http://www.w3.org/2000/svg"), v(e, "class", "svelte-43sxxs"), v(t, "class", "svelte-43sxxs"), Fe(
|
207 |
+
t,
|
208 |
+
"margin",
|
209 |
+
/*margin*/
|
210 |
+
n[0]
|
211 |
+
);
|
212 |
+
},
|
213 |
+
m(h, y) {
|
214 |
+
vt(h, t, y), N(t, e), N(e, l), N(l, i), N(l, f), N(l, o), N(l, a), N(e, r), N(r, s), N(r, _), N(r, c), N(r, w);
|
215 |
+
},
|
216 |
+
p(h, [y]) {
|
217 |
+
y & /*$top*/
|
218 |
+
2 && x(l, "transform", "translate(" + /*$top*/
|
219 |
+
h[1][0] + "px, " + /*$top*/
|
220 |
+
h[1][1] + "px)"), y & /*$bottom*/
|
221 |
+
4 && x(r, "transform", "translate(" + /*$bottom*/
|
222 |
+
h[2][0] + "px, " + /*$bottom*/
|
223 |
+
h[2][1] + "px)"), y & /*margin*/
|
224 |
+
1 && Fe(
|
225 |
+
t,
|
226 |
+
"margin",
|
227 |
+
/*margin*/
|
228 |
+
h[0]
|
229 |
+
);
|
230 |
+
},
|
231 |
+
i: qe,
|
232 |
+
o: qe,
|
233 |
+
d(h) {
|
234 |
+
h && gt(t);
|
235 |
+
}
|
236 |
+
};
|
237 |
+
}
|
238 |
+
function qt(n, t, e) {
|
239 |
+
let l, i, { margin: f = !0 } = t;
|
240 |
+
const o = ke([0, 0]);
|
241 |
+
pe(n, o, (w) => e(1, l = w));
|
242 |
+
const a = ke([0, 0]);
|
243 |
+
pe(n, a, (w) => e(2, i = w));
|
244 |
+
let r;
|
245 |
+
async function s() {
|
246 |
+
await Promise.all([o.set([125, 140]), a.set([-125, -140])]), await Promise.all([o.set([-125, 140]), a.set([125, -140])]), await Promise.all([o.set([-125, 0]), a.set([125, -0])]), await Promise.all([o.set([125, 0]), a.set([-125, 0])]);
|
247 |
+
}
|
248 |
+
async function _() {
|
249 |
+
await s(), r || _();
|
250 |
+
}
|
251 |
+
async function c() {
|
252 |
+
await Promise.all([o.set([125, 0]), a.set([-125, 0])]), _();
|
253 |
+
}
|
254 |
+
return kt(() => (c(), () => r = !0)), n.$$set = (w) => {
|
255 |
+
"margin" in w && e(0, f = w.margin);
|
256 |
+
}, [f, l, i, o, a];
|
257 |
+
}
|
258 |
+
class Ft extends bt {
|
259 |
+
constructor(t) {
|
260 |
+
super(), wt(this, t, qt, pt, yt, { margin: 0 });
|
261 |
+
}
|
262 |
+
}
|
263 |
+
const {
|
264 |
+
SvelteComponent: Lt,
|
265 |
+
append: I,
|
266 |
+
attr: z,
|
267 |
+
binding_callbacks: Le,
|
268 |
+
check_outros: Je,
|
269 |
+
create_component: Ct,
|
270 |
+
create_slot: Mt,
|
271 |
+
destroy_component: Vt,
|
272 |
+
destroy_each: Ke,
|
273 |
+
detach: b,
|
274 |
+
element: P,
|
275 |
+
empty: R,
|
276 |
+
ensure_array_like: te,
|
277 |
+
get_all_dirty_from_scope: St,
|
278 |
+
get_slot_changes: Nt,
|
279 |
+
group_outros: Qe,
|
280 |
+
init: Tt,
|
281 |
+
insert: g,
|
282 |
+
mount_component: zt,
|
283 |
+
noop: fe,
|
284 |
+
safe_not_equal: jt,
|
285 |
+
set_data: S,
|
286 |
+
set_style: A,
|
287 |
+
space: j,
|
288 |
+
text: q,
|
289 |
+
toggle_class: V,
|
290 |
+
transition_in: G,
|
291 |
+
transition_out: O,
|
292 |
+
update_slot_base: Pt
|
293 |
+
} = window.__gradio__svelte__internal, { tick: Zt } = window.__gradio__svelte__internal, { onDestroy: Bt } = window.__gradio__svelte__internal, At = (n) => ({}), Ce = (n) => ({});
|
294 |
+
function Me(n, t, e) {
|
295 |
+
const l = n.slice();
|
296 |
+
return l[38] = t[e], l[40] = e, l;
|
297 |
+
}
|
298 |
+
function Ve(n, t, e) {
|
299 |
+
const l = n.slice();
|
300 |
+
return l[38] = t[e], l;
|
301 |
+
}
|
302 |
+
function Dt(n) {
|
303 |
+
let t, e = (
|
304 |
+
/*i18n*/
|
305 |
+
n[1]("common.error") + ""
|
306 |
+
), l, i, f;
|
307 |
+
const o = (
|
308 |
+
/*#slots*/
|
309 |
+
n[29].error
|
310 |
+
), a = Mt(
|
311 |
+
o,
|
312 |
+
n,
|
313 |
+
/*$$scope*/
|
314 |
+
n[28],
|
315 |
+
Ce
|
316 |
+
);
|
317 |
+
return {
|
318 |
+
c() {
|
319 |
+
t = P("span"), l = q(e), i = j(), a && a.c(), z(t, "class", "error svelte-1txqlrd");
|
320 |
+
},
|
321 |
+
m(r, s) {
|
322 |
+
g(r, t, s), I(t, l), g(r, i, s), a && a.m(r, s), f = !0;
|
323 |
+
},
|
324 |
+
p(r, s) {
|
325 |
+
(!f || s[0] & /*i18n*/
|
326 |
+
2) && e !== (e = /*i18n*/
|
327 |
+
r[1]("common.error") + "") && S(l, e), a && a.p && (!f || s[0] & /*$$scope*/
|
328 |
+
268435456) && Pt(
|
329 |
+
a,
|
330 |
+
o,
|
331 |
+
r,
|
332 |
+
/*$$scope*/
|
333 |
+
r[28],
|
334 |
+
f ? Nt(
|
335 |
+
o,
|
336 |
+
/*$$scope*/
|
337 |
+
r[28],
|
338 |
+
s,
|
339 |
+
At
|
340 |
+
) : St(
|
341 |
+
/*$$scope*/
|
342 |
+
r[28]
|
343 |
+
),
|
344 |
+
Ce
|
345 |
+
);
|
346 |
+
},
|
347 |
+
i(r) {
|
348 |
+
f || (G(a, r), f = !0);
|
349 |
+
},
|
350 |
+
o(r) {
|
351 |
+
O(a, r), f = !1;
|
352 |
+
},
|
353 |
+
d(r) {
|
354 |
+
r && (b(t), b(i)), a && a.d(r);
|
355 |
+
}
|
356 |
+
};
|
357 |
+
}
|
358 |
+
function Et(n) {
|
359 |
+
let t, e, l, i, f, o, a, r, s, _ = (
|
360 |
+
/*variant*/
|
361 |
+
n[8] === "default" && /*show_eta_bar*/
|
362 |
+
n[18] && /*show_progress*/
|
363 |
+
n[6] === "full" && Se(n)
|
364 |
+
);
|
365 |
+
function c(u, k) {
|
366 |
+
if (
|
367 |
+
/*progress*/
|
368 |
+
u[7]
|
369 |
+
)
|
370 |
+
return Xt;
|
371 |
+
if (
|
372 |
+
/*queue_position*/
|
373 |
+
u[2] !== null && /*queue_size*/
|
374 |
+
u[3] !== void 0 && /*queue_position*/
|
375 |
+
u[2] >= 0
|
376 |
+
)
|
377 |
+
return Ht;
|
378 |
+
if (
|
379 |
+
/*queue_position*/
|
380 |
+
u[2] === 0
|
381 |
+
)
|
382 |
+
return It;
|
383 |
+
}
|
384 |
+
let w = c(n), h = w && w(n), y = (
|
385 |
+
/*timer*/
|
386 |
+
n[5] && ze(n)
|
387 |
+
);
|
388 |
+
const C = [Rt, Ot], p = [];
|
389 |
+
function L(u, k) {
|
390 |
+
return (
|
391 |
+
/*last_progress_level*/
|
392 |
+
u[15] != null ? 0 : (
|
393 |
+
/*show_progress*/
|
394 |
+
u[6] === "full" ? 1 : -1
|
395 |
+
)
|
396 |
+
);
|
397 |
+
}
|
398 |
+
~(f = L(n)) && (o = p[f] = C[f](n));
|
399 |
+
let F = !/*timer*/
|
400 |
+
n[5] && Ee(n);
|
401 |
+
return {
|
402 |
+
c() {
|
403 |
+
_ && _.c(), t = j(), e = P("div"), h && h.c(), l = j(), y && y.c(), i = j(), o && o.c(), a = j(), F && F.c(), r = R(), z(e, "class", "progress-text svelte-1txqlrd"), V(
|
404 |
+
e,
|
405 |
+
"meta-text-center",
|
406 |
+
/*variant*/
|
407 |
+
n[8] === "center"
|
408 |
+
), V(
|
409 |
+
e,
|
410 |
+
"meta-text",
|
411 |
+
/*variant*/
|
412 |
+
n[8] === "default"
|
413 |
+
);
|
414 |
+
},
|
415 |
+
m(u, k) {
|
416 |
+
_ && _.m(u, k), g(u, t, k), g(u, e, k), h && h.m(e, null), I(e, l), y && y.m(e, null), g(u, i, k), ~f && p[f].m(u, k), g(u, a, k), F && F.m(u, k), g(u, r, k), s = !0;
|
417 |
+
},
|
418 |
+
p(u, k) {
|
419 |
+
/*variant*/
|
420 |
+
u[8] === "default" && /*show_eta_bar*/
|
421 |
+
u[18] && /*show_progress*/
|
422 |
+
u[6] === "full" ? _ ? _.p(u, k) : (_ = Se(u), _.c(), _.m(t.parentNode, t)) : _ && (_.d(1), _ = null), w === (w = c(u)) && h ? h.p(u, k) : (h && h.d(1), h = w && w(u), h && (h.c(), h.m(e, l))), /*timer*/
|
423 |
+
u[5] ? y ? y.p(u, k) : (y = ze(u), y.c(), y.m(e, null)) : y && (y.d(1), y = null), (!s || k[0] & /*variant*/
|
424 |
+
256) && V(
|
425 |
+
e,
|
426 |
+
"meta-text-center",
|
427 |
+
/*variant*/
|
428 |
+
u[8] === "center"
|
429 |
+
), (!s || k[0] & /*variant*/
|
430 |
+
256) && V(
|
431 |
+
e,
|
432 |
+
"meta-text",
|
433 |
+
/*variant*/
|
434 |
+
u[8] === "default"
|
435 |
+
);
|
436 |
+
let m = f;
|
437 |
+
f = L(u), f === m ? ~f && p[f].p(u, k) : (o && (Qe(), O(p[m], 1, 1, () => {
|
438 |
+
p[m] = null;
|
439 |
+
}), Je()), ~f ? (o = p[f], o ? o.p(u, k) : (o = p[f] = C[f](u), o.c()), G(o, 1), o.m(a.parentNode, a)) : o = null), /*timer*/
|
440 |
+
u[5] ? F && (F.d(1), F = null) : F ? F.p(u, k) : (F = Ee(u), F.c(), F.m(r.parentNode, r));
|
441 |
+
},
|
442 |
+
i(u) {
|
443 |
+
s || (G(o), s = !0);
|
444 |
+
},
|
445 |
+
o(u) {
|
446 |
+
O(o), s = !1;
|
447 |
+
},
|
448 |
+
d(u) {
|
449 |
+
u && (b(t), b(e), b(i), b(a), b(r)), _ && _.d(u), h && h.d(), y && y.d(), ~f && p[f].d(u), F && F.d(u);
|
450 |
+
}
|
451 |
+
};
|
452 |
+
}
|
453 |
+
function Se(n) {
|
454 |
+
let t, e = `translateX(${/*eta_level*/
|
455 |
+
(n[17] || 0) * 100 - 100}%)`;
|
456 |
+
return {
|
457 |
+
c() {
|
458 |
+
t = P("div"), z(t, "class", "eta-bar svelte-1txqlrd"), A(t, "transform", e);
|
459 |
+
},
|
460 |
+
m(l, i) {
|
461 |
+
g(l, t, i);
|
462 |
+
},
|
463 |
+
p(l, i) {
|
464 |
+
i[0] & /*eta_level*/
|
465 |
+
131072 && e !== (e = `translateX(${/*eta_level*/
|
466 |
+
(l[17] || 0) * 100 - 100}%)`) && A(t, "transform", e);
|
467 |
+
},
|
468 |
+
d(l) {
|
469 |
+
l && b(t);
|
470 |
+
}
|
471 |
+
};
|
472 |
+
}
|
473 |
+
function It(n) {
|
474 |
+
let t;
|
475 |
+
return {
|
476 |
+
c() {
|
477 |
+
t = q("processing |");
|
478 |
+
},
|
479 |
+
m(e, l) {
|
480 |
+
g(e, t, l);
|
481 |
+
},
|
482 |
+
p: fe,
|
483 |
+
d(e) {
|
484 |
+
e && b(t);
|
485 |
+
}
|
486 |
+
};
|
487 |
+
}
|
488 |
+
function Ht(n) {
|
489 |
+
let t, e = (
|
490 |
+
/*queue_position*/
|
491 |
+
n[2] + 1 + ""
|
492 |
+
), l, i, f, o;
|
493 |
+
return {
|
494 |
+
c() {
|
495 |
+
t = q("queue: "), l = q(e), i = q("/"), f = q(
|
496 |
+
/*queue_size*/
|
497 |
+
n[3]
|
498 |
+
), o = q(" |");
|
499 |
+
},
|
500 |
+
m(a, r) {
|
501 |
+
g(a, t, r), g(a, l, r), g(a, i, r), g(a, f, r), g(a, o, r);
|
502 |
+
},
|
503 |
+
p(a, r) {
|
504 |
+
r[0] & /*queue_position*/
|
505 |
+
4 && e !== (e = /*queue_position*/
|
506 |
+
a[2] + 1 + "") && S(l, e), r[0] & /*queue_size*/
|
507 |
+
8 && S(
|
508 |
+
f,
|
509 |
+
/*queue_size*/
|
510 |
+
a[3]
|
511 |
+
);
|
512 |
+
},
|
513 |
+
d(a) {
|
514 |
+
a && (b(t), b(l), b(i), b(f), b(o));
|
515 |
+
}
|
516 |
+
};
|
517 |
+
}
|
518 |
+
function Xt(n) {
|
519 |
+
let t, e = te(
|
520 |
+
/*progress*/
|
521 |
+
n[7]
|
522 |
+
), l = [];
|
523 |
+
for (let i = 0; i < e.length; i += 1)
|
524 |
+
l[i] = Te(Ve(n, e, i));
|
525 |
+
return {
|
526 |
+
c() {
|
527 |
+
for (let i = 0; i < l.length; i += 1)
|
528 |
+
l[i].c();
|
529 |
+
t = R();
|
530 |
+
},
|
531 |
+
m(i, f) {
|
532 |
+
for (let o = 0; o < l.length; o += 1)
|
533 |
+
l[o] && l[o].m(i, f);
|
534 |
+
g(i, t, f);
|
535 |
+
},
|
536 |
+
p(i, f) {
|
537 |
+
if (f[0] & /*progress*/
|
538 |
+
128) {
|
539 |
+
e = te(
|
540 |
+
/*progress*/
|
541 |
+
i[7]
|
542 |
+
);
|
543 |
+
let o;
|
544 |
+
for (o = 0; o < e.length; o += 1) {
|
545 |
+
const a = Ve(i, e, o);
|
546 |
+
l[o] ? l[o].p(a, f) : (l[o] = Te(a), l[o].c(), l[o].m(t.parentNode, t));
|
547 |
+
}
|
548 |
+
for (; o < l.length; o += 1)
|
549 |
+
l[o].d(1);
|
550 |
+
l.length = e.length;
|
551 |
+
}
|
552 |
+
},
|
553 |
+
d(i) {
|
554 |
+
i && b(t), Ke(l, i);
|
555 |
+
}
|
556 |
+
};
|
557 |
+
}
|
558 |
+
function Ne(n) {
|
559 |
+
let t, e = (
|
560 |
+
/*p*/
|
561 |
+
n[38].unit + ""
|
562 |
+
), l, i, f = " ", o;
|
563 |
+
function a(_, c) {
|
564 |
+
return (
|
565 |
+
/*p*/
|
566 |
+
_[38].length != null ? Gt : Yt
|
567 |
+
);
|
568 |
+
}
|
569 |
+
let r = a(n), s = r(n);
|
570 |
+
return {
|
571 |
+
c() {
|
572 |
+
s.c(), t = j(), l = q(e), i = q(" | "), o = q(f);
|
573 |
+
},
|
574 |
+
m(_, c) {
|
575 |
+
s.m(_, c), g(_, t, c), g(_, l, c), g(_, i, c), g(_, o, c);
|
576 |
+
},
|
577 |
+
p(_, c) {
|
578 |
+
r === (r = a(_)) && s ? s.p(_, c) : (s.d(1), s = r(_), s && (s.c(), s.m(t.parentNode, t))), c[0] & /*progress*/
|
579 |
+
128 && e !== (e = /*p*/
|
580 |
+
_[38].unit + "") && S(l, e);
|
581 |
+
},
|
582 |
+
d(_) {
|
583 |
+
_ && (b(t), b(l), b(i), b(o)), s.d(_);
|
584 |
+
}
|
585 |
+
};
|
586 |
+
}
|
587 |
+
function Yt(n) {
|
588 |
+
let t = X(
|
589 |
+
/*p*/
|
590 |
+
n[38].index || 0
|
591 |
+
) + "", e;
|
592 |
+
return {
|
593 |
+
c() {
|
594 |
+
e = q(t);
|
595 |
+
},
|
596 |
+
m(l, i) {
|
597 |
+
g(l, e, i);
|
598 |
+
},
|
599 |
+
p(l, i) {
|
600 |
+
i[0] & /*progress*/
|
601 |
+
128 && t !== (t = X(
|
602 |
+
/*p*/
|
603 |
+
l[38].index || 0
|
604 |
+
) + "") && S(e, t);
|
605 |
+
},
|
606 |
+
d(l) {
|
607 |
+
l && b(e);
|
608 |
+
}
|
609 |
+
};
|
610 |
+
}
|
611 |
+
function Gt(n) {
|
612 |
+
let t = X(
|
613 |
+
/*p*/
|
614 |
+
n[38].index || 0
|
615 |
+
) + "", e, l, i = X(
|
616 |
+
/*p*/
|
617 |
+
n[38].length
|
618 |
+
) + "", f;
|
619 |
+
return {
|
620 |
+
c() {
|
621 |
+
e = q(t), l = q("/"), f = q(i);
|
622 |
+
},
|
623 |
+
m(o, a) {
|
624 |
+
g(o, e, a), g(o, l, a), g(o, f, a);
|
625 |
+
},
|
626 |
+
p(o, a) {
|
627 |
+
a[0] & /*progress*/
|
628 |
+
128 && t !== (t = X(
|
629 |
+
/*p*/
|
630 |
+
o[38].index || 0
|
631 |
+
) + "") && S(e, t), a[0] & /*progress*/
|
632 |
+
128 && i !== (i = X(
|
633 |
+
/*p*/
|
634 |
+
o[38].length
|
635 |
+
) + "") && S(f, i);
|
636 |
+
},
|
637 |
+
d(o) {
|
638 |
+
o && (b(e), b(l), b(f));
|
639 |
+
}
|
640 |
+
};
|
641 |
+
}
|
642 |
+
function Te(n) {
|
643 |
+
let t, e = (
|
644 |
+
/*p*/
|
645 |
+
n[38].index != null && Ne(n)
|
646 |
+
);
|
647 |
+
return {
|
648 |
+
c() {
|
649 |
+
e && e.c(), t = R();
|
650 |
+
},
|
651 |
+
m(l, i) {
|
652 |
+
e && e.m(l, i), g(l, t, i);
|
653 |
+
},
|
654 |
+
p(l, i) {
|
655 |
+
/*p*/
|
656 |
+
l[38].index != null ? e ? e.p(l, i) : (e = Ne(l), e.c(), e.m(t.parentNode, t)) : e && (e.d(1), e = null);
|
657 |
+
},
|
658 |
+
d(l) {
|
659 |
+
l && b(t), e && e.d(l);
|
660 |
+
}
|
661 |
+
};
|
662 |
+
}
|
663 |
+
function ze(n) {
|
664 |
+
let t, e = (
|
665 |
+
/*eta*/
|
666 |
+
n[0] ? `/${/*formatted_eta*/
|
667 |
+
n[19]}` : ""
|
668 |
+
), l, i;
|
669 |
+
return {
|
670 |
+
c() {
|
671 |
+
t = q(
|
672 |
+
/*formatted_timer*/
|
673 |
+
n[20]
|
674 |
+
), l = q(e), i = q("s");
|
675 |
+
},
|
676 |
+
m(f, o) {
|
677 |
+
g(f, t, o), g(f, l, o), g(f, i, o);
|
678 |
+
},
|
679 |
+
p(f, o) {
|
680 |
+
o[0] & /*formatted_timer*/
|
681 |
+
1048576 && S(
|
682 |
+
t,
|
683 |
+
/*formatted_timer*/
|
684 |
+
f[20]
|
685 |
+
), o[0] & /*eta, formatted_eta*/
|
686 |
+
524289 && e !== (e = /*eta*/
|
687 |
+
f[0] ? `/${/*formatted_eta*/
|
688 |
+
f[19]}` : "") && S(l, e);
|
689 |
+
},
|
690 |
+
d(f) {
|
691 |
+
f && (b(t), b(l), b(i));
|
692 |
+
}
|
693 |
+
};
|
694 |
+
}
|
695 |
+
function Ot(n) {
|
696 |
+
let t, e;
|
697 |
+
return t = new Ft({
|
698 |
+
props: { margin: (
|
699 |
+
/*variant*/
|
700 |
+
n[8] === "default"
|
701 |
+
) }
|
702 |
+
}), {
|
703 |
+
c() {
|
704 |
+
Ct(t.$$.fragment);
|
705 |
+
},
|
706 |
+
m(l, i) {
|
707 |
+
zt(t, l, i), e = !0;
|
708 |
+
},
|
709 |
+
p(l, i) {
|
710 |
+
const f = {};
|
711 |
+
i[0] & /*variant*/
|
712 |
+
256 && (f.margin = /*variant*/
|
713 |
+
l[8] === "default"), t.$set(f);
|
714 |
+
},
|
715 |
+
i(l) {
|
716 |
+
e || (G(t.$$.fragment, l), e = !0);
|
717 |
+
},
|
718 |
+
o(l) {
|
719 |
+
O(t.$$.fragment, l), e = !1;
|
720 |
+
},
|
721 |
+
d(l) {
|
722 |
+
Vt(t, l);
|
723 |
+
}
|
724 |
+
};
|
725 |
+
}
|
726 |
+
function Rt(n) {
|
727 |
+
let t, e, l, i, f, o = `${/*last_progress_level*/
|
728 |
+
n[15] * 100}%`, a = (
|
729 |
+
/*progress*/
|
730 |
+
n[7] != null && je(n)
|
731 |
+
);
|
732 |
+
return {
|
733 |
+
c() {
|
734 |
+
t = P("div"), e = P("div"), a && a.c(), l = j(), i = P("div"), f = P("div"), z(e, "class", "progress-level-inner svelte-1txqlrd"), z(f, "class", "progress-bar svelte-1txqlrd"), A(f, "width", o), z(i, "class", "progress-bar-wrap svelte-1txqlrd"), z(t, "class", "progress-level svelte-1txqlrd");
|
735 |
+
},
|
736 |
+
m(r, s) {
|
737 |
+
g(r, t, s), I(t, e), a && a.m(e, null), I(t, l), I(t, i), I(i, f), n[30](f);
|
738 |
+
},
|
739 |
+
p(r, s) {
|
740 |
+
/*progress*/
|
741 |
+
r[7] != null ? a ? a.p(r, s) : (a = je(r), a.c(), a.m(e, null)) : a && (a.d(1), a = null), s[0] & /*last_progress_level*/
|
742 |
+
32768 && o !== (o = `${/*last_progress_level*/
|
743 |
+
r[15] * 100}%`) && A(f, "width", o);
|
744 |
+
},
|
745 |
+
i: fe,
|
746 |
+
o: fe,
|
747 |
+
d(r) {
|
748 |
+
r && b(t), a && a.d(), n[30](null);
|
749 |
+
}
|
750 |
+
};
|
751 |
+
}
|
752 |
+
function je(n) {
|
753 |
+
let t, e = te(
|
754 |
+
/*progress*/
|
755 |
+
n[7]
|
756 |
+
), l = [];
|
757 |
+
for (let i = 0; i < e.length; i += 1)
|
758 |
+
l[i] = De(Me(n, e, i));
|
759 |
+
return {
|
760 |
+
c() {
|
761 |
+
for (let i = 0; i < l.length; i += 1)
|
762 |
+
l[i].c();
|
763 |
+
t = R();
|
764 |
+
},
|
765 |
+
m(i, f) {
|
766 |
+
for (let o = 0; o < l.length; o += 1)
|
767 |
+
l[o] && l[o].m(i, f);
|
768 |
+
g(i, t, f);
|
769 |
+
},
|
770 |
+
p(i, f) {
|
771 |
+
if (f[0] & /*progress_level, progress*/
|
772 |
+
16512) {
|
773 |
+
e = te(
|
774 |
+
/*progress*/
|
775 |
+
i[7]
|
776 |
+
);
|
777 |
+
let o;
|
778 |
+
for (o = 0; o < e.length; o += 1) {
|
779 |
+
const a = Me(i, e, o);
|
780 |
+
l[o] ? l[o].p(a, f) : (l[o] = De(a), l[o].c(), l[o].m(t.parentNode, t));
|
781 |
+
}
|
782 |
+
for (; o < l.length; o += 1)
|
783 |
+
l[o].d(1);
|
784 |
+
l.length = e.length;
|
785 |
+
}
|
786 |
+
},
|
787 |
+
d(i) {
|
788 |
+
i && b(t), Ke(l, i);
|
789 |
+
}
|
790 |
+
};
|
791 |
+
}
|
792 |
+
function Pe(n) {
|
793 |
+
let t, e, l, i, f = (
|
794 |
+
/*i*/
|
795 |
+
n[40] !== 0 && Ut()
|
796 |
+
), o = (
|
797 |
+
/*p*/
|
798 |
+
n[38].desc != null && Ze(n)
|
799 |
+
), a = (
|
800 |
+
/*p*/
|
801 |
+
n[38].desc != null && /*progress_level*/
|
802 |
+
n[14] && /*progress_level*/
|
803 |
+
n[14][
|
804 |
+
/*i*/
|
805 |
+
n[40]
|
806 |
+
] != null && Be()
|
807 |
+
), r = (
|
808 |
+
/*progress_level*/
|
809 |
+
n[14] != null && Ae(n)
|
810 |
+
);
|
811 |
+
return {
|
812 |
+
c() {
|
813 |
+
f && f.c(), t = j(), o && o.c(), e = j(), a && a.c(), l = j(), r && r.c(), i = R();
|
814 |
+
},
|
815 |
+
m(s, _) {
|
816 |
+
f && f.m(s, _), g(s, t, _), o && o.m(s, _), g(s, e, _), a && a.m(s, _), g(s, l, _), r && r.m(s, _), g(s, i, _);
|
817 |
+
},
|
818 |
+
p(s, _) {
|
819 |
+
/*p*/
|
820 |
+
s[38].desc != null ? o ? o.p(s, _) : (o = Ze(s), o.c(), o.m(e.parentNode, e)) : o && (o.d(1), o = null), /*p*/
|
821 |
+
s[38].desc != null && /*progress_level*/
|
822 |
+
s[14] && /*progress_level*/
|
823 |
+
s[14][
|
824 |
+
/*i*/
|
825 |
+
s[40]
|
826 |
+
] != null ? a || (a = Be(), a.c(), a.m(l.parentNode, l)) : a && (a.d(1), a = null), /*progress_level*/
|
827 |
+
s[14] != null ? r ? r.p(s, _) : (r = Ae(s), r.c(), r.m(i.parentNode, i)) : r && (r.d(1), r = null);
|
828 |
+
},
|
829 |
+
d(s) {
|
830 |
+
s && (b(t), b(e), b(l), b(i)), f && f.d(s), o && o.d(s), a && a.d(s), r && r.d(s);
|
831 |
+
}
|
832 |
+
};
|
833 |
+
}
|
834 |
+
function Ut(n) {
|
835 |
+
let t;
|
836 |
+
return {
|
837 |
+
c() {
|
838 |
+
t = q(" /");
|
839 |
+
},
|
840 |
+
m(e, l) {
|
841 |
+
g(e, t, l);
|
842 |
+
},
|
843 |
+
d(e) {
|
844 |
+
e && b(t);
|
845 |
+
}
|
846 |
+
};
|
847 |
+
}
|
848 |
+
function Ze(n) {
|
849 |
+
let t = (
|
850 |
+
/*p*/
|
851 |
+
n[38].desc + ""
|
852 |
+
), e;
|
853 |
+
return {
|
854 |
+
c() {
|
855 |
+
e = q(t);
|
856 |
+
},
|
857 |
+
m(l, i) {
|
858 |
+
g(l, e, i);
|
859 |
+
},
|
860 |
+
p(l, i) {
|
861 |
+
i[0] & /*progress*/
|
862 |
+
128 && t !== (t = /*p*/
|
863 |
+
l[38].desc + "") && S(e, t);
|
864 |
+
},
|
865 |
+
d(l) {
|
866 |
+
l && b(e);
|
867 |
+
}
|
868 |
+
};
|
869 |
+
}
|
870 |
+
function Be(n) {
|
871 |
+
let t;
|
872 |
+
return {
|
873 |
+
c() {
|
874 |
+
t = q("-");
|
875 |
+
},
|
876 |
+
m(e, l) {
|
877 |
+
g(e, t, l);
|
878 |
+
},
|
879 |
+
d(e) {
|
880 |
+
e && b(t);
|
881 |
+
}
|
882 |
+
};
|
883 |
+
}
|
884 |
+
function Ae(n) {
|
885 |
+
let t = (100 * /*progress_level*/
|
886 |
+
(n[14][
|
887 |
+
/*i*/
|
888 |
+
n[40]
|
889 |
+
] || 0)).toFixed(1) + "", e, l;
|
890 |
+
return {
|
891 |
+
c() {
|
892 |
+
e = q(t), l = q("%");
|
893 |
+
},
|
894 |
+
m(i, f) {
|
895 |
+
g(i, e, f), g(i, l, f);
|
896 |
+
},
|
897 |
+
p(i, f) {
|
898 |
+
f[0] & /*progress_level*/
|
899 |
+
16384 && t !== (t = (100 * /*progress_level*/
|
900 |
+
(i[14][
|
901 |
+
/*i*/
|
902 |
+
i[40]
|
903 |
+
] || 0)).toFixed(1) + "") && S(e, t);
|
904 |
+
},
|
905 |
+
d(i) {
|
906 |
+
i && (b(e), b(l));
|
907 |
+
}
|
908 |
+
};
|
909 |
+
}
|
910 |
+
function De(n) {
|
911 |
+
let t, e = (
|
912 |
+
/*p*/
|
913 |
+
(n[38].desc != null || /*progress_level*/
|
914 |
+
n[14] && /*progress_level*/
|
915 |
+
n[14][
|
916 |
+
/*i*/
|
917 |
+
n[40]
|
918 |
+
] != null) && Pe(n)
|
919 |
+
);
|
920 |
+
return {
|
921 |
+
c() {
|
922 |
+
e && e.c(), t = R();
|
923 |
+
},
|
924 |
+
m(l, i) {
|
925 |
+
e && e.m(l, i), g(l, t, i);
|
926 |
+
},
|
927 |
+
p(l, i) {
|
928 |
+
/*p*/
|
929 |
+
l[38].desc != null || /*progress_level*/
|
930 |
+
l[14] && /*progress_level*/
|
931 |
+
l[14][
|
932 |
+
/*i*/
|
933 |
+
l[40]
|
934 |
+
] != null ? e ? e.p(l, i) : (e = Pe(l), e.c(), e.m(t.parentNode, t)) : e && (e.d(1), e = null);
|
935 |
+
},
|
936 |
+
d(l) {
|
937 |
+
l && b(t), e && e.d(l);
|
938 |
+
}
|
939 |
+
};
|
940 |
+
}
|
941 |
+
function Ee(n) {
|
942 |
+
let t, e;
|
943 |
+
return {
|
944 |
+
c() {
|
945 |
+
t = P("p"), e = q(
|
946 |
+
/*loading_text*/
|
947 |
+
n[9]
|
948 |
+
), z(t, "class", "loading svelte-1txqlrd");
|
949 |
+
},
|
950 |
+
m(l, i) {
|
951 |
+
g(l, t, i), I(t, e);
|
952 |
+
},
|
953 |
+
p(l, i) {
|
954 |
+
i[0] & /*loading_text*/
|
955 |
+
512 && S(
|
956 |
+
e,
|
957 |
+
/*loading_text*/
|
958 |
+
l[9]
|
959 |
+
);
|
960 |
+
},
|
961 |
+
d(l) {
|
962 |
+
l && b(t);
|
963 |
+
}
|
964 |
+
};
|
965 |
+
}
|
966 |
+
function Jt(n) {
|
967 |
+
let t, e, l, i, f;
|
968 |
+
const o = [Et, Dt], a = [];
|
969 |
+
function r(s, _) {
|
970 |
+
return (
|
971 |
+
/*status*/
|
972 |
+
s[4] === "pending" ? 0 : (
|
973 |
+
/*status*/
|
974 |
+
s[4] === "error" ? 1 : -1
|
975 |
+
)
|
976 |
+
);
|
977 |
+
}
|
978 |
+
return ~(e = r(n)) && (l = a[e] = o[e](n)), {
|
979 |
+
c() {
|
980 |
+
t = P("div"), l && l.c(), z(t, "class", i = "wrap " + /*variant*/
|
981 |
+
n[8] + " " + /*show_progress*/
|
982 |
+
n[6] + " svelte-1txqlrd"), V(t, "hide", !/*status*/
|
983 |
+
n[4] || /*status*/
|
984 |
+
n[4] === "complete" || /*show_progress*/
|
985 |
+
n[6] === "hidden"), V(
|
986 |
+
t,
|
987 |
+
"translucent",
|
988 |
+
/*variant*/
|
989 |
+
n[8] === "center" && /*status*/
|
990 |
+
(n[4] === "pending" || /*status*/
|
991 |
+
n[4] === "error") || /*translucent*/
|
992 |
+
n[11] || /*show_progress*/
|
993 |
+
n[6] === "minimal"
|
994 |
+
), V(
|
995 |
+
t,
|
996 |
+
"generating",
|
997 |
+
/*status*/
|
998 |
+
n[4] === "generating"
|
999 |
+
), V(
|
1000 |
+
t,
|
1001 |
+
"border",
|
1002 |
+
/*border*/
|
1003 |
+
n[12]
|
1004 |
+
), A(
|
1005 |
+
t,
|
1006 |
+
"position",
|
1007 |
+
/*absolute*/
|
1008 |
+
n[10] ? "absolute" : "static"
|
1009 |
+
), A(
|
1010 |
+
t,
|
1011 |
+
"padding",
|
1012 |
+
/*absolute*/
|
1013 |
+
n[10] ? "0" : "var(--size-8) 0"
|
1014 |
+
);
|
1015 |
+
},
|
1016 |
+
m(s, _) {
|
1017 |
+
g(s, t, _), ~e && a[e].m(t, null), n[31](t), f = !0;
|
1018 |
+
},
|
1019 |
+
p(s, _) {
|
1020 |
+
let c = e;
|
1021 |
+
e = r(s), e === c ? ~e && a[e].p(s, _) : (l && (Qe(), O(a[c], 1, 1, () => {
|
1022 |
+
a[c] = null;
|
1023 |
+
}), Je()), ~e ? (l = a[e], l ? l.p(s, _) : (l = a[e] = o[e](s), l.c()), G(l, 1), l.m(t, null)) : l = null), (!f || _[0] & /*variant, show_progress*/
|
1024 |
+
320 && i !== (i = "wrap " + /*variant*/
|
1025 |
+
s[8] + " " + /*show_progress*/
|
1026 |
+
s[6] + " svelte-1txqlrd")) && z(t, "class", i), (!f || _[0] & /*variant, show_progress, status, show_progress*/
|
1027 |
+
336) && V(t, "hide", !/*status*/
|
1028 |
+
s[4] || /*status*/
|
1029 |
+
s[4] === "complete" || /*show_progress*/
|
1030 |
+
s[6] === "hidden"), (!f || _[0] & /*variant, show_progress, variant, status, translucent, show_progress*/
|
1031 |
+
2384) && V(
|
1032 |
+
t,
|
1033 |
+
"translucent",
|
1034 |
+
/*variant*/
|
1035 |
+
s[8] === "center" && /*status*/
|
1036 |
+
(s[4] === "pending" || /*status*/
|
1037 |
+
s[4] === "error") || /*translucent*/
|
1038 |
+
s[11] || /*show_progress*/
|
1039 |
+
s[6] === "minimal"
|
1040 |
+
), (!f || _[0] & /*variant, show_progress, status*/
|
1041 |
+
336) && V(
|
1042 |
+
t,
|
1043 |
+
"generating",
|
1044 |
+
/*status*/
|
1045 |
+
s[4] === "generating"
|
1046 |
+
), (!f || _[0] & /*variant, show_progress, border*/
|
1047 |
+
4416) && V(
|
1048 |
+
t,
|
1049 |
+
"border",
|
1050 |
+
/*border*/
|
1051 |
+
s[12]
|
1052 |
+
), _[0] & /*absolute*/
|
1053 |
+
1024 && A(
|
1054 |
+
t,
|
1055 |
+
"position",
|
1056 |
+
/*absolute*/
|
1057 |
+
s[10] ? "absolute" : "static"
|
1058 |
+
), _[0] & /*absolute*/
|
1059 |
+
1024 && A(
|
1060 |
+
t,
|
1061 |
+
"padding",
|
1062 |
+
/*absolute*/
|
1063 |
+
s[10] ? "0" : "var(--size-8) 0"
|
1064 |
+
);
|
1065 |
+
},
|
1066 |
+
i(s) {
|
1067 |
+
f || (G(l), f = !0);
|
1068 |
+
},
|
1069 |
+
o(s) {
|
1070 |
+
O(l), f = !1;
|
1071 |
+
},
|
1072 |
+
d(s) {
|
1073 |
+
s && b(t), ~e && a[e].d(), n[31](null);
|
1074 |
+
}
|
1075 |
+
};
|
1076 |
+
}
|
1077 |
+
let $ = [], ie = !1;
|
1078 |
+
async function Kt(n, t = !0) {
|
1079 |
+
if (!(window.__gradio_mode__ === "website" || window.__gradio_mode__ !== "app" && t !== !0)) {
|
1080 |
+
if ($.push(n), !ie)
|
1081 |
+
ie = !0;
|
1082 |
+
else
|
1083 |
+
return;
|
1084 |
+
await Zt(), requestAnimationFrame(() => {
|
1085 |
+
let e = [0, 0];
|
1086 |
+
for (let l = 0; l < $.length; l++) {
|
1087 |
+
const f = $[l].getBoundingClientRect();
|
1088 |
+
(l === 0 || f.top + window.scrollY <= e[0]) && (e[0] = f.top + window.scrollY, e[1] = l);
|
1089 |
+
}
|
1090 |
+
window.scrollTo({ top: e[0] - 20, behavior: "smooth" }), ie = !1, $ = [];
|
1091 |
+
});
|
1092 |
+
}
|
1093 |
+
}
|
1094 |
+
function Qt(n, t, e) {
|
1095 |
+
let l, { $$slots: i = {}, $$scope: f } = t, { i18n: o } = t, { eta: a = null } = t, { queue: r = !1 } = t, { queue_position: s } = t, { queue_size: _ } = t, { status: c } = t, { scroll_to_output: w = !1 } = t, { timer: h = !0 } = t, { show_progress: y = "full" } = t, { message: C = null } = t, { progress: p = null } = t, { variant: L = "default" } = t, { loading_text: F = "Loading..." } = t, { absolute: u = !0 } = t, { translucent: k = !1 } = t, { border: m = !1 } = t, { autoscroll: le } = t, U, J = !1, Q = 0, D = 0, ne = null, ce = 0, E = null, K, Z = null, de = !0;
|
1096 |
+
const $e = () => {
|
1097 |
+
e(25, Q = performance.now()), e(26, D = 0), J = !0, me();
|
1098 |
+
};
|
1099 |
+
function me() {
|
1100 |
+
requestAnimationFrame(() => {
|
1101 |
+
e(26, D = (performance.now() - Q) / 1e3), J && me();
|
1102 |
+
});
|
1103 |
+
}
|
1104 |
+
function be() {
|
1105 |
+
e(26, D = 0), J && (J = !1);
|
1106 |
+
}
|
1107 |
+
Bt(() => {
|
1108 |
+
J && be();
|
1109 |
+
});
|
1110 |
+
let ge = null;
|
1111 |
+
function et(d) {
|
1112 |
+
Le[d ? "unshift" : "push"](() => {
|
1113 |
+
Z = d, e(16, Z), e(7, p), e(14, E), e(15, K);
|
1114 |
+
});
|
1115 |
+
}
|
1116 |
+
function tt(d) {
|
1117 |
+
Le[d ? "unshift" : "push"](() => {
|
1118 |
+
U = d, e(13, U);
|
1119 |
+
});
|
1120 |
+
}
|
1121 |
+
return n.$$set = (d) => {
|
1122 |
+
"i18n" in d && e(1, o = d.i18n), "eta" in d && e(0, a = d.eta), "queue" in d && e(21, r = d.queue), "queue_position" in d && e(2, s = d.queue_position), "queue_size" in d && e(3, _ = d.queue_size), "status" in d && e(4, c = d.status), "scroll_to_output" in d && e(22, w = d.scroll_to_output), "timer" in d && e(5, h = d.timer), "show_progress" in d && e(6, y = d.show_progress), "message" in d && e(23, C = d.message), "progress" in d && e(7, p = d.progress), "variant" in d && e(8, L = d.variant), "loading_text" in d && e(9, F = d.loading_text), "absolute" in d && e(10, u = d.absolute), "translucent" in d && e(11, k = d.translucent), "border" in d && e(12, m = d.border), "autoscroll" in d && e(24, le = d.autoscroll), "$$scope" in d && e(28, f = d.$$scope);
|
1123 |
+
}, n.$$.update = () => {
|
1124 |
+
n.$$.dirty[0] & /*eta, old_eta, queue, timer_start*/
|
1125 |
+
169869313 && (a === null ? e(0, a = ne) : r && e(0, a = (performance.now() - Q) / 1e3 + a), a != null && (e(19, ge = a.toFixed(1)), e(27, ne = a))), n.$$.dirty[0] & /*eta, timer_diff*/
|
1126 |
+
67108865 && e(17, ce = a === null || a <= 0 || !D ? null : Math.min(D / a, 1)), n.$$.dirty[0] & /*progress*/
|
1127 |
+
128 && p != null && e(18, de = !1), n.$$.dirty[0] & /*progress, progress_level, progress_bar, last_progress_level*/
|
1128 |
+
114816 && (p != null ? e(14, E = p.map((d) => {
|
1129 |
+
if (d.index != null && d.length != null)
|
1130 |
+
return d.index / d.length;
|
1131 |
+
if (d.progress != null)
|
1132 |
+
return d.progress;
|
1133 |
+
})) : e(14, E = null), E ? (e(15, K = E[E.length - 1]), Z && (K === 0 ? e(16, Z.style.transition = "0", Z) : e(16, Z.style.transition = "150ms", Z))) : e(15, K = void 0)), n.$$.dirty[0] & /*status*/
|
1134 |
+
16 && (c === "pending" ? $e() : be()), n.$$.dirty[0] & /*el, scroll_to_output, status, autoscroll*/
|
1135 |
+
20979728 && U && w && (c === "pending" || c === "complete") && Kt(U, le), n.$$.dirty[0] & /*status, message*/
|
1136 |
+
8388624, n.$$.dirty[0] & /*timer_diff*/
|
1137 |
+
67108864 && e(20, l = D.toFixed(1));
|
1138 |
+
}, [
|
1139 |
+
a,
|
1140 |
+
o,
|
1141 |
+
s,
|
1142 |
+
_,
|
1143 |
+
c,
|
1144 |
+
h,
|
1145 |
+
y,
|
1146 |
+
p,
|
1147 |
+
L,
|
1148 |
+
F,
|
1149 |
+
u,
|
1150 |
+
k,
|
1151 |
+
m,
|
1152 |
+
U,
|
1153 |
+
E,
|
1154 |
+
K,
|
1155 |
+
Z,
|
1156 |
+
ce,
|
1157 |
+
de,
|
1158 |
+
ge,
|
1159 |
+
l,
|
1160 |
+
r,
|
1161 |
+
w,
|
1162 |
+
C,
|
1163 |
+
le,
|
1164 |
+
Q,
|
1165 |
+
D,
|
1166 |
+
ne,
|
1167 |
+
f,
|
1168 |
+
i,
|
1169 |
+
et,
|
1170 |
+
tt
|
1171 |
+
];
|
1172 |
+
}
|
1173 |
+
class Wt extends Lt {
|
1174 |
+
constructor(t) {
|
1175 |
+
super(), Tt(
|
1176 |
+
this,
|
1177 |
+
t,
|
1178 |
+
Qt,
|
1179 |
+
Jt,
|
1180 |
+
jt,
|
1181 |
+
{
|
1182 |
+
i18n: 1,
|
1183 |
+
eta: 0,
|
1184 |
+
queue: 21,
|
1185 |
+
queue_position: 2,
|
1186 |
+
queue_size: 3,
|
1187 |
+
status: 4,
|
1188 |
+
scroll_to_output: 22,
|
1189 |
+
timer: 5,
|
1190 |
+
show_progress: 6,
|
1191 |
+
message: 23,
|
1192 |
+
progress: 7,
|
1193 |
+
variant: 8,
|
1194 |
+
loading_text: 9,
|
1195 |
+
absolute: 10,
|
1196 |
+
translucent: 11,
|
1197 |
+
border: 12,
|
1198 |
+
autoscroll: 24
|
1199 |
+
},
|
1200 |
+
null,
|
1201 |
+
[-1, -1]
|
1202 |
+
);
|
1203 |
+
}
|
1204 |
+
}
|
1205 |
+
const {
|
1206 |
+
SvelteComponent: xt,
|
1207 |
+
assign: $t,
|
1208 |
+
create_slot: el,
|
1209 |
+
detach: tl,
|
1210 |
+
element: ll,
|
1211 |
+
get_all_dirty_from_scope: nl,
|
1212 |
+
get_slot_changes: il,
|
1213 |
+
get_spread_update: sl,
|
1214 |
+
init: fl,
|
1215 |
+
insert: ol,
|
1216 |
+
safe_not_equal: al,
|
1217 |
+
set_dynamic_element_data: Ie,
|
1218 |
+
set_style: M,
|
1219 |
+
toggle_class: B,
|
1220 |
+
transition_in: We,
|
1221 |
+
transition_out: xe,
|
1222 |
+
update_slot_base: rl
|
1223 |
+
} = window.__gradio__svelte__internal;
|
1224 |
+
function _l(n) {
|
1225 |
+
let t, e, l;
|
1226 |
+
const i = (
|
1227 |
+
/*#slots*/
|
1228 |
+
n[17].default
|
1229 |
+
), f = el(
|
1230 |
+
i,
|
1231 |
+
n,
|
1232 |
+
/*$$scope*/
|
1233 |
+
n[16],
|
1234 |
+
null
|
1235 |
+
);
|
1236 |
+
let o = [
|
1237 |
+
{ "data-testid": (
|
1238 |
+
/*test_id*/
|
1239 |
+
n[7]
|
1240 |
+
) },
|
1241 |
+
{ id: (
|
1242 |
+
/*elem_id*/
|
1243 |
+
n[2]
|
1244 |
+
) },
|
1245 |
+
{
|
1246 |
+
class: e = "block " + /*elem_classes*/
|
1247 |
+
n[3].join(" ") + " svelte-1t38q2d"
|
1248 |
+
}
|
1249 |
+
], a = {};
|
1250 |
+
for (let r = 0; r < o.length; r += 1)
|
1251 |
+
a = $t(a, o[r]);
|
1252 |
+
return {
|
1253 |
+
c() {
|
1254 |
+
t = ll(
|
1255 |
+
/*tag*/
|
1256 |
+
n[14]
|
1257 |
+
), f && f.c(), Ie(
|
1258 |
+
/*tag*/
|
1259 |
+
n[14]
|
1260 |
+
)(t, a), B(
|
1261 |
+
t,
|
1262 |
+
"hidden",
|
1263 |
+
/*visible*/
|
1264 |
+
n[10] === !1
|
1265 |
+
), B(
|
1266 |
+
t,
|
1267 |
+
"padded",
|
1268 |
+
/*padding*/
|
1269 |
+
n[6]
|
1270 |
+
), B(
|
1271 |
+
t,
|
1272 |
+
"border_focus",
|
1273 |
+
/*border_mode*/
|
1274 |
+
n[5] === "focus"
|
1275 |
+
), B(t, "hide-container", !/*explicit_call*/
|
1276 |
+
n[8] && !/*container*/
|
1277 |
+
n[9]), M(t, "height", typeof /*height*/
|
1278 |
+
n[0] == "number" ? (
|
1279 |
+
/*height*/
|
1280 |
+
n[0] + "px"
|
1281 |
+
) : void 0), M(t, "width", typeof /*width*/
|
1282 |
+
n[1] == "number" ? `calc(min(${/*width*/
|
1283 |
+
n[1]}px, 100%))` : void 0), M(
|
1284 |
+
t,
|
1285 |
+
"border-style",
|
1286 |
+
/*variant*/
|
1287 |
+
n[4]
|
1288 |
+
), M(
|
1289 |
+
t,
|
1290 |
+
"overflow",
|
1291 |
+
/*allow_overflow*/
|
1292 |
+
n[11] ? "visible" : "hidden"
|
1293 |
+
), M(
|
1294 |
+
t,
|
1295 |
+
"flex-grow",
|
1296 |
+
/*scale*/
|
1297 |
+
n[12]
|
1298 |
+
), M(t, "min-width", `calc(min(${/*min_width*/
|
1299 |
+
n[13]}px, 100%))`), M(t, "border-width", "var(--block-border-width)");
|
1300 |
+
},
|
1301 |
+
m(r, s) {
|
1302 |
+
ol(r, t, s), f && f.m(t, null), l = !0;
|
1303 |
+
},
|
1304 |
+
p(r, s) {
|
1305 |
+
f && f.p && (!l || s & /*$$scope*/
|
1306 |
+
65536) && rl(
|
1307 |
+
f,
|
1308 |
+
i,
|
1309 |
+
r,
|
1310 |
+
/*$$scope*/
|
1311 |
+
r[16],
|
1312 |
+
l ? il(
|
1313 |
+
i,
|
1314 |
+
/*$$scope*/
|
1315 |
+
r[16],
|
1316 |
+
s,
|
1317 |
+
null
|
1318 |
+
) : nl(
|
1319 |
+
/*$$scope*/
|
1320 |
+
r[16]
|
1321 |
+
),
|
1322 |
+
null
|
1323 |
+
), Ie(
|
1324 |
+
/*tag*/
|
1325 |
+
r[14]
|
1326 |
+
)(t, a = sl(o, [
|
1327 |
+
(!l || s & /*test_id*/
|
1328 |
+
128) && { "data-testid": (
|
1329 |
+
/*test_id*/
|
1330 |
+
r[7]
|
1331 |
+
) },
|
1332 |
+
(!l || s & /*elem_id*/
|
1333 |
+
4) && { id: (
|
1334 |
+
/*elem_id*/
|
1335 |
+
r[2]
|
1336 |
+
) },
|
1337 |
+
(!l || s & /*elem_classes*/
|
1338 |
+
8 && e !== (e = "block " + /*elem_classes*/
|
1339 |
+
r[3].join(" ") + " svelte-1t38q2d")) && { class: e }
|
1340 |
+
])), B(
|
1341 |
+
t,
|
1342 |
+
"hidden",
|
1343 |
+
/*visible*/
|
1344 |
+
r[10] === !1
|
1345 |
+
), B(
|
1346 |
+
t,
|
1347 |
+
"padded",
|
1348 |
+
/*padding*/
|
1349 |
+
r[6]
|
1350 |
+
), B(
|
1351 |
+
t,
|
1352 |
+
"border_focus",
|
1353 |
+
/*border_mode*/
|
1354 |
+
r[5] === "focus"
|
1355 |
+
), B(t, "hide-container", !/*explicit_call*/
|
1356 |
+
r[8] && !/*container*/
|
1357 |
+
r[9]), s & /*height*/
|
1358 |
+
1 && M(t, "height", typeof /*height*/
|
1359 |
+
r[0] == "number" ? (
|
1360 |
+
/*height*/
|
1361 |
+
r[0] + "px"
|
1362 |
+
) : void 0), s & /*width*/
|
1363 |
+
2 && M(t, "width", typeof /*width*/
|
1364 |
+
r[1] == "number" ? `calc(min(${/*width*/
|
1365 |
+
r[1]}px, 100%))` : void 0), s & /*variant*/
|
1366 |
+
16 && M(
|
1367 |
+
t,
|
1368 |
+
"border-style",
|
1369 |
+
/*variant*/
|
1370 |
+
r[4]
|
1371 |
+
), s & /*allow_overflow*/
|
1372 |
+
2048 && M(
|
1373 |
+
t,
|
1374 |
+
"overflow",
|
1375 |
+
/*allow_overflow*/
|
1376 |
+
r[11] ? "visible" : "hidden"
|
1377 |
+
), s & /*scale*/
|
1378 |
+
4096 && M(
|
1379 |
+
t,
|
1380 |
+
"flex-grow",
|
1381 |
+
/*scale*/
|
1382 |
+
r[12]
|
1383 |
+
), s & /*min_width*/
|
1384 |
+
8192 && M(t, "min-width", `calc(min(${/*min_width*/
|
1385 |
+
r[13]}px, 100%))`);
|
1386 |
+
},
|
1387 |
+
i(r) {
|
1388 |
+
l || (We(f, r), l = !0);
|
1389 |
+
},
|
1390 |
+
o(r) {
|
1391 |
+
xe(f, r), l = !1;
|
1392 |
+
},
|
1393 |
+
d(r) {
|
1394 |
+
r && tl(t), f && f.d(r);
|
1395 |
+
}
|
1396 |
+
};
|
1397 |
+
}
|
1398 |
+
function ul(n) {
|
1399 |
+
let t, e = (
|
1400 |
+
/*tag*/
|
1401 |
+
n[14] && _l(n)
|
1402 |
+
);
|
1403 |
+
return {
|
1404 |
+
c() {
|
1405 |
+
e && e.c();
|
1406 |
+
},
|
1407 |
+
m(l, i) {
|
1408 |
+
e && e.m(l, i), t = !0;
|
1409 |
+
},
|
1410 |
+
p(l, [i]) {
|
1411 |
+
/*tag*/
|
1412 |
+
l[14] && e.p(l, i);
|
1413 |
+
},
|
1414 |
+
i(l) {
|
1415 |
+
t || (We(e, l), t = !0);
|
1416 |
+
},
|
1417 |
+
o(l) {
|
1418 |
+
xe(e, l), t = !1;
|
1419 |
+
},
|
1420 |
+
d(l) {
|
1421 |
+
e && e.d(l);
|
1422 |
+
}
|
1423 |
+
};
|
1424 |
+
}
|
1425 |
+
function cl(n, t, e) {
|
1426 |
+
let { $$slots: l = {}, $$scope: i } = t, { height: f = void 0 } = t, { width: o = void 0 } = t, { elem_id: a = "" } = t, { elem_classes: r = [] } = t, { variant: s = "solid" } = t, { border_mode: _ = "base" } = t, { padding: c = !0 } = t, { type: w = "normal" } = t, { test_id: h = void 0 } = t, { explicit_call: y = !1 } = t, { container: C = !0 } = t, { visible: p = !0 } = t, { allow_overflow: L = !0 } = t, { scale: F = null } = t, { min_width: u = 0 } = t, k = w === "fieldset" ? "fieldset" : "div";
|
1427 |
+
return n.$$set = (m) => {
|
1428 |
+
"height" in m && e(0, f = m.height), "width" in m && e(1, o = m.width), "elem_id" in m && e(2, a = m.elem_id), "elem_classes" in m && e(3, r = m.elem_classes), "variant" in m && e(4, s = m.variant), "border_mode" in m && e(5, _ = m.border_mode), "padding" in m && e(6, c = m.padding), "type" in m && e(15, w = m.type), "test_id" in m && e(7, h = m.test_id), "explicit_call" in m && e(8, y = m.explicit_call), "container" in m && e(9, C = m.container), "visible" in m && e(10, p = m.visible), "allow_overflow" in m && e(11, L = m.allow_overflow), "scale" in m && e(12, F = m.scale), "min_width" in m && e(13, u = m.min_width), "$$scope" in m && e(16, i = m.$$scope);
|
1429 |
+
}, [
|
1430 |
+
f,
|
1431 |
+
o,
|
1432 |
+
a,
|
1433 |
+
r,
|
1434 |
+
s,
|
1435 |
+
_,
|
1436 |
+
c,
|
1437 |
+
h,
|
1438 |
+
y,
|
1439 |
+
C,
|
1440 |
+
p,
|
1441 |
+
L,
|
1442 |
+
F,
|
1443 |
+
u,
|
1444 |
+
k,
|
1445 |
+
w,
|
1446 |
+
i,
|
1447 |
+
l
|
1448 |
+
];
|
1449 |
+
}
|
1450 |
+
class dl extends xt {
|
1451 |
+
constructor(t) {
|
1452 |
+
super(), fl(this, t, cl, ul, al, {
|
1453 |
+
height: 0,
|
1454 |
+
width: 1,
|
1455 |
+
elem_id: 2,
|
1456 |
+
elem_classes: 3,
|
1457 |
+
variant: 4,
|
1458 |
+
border_mode: 5,
|
1459 |
+
padding: 6,
|
1460 |
+
type: 15,
|
1461 |
+
test_id: 7,
|
1462 |
+
explicit_call: 8,
|
1463 |
+
container: 9,
|
1464 |
+
visible: 10,
|
1465 |
+
allow_overflow: 11,
|
1466 |
+
scale: 12,
|
1467 |
+
min_width: 13
|
1468 |
+
});
|
1469 |
+
}
|
1470 |
+
}
|
1471 |
+
const ml = [
|
1472 |
+
{ color: "red", primary: 600, secondary: 100 },
|
1473 |
+
{ color: "green", primary: 600, secondary: 100 },
|
1474 |
+
{ color: "blue", primary: 600, secondary: 100 },
|
1475 |
+
{ color: "yellow", primary: 500, secondary: 100 },
|
1476 |
+
{ color: "purple", primary: 600, secondary: 100 },
|
1477 |
+
{ color: "teal", primary: 600, secondary: 100 },
|
1478 |
+
{ color: "orange", primary: 600, secondary: 100 },
|
1479 |
+
{ color: "cyan", primary: 600, secondary: 100 },
|
1480 |
+
{ color: "lime", primary: 500, secondary: 100 },
|
1481 |
+
{ color: "pink", primary: 600, secondary: 100 }
|
1482 |
+
], He = {
|
1483 |
+
inherit: "inherit",
|
1484 |
+
current: "currentColor",
|
1485 |
+
transparent: "transparent",
|
1486 |
+
black: "#000",
|
1487 |
+
white: "#fff",
|
1488 |
+
slate: {
|
1489 |
+
50: "#f8fafc",
|
1490 |
+
100: "#f1f5f9",
|
1491 |
+
200: "#e2e8f0",
|
1492 |
+
300: "#cbd5e1",
|
1493 |
+
400: "#94a3b8",
|
1494 |
+
500: "#64748b",
|
1495 |
+
600: "#475569",
|
1496 |
+
700: "#334155",
|
1497 |
+
800: "#1e293b",
|
1498 |
+
900: "#0f172a",
|
1499 |
+
950: "#020617"
|
1500 |
+
},
|
1501 |
+
gray: {
|
1502 |
+
50: "#f9fafb",
|
1503 |
+
100: "#f3f4f6",
|
1504 |
+
200: "#e5e7eb",
|
1505 |
+
300: "#d1d5db",
|
1506 |
+
400: "#9ca3af",
|
1507 |
+
500: "#6b7280",
|
1508 |
+
600: "#4b5563",
|
1509 |
+
700: "#374151",
|
1510 |
+
800: "#1f2937",
|
1511 |
+
900: "#111827",
|
1512 |
+
950: "#030712"
|
1513 |
+
},
|
1514 |
+
zinc: {
|
1515 |
+
50: "#fafafa",
|
1516 |
+
100: "#f4f4f5",
|
1517 |
+
200: "#e4e4e7",
|
1518 |
+
300: "#d4d4d8",
|
1519 |
+
400: "#a1a1aa",
|
1520 |
+
500: "#71717a",
|
1521 |
+
600: "#52525b",
|
1522 |
+
700: "#3f3f46",
|
1523 |
+
800: "#27272a",
|
1524 |
+
900: "#18181b",
|
1525 |
+
950: "#09090b"
|
1526 |
+
},
|
1527 |
+
neutral: {
|
1528 |
+
50: "#fafafa",
|
1529 |
+
100: "#f5f5f5",
|
1530 |
+
200: "#e5e5e5",
|
1531 |
+
300: "#d4d4d4",
|
1532 |
+
400: "#a3a3a3",
|
1533 |
+
500: "#737373",
|
1534 |
+
600: "#525252",
|
1535 |
+
700: "#404040",
|
1536 |
+
800: "#262626",
|
1537 |
+
900: "#171717",
|
1538 |
+
950: "#0a0a0a"
|
1539 |
+
},
|
1540 |
+
stone: {
|
1541 |
+
50: "#fafaf9",
|
1542 |
+
100: "#f5f5f4",
|
1543 |
+
200: "#e7e5e4",
|
1544 |
+
300: "#d6d3d1",
|
1545 |
+
400: "#a8a29e",
|
1546 |
+
500: "#78716c",
|
1547 |
+
600: "#57534e",
|
1548 |
+
700: "#44403c",
|
1549 |
+
800: "#292524",
|
1550 |
+
900: "#1c1917",
|
1551 |
+
950: "#0c0a09"
|
1552 |
+
},
|
1553 |
+
red: {
|
1554 |
+
50: "#fef2f2",
|
1555 |
+
100: "#fee2e2",
|
1556 |
+
200: "#fecaca",
|
1557 |
+
300: "#fca5a5",
|
1558 |
+
400: "#f87171",
|
1559 |
+
500: "#ef4444",
|
1560 |
+
600: "#dc2626",
|
1561 |
+
700: "#b91c1c",
|
1562 |
+
800: "#991b1b",
|
1563 |
+
900: "#7f1d1d",
|
1564 |
+
950: "#450a0a"
|
1565 |
+
},
|
1566 |
+
orange: {
|
1567 |
+
50: "#fff7ed",
|
1568 |
+
100: "#ffedd5",
|
1569 |
+
200: "#fed7aa",
|
1570 |
+
300: "#fdba74",
|
1571 |
+
400: "#fb923c",
|
1572 |
+
500: "#f97316",
|
1573 |
+
600: "#ea580c",
|
1574 |
+
700: "#c2410c",
|
1575 |
+
800: "#9a3412",
|
1576 |
+
900: "#7c2d12",
|
1577 |
+
950: "#431407"
|
1578 |
+
},
|
1579 |
+
amber: {
|
1580 |
+
50: "#fffbeb",
|
1581 |
+
100: "#fef3c7",
|
1582 |
+
200: "#fde68a",
|
1583 |
+
300: "#fcd34d",
|
1584 |
+
400: "#fbbf24",
|
1585 |
+
500: "#f59e0b",
|
1586 |
+
600: "#d97706",
|
1587 |
+
700: "#b45309",
|
1588 |
+
800: "#92400e",
|
1589 |
+
900: "#78350f",
|
1590 |
+
950: "#451a03"
|
1591 |
+
},
|
1592 |
+
yellow: {
|
1593 |
+
50: "#fefce8",
|
1594 |
+
100: "#fef9c3",
|
1595 |
+
200: "#fef08a",
|
1596 |
+
300: "#fde047",
|
1597 |
+
400: "#facc15",
|
1598 |
+
500: "#eab308",
|
1599 |
+
600: "#ca8a04",
|
1600 |
+
700: "#a16207",
|
1601 |
+
800: "#854d0e",
|
1602 |
+
900: "#713f12",
|
1603 |
+
950: "#422006"
|
1604 |
+
},
|
1605 |
+
lime: {
|
1606 |
+
50: "#f7fee7",
|
1607 |
+
100: "#ecfccb",
|
1608 |
+
200: "#d9f99d",
|
1609 |
+
300: "#bef264",
|
1610 |
+
400: "#a3e635",
|
1611 |
+
500: "#84cc16",
|
1612 |
+
600: "#65a30d",
|
1613 |
+
700: "#4d7c0f",
|
1614 |
+
800: "#3f6212",
|
1615 |
+
900: "#365314",
|
1616 |
+
950: "#1a2e05"
|
1617 |
+
},
|
1618 |
+
green: {
|
1619 |
+
50: "#f0fdf4",
|
1620 |
+
100: "#dcfce7",
|
1621 |
+
200: "#bbf7d0",
|
1622 |
+
300: "#86efac",
|
1623 |
+
400: "#4ade80",
|
1624 |
+
500: "#22c55e",
|
1625 |
+
600: "#16a34a",
|
1626 |
+
700: "#15803d",
|
1627 |
+
800: "#166534",
|
1628 |
+
900: "#14532d",
|
1629 |
+
950: "#052e16"
|
1630 |
+
},
|
1631 |
+
emerald: {
|
1632 |
+
50: "#ecfdf5",
|
1633 |
+
100: "#d1fae5",
|
1634 |
+
200: "#a7f3d0",
|
1635 |
+
300: "#6ee7b7",
|
1636 |
+
400: "#34d399",
|
1637 |
+
500: "#10b981",
|
1638 |
+
600: "#059669",
|
1639 |
+
700: "#047857",
|
1640 |
+
800: "#065f46",
|
1641 |
+
900: "#064e3b",
|
1642 |
+
950: "#022c22"
|
1643 |
+
},
|
1644 |
+
teal: {
|
1645 |
+
50: "#f0fdfa",
|
1646 |
+
100: "#ccfbf1",
|
1647 |
+
200: "#99f6e4",
|
1648 |
+
300: "#5eead4",
|
1649 |
+
400: "#2dd4bf",
|
1650 |
+
500: "#14b8a6",
|
1651 |
+
600: "#0d9488",
|
1652 |
+
700: "#0f766e",
|
1653 |
+
800: "#115e59",
|
1654 |
+
900: "#134e4a",
|
1655 |
+
950: "#042f2e"
|
1656 |
+
},
|
1657 |
+
cyan: {
|
1658 |
+
50: "#ecfeff",
|
1659 |
+
100: "#cffafe",
|
1660 |
+
200: "#a5f3fc",
|
1661 |
+
300: "#67e8f9",
|
1662 |
+
400: "#22d3ee",
|
1663 |
+
500: "#06b6d4",
|
1664 |
+
600: "#0891b2",
|
1665 |
+
700: "#0e7490",
|
1666 |
+
800: "#155e75",
|
1667 |
+
900: "#164e63",
|
1668 |
+
950: "#083344"
|
1669 |
+
},
|
1670 |
+
sky: {
|
1671 |
+
50: "#f0f9ff",
|
1672 |
+
100: "#e0f2fe",
|
1673 |
+
200: "#bae6fd",
|
1674 |
+
300: "#7dd3fc",
|
1675 |
+
400: "#38bdf8",
|
1676 |
+
500: "#0ea5e9",
|
1677 |
+
600: "#0284c7",
|
1678 |
+
700: "#0369a1",
|
1679 |
+
800: "#075985",
|
1680 |
+
900: "#0c4a6e",
|
1681 |
+
950: "#082f49"
|
1682 |
+
},
|
1683 |
+
blue: {
|
1684 |
+
50: "#eff6ff",
|
1685 |
+
100: "#dbeafe",
|
1686 |
+
200: "#bfdbfe",
|
1687 |
+
300: "#93c5fd",
|
1688 |
+
400: "#60a5fa",
|
1689 |
+
500: "#3b82f6",
|
1690 |
+
600: "#2563eb",
|
1691 |
+
700: "#1d4ed8",
|
1692 |
+
800: "#1e40af",
|
1693 |
+
900: "#1e3a8a",
|
1694 |
+
950: "#172554"
|
1695 |
+
},
|
1696 |
+
indigo: {
|
1697 |
+
50: "#eef2ff",
|
1698 |
+
100: "#e0e7ff",
|
1699 |
+
200: "#c7d2fe",
|
1700 |
+
300: "#a5b4fc",
|
1701 |
+
400: "#818cf8",
|
1702 |
+
500: "#6366f1",
|
1703 |
+
600: "#4f46e5",
|
1704 |
+
700: "#4338ca",
|
1705 |
+
800: "#3730a3",
|
1706 |
+
900: "#312e81",
|
1707 |
+
950: "#1e1b4b"
|
1708 |
+
},
|
1709 |
+
violet: {
|
1710 |
+
50: "#f5f3ff",
|
1711 |
+
100: "#ede9fe",
|
1712 |
+
200: "#ddd6fe",
|
1713 |
+
300: "#c4b5fd",
|
1714 |
+
400: "#a78bfa",
|
1715 |
+
500: "#8b5cf6",
|
1716 |
+
600: "#7c3aed",
|
1717 |
+
700: "#6d28d9",
|
1718 |
+
800: "#5b21b6",
|
1719 |
+
900: "#4c1d95",
|
1720 |
+
950: "#2e1065"
|
1721 |
+
},
|
1722 |
+
purple: {
|
1723 |
+
50: "#faf5ff",
|
1724 |
+
100: "#f3e8ff",
|
1725 |
+
200: "#e9d5ff",
|
1726 |
+
300: "#d8b4fe",
|
1727 |
+
400: "#c084fc",
|
1728 |
+
500: "#a855f7",
|
1729 |
+
600: "#9333ea",
|
1730 |
+
700: "#7e22ce",
|
1731 |
+
800: "#6b21a8",
|
1732 |
+
900: "#581c87",
|
1733 |
+
950: "#3b0764"
|
1734 |
+
},
|
1735 |
+
fuchsia: {
|
1736 |
+
50: "#fdf4ff",
|
1737 |
+
100: "#fae8ff",
|
1738 |
+
200: "#f5d0fe",
|
1739 |
+
300: "#f0abfc",
|
1740 |
+
400: "#e879f9",
|
1741 |
+
500: "#d946ef",
|
1742 |
+
600: "#c026d3",
|
1743 |
+
700: "#a21caf",
|
1744 |
+
800: "#86198f",
|
1745 |
+
900: "#701a75",
|
1746 |
+
950: "#4a044e"
|
1747 |
+
},
|
1748 |
+
pink: {
|
1749 |
+
50: "#fdf2f8",
|
1750 |
+
100: "#fce7f3",
|
1751 |
+
200: "#fbcfe8",
|
1752 |
+
300: "#f9a8d4",
|
1753 |
+
400: "#f472b6",
|
1754 |
+
500: "#ec4899",
|
1755 |
+
600: "#db2777",
|
1756 |
+
700: "#be185d",
|
1757 |
+
800: "#9d174d",
|
1758 |
+
900: "#831843",
|
1759 |
+
950: "#500724"
|
1760 |
+
},
|
1761 |
+
rose: {
|
1762 |
+
50: "#fff1f2",
|
1763 |
+
100: "#ffe4e6",
|
1764 |
+
200: "#fecdd3",
|
1765 |
+
300: "#fda4af",
|
1766 |
+
400: "#fb7185",
|
1767 |
+
500: "#f43f5e",
|
1768 |
+
600: "#e11d48",
|
1769 |
+
700: "#be123c",
|
1770 |
+
800: "#9f1239",
|
1771 |
+
900: "#881337",
|
1772 |
+
950: "#4c0519"
|
1773 |
+
}
|
1774 |
+
};
|
1775 |
+
ml.reduce(
|
1776 |
+
(n, { color: t, primary: e, secondary: l }) => ({
|
1777 |
+
...n,
|
1778 |
+
[t]: {
|
1779 |
+
primary: He[t][e],
|
1780 |
+
secondary: He[t][l]
|
1781 |
+
}
|
1782 |
+
}),
|
1783 |
+
{}
|
1784 |
+
);
|
1785 |
+
const {
|
1786 |
+
SvelteComponent: bl,
|
1787 |
+
assign: gl,
|
1788 |
+
attr: hl,
|
1789 |
+
create_component: oe,
|
1790 |
+
destroy_component: ae,
|
1791 |
+
detach: Xe,
|
1792 |
+
element: wl,
|
1793 |
+
get_spread_object: vl,
|
1794 |
+
get_spread_update: yl,
|
1795 |
+
init: kl,
|
1796 |
+
insert: Ye,
|
1797 |
+
mount_component: re,
|
1798 |
+
safe_not_equal: pl,
|
1799 |
+
space: ql,
|
1800 |
+
toggle_class: Ge,
|
1801 |
+
transition_in: _e,
|
1802 |
+
transition_out: ue
|
1803 |
+
} = window.__gradio__svelte__internal;
|
1804 |
+
function Fl(n) {
|
1805 |
+
var r;
|
1806 |
+
let t, e, l, i, f;
|
1807 |
+
const o = [
|
1808 |
+
{ autoscroll: (
|
1809 |
+
/*gradio*/
|
1810 |
+
n[5].autoscroll
|
1811 |
+
) },
|
1812 |
+
{ i18n: (
|
1813 |
+
/*gradio*/
|
1814 |
+
n[5].i18n
|
1815 |
+
) },
|
1816 |
+
/*loading_status*/
|
1817 |
+
n[4],
|
1818 |
+
{ variant: "center" }
|
1819 |
+
];
|
1820 |
+
let a = {};
|
1821 |
+
for (let s = 0; s < o.length; s += 1)
|
1822 |
+
a = gl(a, o[s]);
|
1823 |
+
return t = new Wt({ props: a }), i = new ut({
|
1824 |
+
props: {
|
1825 |
+
min_height: (
|
1826 |
+
/*loading_status*/
|
1827 |
+
n[4] && /*loading_status*/
|
1828 |
+
((r = n[4]) == null ? void 0 : r.status) !== "complete"
|
1829 |
+
),
|
1830 |
+
value: (
|
1831 |
+
/*value*/
|
1832 |
+
n[3]
|
1833 |
+
),
|
1834 |
+
elem_classes: (
|
1835 |
+
/*elem_classes*/
|
1836 |
+
n[1]
|
1837 |
+
),
|
1838 |
+
visible: (
|
1839 |
+
/*visible*/
|
1840 |
+
n[2]
|
1841 |
+
)
|
1842 |
+
}
|
1843 |
+
}), i.$on(
|
1844 |
+
"change",
|
1845 |
+
/*change_handler*/
|
1846 |
+
n[7]
|
1847 |
+
), {
|
1848 |
+
c() {
|
1849 |
+
var s;
|
1850 |
+
oe(t.$$.fragment), e = ql(), l = wl("div"), oe(i.$$.fragment), hl(l, "class", "svelte-gqsrr7"), Ge(
|
1851 |
+
l,
|
1852 |
+
"pending",
|
1853 |
+
/*loading_status*/
|
1854 |
+
((s = n[4]) == null ? void 0 : s.status) === "pending"
|
1855 |
+
);
|
1856 |
+
},
|
1857 |
+
m(s, _) {
|
1858 |
+
re(t, s, _), Ye(s, e, _), Ye(s, l, _), re(i, l, null), f = !0;
|
1859 |
+
},
|
1860 |
+
p(s, _) {
|
1861 |
+
var h, y;
|
1862 |
+
const c = _ & /*gradio, loading_status*/
|
1863 |
+
48 ? yl(o, [
|
1864 |
+
_ & /*gradio*/
|
1865 |
+
32 && { autoscroll: (
|
1866 |
+
/*gradio*/
|
1867 |
+
s[5].autoscroll
|
1868 |
+
) },
|
1869 |
+
_ & /*gradio*/
|
1870 |
+
32 && { i18n: (
|
1871 |
+
/*gradio*/
|
1872 |
+
s[5].i18n
|
1873 |
+
) },
|
1874 |
+
_ & /*loading_status*/
|
1875 |
+
16 && vl(
|
1876 |
+
/*loading_status*/
|
1877 |
+
s[4]
|
1878 |
+
),
|
1879 |
+
o[3]
|
1880 |
+
]) : {};
|
1881 |
+
t.$set(c);
|
1882 |
+
const w = {};
|
1883 |
+
_ & /*loading_status*/
|
1884 |
+
16 && (w.min_height = /*loading_status*/
|
1885 |
+
s[4] && /*loading_status*/
|
1886 |
+
((h = s[4]) == null ? void 0 : h.status) !== "complete"), _ & /*value*/
|
1887 |
+
8 && (w.value = /*value*/
|
1888 |
+
s[3]), _ & /*elem_classes*/
|
1889 |
+
2 && (w.elem_classes = /*elem_classes*/
|
1890 |
+
s[1]), _ & /*visible*/
|
1891 |
+
4 && (w.visible = /*visible*/
|
1892 |
+
s[2]), i.$set(w), (!f || _ & /*loading_status*/
|
1893 |
+
16) && Ge(
|
1894 |
+
l,
|
1895 |
+
"pending",
|
1896 |
+
/*loading_status*/
|
1897 |
+
((y = s[4]) == null ? void 0 : y.status) === "pending"
|
1898 |
+
);
|
1899 |
+
},
|
1900 |
+
i(s) {
|
1901 |
+
f || (_e(t.$$.fragment, s), _e(i.$$.fragment, s), f = !0);
|
1902 |
+
},
|
1903 |
+
o(s) {
|
1904 |
+
ue(t.$$.fragment, s), ue(i.$$.fragment, s), f = !1;
|
1905 |
+
},
|
1906 |
+
d(s) {
|
1907 |
+
s && (Xe(e), Xe(l)), ae(t, s), ae(i);
|
1908 |
+
}
|
1909 |
+
};
|
1910 |
+
}
|
1911 |
+
function Ll(n) {
|
1912 |
+
let t, e;
|
1913 |
+
return t = new dl({
|
1914 |
+
props: {
|
1915 |
+
visible: (
|
1916 |
+
/*visible*/
|
1917 |
+
n[2]
|
1918 |
+
),
|
1919 |
+
elem_id: (
|
1920 |
+
/*elem_id*/
|
1921 |
+
n[0]
|
1922 |
+
),
|
1923 |
+
elem_classes: (
|
1924 |
+
/*elem_classes*/
|
1925 |
+
n[1]
|
1926 |
+
),
|
1927 |
+
container: !1,
|
1928 |
+
$$slots: { default: [Fl] },
|
1929 |
+
$$scope: { ctx: n }
|
1930 |
+
}
|
1931 |
+
}), {
|
1932 |
+
c() {
|
1933 |
+
oe(t.$$.fragment);
|
1934 |
+
},
|
1935 |
+
m(l, i) {
|
1936 |
+
re(t, l, i), e = !0;
|
1937 |
+
},
|
1938 |
+
p(l, [i]) {
|
1939 |
+
const f = {};
|
1940 |
+
i & /*visible*/
|
1941 |
+
4 && (f.visible = /*visible*/
|
1942 |
+
l[2]), i & /*elem_id*/
|
1943 |
+
1 && (f.elem_id = /*elem_id*/
|
1944 |
+
l[0]), i & /*elem_classes*/
|
1945 |
+
2 && (f.elem_classes = /*elem_classes*/
|
1946 |
+
l[1]), i & /*$$scope, loading_status, value, elem_classes, visible, gradio*/
|
1947 |
+
318 && (f.$$scope = { dirty: i, ctx: l }), t.$set(f);
|
1948 |
+
},
|
1949 |
+
i(l) {
|
1950 |
+
e || (_e(t.$$.fragment, l), e = !0);
|
1951 |
+
},
|
1952 |
+
o(l) {
|
1953 |
+
ue(t.$$.fragment, l), e = !1;
|
1954 |
+
},
|
1955 |
+
d(l) {
|
1956 |
+
ae(t, l);
|
1957 |
+
}
|
1958 |
+
};
|
1959 |
+
}
|
1960 |
+
function Cl(n, t, e) {
|
1961 |
+
let { label: l } = t, { elem_id: i = "" } = t, { elem_classes: f = [] } = t, { visible: o = !0 } = t, { value: a = "" } = t, { loading_status: r } = t, { gradio: s } = t;
|
1962 |
+
const _ = () => s.dispatch("change");
|
1963 |
+
return n.$$set = (c) => {
|
1964 |
+
"label" in c && e(6, l = c.label), "elem_id" in c && e(0, i = c.elem_id), "elem_classes" in c && e(1, f = c.elem_classes), "visible" in c && e(2, o = c.visible), "value" in c && e(3, a = c.value), "loading_status" in c && e(4, r = c.loading_status), "gradio" in c && e(5, s = c.gradio);
|
1965 |
+
}, n.$$.update = () => {
|
1966 |
+
n.$$.dirty & /*label, gradio*/
|
1967 |
+
96 && s.dispatch("change");
|
1968 |
+
}, [
|
1969 |
+
i,
|
1970 |
+
f,
|
1971 |
+
o,
|
1972 |
+
a,
|
1973 |
+
r,
|
1974 |
+
s,
|
1975 |
+
l,
|
1976 |
+
_
|
1977 |
+
];
|
1978 |
+
}
|
1979 |
+
class Ml extends bl {
|
1980 |
+
constructor(t) {
|
1981 |
+
super(), kl(this, t, Cl, Ll, pl, {
|
1982 |
+
label: 6,
|
1983 |
+
elem_id: 0,
|
1984 |
+
elem_classes: 1,
|
1985 |
+
visible: 2,
|
1986 |
+
value: 3,
|
1987 |
+
loading_status: 4,
|
1988 |
+
gradio: 5
|
1989 |
+
});
|
1990 |
+
}
|
1991 |
+
}
|
1992 |
+
export {
|
1993 |
+
Ml as default
|
1994 |
+
};
|
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
.min.svelte-2qygph{min-height:var(--size-24)}.hide.svelte-2qygph{display:none}svg.svelte-43sxxs.svelte-43sxxs{width:var(--size-20);height:var(--size-20)}svg.svelte-43sxxs path.svelte-43sxxs{fill:var(--loader-color)}div.svelte-43sxxs.svelte-43sxxs{z-index:var(--layer-2)}.margin.svelte-43sxxs.svelte-43sxxs{margin:var(--size-4)}.wrap.svelte-1txqlrd.svelte-1txqlrd{display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:var(--layer-top);transition:opacity .1s ease-in-out;border-radius:var(--block-radius);background:var(--block-background-fill);padding:0 var(--size-6);max-height:var(--size-screen-h);overflow:hidden;pointer-events:none}.wrap.center.svelte-1txqlrd.svelte-1txqlrd{top:0;right:0;left:0}.wrap.default.svelte-1txqlrd.svelte-1txqlrd{top:0;right:0;bottom:0;left:0}.hide.svelte-1txqlrd.svelte-1txqlrd{opacity:0;pointer-events:none}.generating.svelte-1txqlrd.svelte-1txqlrd{animation:svelte-1txqlrd-pulse 2s cubic-bezier(.4,0,.6,1) infinite;border:2px solid var(--color-accent);background:transparent}.translucent.svelte-1txqlrd.svelte-1txqlrd{background:none}@keyframes svelte-1txqlrd-pulse{0%,to{opacity:1}50%{opacity:.5}}.loading.svelte-1txqlrd.svelte-1txqlrd{z-index:var(--layer-2);color:var(--body-text-color)}.eta-bar.svelte-1txqlrd.svelte-1txqlrd{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left;opacity:.8;z-index:var(--layer-1);transition:10ms;background:var(--background-fill-secondary)}.progress-bar-wrap.svelte-1txqlrd.svelte-1txqlrd{border:1px solid var(--border-color-primary);background:var(--background-fill-primary);width:55.5%;height:var(--size-4)}.progress-bar.svelte-1txqlrd.svelte-1txqlrd{transform-origin:left;background-color:var(--loader-color);width:var(--size-full);height:var(--size-full)}.progress-level.svelte-1txqlrd.svelte-1txqlrd{display:flex;flex-direction:column;align-items:center;gap:1;z-index:var(--layer-2);width:var(--size-full)}.progress-level-inner.svelte-1txqlrd.svelte-1txqlrd{margin:var(--size-2) auto;color:var(--body-text-color);font-size:var(--text-sm);font-family:var(--font-mono)}.meta-text.svelte-1txqlrd.svelte-1txqlrd{position:absolute;top:0;right:0;z-index:var(--layer-2);padding:var(--size-1) var(--size-2);font-size:var(--text-sm);font-family:var(--font-mono)}.meta-text-center.svelte-1txqlrd.svelte-1txqlrd{display:flex;position:absolute;top:0;right:0;justify-content:center;align-items:center;transform:translateY(var(--size-6));z-index:var(--layer-2);padding:var(--size-1) var(--size-2);font-size:var(--text-sm);font-family:var(--font-mono);text-align:center}.error.svelte-1txqlrd.svelte-1txqlrd{box-shadow:var(--shadow-drop);border:solid 1px var(--error-border-color);border-radius:var(--radius-full);background:var(--error-background-fill);padding-right:var(--size-4);padding-left:var(--size-4);color:var(--error-text-color);font-weight:var(--weight-semibold);font-size:var(--text-lg);line-height:var(--line-lg);font-family:var(--font)}.minimal.svelte-1txqlrd .progress-text.svelte-1txqlrd{background:var(--block-background-fill)}.border.svelte-1txqlrd.svelte-1txqlrd{border:1px solid var(--border-color-primary)}.dropdown-arrow.svelte-145leq6{fill:currentColor}.toast-body.svelte-solcu7{display:flex;position:relative;right:0;left:0;align-items:center;margin:var(--size-6) var(--size-4);margin:auto;border-radius:var(--container-radius);overflow:hidden;pointer-events:auto}.toast-body.error.svelte-solcu7{border:1px solid var(--color-red-700);background:var(--color-red-50)}.dark .toast-body.error.svelte-solcu7{border:1px solid var(--color-red-500);background-color:var(--color-grey-950)}.toast-body.warning.svelte-solcu7{border:1px solid var(--color-yellow-700);background:var(--color-yellow-50)}.dark .toast-body.warning.svelte-solcu7{border:1px solid var(--color-yellow-500);background-color:var(--color-grey-950)}.toast-body.info.svelte-solcu7{border:1px solid var(--color-grey-700);background:var(--color-grey-50)}.dark .toast-body.info.svelte-solcu7{border:1px solid var(--color-grey-500);background-color:var(--color-grey-950)}.toast-title.svelte-solcu7{display:flex;align-items:center;font-weight:var(--weight-bold);font-size:var(--text-lg);line-height:var(--line-sm);text-transform:capitalize}.toast-title.error.svelte-solcu7{color:var(--color-red-700)}.dark .toast-title.error.svelte-solcu7{color:var(--color-red-50)}.toast-title.warning.svelte-solcu7{color:var(--color-yellow-700)}.dark .toast-title.warning.svelte-solcu7{color:var(--color-yellow-50)}.toast-title.info.svelte-solcu7{color:var(--color-grey-700)}.dark .toast-title.info.svelte-solcu7{color:var(--color-grey-50)}.toast-close.svelte-solcu7{margin:0 var(--size-3);border-radius:var(--size-3);padding:0px var(--size-1-5);font-size:var(--size-5);line-height:var(--size-5)}.toast-close.error.svelte-solcu7{color:var(--color-red-700)}.dark .toast-close.error.svelte-solcu7{color:var(--color-red-500)}.toast-close.warning.svelte-solcu7{color:var(--color-yellow-700)}.dark .toast-close.warning.svelte-solcu7{color:var(--color-yellow-500)}.toast-close.info.svelte-solcu7{color:var(--color-grey-700)}.dark .toast-close.info.svelte-solcu7{color:var(--color-grey-500)}.toast-text.svelte-solcu7{font-size:var(--text-lg)}.toast-text.error.svelte-solcu7{color:var(--color-red-700)}.dark .toast-text.error.svelte-solcu7{color:var(--color-red-50)}.toast-text.warning.svelte-solcu7{color:var(--color-yellow-700)}.dark .toast-text.warning.svelte-solcu7{color:var(--color-yellow-50)}.toast-text.info.svelte-solcu7{color:var(--color-grey-700)}.dark .toast-text.info.svelte-solcu7{color:var(--color-grey-50)}.toast-details.svelte-solcu7{margin:var(--size-3) var(--size-3) var(--size-3) 0;width:100%}.toast-icon.svelte-solcu7{display:flex;position:absolute;position:relative;flex-shrink:0;justify-content:center;align-items:center;margin:var(--size-2);border-radius:var(--radius-full);padding:var(--size-1);padding-left:calc(var(--size-1) - 1px);width:35px;height:35px}.toast-icon.error.svelte-solcu7{color:var(--color-red-700)}.dark .toast-icon.error.svelte-solcu7{color:var(--color-red-500)}.toast-icon.warning.svelte-solcu7{color:var(--color-yellow-700)}.dark .toast-icon.warning.svelte-solcu7{color:var(--color-yellow-500)}.toast-icon.info.svelte-solcu7{color:var(--color-grey-700)}.dark .toast-icon.info.svelte-solcu7{color:var(--color-grey-500)}@keyframes svelte-solcu7-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.timer.svelte-solcu7{position:absolute;bottom:0;left:0;transform-origin:0 0;animation:svelte-solcu7-countdown 10s linear forwards;width:100%;height:var(--size-1)}.timer.error.svelte-solcu7{background:var(--color-red-700)}.dark .timer.error.svelte-solcu7{background:var(--color-red-500)}.timer.warning.svelte-solcu7{background:var(--color-yellow-700)}.dark .timer.warning.svelte-solcu7{background:var(--color-yellow-500)}.timer.info.svelte-solcu7{background:var(--color-grey-700)}.dark .timer.info.svelte-solcu7{background:var(--color-grey-500)}.toast-wrap.svelte-gatr8h{display:flex;position:fixed;top:var(--size-4);right:var(--size-4);flex-direction:column;align-items:end;gap:var(--size-2);z-index:var(--layer-top);width:calc(100% - var(--size-8))}@media (--screen-sm){.toast-wrap.svelte-gatr8h{width:calc(var(--size-96) + var(--size-10))}}.block.svelte-1t38q2d{position:relative;margin:0;box-shadow:var(--block-shadow);border-width:var(--block-border-width);border-color:var(--block-border-color);border-radius:var(--block-radius);background:var(--block-background-fill);width:100%;line-height:var(--line-sm)}.block.border_focus.svelte-1t38q2d{border-color:var(--color-accent)}.padded.svelte-1t38q2d{padding:var(--block-padding)}.hidden.svelte-1t38q2d{display:none}.hide-container.svelte-1t38q2d{margin:0;box-shadow:none;--block-border-width:0;background:transparent;padding:0;overflow:visible}div.svelte-1hnfib2{margin-bottom:var(--spacing-lg);color:var(--block-info-text-color);font-weight:var(--block-info-text-weight);font-size:var(--block-info-text-size);line-height:var(--line-sm)}span.has-info.svelte-22c38v{margin-bottom:var(--spacing-xs)}span.svelte-22c38v:not(.has-info){margin-bottom:var(--spacing-lg)}span.svelte-22c38v{display:inline-block;position:relative;z-index:var(--layer-4);border:solid var(--block-title-border-width) var(--block-title-border-color);border-radius:var(--block-title-radius);background:var(--block-title-background-fill);padding:var(--block-title-padding);color:var(--block-title-text-color);font-weight:var(--block-title-text-weight);font-size:var(--block-title-text-size);line-height:var(--line-sm)}.hide.svelte-22c38v{margin:0;height:0}label.svelte-9gxdi0{display:inline-flex;align-items:center;z-index:var(--layer-2);box-shadow:var(--block-label-shadow);border:var(--block-label-border-width) solid var(--border-color-primary);border-top:none;border-left:none;border-radius:var(--block-label-radius);background:var(--block-label-background-fill);padding:var(--block-label-padding);pointer-events:none;color:var(--block-label-text-color);font-weight:var(--block-label-text-weight);font-size:var(--block-label-text-size);line-height:var(--line-sm)}.gr-group label.svelte-9gxdi0{border-top-left-radius:0}label.float.svelte-9gxdi0{position:absolute;top:var(--block-label-margin);left:var(--block-label-margin)}label.svelte-9gxdi0:not(.float){position:static;margin-top:var(--block-label-margin);margin-left:var(--block-label-margin)}.hide.svelte-9gxdi0{height:0}span.svelte-9gxdi0{opacity:.8;margin-right:var(--size-2);width:calc(var(--block-label-text-size) - 1px);height:calc(var(--block-label-text-size) - 1px)}.hide-label.svelte-9gxdi0{box-shadow:none;border-width:0;background:transparent;overflow:visible}button.svelte-lpi64a{display:flex;justify-content:center;align-items:center;gap:1px;z-index:var(--layer-2);border-radius:var(--radius-sm);color:var(--block-label-text-color);border:1px solid transparent}button[disabled].svelte-lpi64a{opacity:.5;box-shadow:none}button[disabled].svelte-lpi64a:hover{cursor:not-allowed}.padded.svelte-lpi64a{padding:2px;background:var(--bg-color);box-shadow:var(--shadow-drop);border:1px solid var(--button-secondary-border-color)}button.svelte-lpi64a:hover,button.highlight.svelte-lpi64a{cursor:pointer;color:var(--color-accent)}.padded.svelte-lpi64a:hover{border:2px solid var(--button-secondary-border-color-hover);padding:1px;color:var(--block-label-text-color)}span.svelte-lpi64a{padding:0 1px;font-size:10px}div.svelte-lpi64a{padding:2px;display:flex;align-items:flex-end}.small.svelte-lpi64a{width:14px;height:14px}.large.svelte-lpi64a{width:22px;height:22px}.pending.svelte-lpi64a{animation:svelte-lpi64a-flash .5s infinite}@keyframes svelte-lpi64a-flash{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.transparent.svelte-lpi64a{background:transparent;border:none;box-shadow:none}.empty.svelte-3w3rth{display:flex;justify-content:center;align-items:center;margin-top:calc(0px - var(--size-6));height:var(--size-full)}.icon.svelte-3w3rth{opacity:.5;height:var(--size-5);color:var(--body-text-color)}.small.svelte-3w3rth{min-height:calc(var(--size-32) - 20px)}.large.svelte-3w3rth{min-height:calc(var(--size-64) - 20px)}.unpadded_box.svelte-3w3rth{margin-top:0}.small_parent.svelte-3w3rth{min-height:100%!important}.wrap.svelte-kzcjhc{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:var(--size-60);color:var(--block-label-text-color);line-height:var(--line-md);height:100%;padding-top:var(--size-3)}.or.svelte-kzcjhc{color:var(--body-text-color-subdued);display:flex}.icon-wrap.svelte-kzcjhc{width:30px;margin-bottom:var(--spacing-lg)}@media (--screen-md){.wrap.svelte-kzcjhc{font-size:var(--text-lg)}}.hovered.svelte-kzcjhc{color:var(--color-accent)}div.svelte-ipfyu7{border-top:1px solid transparent;display:flex;max-height:100%;justify-content:center;gap:var(--spacing-sm);height:auto;align-items:flex-end;padding-bottom:var(--spacing-xl);color:var(--block-label-text-color);flex-shrink:0;width:95%}.show_border.svelte-ipfyu7{border-top:1px solid var(--block-border-color);margin-top:var(--spacing-xxl);box-shadow:var(--shadow-drop)}.source-selection.svelte-lde7lt{display:flex;align-items:center;justify-content:center;border-top:1px solid var(--border-color-primary);width:95%;bottom:0;left:0;right:0;margin-left:auto;margin-right:auto;align-self:flex-end}.icon.svelte-lde7lt{width:22px;height:22px;margin:var(--spacing-lg) var(--spacing-xs);padding:var(--spacing-xs);color:var(--neutral-400);border-radius:var(--radius-md)}.selected.svelte-lde7lt{color:var(--color-accent)}.icon.svelte-lde7lt:hover,.icon.svelte-lde7lt:focus{color:var(--color-accent)}div.svelte-gqsrr7{transition:.15s}.pending.svelte-gqsrr7{opacity:.2}
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const {
|
2 |
+
SvelteComponent: c,
|
3 |
+
attr: u,
|
4 |
+
detach: r,
|
5 |
+
element: o,
|
6 |
+
init: d,
|
7 |
+
insert: g,
|
8 |
+
noop: _,
|
9 |
+
safe_not_equal: v,
|
10 |
+
toggle_class: s
|
11 |
+
} = window.__gradio__svelte__internal;
|
12 |
+
function y(n) {
|
13 |
+
let e;
|
14 |
+
return {
|
15 |
+
c() {
|
16 |
+
e = o("div"), u(e, "class", "prose svelte-180qqaf"), s(
|
17 |
+
e,
|
18 |
+
"table",
|
19 |
+
/*type*/
|
20 |
+
n[1] === "table"
|
21 |
+
), s(
|
22 |
+
e,
|
23 |
+
"gallery",
|
24 |
+
/*type*/
|
25 |
+
n[1] === "gallery"
|
26 |
+
), s(
|
27 |
+
e,
|
28 |
+
"selected",
|
29 |
+
/*selected*/
|
30 |
+
n[2]
|
31 |
+
);
|
32 |
+
},
|
33 |
+
m(l, t) {
|
34 |
+
g(l, e, t), e.innerHTML = /*value*/
|
35 |
+
n[0];
|
36 |
+
},
|
37 |
+
p(l, [t]) {
|
38 |
+
t & /*value*/
|
39 |
+
1 && (e.innerHTML = /*value*/
|
40 |
+
l[0]), t & /*type*/
|
41 |
+
2 && s(
|
42 |
+
e,
|
43 |
+
"table",
|
44 |
+
/*type*/
|
45 |
+
l[1] === "table"
|
46 |
+
), t & /*type*/
|
47 |
+
2 && s(
|
48 |
+
e,
|
49 |
+
"gallery",
|
50 |
+
/*type*/
|
51 |
+
l[1] === "gallery"
|
52 |
+
), t & /*selected*/
|
53 |
+
4 && s(
|
54 |
+
e,
|
55 |
+
"selected",
|
56 |
+
/*selected*/
|
57 |
+
l[2]
|
58 |
+
);
|
59 |
+
},
|
60 |
+
i: _,
|
61 |
+
o: _,
|
62 |
+
d(l) {
|
63 |
+
l && r(e);
|
64 |
+
}
|
65 |
+
};
|
66 |
+
}
|
67 |
+
function m(n, e, l) {
|
68 |
+
let { value: t } = e, { type: i } = e, { selected: f = !1 } = e;
|
69 |
+
return n.$$set = (a) => {
|
70 |
+
"value" in a && l(0, t = a.value), "type" in a && l(1, i = a.type), "selected" in a && l(2, f = a.selected);
|
71 |
+
}, [t, i, f];
|
72 |
+
}
|
73 |
+
class b extends c {
|
74 |
+
constructor(e) {
|
75 |
+
super(), d(this, e, m, y, v, { value: 0, type: 1, selected: 2 });
|
76 |
+
}
|
77 |
+
}
|
78 |
+
export {
|
79 |
+
b as default
|
80 |
+
};
|
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
.gallery.svelte-180qqaf{padding:var(--size-2)}
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from gradio_iframe import iframe
|
3 |
+
|
4 |
+
|
5 |
+
example = iframe().example_inputs()
|
6 |
+
|
7 |
+
with gr.Blocks() as demo:
|
8 |
+
with gr.Row():
|
9 |
+
iframe(label="Blank") # blank component
|
10 |
+
iframe(value=example, label="Populated") # populated component
|
11 |
+
|
12 |
+
|
13 |
+
demo.launch()
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script lang="ts">
|
2 |
+
export let value: string;
|
3 |
+
export let type: "gallery" | "table";
|
4 |
+
export let selected = false;
|
5 |
+
</script>
|
6 |
+
|
7 |
+
<div
|
8 |
+
class:table={type === "table"}
|
9 |
+
class:gallery={type === "gallery"}
|
10 |
+
class:selected
|
11 |
+
class="prose"
|
12 |
+
>
|
13 |
+
{@html value}
|
14 |
+
</div>
|
15 |
+
|
16 |
+
<style>
|
17 |
+
.gallery {
|
18 |
+
padding: var(--size-2);
|
19 |
+
}
|
20 |
+
</style>
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script lang="ts">
|
2 |
+
import type { Gradio } from "@gradio/utils";
|
3 |
+
import HTML from "./shared/HTML.svelte";
|
4 |
+
import { StatusTracker } from "@gradio/statustracker";
|
5 |
+
import type { LoadingStatus } from "@gradio/statustracker";
|
6 |
+
import { Block } from "@gradio/atoms";
|
7 |
+
|
8 |
+
export let label: string;
|
9 |
+
export let elem_id = "";
|
10 |
+
export let elem_classes: string[] = [];
|
11 |
+
export let visible = true;
|
12 |
+
export let value = "";
|
13 |
+
export let loading_status: LoadingStatus;
|
14 |
+
export let gradio: Gradio<{
|
15 |
+
change: never;
|
16 |
+
}>;
|
17 |
+
|
18 |
+
$: label, gradio.dispatch("change");
|
19 |
+
</script>
|
20 |
+
|
21 |
+
<Block {visible} {elem_id} {elem_classes} container={false}>
|
22 |
+
<StatusTracker
|
23 |
+
autoscroll={gradio.autoscroll}
|
24 |
+
i18n={gradio.i18n}
|
25 |
+
{...loading_status}
|
26 |
+
variant="center"
|
27 |
+
/>
|
28 |
+
<div class:pending={loading_status?.status === "pending"}>
|
29 |
+
<HTML
|
30 |
+
min_height={loading_status && loading_status?.status !== "complete"}
|
31 |
+
{value}
|
32 |
+
{elem_classes}
|
33 |
+
{visible}
|
34 |
+
on:change={() => gradio.dispatch("change")}
|
35 |
+
/>
|
36 |
+
</div>
|
37 |
+
</Block>
|
38 |
+
|
39 |
+
<style>
|
40 |
+
div {
|
41 |
+
transition: 150ms;
|
42 |
+
}
|
43 |
+
|
44 |
+
.pending {
|
45 |
+
opacity: 0.2;
|
46 |
+
}
|
47 |
+
</style>
|
@@ -0,0 +1,933 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "gradio_iframe",
|
3 |
+
"version": "0.1.3",
|
4 |
+
"lockfileVersion": 3,
|
5 |
+
"requires": true,
|
6 |
+
"packages": {
|
7 |
+
"": {
|
8 |
+
"name": "gradio_iframe",
|
9 |
+
"version": "0.1.3",
|
10 |
+
"license": "ISC",
|
11 |
+
"dependencies": {
|
12 |
+
"@gradio/atoms": "0.3.0",
|
13 |
+
"@gradio/statustracker": "0.4.0",
|
14 |
+
"@gradio/utils": "0.2.0"
|
15 |
+
}
|
16 |
+
},
|
17 |
+
"node_modules/@ampproject/remapping": {
|
18 |
+
"version": "2.2.1",
|
19 |
+
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
|
20 |
+
"integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
|
21 |
+
"peer": true,
|
22 |
+
"dependencies": {
|
23 |
+
"@jridgewell/gen-mapping": "^0.3.0",
|
24 |
+
"@jridgewell/trace-mapping": "^0.3.9"
|
25 |
+
},
|
26 |
+
"engines": {
|
27 |
+
"node": ">=6.0.0"
|
28 |
+
}
|
29 |
+
},
|
30 |
+
"node_modules/@esbuild/aix-ppc64": {
|
31 |
+
"version": "0.19.10",
|
32 |
+
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.10.tgz",
|
33 |
+
"integrity": "sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==",
|
34 |
+
"cpu": [
|
35 |
+
"ppc64"
|
36 |
+
],
|
37 |
+
"optional": true,
|
38 |
+
"os": [
|
39 |
+
"aix"
|
40 |
+
],
|
41 |
+
"engines": {
|
42 |
+
"node": ">=12"
|
43 |
+
}
|
44 |
+
},
|
45 |
+
"node_modules/@esbuild/android-arm": {
|
46 |
+
"version": "0.19.10",
|
47 |
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.10.tgz",
|
48 |
+
"integrity": "sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==",
|
49 |
+
"cpu": [
|
50 |
+
"arm"
|
51 |
+
],
|
52 |
+
"optional": true,
|
53 |
+
"os": [
|
54 |
+
"android"
|
55 |
+
],
|
56 |
+
"engines": {
|
57 |
+
"node": ">=12"
|
58 |
+
}
|
59 |
+
},
|
60 |
+
"node_modules/@esbuild/android-arm64": {
|
61 |
+
"version": "0.19.10",
|
62 |
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.10.tgz",
|
63 |
+
"integrity": "sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==",
|
64 |
+
"cpu": [
|
65 |
+
"arm64"
|
66 |
+
],
|
67 |
+
"optional": true,
|
68 |
+
"os": [
|
69 |
+
"android"
|
70 |
+
],
|
71 |
+
"engines": {
|
72 |
+
"node": ">=12"
|
73 |
+
}
|
74 |
+
},
|
75 |
+
"node_modules/@esbuild/android-x64": {
|
76 |
+
"version": "0.19.10",
|
77 |
+
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.10.tgz",
|
78 |
+
"integrity": "sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==",
|
79 |
+
"cpu": [
|
80 |
+
"x64"
|
81 |
+
],
|
82 |
+
"optional": true,
|
83 |
+
"os": [
|
84 |
+
"android"
|
85 |
+
],
|
86 |
+
"engines": {
|
87 |
+
"node": ">=12"
|
88 |
+
}
|
89 |
+
},
|
90 |
+
"node_modules/@esbuild/darwin-arm64": {
|
91 |
+
"version": "0.19.10",
|
92 |
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.10.tgz",
|
93 |
+
"integrity": "sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==",
|
94 |
+
"cpu": [
|
95 |
+
"arm64"
|
96 |
+
],
|
97 |
+
"optional": true,
|
98 |
+
"os": [
|
99 |
+
"darwin"
|
100 |
+
],
|
101 |
+
"engines": {
|
102 |
+
"node": ">=12"
|
103 |
+
}
|
104 |
+
},
|
105 |
+
"node_modules/@esbuild/darwin-x64": {
|
106 |
+
"version": "0.19.10",
|
107 |
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.10.tgz",
|
108 |
+
"integrity": "sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==",
|
109 |
+
"cpu": [
|
110 |
+
"x64"
|
111 |
+
],
|
112 |
+
"optional": true,
|
113 |
+
"os": [
|
114 |
+
"darwin"
|
115 |
+
],
|
116 |
+
"engines": {
|
117 |
+
"node": ">=12"
|
118 |
+
}
|
119 |
+
},
|
120 |
+
"node_modules/@esbuild/freebsd-arm64": {
|
121 |
+
"version": "0.19.10",
|
122 |
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.10.tgz",
|
123 |
+
"integrity": "sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==",
|
124 |
+
"cpu": [
|
125 |
+
"arm64"
|
126 |
+
],
|
127 |
+
"optional": true,
|
128 |
+
"os": [
|
129 |
+
"freebsd"
|
130 |
+
],
|
131 |
+
"engines": {
|
132 |
+
"node": ">=12"
|
133 |
+
}
|
134 |
+
},
|
135 |
+
"node_modules/@esbuild/freebsd-x64": {
|
136 |
+
"version": "0.19.10",
|
137 |
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.10.tgz",
|
138 |
+
"integrity": "sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==",
|
139 |
+
"cpu": [
|
140 |
+
"x64"
|
141 |
+
],
|
142 |
+
"optional": true,
|
143 |
+
"os": [
|
144 |
+
"freebsd"
|
145 |
+
],
|
146 |
+
"engines": {
|
147 |
+
"node": ">=12"
|
148 |
+
}
|
149 |
+
},
|
150 |
+
"node_modules/@esbuild/linux-arm": {
|
151 |
+
"version": "0.19.10",
|
152 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.10.tgz",
|
153 |
+
"integrity": "sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==",
|
154 |
+
"cpu": [
|
155 |
+
"arm"
|
156 |
+
],
|
157 |
+
"optional": true,
|
158 |
+
"os": [
|
159 |
+
"linux"
|
160 |
+
],
|
161 |
+
"engines": {
|
162 |
+
"node": ">=12"
|
163 |
+
}
|
164 |
+
},
|
165 |
+
"node_modules/@esbuild/linux-arm64": {
|
166 |
+
"version": "0.19.10",
|
167 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.10.tgz",
|
168 |
+
"integrity": "sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==",
|
169 |
+
"cpu": [
|
170 |
+
"arm64"
|
171 |
+
],
|
172 |
+
"optional": true,
|
173 |
+
"os": [
|
174 |
+
"linux"
|
175 |
+
],
|
176 |
+
"engines": {
|
177 |
+
"node": ">=12"
|
178 |
+
}
|
179 |
+
},
|
180 |
+
"node_modules/@esbuild/linux-ia32": {
|
181 |
+
"version": "0.19.10",
|
182 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.10.tgz",
|
183 |
+
"integrity": "sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==",
|
184 |
+
"cpu": [
|
185 |
+
"ia32"
|
186 |
+
],
|
187 |
+
"optional": true,
|
188 |
+
"os": [
|
189 |
+
"linux"
|
190 |
+
],
|
191 |
+
"engines": {
|
192 |
+
"node": ">=12"
|
193 |
+
}
|
194 |
+
},
|
195 |
+
"node_modules/@esbuild/linux-loong64": {
|
196 |
+
"version": "0.19.10",
|
197 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.10.tgz",
|
198 |
+
"integrity": "sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==",
|
199 |
+
"cpu": [
|
200 |
+
"loong64"
|
201 |
+
],
|
202 |
+
"optional": true,
|
203 |
+
"os": [
|
204 |
+
"linux"
|
205 |
+
],
|
206 |
+
"engines": {
|
207 |
+
"node": ">=12"
|
208 |
+
}
|
209 |
+
},
|
210 |
+
"node_modules/@esbuild/linux-mips64el": {
|
211 |
+
"version": "0.19.10",
|
212 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.10.tgz",
|
213 |
+
"integrity": "sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==",
|
214 |
+
"cpu": [
|
215 |
+
"mips64el"
|
216 |
+
],
|
217 |
+
"optional": true,
|
218 |
+
"os": [
|
219 |
+
"linux"
|
220 |
+
],
|
221 |
+
"engines": {
|
222 |
+
"node": ">=12"
|
223 |
+
}
|
224 |
+
},
|
225 |
+
"node_modules/@esbuild/linux-ppc64": {
|
226 |
+
"version": "0.19.10",
|
227 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.10.tgz",
|
228 |
+
"integrity": "sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==",
|
229 |
+
"cpu": [
|
230 |
+
"ppc64"
|
231 |
+
],
|
232 |
+
"optional": true,
|
233 |
+
"os": [
|
234 |
+
"linux"
|
235 |
+
],
|
236 |
+
"engines": {
|
237 |
+
"node": ">=12"
|
238 |
+
}
|
239 |
+
},
|
240 |
+
"node_modules/@esbuild/linux-riscv64": {
|
241 |
+
"version": "0.19.10",
|
242 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.10.tgz",
|
243 |
+
"integrity": "sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==",
|
244 |
+
"cpu": [
|
245 |
+
"riscv64"
|
246 |
+
],
|
247 |
+
"optional": true,
|
248 |
+
"os": [
|
249 |
+
"linux"
|
250 |
+
],
|
251 |
+
"engines": {
|
252 |
+
"node": ">=12"
|
253 |
+
}
|
254 |
+
},
|
255 |
+
"node_modules/@esbuild/linux-s390x": {
|
256 |
+
"version": "0.19.10",
|
257 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.10.tgz",
|
258 |
+
"integrity": "sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==",
|
259 |
+
"cpu": [
|
260 |
+
"s390x"
|
261 |
+
],
|
262 |
+
"optional": true,
|
263 |
+
"os": [
|
264 |
+
"linux"
|
265 |
+
],
|
266 |
+
"engines": {
|
267 |
+
"node": ">=12"
|
268 |
+
}
|
269 |
+
},
|
270 |
+
"node_modules/@esbuild/linux-x64": {
|
271 |
+
"version": "0.19.10",
|
272 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.10.tgz",
|
273 |
+
"integrity": "sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==",
|
274 |
+
"cpu": [
|
275 |
+
"x64"
|
276 |
+
],
|
277 |
+
"optional": true,
|
278 |
+
"os": [
|
279 |
+
"linux"
|
280 |
+
],
|
281 |
+
"engines": {
|
282 |
+
"node": ">=12"
|
283 |
+
}
|
284 |
+
},
|
285 |
+
"node_modules/@esbuild/netbsd-x64": {
|
286 |
+
"version": "0.19.10",
|
287 |
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.10.tgz",
|
288 |
+
"integrity": "sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==",
|
289 |
+
"cpu": [
|
290 |
+
"x64"
|
291 |
+
],
|
292 |
+
"optional": true,
|
293 |
+
"os": [
|
294 |
+
"netbsd"
|
295 |
+
],
|
296 |
+
"engines": {
|
297 |
+
"node": ">=12"
|
298 |
+
}
|
299 |
+
},
|
300 |
+
"node_modules/@esbuild/openbsd-x64": {
|
301 |
+
"version": "0.19.10",
|
302 |
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.10.tgz",
|
303 |
+
"integrity": "sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==",
|
304 |
+
"cpu": [
|
305 |
+
"x64"
|
306 |
+
],
|
307 |
+
"optional": true,
|
308 |
+
"os": [
|
309 |
+
"openbsd"
|
310 |
+
],
|
311 |
+
"engines": {
|
312 |
+
"node": ">=12"
|
313 |
+
}
|
314 |
+
},
|
315 |
+
"node_modules/@esbuild/sunos-x64": {
|
316 |
+
"version": "0.19.10",
|
317 |
+
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.10.tgz",
|
318 |
+
"integrity": "sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==",
|
319 |
+
"cpu": [
|
320 |
+
"x64"
|
321 |
+
],
|
322 |
+
"optional": true,
|
323 |
+
"os": [
|
324 |
+
"sunos"
|
325 |
+
],
|
326 |
+
"engines": {
|
327 |
+
"node": ">=12"
|
328 |
+
}
|
329 |
+
},
|
330 |
+
"node_modules/@esbuild/win32-arm64": {
|
331 |
+
"version": "0.19.10",
|
332 |
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.10.tgz",
|
333 |
+
"integrity": "sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==",
|
334 |
+
"cpu": [
|
335 |
+
"arm64"
|
336 |
+
],
|
337 |
+
"optional": true,
|
338 |
+
"os": [
|
339 |
+
"win32"
|
340 |
+
],
|
341 |
+
"engines": {
|
342 |
+
"node": ">=12"
|
343 |
+
}
|
344 |
+
},
|
345 |
+
"node_modules/@esbuild/win32-ia32": {
|
346 |
+
"version": "0.19.10",
|
347 |
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.10.tgz",
|
348 |
+
"integrity": "sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==",
|
349 |
+
"cpu": [
|
350 |
+
"ia32"
|
351 |
+
],
|
352 |
+
"optional": true,
|
353 |
+
"os": [
|
354 |
+
"win32"
|
355 |
+
],
|
356 |
+
"engines": {
|
357 |
+
"node": ">=12"
|
358 |
+
}
|
359 |
+
},
|
360 |
+
"node_modules/@esbuild/win32-x64": {
|
361 |
+
"version": "0.19.10",
|
362 |
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.10.tgz",
|
363 |
+
"integrity": "sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==",
|
364 |
+
"cpu": [
|
365 |
+
"x64"
|
366 |
+
],
|
367 |
+
"optional": true,
|
368 |
+
"os": [
|
369 |
+
"win32"
|
370 |
+
],
|
371 |
+
"engines": {
|
372 |
+
"node": ">=12"
|
373 |
+
}
|
374 |
+
},
|
375 |
+
"node_modules/@formatjs/ecma402-abstract": {
|
376 |
+
"version": "1.11.4",
|
377 |
+
"resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
|
378 |
+
"integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
|
379 |
+
"dependencies": {
|
380 |
+
"@formatjs/intl-localematcher": "0.2.25",
|
381 |
+
"tslib": "^2.1.0"
|
382 |
+
}
|
383 |
+
},
|
384 |
+
"node_modules/@formatjs/fast-memoize": {
|
385 |
+
"version": "1.2.1",
|
386 |
+
"resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
|
387 |
+
"integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
|
388 |
+
"dependencies": {
|
389 |
+
"tslib": "^2.1.0"
|
390 |
+
}
|
391 |
+
},
|
392 |
+
"node_modules/@formatjs/icu-messageformat-parser": {
|
393 |
+
"version": "2.1.0",
|
394 |
+
"resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
|
395 |
+
"integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
|
396 |
+
"dependencies": {
|
397 |
+
"@formatjs/ecma402-abstract": "1.11.4",
|
398 |
+
"@formatjs/icu-skeleton-parser": "1.3.6",
|
399 |
+
"tslib": "^2.1.0"
|
400 |
+
}
|
401 |
+
},
|
402 |
+
"node_modules/@formatjs/icu-skeleton-parser": {
|
403 |
+
"version": "1.3.6",
|
404 |
+
"resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
|
405 |
+
"integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
|
406 |
+
"dependencies": {
|
407 |
+
"@formatjs/ecma402-abstract": "1.11.4",
|
408 |
+
"tslib": "^2.1.0"
|
409 |
+
}
|
410 |
+
},
|
411 |
+
"node_modules/@formatjs/intl-localematcher": {
|
412 |
+
"version": "0.2.25",
|
413 |
+
"resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
|
414 |
+
"integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
|
415 |
+
"dependencies": {
|
416 |
+
"tslib": "^2.1.0"
|
417 |
+
}
|
418 |
+
},
|
419 |
+
"node_modules/@gradio/atoms": {
|
420 |
+
"version": "0.3.0",
|
421 |
+
"resolved": "https://registry.npmjs.org/@gradio/atoms/-/atoms-0.3.0.tgz",
|
422 |
+
"integrity": "sha512-7WQktAb+d8wEjTIYGzyQ8OdWsFSr0NA8adp8G/jAKoMZILJEoAAZSTnahCTSSQcbYIomVdfYA0ZmM342RCd8gg==",
|
423 |
+
"dependencies": {
|
424 |
+
"@gradio/icons": "^0.3.0",
|
425 |
+
"@gradio/utils": "^0.2.0"
|
426 |
+
}
|
427 |
+
},
|
428 |
+
"node_modules/@gradio/column": {
|
429 |
+
"version": "0.1.0",
|
430 |
+
"resolved": "https://registry.npmjs.org/@gradio/column/-/column-0.1.0.tgz",
|
431 |
+
"integrity": "sha512-P24nqqVnMXBaDA1f/zSN5HZRho4PxP8Dq+7VltPHlmxIEiZYik2AJ4J0LeuIha34FDO0guu/16evdrpvGIUAfw=="
|
432 |
+
},
|
433 |
+
"node_modules/@gradio/icons": {
|
434 |
+
"version": "0.3.2",
|
435 |
+
"resolved": "https://registry.npmjs.org/@gradio/icons/-/icons-0.3.2.tgz",
|
436 |
+
"integrity": "sha512-l0jGfSRFiZ/doAXz6L+JEp6MN/a1BTZm88kqVoSnYrKSytP6bnBLRWeF4UvOi2T2fbVrNKenAEt/lwxJE5vK4w=="
|
437 |
+
},
|
438 |
+
"node_modules/@gradio/statustracker": {
|
439 |
+
"version": "0.4.0",
|
440 |
+
"resolved": "https://registry.npmjs.org/@gradio/statustracker/-/statustracker-0.4.0.tgz",
|
441 |
+
"integrity": "sha512-Kgk4R2edFX4IK2UBit4UwmRfSrmvkYjKbiMfupj3qxHFwiDHT4YH4rAOqBlvdEWbCYMmLN6EyqqFaYb2+0GwXA==",
|
442 |
+
"dependencies": {
|
443 |
+
"@gradio/atoms": "^0.3.0",
|
444 |
+
"@gradio/column": "^0.1.0",
|
445 |
+
"@gradio/icons": "^0.3.0",
|
446 |
+
"@gradio/utils": "^0.2.0"
|
447 |
+
}
|
448 |
+
},
|
449 |
+
"node_modules/@gradio/theme": {
|
450 |
+
"version": "0.2.0",
|
451 |
+
"resolved": "https://registry.npmjs.org/@gradio/theme/-/theme-0.2.0.tgz",
|
452 |
+
"integrity": "sha512-33c68Nk7oRXLn08OxPfjcPm7S4tXGOUV1I1bVgzdM2YV5o1QBOS1GEnXPZPu/CEYPePLMB6bsDwffrLEyLGWVQ=="
|
453 |
+
},
|
454 |
+
"node_modules/@gradio/utils": {
|
455 |
+
"version": "0.2.0",
|
456 |
+
"resolved": "https://registry.npmjs.org/@gradio/utils/-/utils-0.2.0.tgz",
|
457 |
+
"integrity": "sha512-YkwzXufi6IxQrlMW+1sFo8Yn6F9NLL69ZoBsbo7QEhms0v5L7pmOTw+dfd7M3dwbRP2lgjrb52i1kAIN3n6aqQ==",
|
458 |
+
"dependencies": {
|
459 |
+
"@gradio/theme": "^0.2.0",
|
460 |
+
"svelte-i18n": "^3.6.0"
|
461 |
+
}
|
462 |
+
},
|
463 |
+
"node_modules/@jridgewell/gen-mapping": {
|
464 |
+
"version": "0.3.3",
|
465 |
+
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
|
466 |
+
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
|
467 |
+
"peer": true,
|
468 |
+
"dependencies": {
|
469 |
+
"@jridgewell/set-array": "^1.0.1",
|
470 |
+
"@jridgewell/sourcemap-codec": "^1.4.10",
|
471 |
+
"@jridgewell/trace-mapping": "^0.3.9"
|
472 |
+
},
|
473 |
+
"engines": {
|
474 |
+
"node": ">=6.0.0"
|
475 |
+
}
|
476 |
+
},
|
477 |
+
"node_modules/@jridgewell/resolve-uri": {
|
478 |
+
"version": "3.1.1",
|
479 |
+
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
|
480 |
+
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
|
481 |
+
"peer": true,
|
482 |
+
"engines": {
|
483 |
+
"node": ">=6.0.0"
|
484 |
+
}
|
485 |
+
},
|
486 |
+
"node_modules/@jridgewell/set-array": {
|
487 |
+
"version": "1.1.2",
|
488 |
+
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
|
489 |
+
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
|
490 |
+
"peer": true,
|
491 |
+
"engines": {
|
492 |
+
"node": ">=6.0.0"
|
493 |
+
}
|
494 |
+
},
|
495 |
+
"node_modules/@jridgewell/sourcemap-codec": {
|
496 |
+
"version": "1.4.15",
|
497 |
+
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
|
498 |
+
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
|
499 |
+
"peer": true
|
500 |
+
},
|
501 |
+
"node_modules/@jridgewell/trace-mapping": {
|
502 |
+
"version": "0.3.20",
|
503 |
+
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
|
504 |
+
"integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
|
505 |
+
"peer": true,
|
506 |
+
"dependencies": {
|
507 |
+
"@jridgewell/resolve-uri": "^3.1.0",
|
508 |
+
"@jridgewell/sourcemap-codec": "^1.4.14"
|
509 |
+
}
|
510 |
+
},
|
511 |
+
"node_modules/@types/estree": {
|
512 |
+
"version": "1.0.5",
|
513 |
+
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
|
514 |
+
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
|
515 |
+
"peer": true
|
516 |
+
},
|
517 |
+
"node_modules/acorn": {
|
518 |
+
"version": "8.11.2",
|
519 |
+
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
|
520 |
+
"integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
|
521 |
+
"peer": true,
|
522 |
+
"bin": {
|
523 |
+
"acorn": "bin/acorn"
|
524 |
+
},
|
525 |
+
"engines": {
|
526 |
+
"node": ">=0.4.0"
|
527 |
+
}
|
528 |
+
},
|
529 |
+
"node_modules/aria-query": {
|
530 |
+
"version": "5.3.0",
|
531 |
+
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
|
532 |
+
"integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
|
533 |
+
"peer": true,
|
534 |
+
"dependencies": {
|
535 |
+
"dequal": "^2.0.3"
|
536 |
+
}
|
537 |
+
},
|
538 |
+
"node_modules/axobject-query": {
|
539 |
+
"version": "3.2.1",
|
540 |
+
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
|
541 |
+
"integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
|
542 |
+
"peer": true,
|
543 |
+
"dependencies": {
|
544 |
+
"dequal": "^2.0.3"
|
545 |
+
}
|
546 |
+
},
|
547 |
+
"node_modules/cli-color": {
|
548 |
+
"version": "2.0.3",
|
549 |
+
"resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.3.tgz",
|
550 |
+
"integrity": "sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==",
|
551 |
+
"dependencies": {
|
552 |
+
"d": "^1.0.1",
|
553 |
+
"es5-ext": "^0.10.61",
|
554 |
+
"es6-iterator": "^2.0.3",
|
555 |
+
"memoizee": "^0.4.15",
|
556 |
+
"timers-ext": "^0.1.7"
|
557 |
+
},
|
558 |
+
"engines": {
|
559 |
+
"node": ">=0.10"
|
560 |
+
}
|
561 |
+
},
|
562 |
+
"node_modules/code-red": {
|
563 |
+
"version": "1.0.4",
|
564 |
+
"resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
|
565 |
+
"integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==",
|
566 |
+
"peer": true,
|
567 |
+
"dependencies": {
|
568 |
+
"@jridgewell/sourcemap-codec": "^1.4.15",
|
569 |
+
"@types/estree": "^1.0.1",
|
570 |
+
"acorn": "^8.10.0",
|
571 |
+
"estree-walker": "^3.0.3",
|
572 |
+
"periscopic": "^3.1.0"
|
573 |
+
}
|
574 |
+
},
|
575 |
+
"node_modules/css-tree": {
|
576 |
+
"version": "2.3.1",
|
577 |
+
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
|
578 |
+
"integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
|
579 |
+
"peer": true,
|
580 |
+
"dependencies": {
|
581 |
+
"mdn-data": "2.0.30",
|
582 |
+
"source-map-js": "^1.0.1"
|
583 |
+
},
|
584 |
+
"engines": {
|
585 |
+
"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
|
586 |
+
}
|
587 |
+
},
|
588 |
+
"node_modules/d": {
|
589 |
+
"version": "1.0.1",
|
590 |
+
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
|
591 |
+
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
|
592 |
+
"dependencies": {
|
593 |
+
"es5-ext": "^0.10.50",
|
594 |
+
"type": "^1.0.1"
|
595 |
+
}
|
596 |
+
},
|
597 |
+
"node_modules/deepmerge": {
|
598 |
+
"version": "4.3.1",
|
599 |
+
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
|
600 |
+
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
|
601 |
+
"engines": {
|
602 |
+
"node": ">=0.10.0"
|
603 |
+
}
|
604 |
+
},
|
605 |
+
"node_modules/dequal": {
|
606 |
+
"version": "2.0.3",
|
607 |
+
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
|
608 |
+
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
|
609 |
+
"peer": true,
|
610 |
+
"engines": {
|
611 |
+
"node": ">=6"
|
612 |
+
}
|
613 |
+
},
|
614 |
+
"node_modules/es5-ext": {
|
615 |
+
"version": "0.10.62",
|
616 |
+
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz",
|
617 |
+
"integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
|
618 |
+
"hasInstallScript": true,
|
619 |
+
"dependencies": {
|
620 |
+
"es6-iterator": "^2.0.3",
|
621 |
+
"es6-symbol": "^3.1.3",
|
622 |
+
"next-tick": "^1.1.0"
|
623 |
+
},
|
624 |
+
"engines": {
|
625 |
+
"node": ">=0.10"
|
626 |
+
}
|
627 |
+
},
|
628 |
+
"node_modules/es6-iterator": {
|
629 |
+
"version": "2.0.3",
|
630 |
+
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
|
631 |
+
"integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
|
632 |
+
"dependencies": {
|
633 |
+
"d": "1",
|
634 |
+
"es5-ext": "^0.10.35",
|
635 |
+
"es6-symbol": "^3.1.1"
|
636 |
+
}
|
637 |
+
},
|
638 |
+
"node_modules/es6-symbol": {
|
639 |
+
"version": "3.1.3",
|
640 |
+
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
|
641 |
+
"integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
|
642 |
+
"dependencies": {
|
643 |
+
"d": "^1.0.1",
|
644 |
+
"ext": "^1.1.2"
|
645 |
+
}
|
646 |
+
},
|
647 |
+
"node_modules/es6-weak-map": {
|
648 |
+
"version": "2.0.3",
|
649 |
+
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
|
650 |
+
"integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
|
651 |
+
"dependencies": {
|
652 |
+
"d": "1",
|
653 |
+
"es5-ext": "^0.10.46",
|
654 |
+
"es6-iterator": "^2.0.3",
|
655 |
+
"es6-symbol": "^3.1.1"
|
656 |
+
}
|
657 |
+
},
|
658 |
+
"node_modules/esbuild": {
|
659 |
+
"version": "0.19.10",
|
660 |
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.10.tgz",
|
661 |
+
"integrity": "sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==",
|
662 |
+
"hasInstallScript": true,
|
663 |
+
"bin": {
|
664 |
+
"esbuild": "bin/esbuild"
|
665 |
+
},
|
666 |
+
"engines": {
|
667 |
+
"node": ">=12"
|
668 |
+
},
|
669 |
+
"optionalDependencies": {
|
670 |
+
"@esbuild/aix-ppc64": "0.19.10",
|
671 |
+
"@esbuild/android-arm": "0.19.10",
|
672 |
+
"@esbuild/android-arm64": "0.19.10",
|
673 |
+
"@esbuild/android-x64": "0.19.10",
|
674 |
+
"@esbuild/darwin-arm64": "0.19.10",
|
675 |
+
"@esbuild/darwin-x64": "0.19.10",
|
676 |
+
"@esbuild/freebsd-arm64": "0.19.10",
|
677 |
+
"@esbuild/freebsd-x64": "0.19.10",
|
678 |
+
"@esbuild/linux-arm": "0.19.10",
|
679 |
+
"@esbuild/linux-arm64": "0.19.10",
|
680 |
+
"@esbuild/linux-ia32": "0.19.10",
|
681 |
+
"@esbuild/linux-loong64": "0.19.10",
|
682 |
+
"@esbuild/linux-mips64el": "0.19.10",
|
683 |
+
"@esbuild/linux-ppc64": "0.19.10",
|
684 |
+
"@esbuild/linux-riscv64": "0.19.10",
|
685 |
+
"@esbuild/linux-s390x": "0.19.10",
|
686 |
+
"@esbuild/linux-x64": "0.19.10",
|
687 |
+
"@esbuild/netbsd-x64": "0.19.10",
|
688 |
+
"@esbuild/openbsd-x64": "0.19.10",
|
689 |
+
"@esbuild/sunos-x64": "0.19.10",
|
690 |
+
"@esbuild/win32-arm64": "0.19.10",
|
691 |
+
"@esbuild/win32-ia32": "0.19.10",
|
692 |
+
"@esbuild/win32-x64": "0.19.10"
|
693 |
+
}
|
694 |
+
},
|
695 |
+
"node_modules/estree-walker": {
|
696 |
+
"version": "3.0.3",
|
697 |
+
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
|
698 |
+
"integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
|
699 |
+
"peer": true,
|
700 |
+
"dependencies": {
|
701 |
+
"@types/estree": "^1.0.0"
|
702 |
+
}
|
703 |
+
},
|
704 |
+
"node_modules/event-emitter": {
|
705 |
+
"version": "0.3.5",
|
706 |
+
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
707 |
+
"integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
|
708 |
+
"dependencies": {
|
709 |
+
"d": "1",
|
710 |
+
"es5-ext": "~0.10.14"
|
711 |
+
}
|
712 |
+
},
|
713 |
+
"node_modules/ext": {
|
714 |
+
"version": "1.7.0",
|
715 |
+
"resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
|
716 |
+
"integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
|
717 |
+
"dependencies": {
|
718 |
+
"type": "^2.7.2"
|
719 |
+
}
|
720 |
+
},
|
721 |
+
"node_modules/ext/node_modules/type": {
|
722 |
+
"version": "2.7.2",
|
723 |
+
"resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz",
|
724 |
+
"integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw=="
|
725 |
+
},
|
726 |
+
"node_modules/globalyzer": {
|
727 |
+
"version": "0.1.0",
|
728 |
+
"resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
|
729 |
+
"integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q=="
|
730 |
+
},
|
731 |
+
"node_modules/globrex": {
|
732 |
+
"version": "0.1.2",
|
733 |
+
"resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
|
734 |
+
"integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
|
735 |
+
},
|
736 |
+
"node_modules/intl-messageformat": {
|
737 |
+
"version": "9.13.0",
|
738 |
+
"resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz",
|
739 |
+
"integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==",
|
740 |
+
"dependencies": {
|
741 |
+
"@formatjs/ecma402-abstract": "1.11.4",
|
742 |
+
"@formatjs/fast-memoize": "1.2.1",
|
743 |
+
"@formatjs/icu-messageformat-parser": "2.1.0",
|
744 |
+
"tslib": "^2.1.0"
|
745 |
+
}
|
746 |
+
},
|
747 |
+
"node_modules/is-promise": {
|
748 |
+
"version": "2.2.2",
|
749 |
+
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
|
750 |
+
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
|
751 |
+
},
|
752 |
+
"node_modules/is-reference": {
|
753 |
+
"version": "3.0.2",
|
754 |
+
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
|
755 |
+
"integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
|
756 |
+
"peer": true,
|
757 |
+
"dependencies": {
|
758 |
+
"@types/estree": "*"
|
759 |
+
}
|
760 |
+
},
|
761 |
+
"node_modules/locate-character": {
|
762 |
+
"version": "3.0.0",
|
763 |
+
"resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
|
764 |
+
"integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
|
765 |
+
"peer": true
|
766 |
+
},
|
767 |
+
"node_modules/lru-queue": {
|
768 |
+
"version": "0.1.0",
|
769 |
+
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
770 |
+
"integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==",
|
771 |
+
"dependencies": {
|
772 |
+
"es5-ext": "~0.10.2"
|
773 |
+
}
|
774 |
+
},
|
775 |
+
"node_modules/magic-string": {
|
776 |
+
"version": "0.30.5",
|
777 |
+
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
|
778 |
+
"integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
|
779 |
+
"peer": true,
|
780 |
+
"dependencies": {
|
781 |
+
"@jridgewell/sourcemap-codec": "^1.4.15"
|
782 |
+
},
|
783 |
+
"engines": {
|
784 |
+
"node": ">=12"
|
785 |
+
}
|
786 |
+
},
|
787 |
+
"node_modules/mdn-data": {
|
788 |
+
"version": "2.0.30",
|
789 |
+
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
|
790 |
+
"integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
|
791 |
+
"peer": true
|
792 |
+
},
|
793 |
+
"node_modules/memoizee": {
|
794 |
+
"version": "0.4.15",
|
795 |
+
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
|
796 |
+
"integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==",
|
797 |
+
"dependencies": {
|
798 |
+
"d": "^1.0.1",
|
799 |
+
"es5-ext": "^0.10.53",
|
800 |
+
"es6-weak-map": "^2.0.3",
|
801 |
+
"event-emitter": "^0.3.5",
|
802 |
+
"is-promise": "^2.2.2",
|
803 |
+
"lru-queue": "^0.1.0",
|
804 |
+
"next-tick": "^1.1.0",
|
805 |
+
"timers-ext": "^0.1.7"
|
806 |
+
}
|
807 |
+
},
|
808 |
+
"node_modules/mri": {
|
809 |
+
"version": "1.2.0",
|
810 |
+
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
|
811 |
+
"integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
|
812 |
+
"engines": {
|
813 |
+
"node": ">=4"
|
814 |
+
}
|
815 |
+
},
|
816 |
+
"node_modules/next-tick": {
|
817 |
+
"version": "1.1.0",
|
818 |
+
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
|
819 |
+
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
|
820 |
+
},
|
821 |
+
"node_modules/periscopic": {
|
822 |
+
"version": "3.1.0",
|
823 |
+
"resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
|
824 |
+
"integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
|
825 |
+
"peer": true,
|
826 |
+
"dependencies": {
|
827 |
+
"@types/estree": "^1.0.0",
|
828 |
+
"estree-walker": "^3.0.0",
|
829 |
+
"is-reference": "^3.0.0"
|
830 |
+
}
|
831 |
+
},
|
832 |
+
"node_modules/sade": {
|
833 |
+
"version": "1.8.1",
|
834 |
+
"resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
|
835 |
+
"integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
|
836 |
+
"dependencies": {
|
837 |
+
"mri": "^1.1.0"
|
838 |
+
},
|
839 |
+
"engines": {
|
840 |
+
"node": ">=6"
|
841 |
+
}
|
842 |
+
},
|
843 |
+
"node_modules/source-map-js": {
|
844 |
+
"version": "1.0.2",
|
845 |
+
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
846 |
+
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
847 |
+
"peer": true,
|
848 |
+
"engines": {
|
849 |
+
"node": ">=0.10.0"
|
850 |
+
}
|
851 |
+
},
|
852 |
+
"node_modules/svelte": {
|
853 |
+
"version": "4.2.8",
|
854 |
+
"resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.8.tgz",
|
855 |
+
"integrity": "sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==",
|
856 |
+
"peer": true,
|
857 |
+
"dependencies": {
|
858 |
+
"@ampproject/remapping": "^2.2.1",
|
859 |
+
"@jridgewell/sourcemap-codec": "^1.4.15",
|
860 |
+
"@jridgewell/trace-mapping": "^0.3.18",
|
861 |
+
"acorn": "^8.9.0",
|
862 |
+
"aria-query": "^5.3.0",
|
863 |
+
"axobject-query": "^3.2.1",
|
864 |
+
"code-red": "^1.0.3",
|
865 |
+
"css-tree": "^2.3.1",
|
866 |
+
"estree-walker": "^3.0.3",
|
867 |
+
"is-reference": "^3.0.1",
|
868 |
+
"locate-character": "^3.0.0",
|
869 |
+
"magic-string": "^0.30.4",
|
870 |
+
"periscopic": "^3.1.0"
|
871 |
+
},
|
872 |
+
"engines": {
|
873 |
+
"node": ">=16"
|
874 |
+
}
|
875 |
+
},
|
876 |
+
"node_modules/svelte-i18n": {
|
877 |
+
"version": "3.7.4",
|
878 |
+
"resolved": "https://registry.npmjs.org/svelte-i18n/-/svelte-i18n-3.7.4.tgz",
|
879 |
+
"integrity": "sha512-yGRCNo+eBT4cPuU7IVsYTYjxB7I2V8qgUZPlHnNctJj5IgbJgV78flsRzpjZ/8iUYZrS49oCt7uxlU3AZv/N5Q==",
|
880 |
+
"dependencies": {
|
881 |
+
"cli-color": "^2.0.3",
|
882 |
+
"deepmerge": "^4.2.2",
|
883 |
+
"esbuild": "^0.19.2",
|
884 |
+
"estree-walker": "^2",
|
885 |
+
"intl-messageformat": "^9.13.0",
|
886 |
+
"sade": "^1.8.1",
|
887 |
+
"tiny-glob": "^0.2.9"
|
888 |
+
},
|
889 |
+
"bin": {
|
890 |
+
"svelte-i18n": "dist/cli.js"
|
891 |
+
},
|
892 |
+
"engines": {
|
893 |
+
"node": ">= 16"
|
894 |
+
},
|
895 |
+
"peerDependencies": {
|
896 |
+
"svelte": "^3 || ^4"
|
897 |
+
}
|
898 |
+
},
|
899 |
+
"node_modules/svelte-i18n/node_modules/estree-walker": {
|
900 |
+
"version": "2.0.2",
|
901 |
+
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
902 |
+
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
|
903 |
+
},
|
904 |
+
"node_modules/timers-ext": {
|
905 |
+
"version": "0.1.7",
|
906 |
+
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
|
907 |
+
"integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
|
908 |
+
"dependencies": {
|
909 |
+
"es5-ext": "~0.10.46",
|
910 |
+
"next-tick": "1"
|
911 |
+
}
|
912 |
+
},
|
913 |
+
"node_modules/tiny-glob": {
|
914 |
+
"version": "0.2.9",
|
915 |
+
"resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
|
916 |
+
"integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
|
917 |
+
"dependencies": {
|
918 |
+
"globalyzer": "0.1.0",
|
919 |
+
"globrex": "^0.1.2"
|
920 |
+
}
|
921 |
+
},
|
922 |
+
"node_modules/tslib": {
|
923 |
+
"version": "2.6.2",
|
924 |
+
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
|
925 |
+
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
|
926 |
+
},
|
927 |
+
"node_modules/type": {
|
928 |
+
"version": "1.2.0",
|
929 |
+
"resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
|
930 |
+
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
|
931 |
+
}
|
932 |
+
}
|
933 |
+
}
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "gradio_iframe",
|
3 |
+
"version": "0.1.3",
|
4 |
+
"description": "Gradio UI packages",
|
5 |
+
"type": "module",
|
6 |
+
"author": "",
|
7 |
+
"license": "ISC",
|
8 |
+
"private": false,
|
9 |
+
"main_changeset": true,
|
10 |
+
"dependencies": {
|
11 |
+
"@gradio/atoms": "0.3.0",
|
12 |
+
"@gradio/statustracker": "0.4.0",
|
13 |
+
"@gradio/utils": "0.2.0"
|
14 |
+
},
|
15 |
+
"exports": {
|
16 |
+
".": "./Index.svelte",
|
17 |
+
"./example": "./Example.svelte",
|
18 |
+
"./package.json": "./package.json"
|
19 |
+
}
|
20 |
+
}
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script lang="ts">
|
2 |
+
import { createEventDispatcher } from "svelte";
|
3 |
+
export let elem_classes: string[] = [];
|
4 |
+
export let value: string;
|
5 |
+
export let visible = true;
|
6 |
+
export let min_height = false;
|
7 |
+
|
8 |
+
const dispatch = createEventDispatcher<{ change: undefined }>();
|
9 |
+
|
10 |
+
$: value, dispatch("change");
|
11 |
+
</script>
|
12 |
+
|
13 |
+
<div
|
14 |
+
class="prose {elem_classes.join(' ')}"
|
15 |
+
class:min={min_height}
|
16 |
+
class:hide={!visible}
|
17 |
+
>
|
18 |
+
{@html value}
|
19 |
+
</div>
|
20 |
+
|
21 |
+
<style>
|
22 |
+
.min {
|
23 |
+
min-height: var(--size-24);
|
24 |
+
}
|
25 |
+
.hide {
|
26 |
+
display: none;
|
27 |
+
}
|
28 |
+
</style>
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[build-system]
|
2 |
+
requires = [
|
3 |
+
"hatchling",
|
4 |
+
"hatch-requirements-txt",
|
5 |
+
"hatch-fancy-pypi-readme>=22.5.0",
|
6 |
+
]
|
7 |
+
build-backend = "hatchling.build"
|
8 |
+
|
9 |
+
[project]
|
10 |
+
name = "gradio_iframe"
|
11 |
+
version = "0.0.1"
|
12 |
+
description = "iFrame components that wraps html and js code to make them interactive."
|
13 |
+
readme = "README.md"
|
14 |
+
license = "MIT"
|
15 |
+
requires-python = ">=3.8"
|
16 |
+
authors = [{ name = "YOUR NAME", email = "[email protected]" }]
|
17 |
+
keywords = ["gradio-custom-component", "gradio-template-HTML", "HTML", "iFrame"]
|
18 |
+
# Add dependencies here
|
19 |
+
dependencies = ["gradio>=4.0,<5.0"]
|
20 |
+
classifiers = [
|
21 |
+
'Development Status :: 3 - Alpha',
|
22 |
+
'License :: OSI Approved :: Apache Software License',
|
23 |
+
'Operating System :: OS Independent',
|
24 |
+
'Programming Language :: Python :: 3',
|
25 |
+
'Programming Language :: Python :: 3 :: Only',
|
26 |
+
'Programming Language :: Python :: 3.8',
|
27 |
+
'Programming Language :: Python :: 3.9',
|
28 |
+
'Programming Language :: Python :: 3.10',
|
29 |
+
'Programming Language :: Python :: 3.11',
|
30 |
+
'Topic :: Scientific/Engineering',
|
31 |
+
'Topic :: Scientific/Engineering :: Artificial Intelligence',
|
32 |
+
'Topic :: Scientific/Engineering :: Visualization',
|
33 |
+
]
|
34 |
+
|
35 |
+
[project.optional-dependencies]
|
36 |
+
dev = ["build", "twine"]
|
37 |
+
|
38 |
+
[tool.hatch.build]
|
39 |
+
artifacts = ["/backend/gradio_iframe/templates", "*.pyi", "backend/gradio_iframe/templates"]
|
40 |
+
|
41 |
+
[tool.hatch.build.targets.wheel]
|
42 |
+
packages = ["/backend/gradio_iframe"]
|
@@ -1,7 +1,8 @@
|
|
1 |
#!/bin/bash
|
|
|
2 |
|
3 |
# installing all the dependencies
|
4 |
pip install --no-cache-dir --upgrade -r requirements.txt
|
5 |
|
6 |
# running the fastapi app
|
7 |
-
uvicorn main:app --host 0.0.0.0 --port 8080
|
|
|
1 |
#!/bin/bash
|
2 |
+
# entrypoint script for the docker container to run at start
|
3 |
|
4 |
# installing all the dependencies
|
5 |
pip install --no-cache-dir --upgrade -r requirements.txt
|
6 |
|
7 |
# running the fastapi app
|
8 |
+
uvicorn main:app --host 0.0.0.0 --port 8080
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
# empty init file for the package
|
2 |
+
# for fastapi to recognize the module
|
@@ -0,0 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# interpret module that implements the interpretability method
|
2 |
+
# external imports
|
3 |
+
import seaborn as sns
|
4 |
+
import matplotlib.pyplot as plt
|
5 |
+
import numpy as np
|
6 |
+
from shap import models, maskers, plots, PartitionExplainer
|
7 |
+
import torch
|
8 |
+
|
9 |
+
# internal imports
|
10 |
+
from utils import formatting as fmt
|
11 |
+
|
12 |
+
# global variables
|
13 |
+
TEACHER_FORCING = None
|
14 |
+
TEXT_MASKER = None
|
15 |
+
|
16 |
+
|
17 |
+
# main explain function that returns a chat with explanations
|
18 |
+
def chat_explained(model, prompt):
|
19 |
+
model.set_config()
|
20 |
+
|
21 |
+
# create the shap explainer
|
22 |
+
shap_explainer = PartitionExplainer(model.MODEL, model.TOKENIZER)
|
23 |
+
# get the shap values for the prompt
|
24 |
+
shap_values = shap_explainer([prompt])
|
25 |
+
|
26 |
+
# create the explanation graphic and plot
|
27 |
+
graphic = create_graphic(shap_values)
|
28 |
+
plot = create_plot(shap_values)
|
29 |
+
|
30 |
+
# create the response text
|
31 |
+
response_text = fmt.format_output_text(shap_values.output_names)
|
32 |
+
return response_text, graphic, plot
|
33 |
+
|
34 |
+
|
35 |
+
def wrap_shap(model):
|
36 |
+
global TEXT_MASKER, TEACHER_FORCING
|
37 |
+
|
38 |
+
# set the device to cuda if gpu is available
|
39 |
+
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
40 |
+
|
41 |
+
# updating the model settings again
|
42 |
+
model.set_config()
|
43 |
+
|
44 |
+
# (re)initialize the shap models and masker
|
45 |
+
text_generation = models.TextGeneration(model.MODEL, model.TOKENIZER)
|
46 |
+
TEACHER_FORCING = models.TeacherForcing(
|
47 |
+
text_generation,
|
48 |
+
model.TOKENIZER,
|
49 |
+
device=str(device),
|
50 |
+
similarity_model=model.MODEL,
|
51 |
+
similarity_tokenizer=model.TOKENIZER,
|
52 |
+
)
|
53 |
+
TEXT_MASKER = maskers.Text(model.TOKENIZER, " ", collapse_mask_token=True)
|
54 |
+
|
55 |
+
|
56 |
+
# graphic plotting function that creates a html graphic (as string) for the explanation
|
57 |
+
def create_graphic(shap_values):
|
58 |
+
# create the html graphic using shap text plot function
|
59 |
+
graphic_html = plots.text(shap_values, display=False)
|
60 |
+
|
61 |
+
# return the html graphic as string
|
62 |
+
return str(graphic_html)
|
63 |
+
|
64 |
+
|
65 |
+
# plotting function that creates a heatmap style explanation plot
|
66 |
+
def create_plot(shap_values):
|
67 |
+
values = shap_values.values[0]
|
68 |
+
output_names = shap_values.output_names
|
69 |
+
input_names = shap_values.data[0]
|
70 |
+
|
71 |
+
# Transpose the values for horizontal input names
|
72 |
+
transposed_values = np.transpose(values)
|
73 |
+
|
74 |
+
# Set seaborn style to dark
|
75 |
+
sns.set(style="dark")
|
76 |
+
|
77 |
+
fig, ax = plt.subplots()
|
78 |
+
|
79 |
+
# Making background transparent
|
80 |
+
ax.set_alpha(0)
|
81 |
+
fig.patch.set_alpha(0)
|
82 |
+
|
83 |
+
# Setting figure size
|
84 |
+
fig.set_size_inches(
|
85 |
+
max(transposed_values.shape[1] * 2, 10),
|
86 |
+
max(transposed_values.shape[0] / 1.5, 5),
|
87 |
+
)
|
88 |
+
|
89 |
+
# Plotting the heatmap with Seaborn's color palette
|
90 |
+
im = ax.imshow(
|
91 |
+
transposed_values,
|
92 |
+
vmax=transposed_values.max(),
|
93 |
+
vmin=-transposed_values.min(),
|
94 |
+
cmap=sns.color_palette("vlag_r", as_cmap=True),
|
95 |
+
aspect="auto",
|
96 |
+
)
|
97 |
+
|
98 |
+
# Creating colorbar
|
99 |
+
cbar = ax.figure.colorbar(im, ax=ax)
|
100 |
+
cbar.ax.set_ylabel("Token Attribution", rotation=-90, va="bottom")
|
101 |
+
cbar.ax.yaxis.set_tick_params(color="white")
|
102 |
+
plt.setp(plt.getp(cbar.ax.axes, "yticklabels"), color="white")
|
103 |
+
|
104 |
+
# Setting ticks and labels with white color for visibility
|
105 |
+
ax.set_xticks(np.arange(len(input_names)), labels=input_names)
|
106 |
+
ax.set_yticks(np.arange(len(output_names)), labels=output_names)
|
107 |
+
plt.setp(ax.get_xticklabels(), color="white", rotation=45, ha="right")
|
108 |
+
plt.setp(ax.get_yticklabels(), color="white")
|
109 |
+
|
110 |
+
# Adjusting tick labels
|
111 |
+
ax.tick_params(
|
112 |
+
top=True, bottom=False, labeltop=False, labelbottom=True, color="white"
|
113 |
+
)
|
114 |
+
|
115 |
+
# Adding text annotations - not used for readability
|
116 |
+
# for i in range(transposed_values.shape[0]):
|
117 |
+
# for j in range(transposed_values.shape[1]):
|
118 |
+
# val = transposed_values[i, j]
|
119 |
+
# color = "black" if 0.2 < im.norm(val) < 0.8 else "white"
|
120 |
+
# ax.text(j, i, f"{val:.4f}", ha="center", va="center", color=color)
|
121 |
+
|
122 |
+
return plt
|
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# visualization module that creates an attention visualization using BERTViz
|
2 |
+
|
3 |
+
# external imports
|
4 |
+
from bertviz import head_view
|
5 |
+
import matplotlib.pyplot as plt
|
6 |
+
import seaborn as sns
|
7 |
+
import numpy as np
|
8 |
+
|
9 |
+
# internal imports
|
10 |
+
from utils import formatting as fmt
|
11 |
+
|
12 |
+
|
13 |
+
# plotting function that plots the attention values in a heatmap
|
14 |
+
def chat_explained(model, prompt):
|
15 |
+
|
16 |
+
model.set_config()
|
17 |
+
|
18 |
+
# get encoded input and output vectors
|
19 |
+
encoder_input_ids = model.TOKENIZER(
|
20 |
+
prompt, return_tensors="pt", add_special_tokens=True
|
21 |
+
).input_ids
|
22 |
+
decoder_input_ids = model.MODEL.generate(encoder_input_ids, output_attentions=True)
|
23 |
+
encoder_text = fmt.format_tokens(
|
24 |
+
model.TOKENIZER.convert_ids_to_tokens(encoder_input_ids[0])
|
25 |
+
)
|
26 |
+
decoder_text = fmt.format_tokens(
|
27 |
+
model.TOKENIZER.convert_ids_to_tokens(decoder_input_ids[0])
|
28 |
+
)
|
29 |
+
|
30 |
+
# get attention values for the input and output vectors
|
31 |
+
attention_output = model.MODEL(
|
32 |
+
input_ids=encoder_input_ids,
|
33 |
+
decoder_input_ids=decoder_input_ids,
|
34 |
+
output_attentions=True,
|
35 |
+
)
|
36 |
+
|
37 |
+
# create the response text, graphic and plot
|
38 |
+
response_text = fmt.format_output_text(decoder_text)
|
39 |
+
graphic = create_graphic(attention_output, (encoder_text, decoder_text))
|
40 |
+
plot = create_plot(attention_output, (encoder_text, decoder_text))
|
41 |
+
return response_text, graphic, plot
|
42 |
+
|
43 |
+
|
44 |
+
# creating a html graphic using BERTViz
|
45 |
+
def create_graphic(attention_output, enc_dec_texts: tuple):
|
46 |
+
|
47 |
+
# calls the head_view function of BERTViz to return html graphic
|
48 |
+
hview = head_view(
|
49 |
+
encoder_attention=attention_output.encoder_attentions,
|
50 |
+
decoder_attention=attention_output.decoder_attentions,
|
51 |
+
cross_attention=attention_output.cross_attentions,
|
52 |
+
encoder_tokens=enc_dec_texts[0],
|
53 |
+
decoder_tokens=enc_dec_texts[1],
|
54 |
+
html_action="return",
|
55 |
+
)
|
56 |
+
|
57 |
+
return str(hview.data)
|
58 |
+
|
59 |
+
|
60 |
+
# creating an attention heatmap plot using seaborn
|
61 |
+
def create_plot(attention_output, enc_dec_texts: tuple):
|
62 |
+
# get the averaged attention weights
|
63 |
+
attention = attention_output.cross_attentions[0][0].detach().numpy()
|
64 |
+
averaged_attention_weights = np.mean(attention, axis=0)
|
65 |
+
|
66 |
+
# get the encoder and decoder tokens
|
67 |
+
encoder_tokens = enc_dec_texts[0]
|
68 |
+
decoder_tokens = enc_dec_texts[1]
|
69 |
+
|
70 |
+
# set seaborn style to dark and initialize figure and axis
|
71 |
+
sns.set(style="dark")
|
72 |
+
fig, ax = plt.subplots()
|
73 |
+
|
74 |
+
# Making background transparent
|
75 |
+
ax.set_alpha(0)
|
76 |
+
fig.patch.set_alpha(0)
|
77 |
+
|
78 |
+
# Setting figure size
|
79 |
+
fig.set_size_inches(
|
80 |
+
max(averaged_attention_weights.shape[1] * 2, 10),
|
81 |
+
max(averaged_attention_weights.shape[0] / 1.5, 5),
|
82 |
+
)
|
83 |
+
|
84 |
+
# Plotting the heatmap with seaborn's color palette
|
85 |
+
im = ax.imshow(
|
86 |
+
averaged_attention_weights,
|
87 |
+
vmax=averaged_attention_weights.max(),
|
88 |
+
vmin=-averaged_attention_weights.min(),
|
89 |
+
cmap=sns.color_palette("rocket", as_cmap=True),
|
90 |
+
aspect="auto",
|
91 |
+
)
|
92 |
+
|
93 |
+
# Creating colorbar
|
94 |
+
cbar = ax.figure.colorbar(im, ax=ax)
|
95 |
+
cbar.ax.set_ylabel("Token Attribution", rotation=-90, va="bottom")
|
96 |
+
cbar.ax.yaxis.set_tick_params(color="white")
|
97 |
+
plt.setp(plt.getp(cbar.ax.axes, "yticklabels"), color="white")
|
98 |
+
|
99 |
+
# Setting ticks and labels with white color for visibility
|
100 |
+
ax.set_xticks(np.arange(len(encoder_tokens)), labels=encoder_tokens)
|
101 |
+
ax.set_yticks(np.arange(len(decoder_tokens)), labels=decoder_tokens)
|
102 |
+
plt.setp(ax.get_xticklabels(), color="white", rotation=45, ha="right")
|
103 |
+
plt.setp(ax.get_yticklabels(), color="white")
|
104 |
+
|
105 |
+
# Adjusting tick labels
|
106 |
+
ax.tick_params(
|
107 |
+
top=True, bottom=False, labeltop=False, labelbottom=True, color="white"
|
108 |
+
)
|
109 |
+
|
110 |
+
return plt
|
@@ -1,109 +1,222 @@
|
|
1 |
-
# main application file initializing the gradio based ui and calling other
|
2 |
-
|
3 |
-
# external package imports
|
4 |
-
import gradio as gr
|
5 |
-
import markdown
|
6 |
from fastapi import FastAPI
|
|
|
|
|
7 |
|
8 |
# internal imports
|
9 |
-
from
|
10 |
|
11 |
-
#
|
12 |
-
|
|
|
13 |
|
14 |
-
# credit: official python-markdown documentation (https://python-markdown.github.io/reference/)
|
15 |
-
with open(path, "r") as file:
|
16 |
-
text = file.read()
|
17 |
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
return markdown.markdown(text)
|
20 |
|
21 |
-
# creation of FastAPI application
|
22 |
-
app = FastAPI()
|
23 |
|
24 |
-
#
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
# header row with markdown based text
|
27 |
with gr.Row():
|
28 |
-
|
29 |
-
|
30 |
-
# Thesis Demo - AI Chat Application with
|
|
|
31 |
### Select between tabs below for the different views.
|
32 |
""")
|
33 |
# ChatBot tab used to chat with the AI chatbot
|
34 |
with gr.Tab("AI ChatBot"):
|
35 |
with gr.Row():
|
36 |
-
|
37 |
-
|
38 |
### ChatBot Demo
|
39 |
-
|
|
|
|
|
|
|
|
|
40 |
""")
|
41 |
-
# row with
|
42 |
-
with gr.Row():
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
with gr.Row():
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
51 |
with gr.Row():
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
# row with columns for buttons to submit and clear content
|
54 |
with gr.Row():
|
55 |
with gr.Column(scale=1):
|
56 |
-
#
|
57 |
-
|
|
|
58 |
with gr.Column(scale=1):
|
59 |
-
submit_btn = gr.Button("Submit")
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
# explanations tab used to provide explanations for a specific conversation
|
66 |
with gr.Tab("Explanations"):
|
|
|
67 |
with gr.Row():
|
68 |
-
gr.Markdown(
|
69 |
-
|
70 |
-
|
71 |
-
|
|
|
72 |
""")
|
73 |
-
|
74 |
-
|
75 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
with gr.Row():
|
77 |
-
gr.
|
78 |
-
"""
|
79 |
-
|
80 |
-
|
81 |
""")
|
|
|
|
|
82 |
|
83 |
-
#
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
|
92 |
-
#
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
with gr.Tab("LlaMa 2 7B Chat"):
|
97 |
-
gr.Markdown(value=load_md("./model/llama2.md"))
|
98 |
|
99 |
-
|
100 |
-
with gr.Row():
|
101 |
-
with gr.Accordion("Credits, Data Protection and License", open=False):
|
102 |
-
gr.Markdown(value=load_md("public/credits_dataprotection_license.md"))
|
103 |
-
|
104 |
-
# launch function for fastAPI Application
|
105 |
app = gr.mount_gradio_app(app, ui, path="/")
|
106 |
|
107 |
-
# launch function
|
108 |
if __name__ == "__main__":
|
109 |
-
|
|
|
|
|
|
|
|
|
|
1 |
+
# main application file initializing the gradio based ui and calling other
|
2 |
+
# external imports
|
|
|
|
|
|
|
3 |
from fastapi import FastAPI
|
4 |
+
import markdown
|
5 |
+
import gradio as gr
|
6 |
|
7 |
# internal imports
|
8 |
+
from backend.controller import interference
|
9 |
|
10 |
+
# Global Variables and css
|
11 |
+
app = FastAPI()
|
12 |
+
css = "body {text-align: start !important;}"
|
13 |
|
|
|
|
|
|
|
14 |
|
15 |
+
# different functions to provide frontend abilities
|
16 |
+
# function to load markdown files
|
17 |
+
def load_md(path):
|
18 |
+
# CREDIT: official python-markdown documentation
|
19 |
+
## see https://python-markdown.github.io/reference/)
|
20 |
+
with open(path, "r", encoding="utf-8") as file:
|
21 |
+
text = file.read()
|
22 |
return markdown.markdown(text)
|
23 |
|
|
|
|
|
24 |
|
25 |
+
# function to display the system prompt info
|
26 |
+
def system_prompt_info(sys_prompt_txt):
|
27 |
+
# display the system prompt using the Gradio Info component
|
28 |
+
gr.Info(f"The system prompt was set to:\n {sys_prompt_txt}")
|
29 |
+
|
30 |
+
|
31 |
+
# function to display the xai info
|
32 |
+
def xai_info(xai_radio):
|
33 |
+
# display the xai method using the Gradio Info component
|
34 |
+
if xai_radio != "None":
|
35 |
+
gr.Info(f"The XAI was set to:\n {xai_radio}")
|
36 |
+
else:
|
37 |
+
gr.Info("No XAI method was selected.")
|
38 |
+
|
39 |
+
|
40 |
+
# ui interface based on Gradio Blocks (see documentation:
|
41 |
+
# https://www.gradio.app/docs/interface)
|
42 |
+
with gr.Blocks(
|
43 |
+
css="text-align: start !important",
|
44 |
+
title="Thesis Webapp Showcase",
|
45 |
+
head="<head>",
|
46 |
+
) as ui:
|
47 |
# header row with markdown based text
|
48 |
with gr.Row():
|
49 |
+
# markdown component to display the header
|
50 |
+
gr.Markdown("""
|
51 |
+
# Thesis Demo - AI Chat Application with GODEL
|
52 |
+
## XAI powered by SHAP and BERTVIZ
|
53 |
### Select between tabs below for the different views.
|
54 |
""")
|
55 |
# ChatBot tab used to chat with the AI chatbot
|
56 |
with gr.Tab("AI ChatBot"):
|
57 |
with gr.Row():
|
58 |
+
# markdown component to display the header of the current tab
|
59 |
+
gr.Markdown("""
|
60 |
### ChatBot Demo
|
61 |
+
Chat with the AI ChatBot using the textbox below.
|
62 |
+
Manipulate the settings in the row above,
|
63 |
+
including the selection of the model,
|
64 |
+
the system prompt and the XAI method.
|
65 |
+
|
66 |
""")
|
67 |
+
# row with columns for the different settings
|
68 |
+
with gr.Row(equal_height=True):
|
69 |
+
# column that takes up 3/5 of the row
|
70 |
+
with gr.Column(scale=3):
|
71 |
+
# textbox to enter the system prompt
|
72 |
+
system_prompt = gr.Textbox(
|
73 |
+
label="System Prompt",
|
74 |
+
info="Set the models system prompt, dictating how it answers.",
|
75 |
+
placeholder=(
|
76 |
+
"You are a helpful, respectful and honest assistant. Always"
|
77 |
+
" answer as helpfully as possible, while being safe."
|
78 |
+
),
|
79 |
+
)
|
80 |
+
with gr.Column(scale=1):
|
81 |
+
# checkbox group to select the xai method
|
82 |
+
xai_selection = gr.Radio(
|
83 |
+
["None", "SHAP", "Visualizer"],
|
84 |
+
label="XAI Settings",
|
85 |
+
info="Select a XAI Implementation to use.",
|
86 |
+
value="None",
|
87 |
+
interactive=True,
|
88 |
+
show_label=True,
|
89 |
+
)
|
90 |
+
|
91 |
+
# calling info functions on inputs for different settings
|
92 |
+
system_prompt.submit(system_prompt_info, [system_prompt])
|
93 |
+
xai_selection.input(xai_info, [xai_selection])
|
94 |
+
|
95 |
+
# row with chatbot ui displaying "conversation" with the model
|
96 |
+
with gr.Row(equal_height=True):
|
97 |
+
# out of the box chatbot component
|
98 |
+
# see documentation: https://www.gradio.app/docs/chatbot
|
99 |
+
chatbot = gr.Chatbot(
|
100 |
+
layout="panel",
|
101 |
+
show_copy_button=True,
|
102 |
+
avatar_images=("./public/human.jpg", "./public/bot.jpg"),
|
103 |
+
)
|
104 |
+
# rows with input textboxes
|
105 |
with gr.Row():
|
106 |
+
# textbox to enter the knowledge
|
107 |
+
with gr.Accordion(label="Additional Knowledge", open=False):
|
108 |
+
knowledge_input = gr.Textbox(
|
109 |
+
value="",
|
110 |
+
label="Knowledge",
|
111 |
+
max_lines=5,
|
112 |
+
info="Add additional context knowledge.",
|
113 |
+
show_label=True,
|
114 |
+
)
|
115 |
with gr.Row():
|
116 |
+
# textbox to enter the user prompt
|
117 |
+
user_prompt = gr.Textbox(
|
118 |
+
label="Input Message",
|
119 |
+
max_lines=5,
|
120 |
+
info="""
|
121 |
+
Ask the ChatBot a question.
|
122 |
+
Hint: More complicated question give better explanation insights!
|
123 |
+
""",
|
124 |
+
show_label=True,
|
125 |
+
)
|
126 |
# row with columns for buttons to submit and clear content
|
127 |
with gr.Row():
|
128 |
with gr.Column(scale=1):
|
129 |
+
# out of the box clear button which clearn the given components (see
|
130 |
+
# documentation: https://www.gradio.app/docs/clearbutton)
|
131 |
+
clear_btn = gr.ClearButton([user_prompt, chatbot])
|
132 |
with gr.Column(scale=1):
|
133 |
+
submit_btn = gr.Button("Submit", variant="primary")
|
134 |
+
with gr.Row():
|
135 |
+
gr.Examples(
|
136 |
+
label="Example Questions",
|
137 |
+
examples=[
|
138 |
+
[
|
139 |
+
"How does a black hole form in space?",
|
140 |
+
(
|
141 |
+
"Black holes are created when a massive star's core"
|
142 |
+
" collapses after a supernova, forming an object with"
|
143 |
+
" gravity so intense that even light cannot escape."
|
144 |
+
),
|
145 |
+
],
|
146 |
+
[
|
147 |
+
(
|
148 |
+
"Explain the importance of the Rosetta Stone in"
|
149 |
+
" understanding ancient languages."
|
150 |
+
),
|
151 |
+
(
|
152 |
+
"The Rosetta Stone, an ancient Egyptian artifact, was key"
|
153 |
+
" in decoding hieroglyphs, featuring the same text in three"
|
154 |
+
" scripts: hieroglyphs, Demotic, and Greek."
|
155 |
+
),
|
156 |
+
],
|
157 |
+
],
|
158 |
+
inputs=[user_prompt, knowledge_input],
|
159 |
+
)
|
160 |
|
161 |
# explanations tab used to provide explanations for a specific conversation
|
162 |
with gr.Tab("Explanations"):
|
163 |
+
# row with markdown component to display the header of the current tab
|
164 |
with gr.Row():
|
165 |
+
gr.Markdown("""
|
166 |
+
### Get Explanations for Conversations
|
167 |
+
Using your selected XAI method, you can get explanations for
|
168 |
+
the conversation you had with the AI ChatBot. The explanations are
|
169 |
+
based on the last message you sent to the AI ChatBot (see text)
|
170 |
""")
|
171 |
+
# row that displays the generated explanation of the model (if applicable)
|
172 |
+
with gr.Row(variant="panel"):
|
173 |
+
# wraps the explanation html in an iframe to display it interactively
|
174 |
+
xai_interactive = gr.HTML(
|
175 |
+
label="Interactive Explanation",
|
176 |
+
value=(
|
177 |
+
'<div style="text-align: center"><h4>No Graphic to Display'
|
178 |
+
" (Yet)</h4></div>"
|
179 |
+
),
|
180 |
+
show_label=True,
|
181 |
+
)
|
182 |
+
# row and accordion to display an explanation plot (if applicable)
|
183 |
with gr.Row():
|
184 |
+
with gr.Accordion("Token Explanation Plot", open=False):
|
185 |
+
gr.Markdown("""
|
186 |
+
#### Plotted Values
|
187 |
+
Values have been excluded for readability. See colorbar for value indication.
|
188 |
""")
|
189 |
+
# plot component that takes a matplotlib figure as input
|
190 |
+
xai_plot = gr.Plot(label="Token Level Explanation", scale=3)
|
191 |
|
192 |
+
# functions to trigger the controller
|
193 |
+
## takes information for the chat and the xai selection
|
194 |
+
## returns prompt, history and xai data
|
195 |
+
## see backend/controller.py for more information
|
196 |
+
submit_btn.click(
|
197 |
+
interference,
|
198 |
+
[user_prompt, chatbot, knowledge_input, system_prompt, xai_selection],
|
199 |
+
[user_prompt, chatbot, xai_interactive, xai_plot],
|
200 |
+
)
|
201 |
+
# function triggered by the enter key
|
202 |
+
user_prompt.submit(
|
203 |
+
interference,
|
204 |
+
[user_prompt, chatbot, knowledge_input, system_prompt, xai_selection],
|
205 |
+
[user_prompt, chatbot, xai_interactive, xai_plot],
|
206 |
+
)
|
207 |
|
208 |
+
# final row to show legal information
|
209 |
+
## - credits, data protection and link to the License
|
210 |
+
with gr.Tab(label="Credits, Data Protection and License"):
|
211 |
+
gr.Markdown(value=load_md("public/credits_dataprotection_license.md"))
|
|
|
|
|
212 |
|
213 |
+
# mount function for fastAPI Application
|
|
|
|
|
|
|
|
|
|
|
214 |
app = gr.mount_gradio_app(app, ui, path="/")
|
215 |
|
216 |
+
# launch function using uvicorn to launch the fastAPI application
|
217 |
if __name__ == "__main__":
|
218 |
+
from uvicorn import run
|
219 |
+
|
220 |
+
# run the application on port 8080 in reload mode
|
221 |
+
## for local development, uses Docker for Prod deployment
|
222 |
+
run("main:app", port=8080, reload=True)
|
@@ -1,29 +0,0 @@
|
|
1 |
-
# minimal memory module for saving and loading converstations
|
2 |
-
|
3 |
-
# package imports
|
4 |
-
from tinydb import TinyDB, Query
|
5 |
-
from tinydb.storages import MemoryStorage
|
6 |
-
|
7 |
-
#temporary json db setup
|
8 |
-
db = TinyDB('db.json',storage=MemoryStorage)
|
9 |
-
query = Query()
|
10 |
-
|
11 |
-
def conversation_mapper(data):
|
12 |
-
mapping = {
|
13 |
-
{
|
14 |
-
'user': 'Hello, how are you?',
|
15 |
-
'bot': 'I am good, thank you.'
|
16 |
-
},
|
17 |
-
}
|
18 |
-
return mapping
|
19 |
-
|
20 |
-
# function to dump json data into the db
|
21 |
-
def dump (data):
|
22 |
-
mapping = conversation_mapper(data)
|
23 |
-
doc_id = db.insert(data)
|
24 |
-
return doc_id, mapping
|
25 |
-
|
26 |
-
# function to query data from the db
|
27 |
-
def get (doc_id:int):
|
28 |
-
data = db.get(doc_id=doc_id)
|
29 |
-
return data
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
File without changes
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
# empty init file for the package
|
2 |
+
# for fastapi to recognize the module
|
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# GODEL model module for chat interaction and model instance control
|
2 |
+
|
3 |
+
# external imports
|
4 |
+
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
|
5 |
+
|
6 |
+
# internal imports
|
7 |
+
from utils import modelling as mdl
|
8 |
+
|
9 |
+
# model and tokenizer instance
|
10 |
+
TOKENIZER = AutoTokenizer.from_pretrained("microsoft/GODEL-v1_1-large-seq2seq")
|
11 |
+
MODEL = AutoModelForSeq2SeqLM.from_pretrained("microsoft/GODEL-v1_1-large-seq2seq")
|
12 |
+
CONFIG = {"max_new_tokens": 50, "min_length": 8, "top_p": 0.9, "do_sample": True}
|
13 |
+
|
14 |
+
|
15 |
+
# TODO: Make config variable
|
16 |
+
def set_config(config: dict = None):
|
17 |
+
if config is None:
|
18 |
+
config = {}
|
19 |
+
|
20 |
+
MODEL.config.max_new_tokens = 50
|
21 |
+
MODEL.config.min_length = 8
|
22 |
+
MODEL.config.top_p = 0.9
|
23 |
+
MODEL.config.do_sample = True
|
24 |
+
|
25 |
+
|
26 |
+
# formatting class to formatting input for the model
|
27 |
+
# CREDIT: Adapted from official interference example on Huggingface
|
28 |
+
## see https://huggingface.co/microsoft/GODEL-v1_1-large-seq2seq
|
29 |
+
def format_prompt(message: str, history: list, system_prompt: str, knowledge: str = ""):
|
30 |
+
# user input prompt initialization
|
31 |
+
prompt = ""
|
32 |
+
|
33 |
+
# limits the prompt elements to the maximum token count
|
34 |
+
message, history, system_prompt, knowledge = mdl.prompt_limiter(
|
35 |
+
TOKENIZER, message, history, system_prompt, knowledge
|
36 |
+
)
|
37 |
+
|
38 |
+
# adds knowledge text if not empty
|
39 |
+
if knowledge != "":
|
40 |
+
knowledge = "[KNOWLEDGE] " + knowledge
|
41 |
+
|
42 |
+
# adds conversation history to the prompt
|
43 |
+
for conversation in history:
|
44 |
+
prompt += f"EOS {conversation[0]} EOS {conversation[1]}"
|
45 |
+
|
46 |
+
# adds the message to the prompt
|
47 |
+
prompt += f" {message}"
|
48 |
+
# combines the entire prompt
|
49 |
+
full_prompt = f"{system_prompt} [CONTEXT] {prompt} {knowledge}"
|
50 |
+
|
51 |
+
# returns the formatted prompt
|
52 |
+
return full_prompt
|
53 |
+
|
54 |
+
|
55 |
+
# response class calling the model and returning the model output message
|
56 |
+
# CREDIT: Copied from official interference example on Huggingface
|
57 |
+
## see https://huggingface.co/microsoft/GODEL-v1_1-large-seq2seq
|
58 |
+
def respond(prompt):
|
59 |
+
input_ids = TOKENIZER(f"{prompt}", return_tensors="pt").input_ids
|
60 |
+
outputs = MODEL.generate(input_ids, **CONFIG)
|
61 |
+
output = TOKENIZER.decode(outputs[0], skip_special_tokens=True)
|
62 |
+
|
63 |
+
return output
|
@@ -1,6 +0,0 @@
|
|
1 |
-
### Credits
|
2 |
-
|
3 |
-
### Data Protection
|
4 |
-
|
5 |
-
### License
|
6 |
-
This Product is licensed under the MIT license.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
File without changes
|
@@ -1,6 +0,0 @@
|
|
1 |
-
### Credits
|
2 |
-
|
3 |
-
### Data Protection
|
4 |
-
|
5 |
-
### License
|
6 |
-
This Product is licensed under the MIT license.
|
|
|
|
|
|
|
|
|
|
|
|
|
|