Spaces:
Runtime error
Runtime error
Rodolfo Torres
commited on
Commit
•
c0f8926
1
Parent(s):
99c45ce
Initial commit
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .dockerignore +2 -0
- .gitignore +2 -0
- Dockerfile +18 -0
- README.md +3 -0
- docker-compose.yml +12 -0
- main.py +114 -0
- requirements.txt +10 -0
- static/fav/favicon-32x32.png +0 -0
- static/fav/site.webmanifest +19 -0
- static/img/btn_stop.svg +3 -0
- static/img/btn_tts_play.svg +11 -0
- static/img/btn_tts_stop.svg +17 -0
- static/img/clear-chat.svg +3 -0
- static/img/hero.jpg +0 -0
- static/img/icon-about.svg +16 -0
- static/img/icon-clock.svg +3 -0
- static/img/icon-close.svg +3 -0
- static/img/icon-config.svg +11 -0
- static/img/icon-db.svg +11 -0
- static/img/icon-download-pdf.svg +4 -0
- static/img/icon-download.svg +3 -0
- static/img/icon-file.svg +12 -0
- static/img/icon-menu.svg +81 -0
- static/img/icon-send.svg +3 -0
- static/img/icon-text.svg +16 -0
- static/img/icon-trash.svg +3 -0
- static/img/icon-webpage.svg +18 -0
- static/img/logo.png +0 -0
- static/img/mic-start.svg +20 -0
- static/img/mic-stop.svg +21 -0
- static/img/oracle-avatar.svg +111 -0
- static/img/robot-avatar.png +0 -0
- static/img/robot.png +0 -0
- static/index.html +266 -0
- static/js/app.js +1477 -0
- static/js/bootstrap.bundle.min.js +7 -0
- static/js/highlight.min.js +0 -0
- static/js/jquery-3.6.0.min.js +2 -0
- static/js/pdfmake.min.js +0 -0
- static/js/sse.js +217 -0
- static/js/sweetalert2.all.min.js +2 -0
- static/js/toastr.min.js +7 -0
- static/js/vfs_fonts.js +0 -0
- static/json/badwords.json +3 -0
- static/json/config.json +14 -0
- static/json/lang.json +47 -0
- static/json/prompts-en.json +26 -0
- static/style/app.css +1322 -0
- static/style/bootstrap.min.css +0 -0
- static/style/highlight.dark.min.css +7 -0
.dockerignore
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
docker-compose.yml
|
2 |
+
docker-compose-local.yml
|
.gitignore
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
venv
|
2 |
+
__pycache__
|
Dockerfile
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM python:3.9
|
2 |
+
|
3 |
+
WORKDIR /code
|
4 |
+
|
5 |
+
COPY ./requirements.txt /code/requirements.txt
|
6 |
+
|
7 |
+
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
|
8 |
+
|
9 |
+
RUN useradd -m -u 1000 user
|
10 |
+
|
11 |
+
ENV HOME=/home/user \
|
12 |
+
PATH=/home/user/.local/bin:$PATH
|
13 |
+
|
14 |
+
WORKDIR $HOME/app
|
15 |
+
|
16 |
+
COPY --chown=user . $HOME/app
|
17 |
+
|
18 |
+
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
|
README.md
CHANGED
@@ -9,3 +9,6 @@ license: mit
|
|
9 |
---
|
10 |
|
11 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
|
|
|
|
9 |
---
|
10 |
|
11 |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
12 |
+
-- docker-compose up --build
|
13 |
+
|
14 |
+
docker-compose up --build
|
docker-compose.yml
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
version: '3.7'
|
2 |
+
|
3 |
+
services:
|
4 |
+
text_talk:
|
5 |
+
build:
|
6 |
+
context: '.'
|
7 |
+
image: scan-u-doc:v1
|
8 |
+
ports:
|
9 |
+
- 7860:7860
|
10 |
+
environment:
|
11 |
+
- APACHE_RUN_USER=#1000
|
12 |
+
- APACHE_RUN_GROUP=#1000
|
main.py
ADDED
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from time import time
|
2 |
+
t_ini = time()
|
3 |
+
from fastapi import FastAPI, UploadFile, File
|
4 |
+
from fastapi.staticfiles import StaticFiles
|
5 |
+
from fastapi.responses import FileResponse
|
6 |
+
#from fastapi.middleware.cors import CORSMiddleware
|
7 |
+
from typing import Optional
|
8 |
+
from transformers import pipeline
|
9 |
+
from pydantic import BaseModel
|
10 |
+
from fastapi.responses import JSONResponse
|
11 |
+
from io import BytesIO
|
12 |
+
import PyPDF2
|
13 |
+
|
14 |
+
print('End loading libraries: ', round(time()-t_ini))
|
15 |
+
t_ini = time()
|
16 |
+
model_name = "roaltopo/text-talk-ai_question-answer-12"
|
17 |
+
qa_pipeline = pipeline(
|
18 |
+
"question-answering",
|
19 |
+
model=model_name,
|
20 |
+
use_auth_token = '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'
|
21 |
+
)
|
22 |
+
print('End loading model: ', round(time()-t_ini))
|
23 |
+
t_ini = time()
|
24 |
+
|
25 |
+
app = FastAPI()
|
26 |
+
|
27 |
+
# Diccionario en memoria para almacenar información
|
28 |
+
text_storage = {}
|
29 |
+
|
30 |
+
class TextInfo(BaseModel):
|
31 |
+
text: Optional[str] = None
|
32 |
+
pdf: Optional[bytes] = None
|
33 |
+
html_url: Optional[str] = None
|
34 |
+
|
35 |
+
class QuestionInfo(BaseModel):
|
36 |
+
question: str
|
37 |
+
|
38 |
+
@app.post("/store_text/{uuid}")
|
39 |
+
async def store_text(uuid: str, text_info: TextInfo):
|
40 |
+
# Almacena la información en el diccionario en memoria
|
41 |
+
text_storage[uuid] = {
|
42 |
+
'text': text_info.text,
|
43 |
+
#'pdf': text_info.pdf,
|
44 |
+
#'html_url': text_info.html_url
|
45 |
+
}
|
46 |
+
|
47 |
+
return {'success': True}
|
48 |
+
|
49 |
+
# Ruta para cargar un archivo
|
50 |
+
@app.post("/upload_file/{uuid}")
|
51 |
+
async def upload_file(uuid: str, file: UploadFile = File(...)):
|
52 |
+
try:
|
53 |
+
pdf_content = await file.read()
|
54 |
+
pdf_stream = BytesIO(pdf_content)
|
55 |
+
pdf_reader = PyPDF2.PdfReader(pdf_stream)
|
56 |
+
|
57 |
+
# Aquí puedes trabajar con el objeto pdf_reader
|
58 |
+
# por ejemplo, puedes imprimir el número de páginas del PDF
|
59 |
+
#print(f"Número de páginas: {len(pdf_reader.pages)}")
|
60 |
+
|
61 |
+
# Variable para almacenar el texto extraído del PDF
|
62 |
+
extracted_text = ''
|
63 |
+
|
64 |
+
# Itera sobre todas las páginas del PDF
|
65 |
+
for page_num in range(len(pdf_reader.pages)):
|
66 |
+
# Obtiene el objeto de la página
|
67 |
+
page = pdf_reader.pages[page_num]
|
68 |
+
# Extrae el texto de la página y agrégalo a la variable extracted_text
|
69 |
+
#extracted_text += page.extract_text().replace('\n', ' ')
|
70 |
+
tmp = page.extract_text()
|
71 |
+
tmp = tmp.replace('\n', ' ')
|
72 |
+
tmp = tmp.replace(' ', ' ')
|
73 |
+
tmp = tmp.replace('. ', '.\n')
|
74 |
+
extracted_text += tmp
|
75 |
+
if len(extracted_text) > 4000:
|
76 |
+
extracted_text = extracted_text[:4000]
|
77 |
+
break
|
78 |
+
|
79 |
+
# Almacena la información en el diccionario en memoria
|
80 |
+
text_storage[uuid] = {
|
81 |
+
'text': extracted_text,
|
82 |
+
}
|
83 |
+
|
84 |
+
return JSONResponse(content={'success': True})
|
85 |
+
except Exception as e:
|
86 |
+
return JSONResponse(content={"message": f"Error al cargar el archivo: {e}"}, status_code=500)
|
87 |
+
|
88 |
+
@app.post("/answer_question/{uuid}")
|
89 |
+
async def answer_question(uuid: str, question_info: QuestionInfo):
|
90 |
+
#text_id = question_info.text_id
|
91 |
+
question = question_info.question
|
92 |
+
|
93 |
+
# Verifica si el texto con el ID existe en el diccionario
|
94 |
+
if uuid not in text_storage:
|
95 |
+
return {'error': 'Text not found'}
|
96 |
+
|
97 |
+
# Implementa la lógica de procesamiento de la pregunta aquí
|
98 |
+
# En este ejemplo, simplemente devuelve una respuesta fija
|
99 |
+
#print(type(text_storage[text_id]), text_storage[text_id]['text'])
|
100 |
+
#response = "El texto original es: " + text_storage[text_id]['text']
|
101 |
+
|
102 |
+
#return {'response': response}
|
103 |
+
#return qa_pipeline(question=question, context=text_storage[text_id]['text'])
|
104 |
+
r = qa_pipeline(question=question, context=text_storage[uuid]['text'], top_k=10)
|
105 |
+
#print(r)
|
106 |
+
#print('-----------------------------')
|
107 |
+
return r[0]
|
108 |
+
|
109 |
+
|
110 |
+
app.mount("/", StaticFiles(directory="static", html=True), name="static")
|
111 |
+
|
112 |
+
@app.get("/")
|
113 |
+
def index() -> FileResponse:
|
114 |
+
return FileResponse(path="/app/static/index.html", media_type="text/html")
|
requirements.txt
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
fastapi==0.103.2
|
2 |
+
uvicorn==0.23.2
|
3 |
+
optimum[neural-compressor]==1.8.7
|
4 |
+
neural-compressor==2.1.1
|
5 |
+
intel_extension_for_pytorch==2.0.100
|
6 |
+
torch==2.0.1
|
7 |
+
transformers==4.29.2
|
8 |
+
pydantic==2.4.2
|
9 |
+
pypdf2==3.0.1
|
10 |
+
python-multipart==0.*
|
static/fav/favicon-32x32.png
ADDED
static/fav/site.webmanifest
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "",
|
3 |
+
"short_name": "",
|
4 |
+
"icons": [
|
5 |
+
{
|
6 |
+
"src": "/android-chrome-192x192.png",
|
7 |
+
"sizes": "192x192",
|
8 |
+
"type": "image/png"
|
9 |
+
},
|
10 |
+
{
|
11 |
+
"src": "/android-chrome-512x512.png",
|
12 |
+
"sizes": "512x512",
|
13 |
+
"type": "image/png"
|
14 |
+
}
|
15 |
+
],
|
16 |
+
"theme_color": "#ffffff",
|
17 |
+
"background_color": "#ffffff",
|
18 |
+
"display": "standalone"
|
19 |
+
}
|
static/img/btn_stop.svg
ADDED
static/img/btn_tts_play.svg
ADDED
static/img/btn_tts_stop.svg
ADDED
static/img/clear-chat.svg
ADDED
static/img/hero.jpg
ADDED
static/img/icon-about.svg
ADDED
static/img/icon-clock.svg
ADDED
static/img/icon-close.svg
ADDED
static/img/icon-config.svg
ADDED
static/img/icon-db.svg
ADDED
static/img/icon-download-pdf.svg
ADDED
static/img/icon-download.svg
ADDED
static/img/icon-file.svg
ADDED
static/img/icon-menu.svg
ADDED
static/img/icon-send.svg
ADDED
static/img/icon-text.svg
ADDED
static/img/icon-trash.svg
ADDED
static/img/icon-webpage.svg
ADDED
static/img/logo.png
ADDED
static/img/mic-start.svg
ADDED
static/img/mic-stop.svg
ADDED
static/img/oracle-avatar.svg
ADDED
static/img/robot-avatar.png
ADDED
static/img/robot.png
ADDED
static/index.html
ADDED
@@ -0,0 +1,266 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!doctype html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="utf-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
6 |
+
<title>ScanUDoc - Simplify Text Processing</title>
|
7 |
+
<meta name="description" content="Empower your document search with ScanUDoc. Harness the power of LLM models for efficient text processing and insightful responses.">
|
8 |
+
<meta name="keywords" content="ScanUDoc, document search, LLM models, text processing, AI assistant">
|
9 |
+
<meta property="og:description" content="Empower your document search with ScanUDoc. Harness the power of LLM models for efficient text processing and insightful responses.">
|
10 |
+
<meta name="author" content="Rodolfo Torres, rodolfo.torres@outlook.com">
|
11 |
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
12 |
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
13 |
+
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;700&family=Nunito+Sans:wght@300;400;700&display=swap" rel="stylesheet">
|
14 |
+
<link href="style/bootstrap.min.css" rel="stylesheet">
|
15 |
+
<link href="style/app.css?v1-2" rel="stylesheet">
|
16 |
+
<link rel="stylesheet" href="style/highlight.min.css" />
|
17 |
+
<link rel="stylesheet" href="style/highlight.dark.min.css" />
|
18 |
+
<link rel="stylesheet" href="style/toastr.min.css" />
|
19 |
+
<link href="style/sweetalert2.min.css" rel="stylesheet">
|
20 |
+
<link itemprop="url" href="img/thumb.jpg">
|
21 |
+
<link itemprop="thumbnailUrl" href="img/thumb.jpg">
|
22 |
+
<meta name="theme-color" content="#4b2195">
|
23 |
+
<meta property="og:title" content="ScanUDoc" />
|
24 |
+
<link rel="apple-touch-icon" sizes="180x180" href="fav/apple-touch-icon.png">
|
25 |
+
<link rel="icon" type="image/png" sizes="32x32" href="fav/favicon-32x32.png">
|
26 |
+
<link rel="icon" type="image/png" sizes="16x16" href="fav/favicon-16x16.png">
|
27 |
+
<link rel="manifest" href="fav/site.webmanifest">
|
28 |
+
<link rel="mask-icon" href="fav/safari-pinned-tab.svg" color="#5bbad5">
|
29 |
+
</head>
|
30 |
+
<body>
|
31 |
+
|
32 |
+
|
33 |
+
<div id="loading">
|
34 |
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="40" height="40">
|
35 |
+
<circle cx="50" cy="50" r="40" stroke="#FFFFFF" stroke-width="8" fill="none" />
|
36 |
+
<circle cx="50" cy="50" r="40" stroke="#c3a3ff" stroke-width="8" fill="none" stroke-dasharray="250" stroke-dashoffset="0">
|
37 |
+
<animate attributeName="stroke-dashoffset" dur="1s" repeatCount="indefinite" from="0" to="250" />
|
38 |
+
</circle>
|
39 |
+
</svg>
|
40 |
+
</div>
|
41 |
+
|
42 |
+
<div class="modal fade" tabindex="-1" id="modalDefault">
|
43 |
+
<div class="modal-dialog">
|
44 |
+
<div class="modal-content">
|
45 |
+
<div class="modal-header">
|
46 |
+
<h5 class="modal-title">About ScanUDoc</h5>
|
47 |
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{button_close_modal}"></button>
|
48 |
+
</div>
|
49 |
+
<div class="modal-body">
|
50 |
+
</div>
|
51 |
+
<div class="modal-footer">
|
52 |
+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{button_close_modal}}</button>
|
53 |
+
</div>
|
54 |
+
</div>
|
55 |
+
</div>
|
56 |
+
</div>
|
57 |
+
|
58 |
+
<div class="modal fade" tabindex="-1" id="modalConfig">
|
59 |
+
<div class="modal-dialog">
|
60 |
+
<div class="modal-content">
|
61 |
+
<div class="modal-header">
|
62 |
+
<h5 class="modal-title">Settings</h5>
|
63 |
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{button_close_modal}"></button>
|
64 |
+
</div>
|
65 |
+
<div class="modal-body">
|
66 |
+
<form id ='textTalkForm'>
|
67 |
+
<div class="mb-3">
|
68 |
+
<label for="voiceOfPlayback" class="form-label">Voice of Playback:</label>
|
69 |
+
<select class="form-select" id="voiceOfPlayback">
|
70 |
+
</select>
|
71 |
+
</div>
|
72 |
+
<div class="mb-3">
|
73 |
+
<label for="microphoneLanguage" class="form-label">Microphone Language:</label>
|
74 |
+
<select class="form-select" id="microphoneLanguage">
|
75 |
+
</select>
|
76 |
+
</div>
|
77 |
+
<div class="mb-3">
|
78 |
+
<label for="answersToggle" class="form-label">Answers Yes | No:</label>
|
79 |
+
<div class="form-check form-switch">
|
80 |
+
<input class="form-check-input" type="checkbox" id="answersToggle">
|
81 |
+
<label class="form-check-label" for="answersToggle">Toggle Button</label>
|
82 |
+
</div>
|
83 |
+
</div>
|
84 |
+
</form>
|
85 |
+
</div>
|
86 |
+
<div class="modal-footer">
|
87 |
+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{button_close_modal}}</button>
|
88 |
+
<button id="modal-settings-submit" type="button" class="btn btn-primary">Submit</button>
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
+
</div>
|
92 |
+
</div>
|
93 |
+
|
94 |
+
<div class="modal fade" tabindex="-1" id="modalText">
|
95 |
+
<div class="modal-dialog">
|
96 |
+
<div class="modal-content">
|
97 |
+
<div class="modal-header">
|
98 |
+
<h5 class="modal-title">Enter your text</h5>
|
99 |
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{button_close_modal}"></button>
|
100 |
+
</div>
|
101 |
+
<div class="modal-body">
|
102 |
+
<textarea id="textArea" rows="4" cols="50"></textarea>
|
103 |
+
</div>
|
104 |
+
<div class="modal-footer">
|
105 |
+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{button_close_modal}}</button>
|
106 |
+
<button type="button" class="btn btn-primary" id="sendButton">Send</button>
|
107 |
+
</div>
|
108 |
+
</div>
|
109 |
+
</div>
|
110 |
+
</div>
|
111 |
+
|
112 |
+
<div class="modal fade" tabindex="-1" id="modalFile">
|
113 |
+
<div class="modal-dialog">
|
114 |
+
<div class="modal-content">
|
115 |
+
<div class="modal-header">
|
116 |
+
<h5 class="modal-title">Upload your PDF or TXT File</h5>
|
117 |
+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{{button_close_modal}"></button>
|
118 |
+
</div>
|
119 |
+
<div class="modal-body">
|
120 |
+
<form id="file-form" enctype="multipart/form-data">
|
121 |
+
<input id="fileInput" type="file" name="file" accept=".pdf">
|
122 |
+
</form>
|
123 |
+
</div>
|
124 |
+
<div class="modal-footer">
|
125 |
+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{{button_close_modal}}</button>
|
126 |
+
<button type="button" class="btn btn-primary" id="sendButton2">Send</button>
|
127 |
+
</div>
|
128 |
+
</div>
|
129 |
+
</div>
|
130 |
+
</div>
|
131 |
+
|
132 |
+
<header class="hide-section">
|
133 |
+
<div class="container">
|
134 |
+
<div class="row">
|
135 |
+
<div class="col-sm-12">
|
136 |
+
<a href="./"><img src="img/logo.png" alt="Ask The Oracle" title="Ask The Oracle" id="logo"></a>
|
137 |
+
</div>
|
138 |
+
</div>
|
139 |
+
</div>
|
140 |
+
</header>
|
141 |
+
|
142 |
+
<section id="hero" class="align-items-center hide-section" >
|
143 |
+
<div class="container">
|
144 |
+
<div class="row align-items-center">
|
145 |
+
<div class="col-lg-6 col-md-12">
|
146 |
+
<h1>{{main_title}}</h1>
|
147 |
+
<p class="translate-sub-title">{{sub_title}}</p>
|
148 |
+
</div>
|
149 |
+
<div class="col-lg-6 col-md-12 d-flex justify-content-lg-end justify-content-md-center justify-content-sm-center hero-call-action-img">
|
150 |
+
<img src="img/robot.png" alt="{{slogan}}" title="{{slogan}}" class="robot">
|
151 |
+
</div>
|
152 |
+
</div>
|
153 |
+
|
154 |
+
</div>
|
155 |
+
</section>
|
156 |
+
|
157 |
+
<div class="container">
|
158 |
+
<div class="row">
|
159 |
+
|
160 |
+
<div id="body-frame">
|
161 |
+
|
162 |
+
<section id="chat-background" style="display:block;">
|
163 |
+
<div class="container">
|
164 |
+
<div class="row chat-background">
|
165 |
+
<div class="col p-0 col-main-chat">
|
166 |
+
|
167 |
+
<div class="ai-chat-top" style="display:none">
|
168 |
+
<div class="row align-items-center">
|
169 |
+
<div class="col-md-7 col-lg-8 col-7">
|
170 |
+
<div class="wrapper-ai-chat-top">
|
171 |
+
<div class="ai-chat-top-image"><img src="img/robot-avatar.png" alt="image" onerror="this.src='img/no-image.svg'"></div>
|
172 |
+
<div class="ai-chat-top-info">
|
173 |
+
<div class="ai-chat-top-name"><h4>Answerio <span class="online-bullet"></span></h4></div>
|
174 |
+
<div class="ai-chat-top-job"></div>
|
175 |
+
</div>
|
176 |
+
</div>
|
177 |
+
</div>
|
178 |
+
<div class="col-md-5 col-lg-4 col-5">
|
179 |
+
<div class="icons-options">
|
180 |
+
<div class="dropdown-center">
|
181 |
+
<img class="about_modal" src="img/icon-about.svg" alt="{{about_label}}" title="{{about_label}}" data-bs-toggle="modal" data-bs-target="#modalDefault">
|
182 |
+
<img class="about_modal" src="img/icon-config.svg" alt="{{about_label}}" title="{{about_label}}" data-bs-toggle="modal" data-bs-target="#modalConfig">
|
183 |
+
<button class="btn dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
184 |
+
<img src="img/icon-menu.svg" alt="Menu" title="Menu">
|
185 |
+
</button>
|
186 |
+
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
187 |
+
<li id="close-chat"><a class="dropdown-item" href="#" onclick="closeChat()"><img src="img/icon-close.svg"> <span>{{button_close}}</span></a></li>
|
188 |
+
<li id="clear-chat"><a class="dropdown-item" href="#" onclick="clearChat()"><img src="img/clear-chat.svg"> <span>{{button_clear_chat}}</span></a></li>
|
189 |
+
<li id="clear-all-chats"><a class="dropdown-item" href="#" onclick="clearChat('all')"><img src="img/icon-trash.svg"> <span>{{button_clear_all_chats}}</span></a></li>
|
190 |
+
<li id="download-chat"><a class="dropdown-item" href="#" onclick="handleDownload()"><img src="img/icon-download.svg"> <span>{{button_download_chat}}</span></a></li>
|
191 |
+
<li id="download-chat-pdf"><a class="dropdown-item" href="#" onclick="downloadPdf()"><img src="img/icon-download-pdf.svg"> <span>{{button_download_chat_pdf}}</span></a></li>
|
192 |
+
</ul>
|
193 |
+
</div>
|
194 |
+
|
195 |
+
</div>
|
196 |
+
</div>
|
197 |
+
</div>
|
198 |
+
</div>
|
199 |
+
|
200 |
+
<div class="ia-chat-content">
|
201 |
+
<div class="row">
|
202 |
+
|
203 |
+
<div class="chat-frame">
|
204 |
+
<div class="col-12"><h2 class="select-option-title text-center">{{chat_call_action1}}</h2></div>
|
205 |
+
|
206 |
+
<div class="cards-options">
|
207 |
+
<div class="row text-center">
|
208 |
+
<div class="col-12">
|
209 |
+
|
210 |
+
<div class="wrapper-cards-option" id="load-character">
|
211 |
+
|
212 |
+
</div>
|
213 |
+
|
214 |
+
</div>
|
215 |
+
</div>
|
216 |
+
</div>
|
217 |
+
|
218 |
+
<div id="overflow-chat" style="display:none"></div>
|
219 |
+
</div>
|
220 |
+
|
221 |
+
<div class="message-area-bottom" style="display:none">
|
222 |
+
<div class="container">
|
223 |
+
<div class="row">
|
224 |
+
<div class="col">
|
225 |
+
|
226 |
+
<div class="chat-input">
|
227 |
+
<span class="character-typing">
|
228 |
+
<div><b class='wait'>{{wait}}</b> <span></span> <b class='is_typing'>{{is_typing}}</b></div>
|
229 |
+
</span>
|
230 |
+
<textarea name="chat" id="chat" placeholder="{{input_placeholder}}" maxlength="200"></textarea>
|
231 |
+
<img src="img/mic-start.svg" id="microphone-button" style="display:none">
|
232 |
+
<button class="submit btn-send-chat btn btn-primary" tabindex="0"><span>{{button_send}}</span> <img src="img/icon-send.svg"></button>
|
233 |
+
<button class="submit btn-cancel-chat btn btn-primary" tabindex="0" style="display:none"><img src="img/btn_stop.svg"> <span class="stop-chat-label">{{button_cancel}}</span></button>
|
234 |
+
</div>
|
235 |
+
|
236 |
+
</div>
|
237 |
+
</div>
|
238 |
+
</div>
|
239 |
+
</div>
|
240 |
+
|
241 |
+
|
242 |
+
</div>
|
243 |
+
</div>
|
244 |
+
|
245 |
+
</div>
|
246 |
+
</div>
|
247 |
+
</div>
|
248 |
+
</section>
|
249 |
+
|
250 |
+
</div>
|
251 |
+
|
252 |
+
</div>
|
253 |
+
</div>
|
254 |
+
|
255 |
+
<section id="feedback"><span></span></section>
|
256 |
+
<script src="js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
257 |
+
<script src="js/jquery-3.6.0.min.js"></script>
|
258 |
+
<script src="js/highlight.min.js"></script>
|
259 |
+
<script src="js/toastr.min.js"></script>
|
260 |
+
<script src="js/sweetalert2.all.min.js"></script>
|
261 |
+
<script src="js/sse.js"></script>
|
262 |
+
<script src="js/pdfmake.min.js"></script>
|
263 |
+
<script src="js/vfs_fonts.js"></script>
|
264 |
+
<script src="js/app.js?v1-2"></script>
|
265 |
+
</body>
|
266 |
+
</html>
|
static/js/app.js
ADDED
@@ -0,0 +1,1477 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*/ Not change any values of the variables below,
|
2 |
+
use the "json/config.json" file to make your settings. /*/
|
3 |
+
let data_index = "";
|
4 |
+
let prompts_name = "";
|
5 |
+
let prompts_expert = "";
|
6 |
+
let prompts_image = "";
|
7 |
+
let prompts_background_color = "";
|
8 |
+
let prompts_training = "";
|
9 |
+
let chat_font_size = "";
|
10 |
+
let API_URL = "";
|
11 |
+
let source = "";
|
12 |
+
let google_voice = "";
|
13 |
+
let google_voice_lang_code = "";
|
14 |
+
let microphone_speak_lang = "";
|
15 |
+
|
16 |
+
let chat_minlength = 0;
|
17 |
+
let chat_maxlength = 0;
|
18 |
+
let lang_index = 0;
|
19 |
+
let scrollPosition = 0;
|
20 |
+
|
21 |
+
let is_model_turbo = false;
|
22 |
+
let use_text_stream = false;
|
23 |
+
let display_microphone_in_chat = false;
|
24 |
+
let display_avatar_in_chat = false;
|
25 |
+
let display_contacts_user_list = false;
|
26 |
+
let display_copy_text_button_in_chat = false;
|
27 |
+
let filter_badwords = true;
|
28 |
+
let display_audio_button_answers = true;
|
29 |
+
let chat_history = true;
|
30 |
+
let hasBadWord = false;
|
31 |
+
|
32 |
+
let chat = [];
|
33 |
+
let pmt = [];
|
34 |
+
let array_widgets = [];
|
35 |
+
let array_chat = [];
|
36 |
+
let lang = [];
|
37 |
+
let = badWords = []
|
38 |
+
let array_messages = [];
|
39 |
+
let array_voices = [];
|
40 |
+
let filterBotWords = ["Robot:", "Bot:"];
|
41 |
+
//---- end configs----//
|
42 |
+
|
43 |
+
//Modify the option below according to the prompt you want to use.
|
44 |
+
let user_prompt_lang = "en";
|
45 |
+
|
46 |
+
let textModal;
|
47 |
+
let fileModal;
|
48 |
+
let uuid = '';
|
49 |
+
let chatId;
|
50 |
+
let recognition;
|
51 |
+
|
52 |
+
if (window.location.protocol === 'file:') {
|
53 |
+
alert('This file is not runnable locally, an http server is required, please read the documentation.');
|
54 |
+
}
|
55 |
+
|
56 |
+
//Loads the characters from the config.json file and appends them to the initial slider
|
57 |
+
loadData("json/config.json", ["json/prompts-" + user_prompt_lang + ".json", "json/lang.json", "json/badwords.json"]);
|
58 |
+
|
59 |
+
function loadData(url, urls) {
|
60 |
+
// Fetch data from the given url and an array of urls using Promise.all and map functions
|
61 |
+
return Promise.all([fetch(url).then(res => res.json()), ...urls.map(url => fetch(url).then(res => res.json()))])
|
62 |
+
.then(([out, OutC, OutL, OutB, OutT]) => {
|
63 |
+
// Extract necessary data from the response
|
64 |
+
lang = OutL;
|
65 |
+
if (filter_badwords) { badWords = OutB.badwords.split(',') }
|
66 |
+
lang_index = lang.use_lang_index;
|
67 |
+
use_text_stream = out.use_text_stream;
|
68 |
+
display_avatar_in_chat = out.display_avatar_in_chat;
|
69 |
+
display_microphone_in_chat = out.display_microphone_in_chat;
|
70 |
+
microphone_speak_lang = out.microphone_speak_lang;
|
71 |
+
google_voice = out.google_voice;
|
72 |
+
google_voice_lang_code = out.google_voice_lang_code;
|
73 |
+
display_contacts_user_list = out.display_contacts_user_list;
|
74 |
+
display_copy_text_button_in_chat = out.display_copy_text_button_in_chat;
|
75 |
+
display_audio_button_answers = out.display_audio_button_answers;
|
76 |
+
filter_badwords = out.filter_badwords;
|
77 |
+
chat_history = out.chat_history;
|
78 |
+
chat_font_size = out.chat_font_size;
|
79 |
+
|
80 |
+
loadSpeechRecognition();
|
81 |
+
|
82 |
+
copy_text_in_chat = display_copy_text_button_in_chat ? `<button class="copy-text" onclick="copyText(this)"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><rect x="8" y="2" width="8" height="4" rx="1" ry="1"></rect></svg> <span class="label-copy-code">${lang["translate"][lang_index].copy_text1}</span></button>` : '';
|
83 |
+
var s = document.createElement('style'); s.innerHTML = '.message-text{font-size:' + chat_font_size + ' !important;}'; document.head.appendChild(s);
|
84 |
+
|
85 |
+
if (!display_contacts_user_list) {
|
86 |
+
$(".toggle_employees_list").hide();
|
87 |
+
$(".col-contacts-border").hide();
|
88 |
+
}
|
89 |
+
|
90 |
+
if (display_microphone_in_chat) {
|
91 |
+
$("#microphone-button").show()
|
92 |
+
}
|
93 |
+
// Populate array_widgets with character data and create HTML elements for each character card
|
94 |
+
$("#load-character").html("");
|
95 |
+
$(".ai-contacts-scroll").html("");
|
96 |
+
for (var i = 0; i < OutC.length; i++) {
|
97 |
+
array_widgets.push({
|
98 |
+
'id': OutC[i]['id'],
|
99 |
+
'name': OutC[i]['name'],
|
100 |
+
'widget_name': OutC[i]['widget_name'],
|
101 |
+
'image': OutC[i]['image'],
|
102 |
+
'welcome_message': OutC[i]['welcome_message'],
|
103 |
+
'display_welcome_message': OutC[i]['display_welcome_message'],
|
104 |
+
'training': OutC[i]['training'],
|
105 |
+
'description': OutC[i]['description'],
|
106 |
+
'chat_minlength': OutC[i]['chat_minlength'],
|
107 |
+
'chat_maxlength': OutC[i]['chat_maxlength'],
|
108 |
+
'max_num_chats_api': OutC[i]['max_num_chats_api']
|
109 |
+
})
|
110 |
+
|
111 |
+
$("#load-character").append(`
|
112 |
+
|
113 |
+
<div class="card-option start-chat" data-index="${i}">
|
114 |
+
<div class="card-option-img"><img src="${array_widgets[i]['image']}" alt="${array_widgets[i]['widget_name']}" title="${array_widgets[i]['widget_name']}"></div>
|
115 |
+
<div class="card-option-title"><h5>${array_widgets[i]['widget_name']}</h5></div>
|
116 |
+
</div>
|
117 |
+
`)
|
118 |
+
}
|
119 |
+
|
120 |
+
// Get chat history and update the last_chat property for each character
|
121 |
+
if (chat_history) {
|
122 |
+
arr2 = JSON.parse(localStorage.getItem("oracle_chat_v1"));
|
123 |
+
|
124 |
+
array_widgets.forEach((item1) => {
|
125 |
+
const item2 = (arr2 && arr2.find((item2) => item2.id === item1.id));
|
126 |
+
if (item2) {
|
127 |
+
item1.last_chat = item2.last_chat;
|
128 |
+
}
|
129 |
+
});
|
130 |
+
}
|
131 |
+
translate();
|
132 |
+
$("#loading").fadeOut();
|
133 |
+
|
134 |
+
|
135 |
+
}).catch(err => { throw err })
|
136 |
+
}
|
137 |
+
|
138 |
+
function currentDate() {
|
139 |
+
const timestamp = new Date();
|
140 |
+
return timestamp.toLocaleString();
|
141 |
+
}
|
142 |
+
|
143 |
+
|
144 |
+
// Define a placeholder for the image
|
145 |
+
const placeholder = "img/placeholder.svg";
|
146 |
+
|
147 |
+
// Check if the image is in the visible area
|
148 |
+
$(window).on("scroll", function () {
|
149 |
+
$("img[data-src]").each(function () {
|
150 |
+
if (isElementInViewport($(this))) {
|
151 |
+
$(this).attr("src", $(this).attr("data-src"));
|
152 |
+
$(this).removeAttr("data-src");
|
153 |
+
}
|
154 |
+
});
|
155 |
+
});
|
156 |
+
|
157 |
+
// Helper function to check if the element is in the visible area
|
158 |
+
function isElementInViewport(el) {
|
159 |
+
const rect = el.get(0).getBoundingClientRect();
|
160 |
+
return (
|
161 |
+
rect.bottom >= 0 &&
|
162 |
+
rect.right >= 0 &&
|
163 |
+
rect.top <= $(window).height() &&
|
164 |
+
rect.left <= $(window).width()
|
165 |
+
);
|
166 |
+
}
|
167 |
+
|
168 |
+
//Main function of GPT-3 chat API
|
169 |
+
async function getResponse(prompt) {
|
170 |
+
|
171 |
+
//Conversation history
|
172 |
+
array_chat.push({ "name": "User", "message": prompt, "isImg": false, "date": currentDate() })
|
173 |
+
array_messages = [];
|
174 |
+
|
175 |
+
//Converting chat to turbo API model
|
176 |
+
for (let i = 0; i < array_chat.length; i++) {
|
177 |
+
let message = { "role": "", "content": "" };
|
178 |
+
|
179 |
+
if (array_chat[i].training === true) {
|
180 |
+
let system_message = { "role": "system", "content": array_chat[i].message };
|
181 |
+
array_messages.push(system_message);
|
182 |
+
} else {
|
183 |
+
if (array_chat[i].name === "User") {
|
184 |
+
message.role = "user";
|
185 |
+
} else {
|
186 |
+
message.role = "assistant";
|
187 |
+
}
|
188 |
+
message.content = array_chat[i].message;
|
189 |
+
array_messages.push(message);
|
190 |
+
}
|
191 |
+
}
|
192 |
+
|
193 |
+
if (array_messages.length > max_num_chats_api) {
|
194 |
+
var slice_messages = max_num_chats_api - 2;
|
195 |
+
array_messages = array_messages.slice(0, 2).concat(array_messages.slice(-slice_messages));
|
196 |
+
}
|
197 |
+
/*
|
198 |
+
const params = new URLSearchParams();
|
199 |
+
params.append('array_chat', JSON.stringify(array_messages));
|
200 |
+
params.append('prompts_name', prompts_name);
|
201 |
+
*/
|
202 |
+
|
203 |
+
try {
|
204 |
+
let question = array_messages[array_messages.length - 1].content;
|
205 |
+
// Datos a enviar al servidor
|
206 |
+
var questionData = {
|
207 |
+
question: question
|
208 |
+
};
|
209 |
+
|
210 |
+
//console.log(message);
|
211 |
+
const fullPrompt = "That is a responses' example maded in English to test capacities of that chat";
|
212 |
+
const randomID = generateUniqueID();
|
213 |
+
$("#overflow-chat").append(`
|
214 |
+
|
215 |
+
<div class="conversation-thread thread-ai">
|
216 |
+
${avatar_in_chat}
|
217 |
+
<div class="message-container">
|
218 |
+
<div class="message-info">
|
219 |
+
${copy_text_in_chat}
|
220 |
+
${audio_in_chat}
|
221 |
+
<div class="user-name"><h5>${prompts_name}</h5></div>
|
222 |
+
<div class="message-text">
|
223 |
+
<div class="chat-response ${randomID}"><span class='get-stream'></span><span class='cursor'></span></div>
|
224 |
+
</div>
|
225 |
+
<div class="date-chat"><img src="img/icon-clock.svg"> ${currentDate()}</div>
|
226 |
+
</div>
|
227 |
+
</div>
|
228 |
+
</div>
|
229 |
+
`);
|
230 |
+
|
231 |
+
//$(`.${randomID}`).append(fullPrompt);
|
232 |
+
//scrollChatBottom();
|
233 |
+
//OK
|
234 |
+
|
235 |
+
// Realiza una llamada POST al endpoint /answer_question
|
236 |
+
$.ajax({
|
237 |
+
type: "POST",
|
238 |
+
url: `/answer_question/${uuid}`,
|
239 |
+
data: JSON.stringify(questionData),
|
240 |
+
contentType: "application/json",
|
241 |
+
success: function (data) {
|
242 |
+
// La respuesta se encuentra en data.response
|
243 |
+
var response = data.answer;
|
244 |
+
//console.log(data, response);
|
245 |
+
|
246 |
+
$(".cursor").remove();
|
247 |
+
str = $(`.${randomID}`).html();
|
248 |
+
str = escapeHtml(str);
|
249 |
+
$(`.${randomID}`).html(str);
|
250 |
+
$(`.chat_${randomID} .chat-audio`).fadeIn('slow');
|
251 |
+
enableChat();
|
252 |
+
scrollChatBottom();
|
253 |
+
|
254 |
+
//if(!use_text_stream){
|
255 |
+
$(`.${randomID}`).append(response);
|
256 |
+
scrollChatBottom();
|
257 |
+
//}
|
258 |
+
|
259 |
+
array_chat.push({ "name": prompts_name, "message": response, "date": currentDate() });
|
260 |
+
checkClearChatDisplay();
|
261 |
+
saveChatHistory();
|
262 |
+
//enableChat();
|
263 |
+
}
|
264 |
+
});
|
265 |
+
|
266 |
+
|
267 |
+
$(`.chat_${randomID} .chat-audio`).hide();
|
268 |
+
scrollChatBottom();
|
269 |
+
} catch (e) {
|
270 |
+
console.error(`Error creating SSE: ${e}`);
|
271 |
+
}
|
272 |
+
}
|
273 |
+
|
274 |
+
function generateUniqueID(prefix = 'id_') {
|
275 |
+
const timestamp = Date.now();
|
276 |
+
return `${prefix}${timestamp}`;
|
277 |
+
}
|
278 |
+
|
279 |
+
function streamChat(source, randomID) {
|
280 |
+
let fullPrompt = "";
|
281 |
+
let partPrompt = "";
|
282 |
+
source.addEventListener('message', function (e) {
|
283 |
+
//console.log(e.data);
|
284 |
+
let data = e.data;
|
285 |
+
let tokens = {};
|
286 |
+
|
287 |
+
if (typeof data === 'string') {
|
288 |
+
if (data.startsWith('[ERROR]')) {
|
289 |
+
let message = data.substr('[ERROR]'.length).trim();
|
290 |
+
toastr.error(message);
|
291 |
+
enableChat();
|
292 |
+
return;
|
293 |
+
} else if (data === '[DONE]') {
|
294 |
+
$(".cursor").remove();
|
295 |
+
str = $(`.${randomID}`).html();
|
296 |
+
str = escapeHtml(str);
|
297 |
+
$(`.${randomID}`).html(str);
|
298 |
+
$(`.chat_${randomID} .chat-audio`).fadeIn('slow');
|
299 |
+
enableChat();
|
300 |
+
scrollChatBottom();
|
301 |
+
|
302 |
+
if (!use_text_stream) {
|
303 |
+
$(`.${randomID}`).append(fullPrompt);
|
304 |
+
scrollChatBottom();
|
305 |
+
}
|
306 |
+
|
307 |
+
array_chat.push({ "name": prompts_name, "message": fullPrompt, "date": currentDate() });
|
308 |
+
checkClearChatDisplay();
|
309 |
+
saveChatHistory();
|
310 |
+
|
311 |
+
return false;
|
312 |
+
} else {
|
313 |
+
try {
|
314 |
+
tokens = JSON.parse(data);
|
315 |
+
} catch (err) {
|
316 |
+
|
317 |
+
if (typeof data === "string") {
|
318 |
+
toastr.error("❌ " + data)
|
319 |
+
enableChat();
|
320 |
+
return false;
|
321 |
+
}
|
322 |
+
|
323 |
+
}
|
324 |
+
}
|
325 |
+
}
|
326 |
+
|
327 |
+
if (!tokens || !tokens.choices || tokens.choices.length === 0) {
|
328 |
+
toastr.error("❌ " + tokens.message)
|
329 |
+
enableChat();
|
330 |
+
$(`.chat_${randomID}`).remove();
|
331 |
+
return;
|
332 |
+
}
|
333 |
+
|
334 |
+
var choice = tokens.choices[0]; //is_model_turbo ? tokens.choices[0].delta : tokens.choices[0];
|
335 |
+
partPrompt = "";
|
336 |
+
if (choice.content || choice.text) {
|
337 |
+
fullPrompt += choice.content || choice.text;
|
338 |
+
partPrompt = choice.content || choice.text;
|
339 |
+
}
|
340 |
+
console.log('partPrompt:', partPrompt);
|
341 |
+
|
342 |
+
if (use_text_stream) {
|
343 |
+
$(`.${randomID} .get-stream`).append(partPrompt);
|
344 |
+
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
|
345 |
+
scrollChatBottom();
|
346 |
+
}
|
347 |
+
}
|
348 |
+
});
|
349 |
+
}
|
350 |
+
|
351 |
+
|
352 |
+
function saveChatHistory() {
|
353 |
+
/*
|
354 |
+
if (array_widgets[data_index]) {
|
355 |
+
array_widgets[data_index].last_chat = array_chat;
|
356 |
+
}
|
357 |
+
if(chat_history){
|
358 |
+
localStorage.setItem("oracle_chat_v1", JSON.stringify(array_widgets));
|
359 |
+
}
|
360 |
+
console.log("Saving...")
|
361 |
+
*/
|
362 |
+
}
|
363 |
+
|
364 |
+
//Function that appends the AI response in the chat in html
|
365 |
+
function responseChat(response) {
|
366 |
+
|
367 |
+
for (var i = 0; i < filterBotWords.length; i++) {
|
368 |
+
if (response.indexOf(filterBotWords[i]) !== -1) {
|
369 |
+
response = response.replace(filterBotWords[i], "");
|
370 |
+
}
|
371 |
+
}
|
372 |
+
|
373 |
+
array_chat.push({ "name": prompts_name, "message": response, "date": currentDate() })
|
374 |
+
response = escapeHtml(response)
|
375 |
+
|
376 |
+
avatar_in_chat = "";
|
377 |
+
if (display_avatar_in_chat === true) {
|
378 |
+
avatar_in_chat = `<div class="user-image"><img src="img/robot-avatar.png" alt="${prompts_name}" title="${prompts_name}"></div>`;
|
379 |
+
}
|
380 |
+
|
381 |
+
audio_in_chat = "";
|
382 |
+
if (display_audio_button_answers === true) {
|
383 |
+
audio_in_chat = `<div class='chat-audio'><img data-play="false" src='img/btn_tts_play.svg'></div>`;
|
384 |
+
}
|
385 |
+
|
386 |
+
|
387 |
+
$("#overflow-chat").append(`
|
388 |
+
<div class="conversation-thread thread-ai">
|
389 |
+
${avatar_in_chat}
|
390 |
+
<div class="message-container">
|
391 |
+
<div class="message-info">
|
392 |
+
${copy_text_in_chat}
|
393 |
+
${audio_in_chat}
|
394 |
+
<div class="user-name"><h5>${prompts_name}</h5></div>
|
395 |
+
<div class="message-text">
|
396 |
+
<div class="chat-response">${response}</div>
|
397 |
+
<div class="date-chat"><img src="img/icon-clock.svg"> ${currentDate()}</div>
|
398 |
+
</div>
|
399 |
+
</div>
|
400 |
+
</div>
|
401 |
+
</div>
|
402 |
+
`);
|
403 |
+
scrollChatBottom();
|
404 |
+
enableChat();
|
405 |
+
saveChatHistory();
|
406 |
+
checkClearChatDisplay();
|
407 |
+
}
|
408 |
+
|
409 |
+
function appendChatImg(chat) {
|
410 |
+
const imageID = Date.now();
|
411 |
+
IAimagePrompt = chat.replace("/img ", "");
|
412 |
+
|
413 |
+
$("#overflow-chat").append(`
|
414 |
+
|
415 |
+
<div class="conversation-thread thread-ai">
|
416 |
+
<div class="message-container">
|
417 |
+
<div class="message-info">
|
418 |
+
<div class="user-name"><h5>${prompts_name}</h5></div>
|
419 |
+
<div class="message-text">
|
420 |
+
<div class="chat-response no-white-space">
|
421 |
+
<p>${lang["translate"][lang_index].creating_ia_image} <strong class='ia-image-prompt-label'>${IAimagePrompt}</strong>
|
422 |
+
<div class="wrapper-image-ia image_ia_${imageID}">
|
423 |
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="40" height="40">
|
424 |
+
<circle cx="50" cy="50" r="40" stroke="#c5c5c5" stroke-width="8" fill="none" />
|
425 |
+
<circle cx="50" cy="50" r="40" stroke="#249ef7" stroke-width="8" fill="none" stroke-dasharray="250" stroke-dashoffset="0">
|
426 |
+
<animate attributeName="stroke-dashoffset" dur="2s" repeatCount="indefinite" from="0" to="250" />
|
427 |
+
</circle>
|
428 |
+
</svg>
|
429 |
+
</div>
|
430 |
+
<p class='expire-img-message'>${lang["translate"][lang_index].expire_img_message}</p>
|
431 |
+
</div>
|
432 |
+
</div>
|
433 |
+
</div>
|
434 |
+
<div class='date-chat'><img src='img/icon-clock.svg'> ${currentDate()}</div>
|
435 |
+
</div>
|
436 |
+
</div>
|
437 |
+
`);
|
438 |
+
|
439 |
+
scrollChatBottom();
|
440 |
+
$("#chat").val("");
|
441 |
+
}
|
442 |
+
|
443 |
+
//Function that sends the user's question to the chat in html and to the API
|
444 |
+
function sendUserChat() {
|
445 |
+
let chat = $("#chat").val();
|
446 |
+
|
447 |
+
if (filter_badwords) {
|
448 |
+
// Create regex to check if word is forbidden
|
449 |
+
const regex = new RegExp(`\\b(${badWords.join('|')})(?=\\s|$)`, 'gi');
|
450 |
+
// Check if message contains a bad word
|
451 |
+
const hasBadWord = regex.test(chat);
|
452 |
+
// Replace bad words with asterisks
|
453 |
+
if (hasBadWord) {
|
454 |
+
const sanitizedMessage = chat.replace(regex, match => '*'.repeat(match.length));
|
455 |
+
$("#chat").val(sanitizedMessage);
|
456 |
+
toastr.error(`${lang["translate"][lang_index].badword_feedback}`);
|
457 |
+
return false;
|
458 |
+
}
|
459 |
+
}
|
460 |
+
|
461 |
+
//checks if the user has entered the minimum amount of characters
|
462 |
+
if (chat.length < chat_minlength) {
|
463 |
+
toastr.error(`${lang["translate"][lang_index].error_chat_minlength} ${chat_minlength} ${lang["translate"][lang_index].error_chat_minlength_part2}`);
|
464 |
+
return false;
|
465 |
+
}
|
466 |
+
|
467 |
+
chat = escapeHtml(chat)
|
468 |
+
|
469 |
+
avatar_in_chat = display_avatar_in_chat ? `<div class="user-image"><img onerror="this.src='img/no-image.svg'" src="img/robot-avatar.png" alt="${prompts_name}" title="${prompts_name}"></div>` : '';
|
470 |
+
audio_in_chat = display_audio_button_answers ? `<div class='chat-audio'><img data-play="false" src='img/btn_tts_play.svg'></div>` : '';
|
471 |
+
|
472 |
+
$("#overflow-chat").append(`
|
473 |
+
<div class="conversation-thread thread-user">
|
474 |
+
<div class="message-container">
|
475 |
+
<div class="message-info">
|
476 |
+
${copy_text_in_chat}
|
477 |
+
${audio_in_chat}
|
478 |
+
<div class="user-name"><h5>${lang["translate"][lang_index].you}</h5></div>
|
479 |
+
<div class="message-text"><div class="chat-response">${chat}</div></div>
|
480 |
+
<div class="date-chat"><img src="img/icon-clock.svg"> ${currentDate()}</div>
|
481 |
+
</div>
|
482 |
+
</div>
|
483 |
+
</div>
|
484 |
+
`);
|
485 |
+
|
486 |
+
scrollChatBottom();
|
487 |
+
hljs.highlightAll();
|
488 |
+
|
489 |
+
if (chat.includes("/img")) {
|
490 |
+
appendChatImg(chat);
|
491 |
+
} else {
|
492 |
+
getResponse(chat);
|
493 |
+
}
|
494 |
+
|
495 |
+
$("#chat").val("");
|
496 |
+
disableChat();
|
497 |
+
}
|
498 |
+
|
499 |
+
//Send message in chat by pressing enter
|
500 |
+
$("#chat").keypress(function (e) {
|
501 |
+
if (e.which === 13 && !e.shiftKey) {
|
502 |
+
sendUserChat();
|
503 |
+
return false;
|
504 |
+
}
|
505 |
+
});
|
506 |
+
|
507 |
+
|
508 |
+
$(".btn-send-chat").on("click", function () {
|
509 |
+
sendUserChat();
|
510 |
+
})
|
511 |
+
|
512 |
+
|
513 |
+
// Function to shuffle the array
|
514 |
+
function shuffleArray(array) {
|
515 |
+
return array.sort(() => Math.random() - 0.5);
|
516 |
+
}
|
517 |
+
|
518 |
+
function translate() {
|
519 |
+
translationObj = lang.translate[lang_index];
|
520 |
+
|
521 |
+
// Loop através de todas as chaves do objeto translationObj
|
522 |
+
for (let key in translationObj) {
|
523 |
+
// Obtenha o valor da chave atual
|
524 |
+
let value = translationObj[key];
|
525 |
+
|
526 |
+
// Encontre todos os elementos no HTML que contêm o bloco entre {{ e }}
|
527 |
+
let elements = document.body.querySelectorAll('*:not(script):not(style)');
|
528 |
+
elements.forEach(function (element) {
|
529 |
+
for (let i = 0; i < element.childNodes.length; i++) {
|
530 |
+
let node = element.childNodes[i];
|
531 |
+
if (node.nodeType === Node.TEXT_NODE) {
|
532 |
+
let text = node.nodeValue;
|
533 |
+
let regex = new RegExp(`{{\\s*${key}\\s*}}`, 'g');
|
534 |
+
if (regex.test(text)) {
|
535 |
+
// Use a propriedade innerHTML para interpretar as tags HTML
|
536 |
+
node.parentElement.innerHTML = text.replace(regex, value);
|
537 |
+
}
|
538 |
+
} else if (node.nodeType === Node.ELEMENT_NODE) {
|
539 |
+
// Para elementos com atributos HTML, substitua o valor da chave no atributo
|
540 |
+
let attributes = node.attributes;
|
541 |
+
for (let j = 0; j < attributes.length; j++) {
|
542 |
+
let attribute = attributes[j];
|
543 |
+
if (attribute.value.includes(`{{${key}}}`)) {
|
544 |
+
let newValue = attribute.value.replace(`{{${key}}}`, value);
|
545 |
+
node.setAttribute(attribute.name, newValue);
|
546 |
+
}
|
547 |
+
}
|
548 |
+
}
|
549 |
+
}
|
550 |
+
});
|
551 |
+
}
|
552 |
+
}
|
553 |
+
|
554 |
+
function closeChat() {
|
555 |
+
hideChat();
|
556 |
+
enableChat();
|
557 |
+
$(window).scrollTop(scrollPosition);
|
558 |
+
$(".cards-options, .select-option-title, #chat-background").show();
|
559 |
+
$(".message-area-bottom, .ai-chat-top").hide();
|
560 |
+
$("#body-frame").removeClass("body-frame-chat");
|
561 |
+
$(".chat-frame").removeClass("chat-frame-talk");
|
562 |
+
$(".hide-section").removeClass("hideOnMobile");
|
563 |
+
$("body").removeClass("custom-body");
|
564 |
+
$("#overflow-chat").hide();
|
565 |
+
return false;
|
566 |
+
}
|
567 |
+
|
568 |
+
function stopChat() {
|
569 |
+
if (source) {
|
570 |
+
enableChat();
|
571 |
+
source.close();
|
572 |
+
$(".cursor").remove();
|
573 |
+
}
|
574 |
+
}
|
575 |
+
|
576 |
+
$(".btn-cancel-chat").on("click", function () {
|
577 |
+
stopChat();
|
578 |
+
})
|
579 |
+
|
580 |
+
document.addEventListener("keydown", function (event) {
|
581 |
+
if (event.key === "Escape") {
|
582 |
+
closeChat();
|
583 |
+
}
|
584 |
+
});
|
585 |
+
|
586 |
+
function hideChat() {
|
587 |
+
hideFeedback();
|
588 |
+
cancelSpeechSynthesis();
|
589 |
+
$(".hide-section").show();
|
590 |
+
$("#chat-background").hide();
|
591 |
+
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
|
592 |
+
$("#overflow-chat").hide();
|
593 |
+
}
|
594 |
+
|
595 |
+
}
|
596 |
+
|
597 |
+
// Agrega el evento para el botón "Enviar"
|
598 |
+
document.getElementById('sendButton').addEventListener('click', function () {
|
599 |
+
var textData = {
|
600 |
+
text: $('#textArea').val(),
|
601 |
+
pdf: null,
|
602 |
+
html_url: null
|
603 |
+
};
|
604 |
+
|
605 |
+
// Realiza una llamada POST al endpoint /store_text
|
606 |
+
$.ajax({
|
607 |
+
type: "POST",
|
608 |
+
url: `/store_text/${uuid}`,
|
609 |
+
data: JSON.stringify(textData),
|
610 |
+
contentType: "application/json",
|
611 |
+
success: function (data) {
|
612 |
+
$('#textArea').val('');
|
613 |
+
// Cierra el modal después de enviar el texto
|
614 |
+
textModal.hide();
|
615 |
+
displayChat(chatId);
|
616 |
+
}
|
617 |
+
});
|
618 |
+
});
|
619 |
+
|
620 |
+
$('#sendButton2').click(function (evt) {
|
621 |
+
evt.preventDefault();
|
622 |
+
var formData = new FormData($('#file-form')[0]);
|
623 |
+
|
624 |
+
$.ajax({
|
625 |
+
url: `/upload_file/${uuid}`,
|
626 |
+
type: 'POST',
|
627 |
+
data: formData,
|
628 |
+
async: false,
|
629 |
+
cache: false,
|
630 |
+
contentType: false,
|
631 |
+
processData: false,
|
632 |
+
success: function (data) {
|
633 |
+
$('#fileInput').val('');
|
634 |
+
// Cierra el modal después de enviar el texto
|
635 |
+
textModal.hide();
|
636 |
+
displayChat(chatId);
|
637 |
+
},
|
638 |
+
error: function (error) {
|
639 |
+
console.log(error);
|
640 |
+
alert('Error al cargar el archivo');
|
641 |
+
}
|
642 |
+
});
|
643 |
+
});
|
644 |
+
|
645 |
+
|
646 |
+
|
647 |
+
$(document).delegate(".start-chat", "click", function () {
|
648 |
+
chatId = $(this).attr("data-index");
|
649 |
+
if (chatId == 0) {
|
650 |
+
textModal = new bootstrap.Modal(document.getElementById('modalText'), {
|
651 |
+
keyboard: false
|
652 |
+
});
|
653 |
+
textModal.show();
|
654 |
+
} else if (chatId == 1) {
|
655 |
+
textModal = new bootstrap.Modal(document.getElementById('modalFile'), {
|
656 |
+
keyboard: false
|
657 |
+
});
|
658 |
+
textModal.show();
|
659 |
+
}
|
660 |
+
//console.log(chatId);
|
661 |
+
//displayChat($(this).attr("data-index"));
|
662 |
+
})
|
663 |
+
|
664 |
+
function displayChat(index) {
|
665 |
+
data_index = index;
|
666 |
+
cancelSpeechSynthesis();
|
667 |
+
$(".hide-section").addClass("hideOnMobile");
|
668 |
+
$(".chat-frame").addClass("chat-frame-talk");
|
669 |
+
stopChat();
|
670 |
+
scrollPosition = $(this).scrollTop();
|
671 |
+
array_messages = [];
|
672 |
+
$("#overflow-chat").html("");
|
673 |
+
$("#overflow-chat").show();
|
674 |
+
$("#body-frame").addClass("body-frame-chat");
|
675 |
+
array_chat = [];
|
676 |
+
prompts_name = array_widgets[data_index]['name'];
|
677 |
+
prompts_widget_name = array_widgets[data_index]['widget_name'];
|
678 |
+
prompts_expert = array_widgets[data_index]['expert'];
|
679 |
+
prompts_image = array_widgets[data_index]['image'];
|
680 |
+
prompts_background_color = array_widgets[data_index]['background_thumb_color'];
|
681 |
+
prompts_training = array_widgets[data_index]['training'];
|
682 |
+
displayWelcomeMessage = array_widgets[data_index]['display_welcome_message'];
|
683 |
+
welcome_message = array_widgets[data_index]['welcome_message'];
|
684 |
+
chat_minlength = array_widgets[data_index]['chat_minlength'];
|
685 |
+
chat_maxlength = array_widgets[data_index]['chat_maxlength'];
|
686 |
+
max_num_chats_api = array_widgets[data_index]['max_num_chats_api'];
|
687 |
+
lastChatLength = (array_widgets[data_index] && array_widgets[data_index]['last_chat']) ? array_widgets[data_index]['last_chat'].length : [];
|
688 |
+
$(".ai-chat-top-job").html(prompts_widget_name)
|
689 |
+
$(".cards-options, .select-option-title").hide();
|
690 |
+
$("#chat").val("");
|
691 |
+
// Set the maxlength attribute of the chat element to the value of chat_maxlength
|
692 |
+
$("#chat").attr("maxlength", chat_maxlength);
|
693 |
+
|
694 |
+
|
695 |
+
$(".message-area-bottom, .ai-chat-top").show();
|
696 |
+
if (lastChatLength > 2) {
|
697 |
+
loadChat();
|
698 |
+
} else {
|
699 |
+
const chat = { "name": prompts_name, "message": prompts_training, "training": true, "date": currentDate() };
|
700 |
+
array_chat.push(chat);
|
701 |
+
if (displayWelcomeMessage) {
|
702 |
+
responseChat(array_widgets[data_index]['welcome_message']);
|
703 |
+
}
|
704 |
+
}
|
705 |
+
|
706 |
+
setTimeout(function () {
|
707 |
+
enableChat();
|
708 |
+
}, 100);
|
709 |
+
|
710 |
+
$("body").addClass("custom-body");
|
711 |
+
translate();
|
712 |
+
}
|
713 |
+
|
714 |
+
|
715 |
+
const escapeHtml = (str) => {
|
716 |
+
|
717 |
+
// Check if the string contains <code> or <pre> tags
|
718 |
+
if (/<code>|<\/code>|<pre>|<\/pre>/g.test(str)) {
|
719 |
+
// Returns the string without replacing the characters inside the tags
|
720 |
+
return str;
|
721 |
+
}
|
722 |
+
|
723 |
+
// Replaces special characters with their respective HTML codes
|
724 |
+
str = str.replace(/[&<>"'`{}()\[\]]/g, (match) => {
|
725 |
+
switch (match) {
|
726 |
+
|
727 |
+
case '<': return '<';
|
728 |
+
case '>': return '>';
|
729 |
+
case '{': return '{';
|
730 |
+
case '}': return '}';
|
731 |
+
case '(': return '(';
|
732 |
+
case ')': return ')';
|
733 |
+
case '[': return '[';
|
734 |
+
case ']': return ']';
|
735 |
+
default: return match;
|
736 |
+
}
|
737 |
+
});
|
738 |
+
|
739 |
+
|
740 |
+
// Remove the stream <span class="get-stream">
|
741 |
+
str = str.replace(/<span\s+class="get-stream">/g, "");
|
742 |
+
|
743 |
+
// Remove the closing tag </span>
|
744 |
+
str = str.replace(/<\/span>/g, "");
|
745 |
+
|
746 |
+
// Replaces the ```code``` snippet with <pre><code>code</code></pre>
|
747 |
+
str = str.replace(/```(\w+)?([\s\S]*?)```/g, '<pre><code>$2</code><button class="copy-code" onclick="copyCode(this)"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><rect x="8" y="2" width="8" height="4" rx="1" ry="1"></rect></svg> <span class="label-copy-code">' + lang["translate"][lang_index].copy_code1 + '</span></button></pre>').replace(/(\d+\.\s)/g, "<strong>$1</strong>").replace(/(^[A-Za-z\s]+:)/gm, "<strong>$1</strong>");
|
748 |
+
|
749 |
+
|
750 |
+
return str;
|
751 |
+
};
|
752 |
+
|
753 |
+
// function to copy the text content
|
754 |
+
function copyText(button) {
|
755 |
+
const div = button.parentElement;
|
756 |
+
const code = div.querySelector('.chat-response');
|
757 |
+
const range = document.createRange();
|
758 |
+
range.selectNode(code);
|
759 |
+
window.getSelection().removeAllRanges();
|
760 |
+
window.getSelection().addRange(range);
|
761 |
+
document.execCommand("copy");
|
762 |
+
window.getSelection().removeAllRanges();
|
763 |
+
button.innerHTML = lang["translate"][lang_index].copy_text2;
|
764 |
+
}
|
765 |
+
|
766 |
+
// Function to copy the content of the <pre> tag
|
767 |
+
function copyCode(button) {
|
768 |
+
const pre = button.parentElement;
|
769 |
+
const code = pre.querySelector('code');
|
770 |
+
const range = document.createRange();
|
771 |
+
range.selectNode(code);
|
772 |
+
window.getSelection().removeAllRanges();
|
773 |
+
window.getSelection().addRange(range);
|
774 |
+
document.execCommand("copy");
|
775 |
+
window.getSelection().removeAllRanges();
|
776 |
+
button.innerHTML = lang["translate"][lang_index].copy_code2;
|
777 |
+
}
|
778 |
+
|
779 |
+
// Clear Chat
|
780 |
+
function clearChat(target) {
|
781 |
+
// Display confirmation dialog using SweetAlert2 library
|
782 |
+
Swal.fire({
|
783 |
+
title: lang["translate"][lang_index].confirmation_delete_chat1,
|
784 |
+
text: lang["translate"][lang_index].confirmation_delete_chat2,
|
785 |
+
icon: 'warning',
|
786 |
+
showCancelButton: true,
|
787 |
+
confirmButtonColor: '#3085d6',
|
788 |
+
cancelButtonColor: '#d33',
|
789 |
+
confirmButtonText: lang["translate"][lang_index].confirmation_delete_chat3,
|
790 |
+
cancelButtonText: lang["translate"][lang_index].confirmation_delete_chat4
|
791 |
+
}).then((result) => {
|
792 |
+
// If user confirms deletion
|
793 |
+
if (result.isConfirmed) {
|
794 |
+
// If target is "all", clear chat history for all characters
|
795 |
+
if (target == "all") {
|
796 |
+
for (var i = 0; i < array_widgets.length; i++) {
|
797 |
+
array_widgets[i]['last_chat'] = [];
|
798 |
+
}
|
799 |
+
// Display success message using SweetAlert2
|
800 |
+
Swal.fire(
|
801 |
+
lang["translate"][lang_index].confirmation_delete_chat5,
|
802 |
+
lang["translate"][lang_index].confirmation_delete_chat_all,
|
803 |
+
'success'
|
804 |
+
)
|
805 |
+
} else {
|
806 |
+
// Otherwise, clear chat history for current character only
|
807 |
+
array_widgets[data_index]['last_chat'] = [];
|
808 |
+
// Display success message using SweetAlert2
|
809 |
+
Swal.fire(
|
810 |
+
lang["translate"][lang_index].confirmation_delete_chat5,
|
811 |
+
lang["translate"][lang_index].confirmation_delete_current_chat,
|
812 |
+
'success'
|
813 |
+
)
|
814 |
+
}
|
815 |
+
|
816 |
+
// Clear chat display
|
817 |
+
$("#overflow-chat").html("");
|
818 |
+
// Reset chat history and add initial message
|
819 |
+
array_chat = [];
|
820 |
+
array_chat.push({
|
821 |
+
"name": prompts_name,
|
822 |
+
"message": prompts_training,
|
823 |
+
"training": true,
|
824 |
+
"isImg": false,
|
825 |
+
"date": currentDate()
|
826 |
+
})
|
827 |
+
// Save updated character data to local storage
|
828 |
+
localStorage.setItem("oracle_chat_v1", JSON.stringify(array_widgets));
|
829 |
+
|
830 |
+
// If enabled, display welcome message for current character
|
831 |
+
if (displayWelcomeMessage) {
|
832 |
+
responseChat(array_widgets[data_index]['welcome_message']);
|
833 |
+
}
|
834 |
+
}
|
835 |
+
})
|
836 |
+
}
|
837 |
+
|
838 |
+
function loadChat() {
|
839 |
+
if (chat_history) {
|
840 |
+
checkClearChatDisplay();
|
841 |
+
|
842 |
+
for (var i = 0; i < array_widgets[data_index]['last_chat'].length; i++) {
|
843 |
+
const currentChat = array_widgets[data_index]['last_chat'][i];
|
844 |
+
|
845 |
+
if (currentChat.name === "User") {
|
846 |
+
if (currentChat.isImg === true) {
|
847 |
+
const imageID = Date.now();
|
848 |
+
const imgURL = Array.isArray(currentChat.imgURL) ? currentChat.imgURL.map(url => url).join('') : '';
|
849 |
+
const imgHtml = Array.isArray(currentChat.imgURL) ? currentChat.imgURL.map(url => `<div class="image-ia"><img onerror="this.src='img/no-image.svg'" src="${url}"></div>`).join('') : '';
|
850 |
+
const chatHtml = `
|
851 |
+
<div class="conversation-thread thread-ai">
|
852 |
+
<div class="message-container">
|
853 |
+
<div class="message-info">
|
854 |
+
<div class="user-name"><h5>${prompts_name}</h5></div>
|
855 |
+
<div class="message-text">
|
856 |
+
<div class="chat-response no-white-space">
|
857 |
+
<p>${lang["translate"][lang_index].creating_ia_image} <strong class='ia-image-prompt-label'>${currentChat.message}</strong>
|
858 |
+
<div class="wrapper-image-ia image_ia_${imageID}">
|
859 |
+
${imgHtml}
|
860 |
+
</div>
|
861 |
+
<p class='expire-img-message'>${lang["translate"][lang_index].expire_img_message}</p>
|
862 |
+
</div>
|
863 |
+
</div>
|
864 |
+
</div>
|
865 |
+
<div class='date-chat'><img src='img/icon-clock.svg'> ${currentChat.date || ''}</div>
|
866 |
+
</div>
|
867 |
+
</div>
|
868 |
+
`;
|
869 |
+
$("#overflow-chat").append(chatHtml);
|
870 |
+
array_chat.push({ "name": "User", "message": currentChat.message, "isImg": true, imgURL: currentChat.imgURL, "date": currentDate() });
|
871 |
+
} else {
|
872 |
+
const chatResponse = escapeHtml(currentChat.message)
|
873 |
+
const chatHtml = `
|
874 |
+
<div class="conversation-thread thread-user">
|
875 |
+
<div class="message-container">
|
876 |
+
<div class="message-info">
|
877 |
+
${copy_text_in_chat}
|
878 |
+
${audio_in_chat}
|
879 |
+
<div class="user-name"><h5>${lang["translate"][lang_index].you}</h5></div>
|
880 |
+
<div class="message-text">
|
881 |
+
<div class="chat-response">${chatResponse}</div>
|
882 |
+
</div>
|
883 |
+
<div class='date-chat'><img src='img/icon-clock.svg'> ${currentChat.date || ''}</div>
|
884 |
+
</div>
|
885 |
+
</div>
|
886 |
+
</div>
|
887 |
+
`;
|
888 |
+
$("#overflow-chat").append(chatHtml);
|
889 |
+
array_chat.push({ "name": "User", "message": currentChat.message, "isImg": false, "date": currentDate() });
|
890 |
+
}
|
891 |
+
|
892 |
+
} else {
|
893 |
+
avatar_in_chat = display_avatar_in_chat ? `<div class="user-image"><img onerror="this.src='img/no-image.svg'" src="img/robot-avatar.png" alt="${prompts_name}" title="${prompts_name}"></div>` : '';
|
894 |
+
audio_in_chat = display_audio_button_answers ? `<div class='chat-audio'><img data-play="false" src='img/btn_tts_play.svg'></div>` : '';
|
895 |
+
|
896 |
+
if (!currentChat.training) {
|
897 |
+
const chatResponse = escapeHtml(currentChat.message)
|
898 |
+
const chatHtml = `
|
899 |
+
|
900 |
+
<div class="conversation-thread thread-ai">
|
901 |
+
${avatar_in_chat}
|
902 |
+
<div class="message-container">
|
903 |
+
<div class="message-info">
|
904 |
+
${copy_text_in_chat}
|
905 |
+
${audio_in_chat}
|
906 |
+
<div class="user-name"><h5>${currentChat.name}</h5></div>
|
907 |
+
<div class="message-text">
|
908 |
+
<div class="chat-response">${chatResponse}</div>
|
909 |
+
</div>
|
910 |
+
<div class='date-chat'><img src='img/icon-clock.svg'> ${currentChat.date || ''}</div>
|
911 |
+
</div>
|
912 |
+
</div>
|
913 |
+
</div>
|
914 |
+
`;
|
915 |
+
$("#overflow-chat").append(chatHtml);
|
916 |
+
}
|
917 |
+
|
918 |
+
array_chat.push({ "name": prompts_name, "message": currentChat.message, "training": currentChat.training, "date": currentDate() });
|
919 |
+
}
|
920 |
+
}
|
921 |
+
hljs.highlightAll();
|
922 |
+
setTimeout(function () {
|
923 |
+
scrollChatBottom();
|
924 |
+
}, 10);
|
925 |
+
} else {
|
926 |
+
if (displayWelcomeMessage) {
|
927 |
+
responseChat(welcome_message);
|
928 |
+
}
|
929 |
+
}
|
930 |
+
}
|
931 |
+
|
932 |
+
|
933 |
+
//Check Clear Chat display
|
934 |
+
function checkClearChatDisplay() {
|
935 |
+
if (array_widgets[data_index] && array_widgets[data_index].last_chat && array_widgets[data_index].last_chat.length > 1) {
|
936 |
+
if (chat_history) {
|
937 |
+
$("#clear-chat").show();
|
938 |
+
}
|
939 |
+
} else {
|
940 |
+
$("#clear-chat").hide();
|
941 |
+
}
|
942 |
+
|
943 |
+
const hasLastChat = array_widgets.some((result) => {
|
944 |
+
return result.last_chat && result.last_chat.length > 2;
|
945 |
+
});
|
946 |
+
|
947 |
+
if (hasLastChat) {
|
948 |
+
$("#clear-all-chats").show();
|
949 |
+
} else {
|
950 |
+
$("#clear-all-chats").hide();
|
951 |
+
}
|
952 |
+
}
|
953 |
+
|
954 |
+
//Error messages
|
955 |
+
function hideFeedback() {
|
956 |
+
toastr.remove()
|
957 |
+
}
|
958 |
+
|
959 |
+
//Force chat to scroll down
|
960 |
+
function scrollChatBottom() {
|
961 |
+
|
962 |
+
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
|
963 |
+
let body = document.getElementsByTagName("html")[0];
|
964 |
+
body.scrollTop = body.scrollHeight;
|
965 |
+
} else {
|
966 |
+
let objDiv = document.getElementById("overflow-chat");
|
967 |
+
objDiv.scrollTop = objDiv.scrollHeight;
|
968 |
+
}
|
969 |
+
|
970 |
+
hljs.highlightAll();
|
971 |
+
|
972 |
+
setTimeout(function () {
|
973 |
+
if (window.innerWidth < 768) {
|
974 |
+
window.scrollTo(0, document.documentElement.scrollHeight);
|
975 |
+
}
|
976 |
+
}, 100);
|
977 |
+
|
978 |
+
}
|
979 |
+
|
980 |
+
//Enable chat input
|
981 |
+
function enableChat() {
|
982 |
+
$(".character-typing").css('visibility', 'hidden')
|
983 |
+
$(".btn-send-chat,#chat").attr("disabled", false);
|
984 |
+
$(".btn-send-chat").show();
|
985 |
+
$(".btn-cancel-chat").hide();
|
986 |
+
var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
987 |
+
if (!isMobile) {
|
988 |
+
setTimeout(function () {
|
989 |
+
$('#chat').focus();
|
990 |
+
}, 500);
|
991 |
+
}
|
992 |
+
|
993 |
+
}
|
994 |
+
|
995 |
+
//Disable chat input
|
996 |
+
function disableChat() {
|
997 |
+
$(".character-typing").css('visibility', 'visible')
|
998 |
+
$(".character-typing").css('display', 'flex');
|
999 |
+
$(".character-typing span").html(prompts_name);
|
1000 |
+
$(".btn-send-chat,#chat").attr("disabled", true);
|
1001 |
+
$(".btn-send-chat").hide();
|
1002 |
+
$(".btn-cancel-chat").show();
|
1003 |
+
}
|
1004 |
+
|
1005 |
+
function createTextFile(data) {
|
1006 |
+
let text = "";
|
1007 |
+
|
1008 |
+
// Iterate over the array_chat array and add each message to the text variable
|
1009 |
+
data.shift();
|
1010 |
+
data.forEach(chat => {
|
1011 |
+
text += `${chat.name}: ${chat.message}\r\n`;
|
1012 |
+
});
|
1013 |
+
|
1014 |
+
text = text.replace("User:", lang["translate"][lang_index].you + ":");
|
1015 |
+
|
1016 |
+
// Create a Blob object with the text
|
1017 |
+
const blob = new Blob([text], { type: "text/plain" });
|
1018 |
+
|
1019 |
+
// Return the Blob object
|
1020 |
+
return blob;
|
1021 |
+
}
|
1022 |
+
|
1023 |
+
function downloadPdf() {
|
1024 |
+
|
1025 |
+
var docDefinition = {
|
1026 |
+
content: [
|
1027 |
+
{ text: lang["translate"][lang_index].header_title_pdf, style: 'header' },
|
1028 |
+
"\n"
|
1029 |
+
],
|
1030 |
+
|
1031 |
+
styles: {
|
1032 |
+
header: {
|
1033 |
+
fontSize: 22,
|
1034 |
+
bold: true
|
1035 |
+
},
|
1036 |
+
name: {
|
1037 |
+
fontSize: 14,
|
1038 |
+
color: '#0072c6',
|
1039 |
+
bold: true
|
1040 |
+
},
|
1041 |
+
message: {
|
1042 |
+
fontSize: 12,
|
1043 |
+
color: '#2c2c2c',
|
1044 |
+
bold: false,
|
1045 |
+
lineHeight: 1.2,
|
1046 |
+
marginTop: 4
|
1047 |
+
},
|
1048 |
+
date: {
|
1049 |
+
marginTop: 5,
|
1050 |
+
fontSize: 10,
|
1051 |
+
color: '#787878'
|
1052 |
+
},
|
1053 |
+
|
1054 |
+
defaultStyle: {
|
1055 |
+
font: 'Roboto'
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
}
|
1059 |
+
};
|
1060 |
+
|
1061 |
+
// Adds each array element to the docDefinition
|
1062 |
+
for (var i = 1; i < array_chat.length; i++) {
|
1063 |
+
var message = array_chat[i];
|
1064 |
+
var name = { text: message.name + ': ', style: 'name' };
|
1065 |
+
var messageText = { text: message.message.replace(/[\u{1F300}-\u{1F6FF}\u{1F900}-\u{1F9FF}]/gu, ''), style: 'message' };
|
1066 |
+
|
1067 |
+
docDefinition.content.push(name);
|
1068 |
+
docDefinition.content.push(messageText);
|
1069 |
+
docDefinition.content.push({ text: message.date, style: 'date' });
|
1070 |
+
docDefinition.content.push("\n");
|
1071 |
+
}
|
1072 |
+
|
1073 |
+
// Create a pdfMake instance
|
1074 |
+
var pdfMakeInstance = pdfMake.createPdf(docDefinition);
|
1075 |
+
|
1076 |
+
// Download pdf
|
1077 |
+
pdfMakeInstance.download('chat.pdf');
|
1078 |
+
}
|
1079 |
+
|
1080 |
+
// Function to download the file
|
1081 |
+
function downloadFile(blob, fileName) {
|
1082 |
+
// Create a URL object with the Blob
|
1083 |
+
const url = URL.createObjectURL(blob);
|
1084 |
+
|
1085 |
+
// Create a download link and add it to the document
|
1086 |
+
const link = document.createElement("a");
|
1087 |
+
link.href = url;
|
1088 |
+
link.download = fileName;
|
1089 |
+
document.body.appendChild(link);
|
1090 |
+
|
1091 |
+
// Simulate a click on the link to trigger the download
|
1092 |
+
link.click();
|
1093 |
+
|
1094 |
+
// Remove the link from the document
|
1095 |
+
document.body.removeChild(link);
|
1096 |
+
}
|
1097 |
+
|
1098 |
+
// Function to handle the download button click event
|
1099 |
+
function handleDownload() {
|
1100 |
+
const blob = createTextFile(array_chat);
|
1101 |
+
downloadFile(blob, "chat.txt");
|
1102 |
+
}
|
1103 |
+
|
1104 |
+
//Chat audio
|
1105 |
+
$(document).on("click", ".chat-audio", function () {
|
1106 |
+
var $this = $(this);
|
1107 |
+
var $img = $this.find("img");
|
1108 |
+
var $chatResponse = $this.siblings(".message-text").find(".chat-response")
|
1109 |
+
var play = $img.attr("data-play") == "true";
|
1110 |
+
|
1111 |
+
if (play) {
|
1112 |
+
cancelSpeechSynthesis();
|
1113 |
+
}
|
1114 |
+
|
1115 |
+
$img.attr({
|
1116 |
+
"src": "img/btn_tts_" + (play ? "play" : "stop") + ".svg",
|
1117 |
+
"data-play": play ? "false" : "true"
|
1118 |
+
});
|
1119 |
+
|
1120 |
+
if (!play) {
|
1121 |
+
cancelSpeechSynthesis();
|
1122 |
+
|
1123 |
+
// Remove botão de cópia do texto antes de sintetizar a fala
|
1124 |
+
var chatResponseText = $chatResponse.html().replace(/<button\b[^>]*\bclass="[^"]*\bcopy-code\b[^"]*"[^>]*>.*?<\/button>/ig, "");
|
1125 |
+
|
1126 |
+
// Verifica se o recurso é suportado antes de chamar a função
|
1127 |
+
if ('speechSynthesis' in window) {
|
1128 |
+
doSpeechSynthesis(chatResponseText, $chatResponse);
|
1129 |
+
}
|
1130 |
+
}
|
1131 |
+
});
|
1132 |
+
|
1133 |
+
function cleanStringToSynthesis(str) {
|
1134 |
+
str = str.trim()
|
1135 |
+
.replace(/<[^>]*>/g, "")
|
1136 |
+
.replace(/[\u{1F600}-\u{1F64F}|\u{1F300}-\u{1F5FF}|\u{1F680}-\u{1F6FF}|\u{2600}-\u{26FF}|\u{2700}-\u{27BF}|\u{1F900}-\u{1F9FF}|\u{1F1E0}-\u{1F1FF}|\u{1F200}-\u{1F2FF}|\u{1F700}-\u{1F77F}|\u{1F780}-\u{1F7FF}|\u{1F800}-\u{1F8FF}|\u{1F900}-\u{1F9FF}|\u{1FA00}-\u{1FA6F}|\u{1FA70}-\u{1FAFF}]/gu, '')
|
1137 |
+
.replace(/<div\s+class="date-chat".*?<\/div>/g, '')
|
1138 |
+
.replace(/\n/g, '');
|
1139 |
+
return str;
|
1140 |
+
}
|
1141 |
+
|
1142 |
+
function cancelSpeechSynthesis() {
|
1143 |
+
if (window.speechSynthesis) {
|
1144 |
+
window.speechSynthesis.cancel();
|
1145 |
+
}
|
1146 |
+
}
|
1147 |
+
|
1148 |
+
|
1149 |
+
function doSpeechSynthesis(longText, chatResponse) {
|
1150 |
+
|
1151 |
+
$("span.chat-response-highlight").each(function () {
|
1152 |
+
$(this).replaceWith($(this).text());
|
1153 |
+
});
|
1154 |
+
|
1155 |
+
longText = cleanStringToSynthesis(longText);
|
1156 |
+
|
1157 |
+
// The maximum number of characters in each part
|
1158 |
+
const maxLength = 100;
|
1159 |
+
|
1160 |
+
// Find the indices of punctuation marks in the longText string
|
1161 |
+
const punctuationIndices = [...longText.matchAll(/[,.?!]/g)].map(match => match.index);
|
1162 |
+
|
1163 |
+
// Divide the text into smaller parts at the punctuation marks
|
1164 |
+
const textParts = [];
|
1165 |
+
let startIndex = 0;
|
1166 |
+
for (let i = 0; i < punctuationIndices.length; i++) {
|
1167 |
+
if (punctuationIndices[i] - startIndex < maxLength) {
|
1168 |
+
continue;
|
1169 |
+
}
|
1170 |
+
textParts.push(longText.substring(startIndex, punctuationIndices[i] + 1));
|
1171 |
+
startIndex = punctuationIndices[i] + 1;
|
1172 |
+
}
|
1173 |
+
if (startIndex < longText.length) {
|
1174 |
+
textParts.push(longText.substring(startIndex));
|
1175 |
+
}
|
1176 |
+
|
1177 |
+
|
1178 |
+
const utterances = textParts.map(textPart => {
|
1179 |
+
const settings = getSettings();
|
1180 |
+
google_voice_lang_code = settings.voiceOfPlayback.split('***')[0];
|
1181 |
+
google_voice = settings.voiceOfPlayback.split('***')[1];
|
1182 |
+
|
1183 |
+
const utterance = new SpeechSynthesisUtterance(textPart);
|
1184 |
+
utterance.lang = google_voice_lang_code;
|
1185 |
+
utterance.voice = speechSynthesis.getVoices().find(voice => voice.name === google_voice);
|
1186 |
+
|
1187 |
+
if (!utterance.voice) {
|
1188 |
+
const backupVoice = array_voices.find(voice => voice.lang === utterance.lang);
|
1189 |
+
if (backupVoice) {
|
1190 |
+
utterance.voice = speechSynthesis.getVoices().find(voice => voice.name === backupVoice.name);
|
1191 |
+
}
|
1192 |
+
}
|
1193 |
+
return utterance;
|
1194 |
+
});
|
1195 |
+
|
1196 |
+
|
1197 |
+
// Define the end of speech event
|
1198 |
+
utterances[utterances.length - 1].addEventListener("end", () => {
|
1199 |
+
$(".chat-audio img").attr("src", "img/btn_tts_play.svg");
|
1200 |
+
$(".chat-audio img").attr("data-play", "false");
|
1201 |
+
});
|
1202 |
+
|
1203 |
+
let firstChat = false;
|
1204 |
+
// Read each piece of text sequentially
|
1205 |
+
function speakTextParts(index = 0) {
|
1206 |
+
if (index < utterances.length) {
|
1207 |
+
const textToHighlight = textParts[index];
|
1208 |
+
const highlightIndex = longText.indexOf(textToHighlight);
|
1209 |
+
|
1210 |
+
// Highlight the text
|
1211 |
+
chatResponse.html(chatResponse.html().replace(textToHighlight, `<span class="chat-response-highlight">${textToHighlight}</span>`));
|
1212 |
+
|
1213 |
+
// Speak the text
|
1214 |
+
speechSynthesis.speak(utterances[index]);
|
1215 |
+
utterances[index].addEventListener("end", () => {
|
1216 |
+
// Remove the highlight
|
1217 |
+
chatResponse.html(chatResponse.html().replace(`<span class="chat-response-highlight">${textToHighlight}</span>`, textToHighlight));
|
1218 |
+
speakTextParts(index + 1);
|
1219 |
+
});
|
1220 |
+
|
1221 |
+
// Remove the highlight if speech synthesis is interrupted
|
1222 |
+
speechSynthesis.addEventListener('pause', () => {
|
1223 |
+
chatResponse.html(chatResponse.html().replace(`<span class="chat-response-highlight">${textToHighlight}</span>`, textToHighlight));
|
1224 |
+
}, { once: true });
|
1225 |
+
}
|
1226 |
+
}
|
1227 |
+
|
1228 |
+
// Begin speak
|
1229 |
+
speakTextParts();
|
1230 |
+
}
|
1231 |
+
|
1232 |
+
window.speechSynthesis.onvoiceschanged = function () {
|
1233 |
+
getTextToSpeechVoices();
|
1234 |
+
};
|
1235 |
+
|
1236 |
+
function displayVoices() {
|
1237 |
+
console.table(array_voices)
|
1238 |
+
}
|
1239 |
+
|
1240 |
+
function getTextToSpeechVoices() {
|
1241 |
+
window.speechSynthesis.getVoices().forEach(function (voice) {
|
1242 |
+
const voiceObj = {
|
1243 |
+
name: voice.name,
|
1244 |
+
lang: voice.lang
|
1245 |
+
};
|
1246 |
+
array_voices.push(voiceObj);
|
1247 |
+
});
|
1248 |
+
}
|
1249 |
+
|
1250 |
+
//Display employees description
|
1251 |
+
const myModalEl = document.getElementById('modalDefault')
|
1252 |
+
myModalEl.addEventListener('show.bs.modal', event => {
|
1253 |
+
$("#modalDefault .modal-body").html(array_widgets[data_index].description);
|
1254 |
+
})
|
1255 |
+
|
1256 |
+
const myModalConfig = document.getElementById('modalConfig')
|
1257 |
+
myModalConfig.addEventListener('show.bs.modal', event => {
|
1258 |
+
loadSettings(); // Cargar los ajustes al cargar la página
|
1259 |
+
//console.log('Load settings');
|
1260 |
+
//$("#modalConfig .modal-title").html(array_widgets[data_index].name);
|
1261 |
+
//$("#modalConfig .modal-body").html(array_widgets[data_index].description);
|
1262 |
+
})
|
1263 |
+
|
1264 |
+
// Define the key for the localStorage storage item
|
1265 |
+
const localStorageKey = "col-contacts-border-display";
|
1266 |
+
|
1267 |
+
// Get the current display state of the div from localStorage, if it exists
|
1268 |
+
let displayState = localStorage.getItem(localStorageKey);
|
1269 |
+
if (displayState) {
|
1270 |
+
$(".col-contacts-border").css("display", displayState);
|
1271 |
+
} else {
|
1272 |
+
// If the display state of the div is not stored in localStorage, set the default state to "none"
|
1273 |
+
$(".col-contacts-border").css("display", "none");
|
1274 |
+
}
|
1275 |
+
|
1276 |
+
// Add the click event to toggle the display state of the div
|
1277 |
+
$(".toggle_employees_list").on("click", function () {
|
1278 |
+
$(".col-contacts-border").toggle();
|
1279 |
+
|
1280 |
+
// Get the new display state of the div
|
1281 |
+
displayState = $(".col-contacts-border").css("display");
|
1282 |
+
|
1283 |
+
// Store the new display state of the div in localStorage
|
1284 |
+
localStorage.setItem(localStorageKey, displayState);
|
1285 |
+
});
|
1286 |
+
|
1287 |
+
|
1288 |
+
toastr.options = {
|
1289 |
+
"closeButton": true,
|
1290 |
+
"debug": false,
|
1291 |
+
"newestOnTop": false,
|
1292 |
+
"progressBar": true,
|
1293 |
+
"positionClass": "toast-bottom-full-width",
|
1294 |
+
"preventDuplicates": true,
|
1295 |
+
"onclick": null,
|
1296 |
+
"showDuration": "300",
|
1297 |
+
"hideDuration": "1000",
|
1298 |
+
"timeOut": "5000",
|
1299 |
+
"extendedTimeOut": "2000",
|
1300 |
+
"showEasing": "swing",
|
1301 |
+
"hideEasing": "linear",
|
1302 |
+
"showMethod": "fadeIn",
|
1303 |
+
"hideMethod": "fadeOut"
|
1304 |
+
}
|
1305 |
+
|
1306 |
+
|
1307 |
+
const textarea = document.querySelector('#chat');
|
1308 |
+
const microphoneButton = document.querySelector('#microphone-button');
|
1309 |
+
|
1310 |
+
let isTranscribing = false; // Initially not transcribing
|
1311 |
+
|
1312 |
+
function loadSpeechRecognition() {
|
1313 |
+
if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) {
|
1314 |
+
recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
|
1315 |
+
|
1316 |
+
const settings = getSettings();
|
1317 |
+
microphone_speak_lang = settings.microphoneLanguage;
|
1318 |
+
|
1319 |
+
recognition.lang = microphone_speak_lang;
|
1320 |
+
recognition.continuous = true;
|
1321 |
+
|
1322 |
+
recognition.addEventListener('start', () => {
|
1323 |
+
console.log('microphone activated');
|
1324 |
+
$(".btn-send-chat").attr("disabled", true);
|
1325 |
+
$("#microphone-button").attr("src", "img/mic-stop.svg")
|
1326 |
+
});
|
1327 |
+
|
1328 |
+
recognition.addEventListener('result', (event) => {
|
1329 |
+
const transcript = event.results[0][0].transcript;
|
1330 |
+
textarea.value += transcript + '\n';
|
1331 |
+
});
|
1332 |
+
|
1333 |
+
recognition.addEventListener('end', () => {
|
1334 |
+
console.log('microphone off');
|
1335 |
+
$(".btn-send-chat").attr("disabled", false);
|
1336 |
+
$("#microphone-button").attr("src", "img/mic-start.svg")
|
1337 |
+
isTranscribing = false; // Define a transcrição como encerrada
|
1338 |
+
});
|
1339 |
+
|
1340 |
+
microphoneButton.addEventListener('click', () => {
|
1341 |
+
if (!isTranscribing) {
|
1342 |
+
// Start transcription if not transcrivendo
|
1343 |
+
recognition.start();
|
1344 |
+
isTranscribing = true;
|
1345 |
+
} else {
|
1346 |
+
// Stop transcription if already transcribing
|
1347 |
+
recognition.stop();
|
1348 |
+
isTranscribing = false;
|
1349 |
+
}
|
1350 |
+
});
|
1351 |
+
} else {
|
1352 |
+
toastr.error('Web Speech Recognition API not supported by browser');
|
1353 |
+
$("#microphone-button").hide()
|
1354 |
+
}
|
1355 |
+
}
|
1356 |
+
|
1357 |
+
function generateUUID() {
|
1358 |
+
let d = new Date().getTime();
|
1359 |
+
if (typeof performance !== 'undefined' && typeof performance.now === 'function') {
|
1360 |
+
d += performance.now(); //use high-precision timer if available
|
1361 |
+
}
|
1362 |
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
1363 |
+
const r = (d + Math.random() * 16) % 16 | 0;
|
1364 |
+
d = Math.floor(d / 16);
|
1365 |
+
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
1366 |
+
});
|
1367 |
+
}
|
1368 |
+
|
1369 |
+
// Función para cargar los datos del localStorage al formulario si están disponibles
|
1370 |
+
function loadSettings() {
|
1371 |
+
const settings = getSettings();
|
1372 |
+
|
1373 |
+
// Cargando valores por defecto
|
1374 |
+
$('#voiceOfPlayback').val(settings.voiceOfPlayback);
|
1375 |
+
$('#microphoneLanguage').val(settings.microphoneLanguage);
|
1376 |
+
$('#answersToggle').prop('checked', settings.answersToggle);
|
1377 |
+
}
|
1378 |
+
|
1379 |
+
function getSettings() {
|
1380 |
+
let settings = '';
|
1381 |
+
const textTalkSettings = localStorage.getItem('text-talk-settings');
|
1382 |
+
if (textTalkSettings) {
|
1383 |
+
settings = JSON.parse(textTalkSettings);
|
1384 |
+
} else {
|
1385 |
+
settings = createAndSaveSettings(); // Llama a la función para crear y guardar los ajustes si no se encuentran en el localStorage
|
1386 |
+
}
|
1387 |
+
if(uuid == ''){
|
1388 |
+
uuid = settings.id;
|
1389 |
+
}
|
1390 |
+
return settings;
|
1391 |
+
}
|
1392 |
+
|
1393 |
+
// Función para crear y guardar los ajustes en el localStorage
|
1394 |
+
function createAndSaveSettings() {
|
1395 |
+
const settings = {
|
1396 |
+
id: generateUUID(),
|
1397 |
+
voiceOfPlayback: `${google_voice_lang_code}***${google_voice}`,
|
1398 |
+
microphoneLanguage: microphone_speak_lang,
|
1399 |
+
answersToggle: true
|
1400 |
+
};
|
1401 |
+
localStorage.setItem('text-talk-settings', JSON.stringify(settings));
|
1402 |
+
return settings;
|
1403 |
+
}
|
1404 |
+
|
1405 |
+
// Verifica si la síntesis de voz es compatible con el navegador
|
1406 |
+
if ('speechSynthesis' in window) {
|
1407 |
+
// Espera a que las voces estén cargadas antes de listarlas
|
1408 |
+
window.speechSynthesis.onvoiceschanged = function () {
|
1409 |
+
// Obtén todas las voces disponibles
|
1410 |
+
const voices = speechSynthesis.getVoices();
|
1411 |
+
|
1412 |
+
// Filtra las voces que tienen 'en' como prefijo para identificar las voces en inglés
|
1413 |
+
const englishVoices = voices.filter(voice => voice.lang.startsWith('en'));
|
1414 |
+
|
1415 |
+
// Obtén el elemento select por su id
|
1416 |
+
const dropdown = document.getElementById('voiceOfPlayback');
|
1417 |
+
|
1418 |
+
// Eliminar las opciones anteriores del dropdown
|
1419 |
+
dropdown.innerHTML = '';
|
1420 |
+
|
1421 |
+
// Pobla el dropdown con las voces en inglés disponibles
|
1422 |
+
englishVoices.forEach(function (voice) {
|
1423 |
+
const option = document.createElement('option');
|
1424 |
+
option.value = `${voice.lang}***${voice.name}`;
|
1425 |
+
option.text = voice.name;
|
1426 |
+
dropdown.appendChild(option);
|
1427 |
+
});
|
1428 |
+
};
|
1429 |
+
} else {
|
1430 |
+
console.error('La síntesis de voz no es compatible con este navegador.');
|
1431 |
+
}
|
1432 |
+
|
1433 |
+
// Cargar idiomas de reconocimiento por micrófono
|
1434 |
+
if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) {
|
1435 |
+
const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
|
1436 |
+
|
1437 |
+
// Obtén los idiomas soportados para el reconocimiento de voz
|
1438 |
+
const supportedLanguages = { 'en-US': 'Google US English', 'en-GB': 'Google UK English' };
|
1439 |
+
|
1440 |
+
// Obtener el elemento select por su id
|
1441 |
+
const dropdown = document.getElementById('microphoneLanguage');
|
1442 |
+
|
1443 |
+
// Eliminar las opciones anteriores del dropdown
|
1444 |
+
dropdown.innerHTML = '';
|
1445 |
+
|
1446 |
+
// Poblar el dropdown con los idiomas disponibles para el reconocimiento de voz
|
1447 |
+
for (const langCode in supportedLanguages) {
|
1448 |
+
if (Object.hasOwnProperty.call(supportedLanguages, langCode)) {
|
1449 |
+
const langName = supportedLanguages[langCode];
|
1450 |
+
const option = document.createElement('option');
|
1451 |
+
option.value = langCode;
|
1452 |
+
option.text = langName;
|
1453 |
+
dropdown.appendChild(option);
|
1454 |
+
}
|
1455 |
+
}
|
1456 |
+
} else {
|
1457 |
+
console.error('El reconocimiento de voz no es compatible con este navegador.');
|
1458 |
+
}
|
1459 |
+
|
1460 |
+
|
1461 |
+
|
1462 |
+
$(document).ready(function () {
|
1463 |
+
// Manejador de evento para guardar los ajustes al enviar el formulario
|
1464 |
+
$('#modal-settings-submit').click(function (event) {
|
1465 |
+
event.preventDefault(); // Evitar que se envíe el formulario
|
1466 |
+
let settings = getSettings();
|
1467 |
+
settings = {
|
1468 |
+
id: settings.id,
|
1469 |
+
voiceOfPlayback: $('#voiceOfPlayback').val(),
|
1470 |
+
microphoneLanguage: $('#microphoneLanguage').val(),
|
1471 |
+
answersToggle: $('#answersToggle').is(':checked')
|
1472 |
+
};
|
1473 |
+
recognition.lang = settings.microphoneLanguage;
|
1474 |
+
localStorage.setItem('text-talk-settings', JSON.stringify(settings));
|
1475 |
+
$('#modalConfig').modal('hide');
|
1476 |
+
});
|
1477 |
+
});
|
static/js/bootstrap.bundle.min.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* Bootstrap v5.3.0-alpha1 (https://getbootstrap.com/)
|
3 |
+
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
4 |
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
5 |
+
*/
|
6 |
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),i=e=>{e.dispatchEvent(new Event(t))},n=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),s=t=>n(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(e(t)):null,o=t=>{if(!n(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},r=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),a=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?a(t.parentNode):null},l=()=>{},c=t=>{t.offsetHeight},h=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,d=[],u=()=>"rtl"===document.documentElement.dir,f=t=>{var e;e=()=>{const e=h();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(d.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of d)t()})),d.push(e)):e()},p=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,m=(e,n,s=!0)=>{if(!s)return void p(e);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(n)+5;let r=!1;const a=({target:i})=>{i===n&&(r=!0,n.removeEventListener(t,a),p(e))};n.addEventListener(t,a),setTimeout((()=>{r||i(n)}),o)},g=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},_=/[^.]*(?=\..*)\.|.*/,b=/\..*/,v=/::\d+$/,y={};let w=1;const A={mouseenter:"mouseover",mouseleave:"mouseout"},E=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function T(t,e){return e&&`${e}::${w++}`||t.uidEvent||w++}function C(t){const e=T(t);return t.uidEvent=e,y[e]=y[e]||{},y[e]}function O(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function x(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=D(t);return E.has(o)||(o=t),[n,s,o]}function k(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=x(e,i,n);if(e in A){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=C(t),c=l[a]||(l[a]={}),h=O(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=T(r,e.replace(_,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return N(s,{delegateTarget:r}),n.oneOff&&I.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return N(n,{delegateTarget:t}),i.oneOff&&I.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function L(t,e,i,n,s){const o=O(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function S(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&L(t,e,i,r.callable,r.delegationSelector)}function D(t){return t=t.replace(b,""),A[t]||t}const I={on(t,e,i,n){k(t,e,i,n,!1)},one(t,e,i,n){k(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=x(e,i,n),a=r!==e,l=C(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))S(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(v,"");a&&!e.includes(s)||L(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;L(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=h();let s=null,o=!0,r=!0,a=!1;e!==D(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());let l=new Event(e,{bubbles:o,cancelable:!0});return l=N(l,i),a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function N(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}const P=new Map,j={set(t,e,i){P.has(t)||P.set(t,new Map);const n=P.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>P.has(t)&&P.get(t).get(e)||null,remove(t,e){if(!P.has(t))return;const i=P.get(t);i.delete(e),0===i.size&&P.delete(t)}};function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const H={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${F(e)}`))};class ${static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=n(e)?H.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...n(e)?H.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[s,o]of Object.entries(e)){const e=t[s],r=n(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${r}" but expected type "${o}".`)}var i}}class W extends ${constructor(t,e){super(),(t=s(t))&&(this._element=t,this._config=this._getConfig(e),j.set(this._element,this.constructor.DATA_KEY,this))}dispose(){j.remove(this._element,this.constructor.DATA_KEY),I.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){m(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return j.get(s(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.0-alpha1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let i=t.getAttribute("data-bs-target");if(!i||"#"===i){let e=t.getAttribute("href");if(!e||!e.includes("#")&&!e.startsWith("."))return null;e.includes("#")&&!e.startsWith("#")&&(e=`#${e.split("#")[1]}`),i=e&&"#"!==e?e.trim():null}return e(i)},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!r(t)&&o(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;I.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),r(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))};class q extends W{static get NAME(){return"alert"}close(){if(I.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),I.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(q,"close"),f(q);const V='[data-bs-toggle="button"]';class K extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=K.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}I.on(document,"click.bs.button.data-api",V,(t=>{t.preventDefault();const e=t.target.closest(V);K.getOrCreateInstance(e).toggle()})),f(K);const Q={endCallback:null,leftCallback:null,rightCallback:null},X={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class Y extends ${constructor(t,e){super(),this._element=t,t&&Y.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Q}static get DefaultType(){return X}static get NAME(){return"swipe"}dispose(){I.off(this._element,".bs.swipe")}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),p(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&p(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(I.on(this._element,"pointerdown.bs.swipe",(t=>this._start(t))),I.on(this._element,"pointerup.bs.swipe",(t=>this._end(t))),this._element.classList.add("pointer-event")):(I.on(this._element,"touchstart.bs.swipe",(t=>this._start(t))),I.on(this._element,"touchmove.bs.swipe",(t=>this._move(t))),I.on(this._element,"touchend.bs.swipe",(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const U="next",G="prev",J="left",Z="right",tt="slid.bs.carousel",et="carousel",it="active",nt={ArrowLeft:Z,ArrowRight:J},st={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class rt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===et&&this.cycle()}static get Default(){return st}static get DefaultType(){return ot}static get NAME(){return"carousel"}next(){this._slide(U)}nextWhenVisible(){!document.hidden&&o(this._element)&&this.next()}prev(){this._slide(G)}pause(){this._isSliding&&i(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?I.one(this._element,tt,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void I.one(this._element,tt,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?U:G;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&I.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(I.on(this._element,"mouseenter.bs.carousel",(()=>this.pause())),I.on(this._element,"mouseleave.bs.carousel",(()=>this._maybeEnableCycle()))),this._config.touch&&Y.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))I.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(J)),rightCallback:()=>this._slide(this._directionToOrder(Z)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new Y(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=nt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(it),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===U,s=e||g(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>I.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r("slide.bs.carousel").defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",h=n?"carousel-item-next":"carousel-item-prev";s.classList.add(h),c(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,h),s.classList.add(it),i.classList.remove(it,h,l),this._isSliding=!1,r(tt)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(".active.carousel-item",this._element)}_getItems(){return z.find(".carousel-item",this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return u()?t===J?G:U:t===J?U:G}_orderToDirection(t){return u()?t===G?J:Z:t===G?Z:J}static jQueryInterface(t){return this.each((function(){const e=rt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}I.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(et))return;t.preventDefault();const i=rt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===H.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),I.on(window,"load.bs.carousel.data-api",(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)rt.getOrCreateInstance(e)})),f(rt);const at="show",lt="collapse",ct="collapsing",ht='[data-bs-toggle="collapse"]',dt={parent:null,toggle:!0},ut={parent:"(null|element)",toggle:"boolean"};class ft extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(ht);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return dt}static get DefaultType(){return ut}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>ft.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(I.trigger(this._element,"show.bs.collapse").defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(lt),this._element.classList.add(ct),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ct),this._element.classList.add(lt,at),this._element.style[e]="",I.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(I.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,c(this._element),this._element.classList.add(ct),this._element.classList.remove(lt,at);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ct),this._element.classList.add(lt),I.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(at)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=s(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(ht);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(":scope .collapse .collapse",this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=ft.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}I.on(document,"click.bs.collapse.data-api",ht,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))ft.getOrCreateInstance(t,{toggle:!1}).toggle()})),f(ft);var pt="top",mt="bottom",gt="right",_t="left",bt="auto",vt=[pt,mt,gt,_t],yt="start",wt="end",At="clippingParents",Et="viewport",Tt="popper",Ct="reference",Ot=vt.reduce((function(t,e){return t.concat([e+"-"+yt,e+"-"+wt])}),[]),xt=[].concat(vt,[bt]).reduce((function(t,e){return t.concat([e,e+"-"+yt,e+"-"+wt])}),[]),kt="beforeRead",Lt="read",St="afterRead",Dt="beforeMain",It="main",Nt="afterMain",Pt="beforeWrite",jt="write",Mt="afterWrite",Ft=[kt,Lt,St,Dt,It,Nt,Pt,jt,Mt];function Ht(t){return t?(t.nodeName||"").toLowerCase():null}function $t(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Wt(t){return t instanceof $t(t).Element||t instanceof Element}function Bt(t){return t instanceof $t(t).HTMLElement||t instanceof HTMLElement}function zt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof $t(t).ShadowRoot||t instanceof ShadowRoot)}const Rt={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];Bt(s)&&Ht(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});Bt(n)&&Ht(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function qt(t){return t.split("-")[0]}var Vt=Math.max,Kt=Math.min,Qt=Math.round;function Xt(){var t=navigator.userAgentData;return null!=t&&t.brands?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Yt(){return!/^((?!chrome|android).)*safari/i.test(Xt())}function Ut(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&Bt(t)&&(s=t.offsetWidth>0&&Qt(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&Qt(n.height)/t.offsetHeight||1);var r=(Wt(t)?$t(t):window).visualViewport,a=!Yt()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Gt(t){var e=Ut(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Jt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&zt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Zt(t){return $t(t).getComputedStyle(t)}function te(t){return["table","td","th"].indexOf(Ht(t))>=0}function ee(t){return((Wt(t)?t.ownerDocument:t.document)||window.document).documentElement}function ie(t){return"html"===Ht(t)?t:t.assignedSlot||t.parentNode||(zt(t)?t.host:null)||ee(t)}function ne(t){return Bt(t)&&"fixed"!==Zt(t).position?t.offsetParent:null}function se(t){for(var e=$t(t),i=ne(t);i&&te(i)&&"static"===Zt(i).position;)i=ne(i);return i&&("html"===Ht(i)||"body"===Ht(i)&&"static"===Zt(i).position)?e:i||function(t){var e=/firefox/i.test(Xt());if(/Trident/i.test(Xt())&&Bt(t)&&"fixed"===Zt(t).position)return null;var i=ie(t);for(zt(i)&&(i=i.host);Bt(i)&&["html","body"].indexOf(Ht(i))<0;){var n=Zt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function oe(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function re(t,e,i){return Vt(t,Kt(e,i))}function ae(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function le(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const ce={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=qt(i.placement),l=oe(a),c=[_t,gt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return ae("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:le(t,vt))}(s.padding,i),d=Gt(o),u="y"===l?pt:_t,f="y"===l?mt:gt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=se(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=re(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Jt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(t){return t.split("-")[1]}var de={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ue(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=_t,y=pt,w=window;if(c){var A=se(i),E="clientHeight",T="clientWidth";A===$t(i)&&"static"!==Zt(A=ee(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===pt||(s===_t||s===gt)&&o===wt)&&(y=mt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==_t&&(s!==pt&&s!==mt||o!==wt)||(v=gt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&de),x=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:Qt(e*n)/n||0,y:Qt(i*n)/n||0}}({x:f,y:m}):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const fe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:qt(e.placement),variation:he(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,ue(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,ue(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var pe={passive:!0};const me={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=$t(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,pe)})),a&&l.addEventListener("resize",i.update,pe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,pe)})),a&&l.removeEventListener("resize",i.update,pe)}},data:{}};var ge={left:"right",right:"left",bottom:"top",top:"bottom"};function _e(t){return t.replace(/left|right|bottom|top/g,(function(t){return ge[t]}))}var be={start:"end",end:"start"};function ve(t){return t.replace(/start|end/g,(function(t){return be[t]}))}function ye(t){var e=$t(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function we(t){return Ut(ee(t)).left+ye(t).scrollLeft}function Ae(t){var e=Zt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ee(t){return["html","body","#document"].indexOf(Ht(t))>=0?t.ownerDocument.body:Bt(t)&&Ae(t)?t:Ee(ie(t))}function Te(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=$t(n),r=s?[o].concat(o.visualViewport||[],Ae(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Te(ie(r)))}function Ce(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Oe(t,e,i){return e===Et?Ce(function(t,e){var i=$t(t),n=ee(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Yt();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+we(t),y:l}}(t,i)):Wt(e)?function(t,e){var i=Ut(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ce(function(t){var e,i=ee(t),n=ye(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=Vt(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=Vt(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+we(t),l=-n.scrollTop;return"rtl"===Zt(s||i).direction&&(a+=Vt(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(ee(t)))}function xe(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?qt(s):null,r=s?he(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case pt:e={x:a,y:i.y-n.height};break;case mt:e={x:a,y:i.y+i.height};break;case gt:e={x:i.x+i.width,y:l};break;case _t:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?oe(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case yt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case wt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ke(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?At:a,c=i.rootBoundary,h=void 0===c?Et:c,d=i.elementContext,u=void 0===d?Tt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=ae("number"!=typeof g?g:le(g,vt)),b=u===Tt?Ct:Tt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Te(ie(t)),i=["absolute","fixed"].indexOf(Zt(t).position)>=0&&Bt(t)?se(t):t;return Wt(i)?e.filter((function(t){return Wt(t)&&Jt(t,i)&&"body"!==Ht(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=Oe(t,i,n);return e.top=Vt(s.top,e.top),e.right=Kt(s.right,e.right),e.bottom=Kt(s.bottom,e.bottom),e.left=Vt(s.left,e.left),e}),Oe(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(Wt(y)?y:y.contextElement||ee(t.elements.popper),l,h,r),A=Ut(t.elements.reference),E=xe({reference:A,element:v,strategy:"absolute",placement:s}),T=Ce(Object.assign({},v,E)),C=u===Tt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Tt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[gt,mt].indexOf(t)>=0?1:-1,i=[pt,mt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?xt:l,h=he(n),d=h?a?Ot:Ot.filter((function(t){return he(t)===h})):vt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ke(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[qt(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const Se={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=qt(g),b=l||(_!==g&&p?function(t){if(qt(t)===bt)return[];var e=_e(t);return[ve(t),e,ve(e)]}(g):[_e(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(qt(i)===bt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=qt(O),k=he(O)===yt,L=[pt,mt].indexOf(x)>=0,S=L?"width":"height",D=ke(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),I=L?k?gt:_t:k?mt:pt;y[S]>w[S]&&(I=_e(I));var N=_e(I),P=[];if(o&&P.push(D[x]<=0),a&&P.push(D[I]<=0,D[N]<=0),P.every((function(t){return t}))){T=O,E=!1;break}A.set(O,P)}if(E)for(var j=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function De(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Ie(t){return[pt,gt,mt,_t].some((function(e){return t[e]>=0}))}const Ne={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ke(e,{elementContext:"reference"}),a=ke(e,{altBoundary:!0}),l=De(r,n),c=De(a,s,o),h=Ie(l),d=Ie(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Pe={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=xt.reduce((function(t,i){return t[i]=function(t,e,i){var n=qt(t),s=[_t,pt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[_t,gt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},je={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=xe({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Me={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ke(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=qt(e.placement),b=he(e.placement),v=!b,y=oe(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?pt:_t,D="y"===y?mt:gt,I="y"===y?"height":"width",N=A[y],P=N+g[S],j=N-g[D],M=f?-T[I]/2:0,F=b===yt?E[I]:T[I],H=b===yt?-T[I]:-E[I],$=e.elements.arrow,W=f&&$?Gt($):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=re(0,E[I],W[I]),V=v?E[I]/2-M-q-z-O.mainAxis:F-q-z-O.mainAxis,K=v?-E[I]/2+M+q+R+O.mainAxis:H+q+R+O.mainAxis,Q=e.elements.arrow&&se(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=N+K-Y,G=re(f?Kt(P,N+V-Y-X):P,N,f?Vt(j,U):j);A[y]=G,k[y]=G-N}if(a){var J,Z="x"===y?pt:_t,tt="x"===y?mt:gt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[pt,_t].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=re(t,e,i);return n>i?i:n}(at,et,lt):re(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function Fe(t,e,i){void 0===i&&(i=!1);var n,s,o=Bt(e),r=Bt(e)&&function(t){var e=t.getBoundingClientRect(),i=Qt(e.width)/t.offsetWidth||1,n=Qt(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=ee(e),l=Ut(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==Ht(e)||Ae(a))&&(c=(n=e)!==$t(n)&&Bt(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:ye(n)),Bt(e)?((h=Ut(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=we(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function He(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var $e={placement:"bottom",modifiers:[],strategy:"absolute"};function We(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function Be(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?$e:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},$e,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:Wt(t)?Te(t):t.contextElement?Te(t.contextElement):[],popper:Te(e)};var r,c,u=function(t){var e=He(t);return Ft.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((r=[].concat(n,a.options.modifiers),c=r.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return a.orderedModifiers=u.filter((function(t){return t.enabled})),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if("function"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(We(e,i)){a.rects={reference:Fe(e,se(i),"fixed"===a.options.strategy),popper:Gt(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!We(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var ze=Be(),Re=Be({defaultModifiers:[me,je,fe,Rt]}),qe=Be({defaultModifiers:[me,je,fe,Rt,Pe,Se,Me,ce,Ne]});const Ve=Object.freeze(Object.defineProperty({__proto__:null,popperGenerator:Be,detectOverflow:ke,createPopperBase:ze,createPopper:qe,createPopperLite:Re,top:pt,bottom:mt,right:gt,left:_t,auto:bt,basePlacements:vt,start:yt,end:wt,clippingParents:At,viewport:Et,popper:Tt,reference:Ct,variationPlacements:Ot,placements:xt,beforeRead:kt,read:Lt,afterRead:St,beforeMain:Dt,main:It,afterMain:Nt,beforeWrite:Pt,write:jt,afterWrite:Mt,modifierPhases:Ft,applyStyles:Rt,arrow:ce,computeStyles:fe,eventListeners:me,flip:Se,hide:Ne,offset:Pe,popperOffsets:je,preventOverflow:Me},Symbol.toStringTag,{value:"Module"})),Ke="dropdown",Qe="ArrowUp",Xe="ArrowDown",Ye="click.bs.dropdown.data-api",Ue="keydown.bs.dropdown.data-api",Ge="show",Je='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Ze=`${Je}.show`,ti=".dropdown-menu",ei=u()?"top-end":"top-start",ii=u()?"top-start":"top-end",ni=u()?"bottom-end":"bottom-start",si=u()?"bottom-start":"bottom-end",oi=u()?"left-start":"right-start",ri=u()?"right-start":"left-start",ai={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},li={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class ci extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=z.next(this._element,ti)[0]||z.prev(this._element,ti)[0]||z.findOne(ti,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return ai}static get DefaultType(){return li}static get NAME(){return Ke}toggle(){return this._isShown()?this.hide():this.show()}show(){if(r(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!I.trigger(this._element,"show.bs.dropdown",t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))I.on(t,"mouseover",l);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Ge),this._element.classList.add(Ge),I.trigger(this._element,"shown.bs.dropdown",t)}}hide(){if(r(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!I.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))I.off(t,"mouseover",l);this._popper&&this._popper.destroy(),this._menu.classList.remove(Ge),this._element.classList.remove(Ge),this._element.setAttribute("aria-expanded","false"),H.removeDataAttribute(this._menu,"popper"),I.trigger(this._element,"hidden.bs.dropdown",t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!n(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ke.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===Ve)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:n(this._config.reference)?t=s(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=qe(t,this._menu,e)}_isShown(){return this._menu.classList.contains(Ge)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return oi;if(t.classList.contains("dropstart"))return ri;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ii:ei:e?si:ni}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(H.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...p(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>o(t)));i.length&&g(i,e,t===Xe,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=ci.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ze);for(const i of e){const e=ci.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Qe,Xe].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Je)?this:z.prev(this,Je)[0]||z.next(this,Je)[0]||z.findOne(Je,t.delegateTarget.parentNode),o=ci.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}I.on(document,Ue,Je,ci.dataApiKeydownHandler),I.on(document,Ue,ti,ci.dataApiKeydownHandler),I.on(document,Ye,ci.clearMenus),I.on(document,"keyup.bs.dropdown.data-api",ci.clearMenus),I.on(document,Ye,Je,(function(t){t.preventDefault(),ci.getOrCreateInstance(this).toggle()})),f(ci);const hi=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",di=".sticky-top",ui="padding-right",fi="margin-right";class pi{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,ui,(e=>e+t)),this._setElementAttributes(hi,ui,(e=>e+t)),this._setElementAttributes(di,fi,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,ui),this._resetElementAttributes(hi,ui),this._resetElementAttributes(di,fi)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&H.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=H.getDataAttribute(t,e);null!==i?(H.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(n(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const mi="show",gi="mousedown.bs.backdrop",_i={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},bi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class vi extends ${constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return _i}static get DefaultType(){return bi}static get NAME(){return"backdrop"}show(t){if(!this._config.isVisible)return void p(t);this._append();const e=this._getElement();this._config.isAnimated&&c(e),e.classList.add(mi),this._emulateAnimation((()=>{p(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(mi),this._emulateAnimation((()=>{this.dispose(),p(t)}))):p(t)}dispose(){this._isAppended&&(I.off(this._element,gi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=s(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),I.on(t,gi,(()=>{p(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){m(t,this._getElement(),this._config.isAnimated)}}const yi=".bs.focustrap",wi="backward",Ai={autofocus:!0,trapElement:null},Ei={autofocus:"boolean",trapElement:"element"};class Ti extends ${constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Ai}static get DefaultType(){return Ei}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),I.off(document,yi),I.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),I.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,I.off(document,yi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===wi?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?wi:"forward")}}const Ci="hidden.bs.modal",Oi="show.bs.modal",xi="modal-open",ki="show",Li="modal-static",Si={backdrop:!0,focus:!0,keyboard:!0},Di={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ii extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new pi,this._addEventListeners()}static get Default(){return Si}static get DefaultType(){return Di}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||I.trigger(this._element,Oi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(xi),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(I.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(ki),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){for(const t of[window,this._dialog])I.off(t,".bs.modal");this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new vi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ti({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),c(this._element),this._element.classList.add(ki),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,I.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){I.on(this._element,"keydown.dismiss.bs.modal",(t=>{if("Escape"===t.key)return this._config.keyboard?(t.preventDefault(),void this.hide()):void this._triggerBackdropTransition()})),I.on(window,"resize.bs.modal",(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),I.on(this._element,"mousedown.dismiss.bs.modal",(t=>{I.one(this._element,"click.dismiss.bs.modal",(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(xi),this._resetAdjustments(),this._scrollBar.reset(),I.trigger(this._element,Ci)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(I.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(Li)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(Li),this._queueCallback((()=>{this._element.classList.remove(Li),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=u()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=u()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Ii.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}I.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),I.one(e,Oi,(t=>{t.defaultPrevented||I.one(e,Ci,(()=>{o(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&Ii.getInstance(i).hide(),Ii.getOrCreateInstance(e).toggle(this)})),R(Ii),f(Ii);const Ni="show",Pi="showing",ji="hiding",Mi=".offcanvas.show",Fi="hidePrevented.bs.offcanvas",Hi="hidden.bs.offcanvas",$i={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Bi extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return $i}static get DefaultType(){return Wi}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||I.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new pi).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Pi),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Ni),this._element.classList.remove(Pi),I.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(I.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(ji),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Ni,ji),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new pi).reset(),I.trigger(this._element,Hi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new vi({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():I.trigger(this._element,Fi)}:null})}_initializeFocusTrap(){return new Ti({trapElement:this._element})}_addEventListeners(){I.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():I.trigger(this._element,Fi))}))}static jQueryInterface(t){return this.each((function(){const e=Bi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}I.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),r(this))return;I.one(e,Hi,(()=>{o(this)&&this.focus()}));const i=z.findOne(Mi);i&&i!==e&&Bi.getInstance(i).hide(),Bi.getOrCreateInstance(e).toggle(this)})),I.on(window,"load.bs.offcanvas.data-api",(()=>{for(const t of z.find(Mi))Bi.getOrCreateInstance(t).show()})),I.on(window,"resize.bs.offcanvas",(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&Bi.getOrCreateInstance(t).hide()})),R(Bi),f(Bi);const zi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Ri=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,qi=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Vi=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!zi.has(i)||Boolean(Ri.test(t.nodeValue)||qi.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Ki={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Qi={allowList:Ki,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},Xi={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Yi={entry:"(string|element|function|null)",selector:"(string|element)"};class Ui extends ${constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Qi}static get DefaultType(){return Xi}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Yi)}_setContent(t,e,i){const o=z.findOne(i,t);o&&((e=this._resolvePossibleFunction(e))?n(e)?this._putElementInTemplate(s(e),o):this._config.html?o.innerHTML=this._maybeSanitize(e):o.textContent=e:o.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Vi(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return p(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Gi=new Set(["sanitize","allowList","sanitizeFn"]),Ji="fade",Zi="show",tn=".modal",en="hide.bs.modal",nn="hover",sn="focus",on={AUTO:"auto",TOP:"top",RIGHT:u()?"left":"right",BOTTOM:"bottom",LEFT:u()?"right":"left"},rn={allowList:Ki,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,0],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},an={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class ln extends W{constructor(t,e){if(void 0===Ve)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return rn}static get DefaultType(){return an}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),I.off(this._element.closest(tn),en,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=I.trigger(this._element,this.constructor.eventName("show")),e=(a(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),I.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(Zi),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))I.on(t,"mouseover",l);this._queueCallback((()=>{I.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!I.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(Zi),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))I.off(t,"mouseover",l);this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),I.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ji,Zi),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(Ji),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Ui({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ji)}_isShown(){return this.tip&&this.tip.classList.contains(Zi)}_createPopper(t){const e=p(this._config.placement,[this,t,this._element]),i=on[e.toUpperCase()];return qe(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return p(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...p(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)I.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===nn?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===nn?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");I.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?sn:nn]=!0,e._enter()})),I.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?sn:nn]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},I.on(this._element.closest(tn),en,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=H.getDataAttributes(this._element);for(const t of Object.keys(e))Gi.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:s(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=ln.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}f(ln);const cn={...ln.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},hn={...ln.DefaultType,content:"(null|string|element|function)"};class dn extends ln{static get Default(){return cn}static get DefaultType(){return hn}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=dn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}f(dn);const un="click.bs.scrollspy",fn="active",pn="[href]",mn={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},gn={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class _n extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return mn}static get DefaultType(){return gn}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=s(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(I.off(this._config.target,un),I.on(this._config.target,un,pn,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(pn,this._config.target);for(const e of t){if(!e.hash||r(e))continue;const t=z.findOne(e.hash,this._element);o(t)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(fn),this._activateParents(t),I.trigger(this._element,"activate.bs.scrollspy",{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(fn);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,".nav-link, .nav-item > .nav-link, .list-group-item"))t.classList.add(fn)}_clearActiveClass(t){t.classList.remove(fn);const e=z.find("[href].active",t);for(const t of e)t.classList.remove(fn)}static jQueryInterface(t){return this.each((function(){const e=_n.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}I.on(window,"load.bs.scrollspy.data-api",(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))_n.getOrCreateInstance(t)})),f(_n);const bn="ArrowLeft",vn="ArrowRight",yn="ArrowUp",wn="ArrowDown",An="active",En="fade",Tn="show",Cn='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',On=`.nav-link:not(.dropdown-toggle), .list-group-item:not(.dropdown-toggle), [role="tab"]:not(.dropdown-toggle), ${Cn}`;class xn extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),I.on(this._element,"keydown.bs.tab",(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?I.trigger(e,"hide.bs.tab",{relatedTarget:t}):null;I.trigger(t,"show.bs.tab",{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(An),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),I.trigger(t,"shown.bs.tab",{relatedTarget:e})):t.classList.add(Tn)}),t,t.classList.contains(En)))}_deactivate(t,e){t&&(t.classList.remove(An),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),I.trigger(t,"hidden.bs.tab",{relatedTarget:e})):t.classList.remove(Tn)}),t,t.classList.contains(En)))}_keydown(t){if(![bn,vn,yn,wn].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[vn,wn].includes(t.key),i=g(this._getChildren().filter((t=>!r(t))),t.target,e,!0);i&&(i.focus({preventScroll:!0}),xn.getOrCreateInstance(i).show())}_getChildren(){return z.find(On,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`#${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",An),n(".dropdown-menu",Tn),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(An)}_getInnerElement(t){return t.matches(On)?t:z.findOne(On,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=xn.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}I.on(document,"click.bs.tab",Cn,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),r(this)||xn.getOrCreateInstance(this).show()})),I.on(window,"load.bs.tab",(()=>{for(const t of z.find('.active[data-bs-toggle="tab"], .active[data-bs-toggle="pill"], .active[data-bs-toggle="list"]'))xn.getOrCreateInstance(t)})),f(xn);const kn="hide",Ln="show",Sn="showing",Dn={animation:"boolean",autohide:"boolean",delay:"number"},In={animation:!0,autohide:!0,delay:5e3};class Nn extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return In}static get DefaultType(){return Dn}static get NAME(){return"toast"}show(){I.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(kn),c(this._element),this._element.classList.add(Ln,Sn),this._queueCallback((()=>{this._element.classList.remove(Sn),I.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(I.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(Sn),this._queueCallback((()=>{this._element.classList.add(kn),this._element.classList.remove(Sn,Ln),I.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(Ln),super.dispose()}isShown(){return this._element.classList.contains(Ln)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){I.on(this._element,"mouseover.bs.toast",(t=>this._onInteraction(t,!0))),I.on(this._element,"mouseout.bs.toast",(t=>this._onInteraction(t,!1))),I.on(this._element,"focusin.bs.toast",(t=>this._onInteraction(t,!0))),I.on(this._element,"focusout.bs.toast",(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Nn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(Nn),f(Nn),{Alert:q,Button:K,Carousel:rt,Collapse:ft,Dropdown:ci,Modal:Ii,Offcanvas:Bi,Popover:dn,ScrollSpy:_n,Tab:xn,Toast:Nn,Tooltip:ln}}));
|
7 |
+
//# sourceMappingURL=bootstrap.bundle.min.js.map
|
static/js/highlight.min.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
static/js/jquery-3.6.0.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
|
2 |
+
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
|
static/js/pdfmake.min.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
static/js/sse.js
ADDED
@@ -0,0 +1,217 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Copyright (C) 2016 Maxime Petazzoni <maxime.petazzoni@bulix.org>.
|
3 |
+
* All rights reserved.
|
4 |
+
*/
|
5 |
+
|
6 |
+
var SSE = function (url, options) {
|
7 |
+
if (!(this instanceof SSE)) {
|
8 |
+
return new SSE(url, options);
|
9 |
+
}
|
10 |
+
|
11 |
+
this.INITIALIZING = -1;
|
12 |
+
this.CONNECTING = 0;
|
13 |
+
this.OPEN = 1;
|
14 |
+
this.CLOSED = 2;
|
15 |
+
|
16 |
+
this.url = url;
|
17 |
+
|
18 |
+
options = options || {};
|
19 |
+
this.headers = options.headers || {};
|
20 |
+
this.payload = options.payload !== undefined ? options.payload : '';
|
21 |
+
this.method = options.method || (this.payload && 'POST' || 'GET');
|
22 |
+
this.withCredentials = !!options.withCredentials;
|
23 |
+
|
24 |
+
this.FIELD_SEPARATOR = ':';
|
25 |
+
this.listeners = {};
|
26 |
+
|
27 |
+
this.xhr = null;
|
28 |
+
this.readyState = this.INITIALIZING;
|
29 |
+
this.progress = 0;
|
30 |
+
this.chunk = '';
|
31 |
+
|
32 |
+
this.addEventListener = function(type, listener) {
|
33 |
+
if (this.listeners[type] === undefined) {
|
34 |
+
this.listeners[type] = [];
|
35 |
+
}
|
36 |
+
|
37 |
+
if (this.listeners[type].indexOf(listener) === -1) {
|
38 |
+
this.listeners[type].push(listener);
|
39 |
+
}
|
40 |
+
};
|
41 |
+
|
42 |
+
this.removeEventListener = function(type, listener) {
|
43 |
+
if (this.listeners[type] === undefined) {
|
44 |
+
return;
|
45 |
+
}
|
46 |
+
|
47 |
+
var filtered = [];
|
48 |
+
this.listeners[type].forEach(function(element) {
|
49 |
+
if (element !== listener) {
|
50 |
+
filtered.push(element);
|
51 |
+
}
|
52 |
+
});
|
53 |
+
if (filtered.length === 0) {
|
54 |
+
delete this.listeners[type];
|
55 |
+
} else {
|
56 |
+
this.listeners[type] = filtered;
|
57 |
+
}
|
58 |
+
};
|
59 |
+
|
60 |
+
this.dispatchEvent = function(e) {
|
61 |
+
if (!e) {
|
62 |
+
return true;
|
63 |
+
}
|
64 |
+
|
65 |
+
e.source = this;
|
66 |
+
|
67 |
+
var onHandler = 'on' + e.type;
|
68 |
+
if (this.hasOwnProperty(onHandler)) {
|
69 |
+
this[onHandler].call(this, e);
|
70 |
+
if (e.defaultPrevented) {
|
71 |
+
return false;
|
72 |
+
}
|
73 |
+
}
|
74 |
+
|
75 |
+
if (this.listeners[e.type]) {
|
76 |
+
return this.listeners[e.type].every(function(callback) {
|
77 |
+
callback(e);
|
78 |
+
return !e.defaultPrevented;
|
79 |
+
});
|
80 |
+
}
|
81 |
+
|
82 |
+
return true;
|
83 |
+
};
|
84 |
+
|
85 |
+
this._setReadyState = function(state) {
|
86 |
+
var event = new CustomEvent('readystatechange');
|
87 |
+
event.readyState = state;
|
88 |
+
this.readyState = state;
|
89 |
+
this.dispatchEvent(event);
|
90 |
+
};
|
91 |
+
|
92 |
+
this._onStreamFailure = function(e) {
|
93 |
+
var event = new CustomEvent('error');
|
94 |
+
event.data = e.currentTarget.response;
|
95 |
+
this.dispatchEvent(event);
|
96 |
+
this.close();
|
97 |
+
}
|
98 |
+
|
99 |
+
this._onStreamAbort = function(e) {
|
100 |
+
this.dispatchEvent(new CustomEvent('abort'));
|
101 |
+
this.close();
|
102 |
+
}
|
103 |
+
|
104 |
+
this._onStreamProgress = function(e) {
|
105 |
+
if (!this.xhr) {
|
106 |
+
return;
|
107 |
+
}
|
108 |
+
|
109 |
+
if (this.xhr.status !== 200) {
|
110 |
+
this._onStreamFailure(e);
|
111 |
+
return;
|
112 |
+
}
|
113 |
+
|
114 |
+
if (this.readyState == this.CONNECTING) {
|
115 |
+
this.dispatchEvent(new CustomEvent('open'));
|
116 |
+
this._setReadyState(this.OPEN);
|
117 |
+
}
|
118 |
+
|
119 |
+
var data = this.xhr.responseText.substring(this.progress);
|
120 |
+
this.progress += data.length;
|
121 |
+
data.split(/(\r\n|\r|\n){2}/g).forEach(function(part) {
|
122 |
+
if (part.trim().length === 0) {
|
123 |
+
this.dispatchEvent(this._parseEventChunk(this.chunk.trim()));
|
124 |
+
this.chunk = '';
|
125 |
+
} else {
|
126 |
+
this.chunk += part;
|
127 |
+
}
|
128 |
+
}.bind(this));
|
129 |
+
};
|
130 |
+
|
131 |
+
this._onStreamLoaded = function(e) {
|
132 |
+
this._onStreamProgress(e);
|
133 |
+
|
134 |
+
// Parse the last chunk.
|
135 |
+
this.dispatchEvent(this._parseEventChunk(this.chunk));
|
136 |
+
this.chunk = '';
|
137 |
+
};
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Parse a received SSE event chunk into a constructed event object.
|
141 |
+
*/
|
142 |
+
this._parseEventChunk = function(chunk) {
|
143 |
+
if (!chunk || chunk.length === 0) {
|
144 |
+
return null;
|
145 |
+
}
|
146 |
+
|
147 |
+
var e = {'id': null, 'retry': null, 'data': '', 'event': 'message'};
|
148 |
+
chunk.split(/\n|\r\n|\r/).forEach(function(line) {
|
149 |
+
line = line.trimRight();
|
150 |
+
var index = line.indexOf(this.FIELD_SEPARATOR);
|
151 |
+
if (index <= 0) {
|
152 |
+
// Line was either empty, or started with a separator and is a comment.
|
153 |
+
// Either way, ignore.
|
154 |
+
return;
|
155 |
+
}
|
156 |
+
|
157 |
+
var field = line.substring(0, index);
|
158 |
+
if (!(field in e)) {
|
159 |
+
return;
|
160 |
+
}
|
161 |
+
|
162 |
+
var value = line.substring(index + 1).trimLeft();
|
163 |
+
if (field === 'data') {
|
164 |
+
e[field] += value;
|
165 |
+
} else {
|
166 |
+
e[field] = value;
|
167 |
+
}
|
168 |
+
}.bind(this));
|
169 |
+
|
170 |
+
var event = new CustomEvent(e.event);
|
171 |
+
event.data = e.data;
|
172 |
+
event.id = e.id;
|
173 |
+
return event;
|
174 |
+
};
|
175 |
+
|
176 |
+
this._checkStreamClosed = function() {
|
177 |
+
if (!this.xhr) {
|
178 |
+
return;
|
179 |
+
}
|
180 |
+
|
181 |
+
if (this.xhr.readyState === XMLHttpRequest.DONE) {
|
182 |
+
this._setReadyState(this.CLOSED);
|
183 |
+
}
|
184 |
+
};
|
185 |
+
|
186 |
+
this.stream = function() {
|
187 |
+
this._setReadyState(this.CONNECTING);
|
188 |
+
|
189 |
+
this.xhr = new XMLHttpRequest();
|
190 |
+
this.xhr.addEventListener('progress', this._onStreamProgress.bind(this));
|
191 |
+
this.xhr.addEventListener('load', this._onStreamLoaded.bind(this));
|
192 |
+
this.xhr.addEventListener('readystatechange', this._checkStreamClosed.bind(this));
|
193 |
+
this.xhr.addEventListener('error', this._onStreamFailure.bind(this));
|
194 |
+
this.xhr.addEventListener('abort', this._onStreamAbort.bind(this));
|
195 |
+
this.xhr.open(this.method, this.url);
|
196 |
+
for (var header in this.headers) {
|
197 |
+
this.xhr.setRequestHeader(header, this.headers[header]);
|
198 |
+
}
|
199 |
+
this.xhr.withCredentials = this.withCredentials;
|
200 |
+
this.xhr.send(this.payload);
|
201 |
+
};
|
202 |
+
|
203 |
+
this.close = function() {
|
204 |
+
if (this.readyState === this.CLOSED) {
|
205 |
+
return;
|
206 |
+
}
|
207 |
+
|
208 |
+
this.xhr.abort();
|
209 |
+
this.xhr = null;
|
210 |
+
this._setReadyState(this.CLOSED);
|
211 |
+
};
|
212 |
+
};
|
213 |
+
|
214 |
+
// Export our SSE module for npm.js
|
215 |
+
if (typeof exports !== 'undefined') {
|
216 |
+
exports.SSE = SSE;
|
217 |
+
}
|
static/js/sweetalert2.all.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Sweetalert2=t()}(this,function(){"use strict";const q="SweetAlert2:",H=e=>e.charAt(0).toUpperCase()+e.slice(1),i=e=>Array.prototype.slice.call(e),a=e=>{console.warn("".concat(q," ").concat("object"==typeof e?e.join(" "):e))},l=e=>{console.error("".concat(q," ").concat(e))},V=[],N=(e,t)=>{e='"'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(t,'" instead.'),V.includes(e)||(V.push(e),a(e))},R=e=>"function"==typeof e?e():e,F=e=>e&&"function"==typeof e.toPromise,u=e=>F(e)?e.toPromise():Promise.resolve(e),U=e=>e&&Promise.resolve(e)===e,r={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},W=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],z={},_=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],K=e=>Object.prototype.hasOwnProperty.call(r,e),Y=e=>-1!==W.indexOf(e),Z=e=>z[e],J=e=>{!e.backdrop&&e.allowOutsideClick&&a('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const n in e)t=n,K(t)||a('Unknown parameter "'.concat(t,'"')),e.toast&&(t=n,_.includes(t)&&a('The parameter "'.concat(t,'" is incompatible with toasts'))),t=n,Z(t)&&N(t,Z(t));var t};var e=e=>{const t={};for(const n in e)t[e[n]]="swal2-"+e[n];return t};const p=e(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),o=e(["success","warning","info","question","error"]),m=()=>document.body.querySelector(".".concat(p.container)),t=e=>{const t=m();return t?t.querySelector(e):null},n=e=>t(".".concat(e)),g=()=>n(p.popup),s=()=>n(p.icon),X=()=>n(p.title),$=()=>n(p["html-container"]),G=()=>n(p.image),Q=()=>n(p["progress-steps"]),ee=()=>n(p["validation-message"]),h=()=>t(".".concat(p.actions," .").concat(p.confirm)),f=()=>t(".".concat(p.actions," .").concat(p.deny));const d=()=>t(".".concat(p.loader)),b=()=>t(".".concat(p.actions," .").concat(p.cancel)),v=()=>n(p.actions),te=()=>n(p.footer),ne=()=>n(p["timer-progress-bar"]),oe=()=>n(p.close),ie=()=>{const e=i(g().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((e,t)=>{e=parseInt(e.getAttribute("tabindex")),t=parseInt(t.getAttribute("tabindex"));return t<e?1:e<t?-1:0});var t=i(g().querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n')).filter(e=>"-1"!==e.getAttribute("tabindex"));return(t=>{const n=[];for(let e=0;e<t.length;e++)-1===n.indexOf(t[e])&&n.push(t[e]);return n})(e.concat(t)).filter(e=>E(e))},ae=()=>w(document.body,p.shown)&&!w(document.body,p["toast-shown"])&&!w(document.body,p["no-backdrop"]),re=()=>g()&&w(g(),p.toast);function se(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1];const n=ne();E(n)&&(t&&(n.style.transition="none",n.style.width="100%"),setTimeout(()=>{n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"},10))}const c={previousBodyPadding:null},y=(t,e)=>{if(t.textContent="",e){const n=new DOMParser,o=n.parseFromString(e,"text/html");i(o.querySelector("head").childNodes).forEach(e=>{t.appendChild(e)}),i(o.querySelector("body").childNodes).forEach(e=>{t.appendChild(e)})}},w=(t,e)=>{if(!e)return!1;var n=e.split(/\s+/);for(let e=0;e<n.length;e++)if(!t.classList.contains(n[e]))return!1;return!0},ce=(t,n)=>{i(t.classList).forEach(e=>{Object.values(p).includes(e)||Object.values(o).includes(e)||Object.values(n.showClass).includes(e)||t.classList.remove(e)})},C=(e,t,n)=>{if(ce(e,t),t.customClass&&t.customClass[n]){if("string"!=typeof t.customClass[n]&&!t.customClass[n].forEach)return a("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(typeof t.customClass[n],'"'));A(e,t.customClass[n])}},le=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(".".concat(p.popup," > .").concat(p[t]));case"checkbox":return e.querySelector(".".concat(p.popup," > .").concat(p.checkbox," input"));case"radio":return e.querySelector(".".concat(p.popup," > .").concat(p.radio," input:checked"))||e.querySelector(".".concat(p.popup," > .").concat(p.radio," input:first-child"));case"range":return e.querySelector(".".concat(p.popup," > .").concat(p.range," input"));default:return e.querySelector(".".concat(p.popup," > .").concat(p.input))}},ue=e=>{var t;e.focus(),"file"!==e.type&&(t=e.value,e.value="",e.value=t)},de=(e,t,n)=>{e&&t&&(t="string"==typeof t?t.split(/\s+/).filter(Boolean):t).forEach(t=>{Array.isArray(e)?e.forEach(e=>{n?e.classList.add(t):e.classList.remove(t)}):n?e.classList.add(t):e.classList.remove(t)})},A=(e,t)=>{de(e,t,!0)},k=(e,t)=>{de(e,t,!1)},P=(e,t)=>{var n=i(e.childNodes);for(let e=0;e<n.length;e++)if(w(n[e],t))return n[e]},pe=(e,t,n)=>{(n=n==="".concat(parseInt(n))?parseInt(n):n)||0===parseInt(n)?e.style[t]="number"==typeof n?"".concat(n,"px"):n:e.style.removeProperty(t)},B=function(e){e.style.display=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"flex"},x=e=>{e.style.display="none"},me=(e,t,n,o)=>{const i=e.querySelector(t);i&&(i.style[n]=o)},ge=(e,t,n)=>{t?B(e,n):x(e)},E=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),he=()=>!E(h())&&!E(f())&&!E(b()),fe=e=>!!(e.scrollHeight>e.clientHeight),be=e=>{const t=window.getComputedStyle(e);var e=parseFloat(t.getPropertyValue("animation-duration")||"0"),n=parseFloat(t.getPropertyValue("transition-duration")||"0");return 0<e||0<n},ve=()=>"undefined"==typeof window||"undefined"==typeof document,ye=100,T={},we=()=>{T.previousActiveElement&&T.previousActiveElement.focus?(T.previousActiveElement.focus(),T.previousActiveElement=null):document.body&&document.body.focus()},Ce=o=>new Promise(e=>{if(!o)return e();var t=window.scrollX,n=window.scrollY;T.restoreFocusTimeout=setTimeout(()=>{we(),e()},ye),window.scrollTo(t,n)}),Ae='\n <div aria-labelledby="'.concat(p.title,'" aria-describedby="').concat(p["html-container"],'" class="').concat(p.popup,'" tabindex="-1">\n <button type="button" class="').concat(p.close,'"></button>\n <ul class="').concat(p["progress-steps"],'"></ul>\n <div class="').concat(p.icon,'"></div>\n <img class="').concat(p.image,'" />\n <h2 class="').concat(p.title,'" id="').concat(p.title,'"></h2>\n <div class="').concat(p["html-container"],'" id="').concat(p["html-container"],'"></div>\n <input class="').concat(p.input,'" />\n <input type="file" class="').concat(p.file,'" />\n <div class="').concat(p.range,'">\n <input type="range" />\n <output></output>\n </div>\n <select class="').concat(p.select,'"></select>\n <div class="').concat(p.radio,'"></div>\n <label for="').concat(p.checkbox,'" class="').concat(p.checkbox,'">\n <input type="checkbox" />\n <span class="').concat(p.label,'"></span>\n </label>\n <textarea class="').concat(p.textarea,'"></textarea>\n <div class="').concat(p["validation-message"],'" id="').concat(p["validation-message"],'"></div>\n <div class="').concat(p.actions,'">\n <div class="').concat(p.loader,'"></div>\n <button type="button" class="').concat(p.confirm,'"></button>\n <button type="button" class="').concat(p.deny,'"></button>\n <button type="button" class="').concat(p.cancel,'"></button>\n </div>\n <div class="').concat(p.footer,'"></div>\n <div class="').concat(p["timer-progress-bar-container"],'">\n <div class="').concat(p["timer-progress-bar"],'"></div>\n </div>\n </div>\n').replace(/(^|\n)\s*/g,""),ke=()=>{const e=m();return!!e&&(e.remove(),k([document.documentElement,document.body],[p["no-backdrop"],p["toast-shown"],p["has-column"]]),!0)},S=()=>{T.currentInstance.resetValidationMessage()},Pe=()=>{const e=g(),t=P(e,p.input),n=P(e,p.file),o=e.querySelector(".".concat(p.range," input")),i=e.querySelector(".".concat(p.range," output")),a=P(e,p.select),r=e.querySelector(".".concat(p.checkbox," input")),s=P(e,p.textarea);t.oninput=S,n.onchange=S,a.onchange=S,r.onchange=S,s.oninput=S,o.oninput=()=>{S(),i.value=o.value},o.onchange=()=>{S(),o.nextSibling.value=o.value}},Be=e=>"string"==typeof e?document.querySelector(e):e,xe=e=>{const t=g();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},Ee=e=>{"rtl"===window.getComputedStyle(e).direction&&A(m(),p.rtl)},Te=(e,t)=>{if(e instanceof HTMLElement)t.appendChild(e);else if("object"==typeof e){var n=e,o=t;if(n.jquery)Se(o,n);else y(o,n.toString())}else e&&y(t,e)},Se=(t,n)=>{if(t.textContent="",0 in n)for(let e=0;e in n;e++)t.appendChild(n[e].cloneNode(!0));else t.appendChild(n.cloneNode(!0))},Le=(()=>{if(ve())return!1;var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",animation:"animationend"};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n];return!1})(),Oe=(e,t)=>{var n,o,i,a,r,s=v(),c=d();(t.showConfirmButton||t.showDenyButton||t.showCancelButton?B:x)(s),C(s,t,"actions"),s=s,n=c,o=t,i=h(),a=f(),r=b(),je(i,"confirm",o),je(a,"deny",o),je(r,"cancel",o),function(e,t,n,o){if(!o.buttonsStyling)return k([e,t,n],p.styled);A([e,t,n],p.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,A(e,p["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,A(t,p["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,A(n,p["default-outline"]))}(i,a,r,o),o.reverseButtons&&(o.toast?(s.insertBefore(r,i),s.insertBefore(a,i)):(s.insertBefore(r,n),s.insertBefore(a,n),s.insertBefore(i,n))),y(c,t.loaderHtml),C(c,t,"loader")};function je(e,t,n){ge(e,n["show".concat(H(t),"Button")],"inline-block"),y(e,n["".concat(t,"ButtonText")]),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]),e.className=p[t],C(e,n,"".concat(t,"Button")),A(e,n["".concat(t,"ButtonClass")])}const Me=(e,t)=>{var n,o,i=m();i&&(o=i,"string"==typeof(n=t.backdrop)?o.style.background=n:n||A([document.documentElement,document.body],p["no-backdrop"]),o=i,(n=t.position)in p?A(o,p[n]):(a('The "position" parameter is not valid, defaulting to "center"'),A(o,p.center)),n=i,(o=t.grow)&&"string"==typeof o&&(o="grow-".concat(o))in p&&A(n,p[o]),C(i,t,"container"))};var L={awaitingPromise:new WeakMap,promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const De=["input","file","range","select","radio","checkbox","textarea"],Ie=(e,r)=>{const s=g();var t,e=L.innerParams.get(e);const c=!e||r.input!==e.input;De.forEach(e=>{var t=p[e];const n=P(s,t);{var o=r.inputAttributes;const i=le(g(),e);if(i){qe(i);for(const a in o)i.setAttribute(a,o[a])}}n.className=t,c&&x(n)}),r.input&&(c&&(e=>{if(!O[e.input])return l('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input,'"'));const t=Ne(e.input),n=O[e.input](t,e);B(n),setTimeout(()=>{ue(n)})})(r),e=r,t=Ne(e.input),e.customClass&&A(t,e.customClass.input))},qe=t=>{for(let e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;["type","value","style"].includes(n)||t.removeAttribute(n)}},He=(e,t)=>{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},Ve=(e,t,n)=>{if(n.inputLabel){e.id=p.input;const i=document.createElement("label");var o=p["input-label"];i.setAttribute("for",e.id),i.className=o,A(i,n.customClass.inputLabel),i.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",i)}},Ne=e=>{e=p[e]||p.input;return P(g(),e)},O={},Re=(O.text=O.email=O.password=O.number=O.tel=O.url=(e,t)=>("string"==typeof t.inputValue||"number"==typeof t.inputValue?e.value=t.inputValue:U(t.inputValue)||a('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(typeof t.inputValue,'"')),Ve(e,e,t),He(e,t),e.type=t.input,e),O.file=(e,t)=>(Ve(e,e,t),He(e,t),e),O.range=(e,t)=>{const n=e.querySelector("input"),o=e.querySelector("output");return n.value=t.inputValue,n.type=t.input,o.value=t.inputValue,Ve(n,e,t),e},O.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");y(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return Ve(e,e,t),e},O.radio=e=>(e.textContent="",e),O.checkbox=(e,t)=>{const n=le(g(),"checkbox");n.value="1",n.id=p.checkbox,n.checked=Boolean(t.inputValue);var o=e.querySelector("span");return y(o,t.inputPlaceholder),e},O.textarea=(n,e)=>{n.value=e.inputValue,He(n,e),Ve(n,n,e);return setTimeout(()=>{if("MutationObserver"in window){const t=parseInt(window.getComputedStyle(g()).width);new MutationObserver(()=>{var e=n.offsetWidth+(e=n,parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight));e>t?g().style.width="".concat(e,"px"):g().style.width=null}).observe(n,{attributes:!0,attributeFilter:["style"]})}}),n},(e,t)=>{const n=$();C(n,t,"htmlContainer"),t.html?(Te(t.html,n),B(n,"block")):t.text?(n.textContent=t.text,B(n,"block")):x(n),Ie(e,t)}),Fe=(e,t)=>{var n=te();ge(n,t.footer),t.footer&&Te(t.footer,n),C(n,t,"footer")},Ue=(e,t)=>{const n=oe();y(n,t.closeButtonHtml),C(n,t,"closeButton"),ge(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel)},We=(e,t)=>{var e=L.innerParams.get(e),n=s();return e&&t.icon===e.icon?(Ze(n,t),void ze(n,t)):t.icon||t.iconHtml?t.icon&&-1===Object.keys(o).indexOf(t.icon)?(l('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),x(n)):(B(n),Ze(n,t),ze(n,t),void A(n,t.showClass.icon)):x(n)},ze=(e,t)=>{for(const n in o)t.icon!==n&&k(e,o[n]);A(e,o[t.icon]),Je(e,t),_e(),C(e,t,"icon")},_e=()=>{const e=g();var t=window.getComputedStyle(e).getPropertyValue("background-color");const n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e<n.length;e++)n[e].style.backgroundColor=t},Ke='\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n',Ye='\n <span class="swal2-x-mark">\n <span class="swal2-x-mark-line-left"></span>\n <span class="swal2-x-mark-line-right"></span>\n </span>\n',Ze=(e,t)=>{var n;e.textContent="",t.iconHtml?y(e,Xe(t.iconHtml)):"success"===t.icon?y(e,Ke):"error"===t.icon?y(e,Ye):(n={question:"?",warning:"!",info:"i"},y(e,Xe(n[t.icon])))},Je=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])me(e,n,"backgroundColor",t.iconColor);me(e,".swal2-success-ring","borderColor",t.iconColor)}},Xe=e=>'<div class="'.concat(p["icon-content"],'">').concat(e,"</div>"),$e=(e,t)=>{const n=G();if(!t.imageUrl)return x(n);B(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt),pe(n,"width",t.imageWidth),pe(n,"height",t.imageHeight),n.className=p.image,C(n,t,"image")},Ge=(e,o)=>{const i=Q();if(!o.progressSteps||0===o.progressSteps.length)return x(i);B(i),i.textContent="",o.currentProgressStep>=o.progressSteps.length&&a("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.progressSteps.forEach((e,t)=>{e=e,n=document.createElement("li"),A(n,p["progress-step"]),y(n,e);var n,e=n;i.appendChild(e),t===o.currentProgressStep&&A(e,p["active-progress-step"]),t!==o.progressSteps.length-1&&(n=(e=>{const t=document.createElement("li");return A(t,p["progress-step-line"]),e.progressStepsDistance&&(t.style.width=e.progressStepsDistance),t})(o),i.appendChild(n))})},Qe=(e,t)=>{const n=X();ge(n,t.title||t.titleText,"block"),t.title&&Te(t.title,n),t.titleText&&(n.innerText=t.titleText),C(n,t,"title")},et=(e,t)=>{var n=m();const o=g();t.toast?(pe(n,"width",t.width),o.style.width="100%",o.insertBefore(d(),s())):pe(o,"width",t.width),pe(o,"padding",t.padding),t.color&&(o.style.color=t.color),t.background&&(o.style.background=t.background),x(ee());n=o;(n.className="".concat(p.popup," ").concat(E(n)?t.showClass.popup:""),t.toast)?(A([document.documentElement,document.body],p["toast-shown"]),A(n,p.toast)):A(n,p.modal);C(n,t,"popup"),"string"==typeof t.customClass&&A(n,t.customClass);t.icon&&A(n,p["icon-".concat(t.icon)])},tt=(e,t)=>{et(e,t),Me(e,t),Ge(e,t),We(e,t),$e(e,t),Qe(e,t),Ue(e,t),Re(e,t),Oe(e,t),Fe(e,t),"function"==typeof t.didRender&&t.didRender(g())},j=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),nt=()=>{const e=i(document.body.children);e.forEach(e=>{e===m()||e.contains(m())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))})},ot=()=>{const e=i(document.body.children);e.forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})},it=["swal-title","swal-html","swal-footer"],at=e=>{const n={};return i(e.querySelectorAll("swal-param")).forEach(e=>{M(e,["name","value"]);var t=e.getAttribute("name"),e=e.getAttribute("value");"boolean"==typeof r[t]&&"false"===e&&(n[t]=!1),"object"==typeof r[t]&&(n[t]=JSON.parse(e))}),n},rt=e=>{const n={};return i(e.querySelectorAll("swal-button")).forEach(e=>{M(e,["type","color","aria-label"]);var t=e.getAttribute("type");n["".concat(t,"ButtonText")]=e.innerHTML,n["show".concat(H(t),"Button")]=!0,e.hasAttribute("color")&&(n["".concat(t,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(n["".concat(t,"ButtonAriaLabel")]=e.getAttribute("aria-label"))}),n},st=e=>{const t={},n=e.querySelector("swal-image");return n&&(M(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},ct=e=>{const t={},n=e.querySelector("swal-icon");return n&&(M(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},lt=e=>{const n={},t=e.querySelector("swal-input");t&&(M(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));e=e.querySelectorAll("swal-input-option");return e.length&&(n.inputOptions={},i(e).forEach(e=>{M(e,["value"]);var t=e.getAttribute("value"),e=e.innerHTML;n.inputOptions[t]=e})),n},ut=(e,t)=>{const n={};for(const o in t){const i=t[o],a=e.querySelector(i);a&&(M(a,[]),n[i.replace(/^swal-/,"")]=a.innerHTML.trim())}return n},dt=e=>{const t=it.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);i(e.children).forEach(e=>{e=e.tagName.toLowerCase();-1===t.indexOf(e)&&a("Unrecognized element <".concat(e,">"))})},M=(t,n)=>{i(t.attributes).forEach(e=>{-1===n.indexOf(e.name)&&a(['Unrecognized attribute "'.concat(e.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})};var pt={email:(e,t)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function mt(e){(t=e).inputValidator||Object.keys(pt).forEach(e=>{t.input===e&&(t.inputValidator=pt[e])}),e.showLoaderOnConfirm&&!e.preConfirm&&a("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),(n=e).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(a('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof e.title&&(e.title=e.title.split("\n").join("<br />"));var t,n=e,e=ke();if(ve())l("SweetAlert2 requires document to initialize");else{const o=document.createElement("div"),i=(o.className=p.container,e&&A(o,p["no-transition"]),y(o,Ae),Be(n.target));i.appendChild(o),xe(n),Ee(i),Pe()}}class gt{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const ht=()=>{null===c.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(c.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(c.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=p["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})(),"px"))},ft=()=>{null!==c.previousBodyPadding&&(document.body.style.paddingRight="".concat(c.previousBodyPadding,"px"),c.previousBodyPadding=null)},bt=()=>{if((/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!w(document.body,p.iosfix)){var e,t=document.body.scrollTop;document.body.style.top="".concat(-1*t,"px"),A(document.body,p.iosfix);{const n=m();let t;n.ontouchstart=e=>{t=vt(e)},n.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}}{const o=navigator.userAgent,i=!!o.match(/iPad/i)||!!o.match(/iPhone/i),a=!!o.match(/WebKit/i),r=i&&a&&!o.match(/CriOS/i);r&&(e=44,g().scrollHeight>window.innerHeight-44&&(m().style.paddingBottom="".concat(44,"px")))}}},vt=e=>{var t,n=e.target,o=m();return!((t=e).touches&&t.touches.length&&"stylus"===t.touches[0].touchType||(t=e).touches&&1<t.touches.length)&&(n===o||!(fe(o)||"INPUT"===n.tagName||"TEXTAREA"===n.tagName||fe($())&&$().contains(n)))},yt=()=>{var e;w(document.body,p.iosfix)&&(e=parseInt(document.body.style.top,10),k(document.body,p.iosfix),document.body.style.top="",document.body.scrollTop=-1*e)},wt=10,Ct=e=>{const t=g();if(e.target===t){const n=m();t.removeEventListener(Le,Ct),n.style.overflowY="auto"}},At=(e,t)=>{Le&&be(t)?(e.style.overflowY="hidden",t.addEventListener(Le,Ct)):e.style.overflowY="auto"},kt=(e,t,n)=>{bt(),t&&"hidden"!==n&&ht(),setTimeout(()=>{e.scrollTop=0})},Pt=(e,t,n)=>{A(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),B(t,"grid"),setTimeout(()=>{A(t,n.showClass.popup),t.style.removeProperty("opacity")},wt),A([document.documentElement,document.body],p.shown),n.heightAuto&&n.backdrop&&!n.toast&&A([document.documentElement,document.body],p["height-auto"])},D=e=>{let t=g();t||new wn,t=g();var n=d();if(re())x(s());else{var o=t;const i=v(),a=d();!e&&E(h())&&(e=h());B(i),e&&(x(e),a.setAttribute("data-button-to-replace",e.className));a.parentNode.insertBefore(a,e),A([o,i],p.loading)}B(n),t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()},Bt=(t,n)=>{const o=g(),i=e=>Et[n.input](o,Tt(e),n);F(n.inputOptions)||U(n.inputOptions)?(D(h()),u(n.inputOptions).then(e=>{t.hideLoading(),i(e)})):"object"==typeof n.inputOptions?i(n.inputOptions):l("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof n.inputOptions))},xt=(t,n)=>{const o=t.getInput();x(o),u(n.inputValue).then(e=>{o.value="number"===n.input?parseFloat(e)||0:"".concat(e),B(o),o.focus(),t.hideLoading()}).catch(e=>{l("Error in inputValue promise: ".concat(e)),o.value="",B(o),o.focus(),t.hideLoading()})},Et={select:(e,t,i)=>{const a=P(e,p.select),r=(e,t,n)=>{const o=document.createElement("option");o.value=n,y(o,t),o.selected=St(n,i.inputValue),e.appendChild(o)};t.forEach(e=>{var t=e[0];const n=e[1];if(Array.isArray(n)){const o=document.createElement("optgroup");o.label=t,o.disabled=!1,a.appendChild(o),n.forEach(e=>r(o,e[1],e[0]))}else r(a,n,t)}),a.focus()},radio:(e,t,a)=>{const r=P(e,p.radio),n=(t.forEach(e=>{var t=e[0],e=e[1];const n=document.createElement("input"),o=document.createElement("label"),i=(n.type="radio",n.name=p.radio,n.value=t,St(t,a.inputValue)&&(n.checked=!0),document.createElement("span"));y(i,e),i.className=p.label,o.appendChild(n),o.appendChild(i),r.appendChild(o)}),r.querySelectorAll("input"));n.length&&n[0].focus()}},Tt=n=>{const o=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach((e,t)=>{let n=e;"object"==typeof n&&(n=Tt(n)),o.push([t,n])}):Object.keys(n).forEach(e=>{let t=n[e];"object"==typeof t&&(t=Tt(t)),o.push([e,t])}),o},St=(e,t)=>t&&t.toString()===e.toString();function Lt(){var e,t=L.innerParams.get(this);if(t){const n=L.domCache.get(this);x(n.loader),re()?t.icon&&B(s()):(t=n,(e=t.popup.getElementsByClassName(t.loader.getAttribute("data-button-to-replace"))).length?B(e[0],"inline-block"):he()&&x(t.actions)),k([n.popup,n.actions],p.loading),n.popup.removeAttribute("aria-busy"),n.popup.removeAttribute("data-loading"),n.confirmButton.disabled=!1,n.denyButton.disabled=!1,n.cancelButton.disabled=!1}}var Ot={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const jt=()=>h()&&h().click();const Mt=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},Dt=(e,t,n)=>{const o=ie();if(o.length)return(t+=n)===o.length?t=0:-1===t&&(t=o.length-1),o[t].focus();g().focus()},It=["ArrowRight","ArrowDown"],qt=["ArrowLeft","ArrowUp"],Ht=(e,n,t)=>{var o=L.innerParams.get(e);if(o&&(!n.isComposing&&229!==n.keyCode))if(o.stopKeydownPropagation&&n.stopPropagation(),"Enter"===n.key)e=e,s=n,i=o,R(i.allowEnterKey)&&s.target&&e.getInput()&&s.target.outerHTML===e.getInput().outerHTML&&(["textarea","file"].includes(i.input)||(jt(),s.preventDefault()));else if("Tab"===n.key){e=n;var i=o;var a=e.target,r=ie();let t=-1;for(let e=0;e<r.length;e++)if(a===r[e]){t=e;break}e.shiftKey?Dt(i,t,-1):Dt(i,t,1);e.stopPropagation(),e.preventDefault()}else if([...It,...qt].includes(n.key)){var s=n.key;const l=h(),u=f(),d=b();if([l,u,d].includes(document.activeElement)){var c=It.includes(s)?"nextElementSibling":"previousElementSibling";let t=document.activeElement;for(let e=0;e<v().children.length;e++){if(!(t=t[c]))return;if(E(t)&&t instanceof HTMLButtonElement)break}t instanceof HTMLButtonElement&&t.focus()}}else if("Escape"===n.key){e=n,n=o,o=t;if(R(n.allowEscapeKey)){e.preventDefault();o(j.esc)}}};function Vt(e,t,n,o){re()?Ut(e,o):(Ce(n).then(()=>Ut(e,o)),Mt(T)),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),ae()&&(ft(),yt(),ot()),k([document.documentElement,document.body],[p.shown,p["height-auto"],p["no-backdrop"],p["toast-shown"]])}function Nt(e){e=void 0!==(n=e)?Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},n):{isConfirmed:!1,isDenied:!1,isDismissed:!0};const t=Ot.swalPromiseResolve.get(this);var n=(e=>{const t=g();if(!t)return false;const n=L.innerParams.get(e);if(!n||w(t,n.hideClass.popup))return false;k(t,n.showClass.popup),A(t,n.hideClass.popup);const o=m();return k(o,n.showClass.backdrop),A(o,n.hideClass.backdrop),Ft(e,t,n),true})(this);this.isAwaitingPromise()?e.isDismissed||(Rt(this),t(e)):n&&t(e)}const Rt=e=>{e.isAwaitingPromise()&&(L.awaitingPromise.delete(e),L.innerParams.get(e)||e._destroy())},Ft=(e,t,n)=>{var o,i,a,r=m(),s=Le&&be(t);"function"==typeof n.willClose&&n.willClose(t),s?(s=e,o=t,t=r,i=n.returnFocus,a=n.didClose,T.swalCloseEventFinishedCallback=Vt.bind(null,s,t,i,a),o.addEventListener(Le,function(e){e.target===o&&(T.swalCloseEventFinishedCallback(),delete T.swalCloseEventFinishedCallback)})):Vt(e,r,n.returnFocus,n.didClose)},Ut=(e,t)=>{setTimeout(()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()})};function Wt(e,t,n){const o=L.domCache.get(e);t.forEach(e=>{o[e].disabled=n})}function zt(e,t){if(!e)return!1;if("radio"===e.type){const n=e.parentNode.parentNode,o=n.querySelectorAll("input");for(let e=0;e<o.length;e++)o[e].disabled=t}else e.disabled=t}const _t=e=>{e.isAwaitingPromise()?(Kt(L,e),L.awaitingPromise.set(e,!0)):(Kt(Ot,e),Kt(L,e))},Kt=(e,t)=>{for(const n in e)e[n].delete(t)};e=Object.freeze({hideLoading:Lt,disableLoading:Lt,getInput:function(e){var t=L.innerParams.get(e||this);return(e=L.domCache.get(e||this))?le(e.popup,t.input):null},close:Nt,isAwaitingPromise:function(){return!!L.awaitingPromise.get(this)},rejectPromise:function(e){const t=Ot.swalPromiseReject.get(this);Rt(this),t&&t(e)},handleAwaitingPromise:Rt,closePopup:Nt,closeModal:Nt,closeToast:Nt,enableButtons:function(){Wt(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){Wt(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return zt(this.getInput(),!1)},disableInput:function(){return zt(this.getInput(),!0)},showValidationMessage:function(e){const t=L.domCache.get(this);var n=L.innerParams.get(this);y(t.validationMessage,e),t.validationMessage.className=p["validation-message"],n.customClass&&n.customClass.validationMessage&&A(t.validationMessage,n.customClass.validationMessage),B(t.validationMessage);const o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedby",p["validation-message"]),ue(o),A(o,p.inputerror))},resetValidationMessage:function(){var e=L.domCache.get(this);e.validationMessage&&x(e.validationMessage);const t=this.getInput();t&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedby"),k(t,p.inputerror))},getProgressSteps:function(){return L.domCache.get(this).progressSteps},update:function(e){var t=g(),n=L.innerParams.get(this);if(!t||w(t,n.hideClass.popup))return a("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");t=(t=>{const n={};return Object.keys(t).forEach(e=>{if(Y(e))n[e]=t[e];else a('Invalid parameter to update: "'.concat(e,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))}),n})(e),n=Object.assign({},n,t),tt(this,n),L.innerParams.set(this,n),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})},_destroy:function(){var e=L.domCache.get(this);const t=L.innerParams.get(this);t?(e.popup&&T.swalCloseEventFinishedCallback&&(T.swalCloseEventFinishedCallback(),delete T.swalCloseEventFinishedCallback),T.deferDisposalTimer&&(clearTimeout(T.deferDisposalTimer),delete T.deferDisposalTimer),"function"==typeof t.didDestroy&&t.didDestroy(),e=this,_t(e),delete e.params,delete T.keydownHandler,delete T.keydownTarget,delete T.currentInstance):_t(this)}});const Yt=(e,t)=>{var n=L.innerParams.get(e);if(!n.input)return l('The "input" parameter is needed to be set when using returnInputValueOn'.concat(H(t)));var o=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return n.checked?1:0;case"radio":return(o=n).checked?o.value:null;case"file":return(o=n).files.length?null!==o.getAttribute("multiple")?o.files:o.files[0]:null;default:return t.inputAutoTrim?n.value.trim():n.value}var o})(e,n);if(n.inputValidator){var i=e;var a=o;var r=t;const s=L.innerParams.get(i),c=(i.disableInput(),Promise.resolve().then(()=>u(s.inputValidator(a,s.validationMessage))));c.then(e=>{i.enableButtons(),i.enableInput(),e?i.showValidationMessage(e):("deny"===r?Zt:$t)(i,a)})}else e.getInput().checkValidity()?("deny"===t?Zt:$t)(e,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},Zt=(t,n)=>{const e=L.innerParams.get(t||void 0);if(e.showLoaderOnDeny&&D(f()),e.preDeny){L.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preDeny(n,e.validationMessage)));o.then(e=>{!1===e?(t.hideLoading(),Rt(t)):t.closePopup({isDenied:!0,value:void 0===e?n:e})}).catch(e=>Xt(t||void 0,e))}else t.closePopup({isDenied:!0,value:n})},Jt=(e,t)=>{e.closePopup({isConfirmed:!0,value:t})},Xt=(e,t)=>{e.rejectPromise(t)},$t=(t,n)=>{const e=L.innerParams.get(t||void 0);if(e.showLoaderOnConfirm&&D(),e.preConfirm){t.resetValidationMessage(),L.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preConfirm(n,e.validationMessage)));o.then(e=>{E(ee())||!1===e?(t.hideLoading(),Rt(t)):Jt(t,void 0===e?n:e)}).catch(e=>Xt(t||void 0,e))}else Jt(t,n)},Gt=(n,e,o)=>{e.popup.onclick=()=>{var e,t=L.innerParams.get(n);t&&((e=t).showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton||t.timer||t.input)||o(j.close)}};let Qt=!1;const en=t=>{t.popup.onmousedown=()=>{t.container.onmouseup=function(e){t.container.onmouseup=void 0,e.target===t.container&&(Qt=!0)}}},tn=t=>{t.container.onmousedown=()=>{t.popup.onmouseup=function(e){t.popup.onmouseup=void 0,e.target!==t.popup&&!t.popup.contains(e.target)||(Qt=!0)}}},nn=(n,o,i)=>{o.container.onclick=e=>{var t=L.innerParams.get(n);Qt?Qt=!1:e.target===o.container&&R(t.allowOutsideClick)&&i(j.backdrop)}},on=e=>"object"==typeof e&&e.jquery,an=e=>e instanceof Element||on(e);const rn=()=>{if(T.timeout){{const n=ne();var e=parseInt(window.getComputedStyle(n).width),t=(n.style.removeProperty("transition"),n.style.width="100%",parseInt(window.getComputedStyle(n).width)),e=e/t*100;n.style.removeProperty("transition"),n.style.width="".concat(e,"%")}return T.timeout.stop()}},sn=()=>{var e;if(T.timeout)return e=T.timeout.start(),se(e),e};let cn=!1;const ln={};const un=t=>{for(let e=t.target;e&&e!==document;e=e.parentNode)for(const o in ln){var n=e.getAttribute(o);if(n)return void ln[o].fire({template:n})}};var dn=Object.freeze({isValidParameter:K,isUpdatableParameter:Y,isDeprecatedParameter:Z,argsToParams:n=>{const o={};return"object"!=typeof n[0]||an(n[0])?["title","html","icon"].forEach((e,t)=>{t=n[t];"string"==typeof t||an(t)?o[e]=t:void 0!==t&&l("Unexpected type of ".concat(e,'! Expected "string" or "Element", got ').concat(typeof t))}):Object.assign(o,n[0]),o},isVisible:()=>E(g()),clickConfirm:jt,clickDeny:()=>f()&&f().click(),clickCancel:()=>b()&&b().click(),getContainer:m,getPopup:g,getTitle:X,getHtmlContainer:$,getImage:G,getIcon:s,getInputLabel:()=>n(p["input-label"]),getCloseButton:oe,getActions:v,getConfirmButton:h,getDenyButton:f,getCancelButton:b,getLoader:d,getFooter:te,getTimerProgressBar:ne,getFocusableElements:ie,getValidationMessage:ee,isLoading:()=>g().hasAttribute("data-loading"),fire:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return new this(...t)},mixin:function(n){class e extends this{_main(e,t){return super._main(e,Object.assign({},n,t))}}return e},showLoading:D,enableLoading:D,getTimerLeft:()=>T.timeout&&T.timeout.getTimerLeft(),stopTimer:rn,resumeTimer:sn,toggleTimer:()=>{var e=T.timeout;return e&&(e.running?rn:sn)()},increaseTimer:e=>{if(T.timeout)return e=T.timeout.increase(e),se(e,!0),e},isTimerRunning:()=>T.timeout&&T.timeout.isRunning(),bindClickHandler:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"data-swal-template";ln[e]=this,cn||(document.body.addEventListener("click",un),cn=!0)}});let pn;class I{constructor(){if("undefined"!=typeof window){pn=this;for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o=Object.freeze(this.constructor.argsToParams(t)),o=(Object.defineProperties(this,{params:{value:o,writable:!1,enumerable:!0,configurable:!0}}),this._main(this.params));L.promise.set(this,o)}}_main(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=(J(Object.assign({},t,e)),T.currentInstance&&(T.currentInstance._destroy(),ae()&&ot()),T.currentInstance=this,gn(e,t)),t=(mt(e),Object.freeze(e),T.timeout&&(T.timeout.stop(),delete T.timeout),clearTimeout(T.restoreFocusTimeout),hn(this));return tt(this,e),L.innerParams.set(this,e),mn(this,t,e)}then(e){const t=L.promise.get(this);return t.then(e)}finally(e){const t=L.promise.get(this);return t.finally(e)}}const mn=(l,u,d)=>new Promise((e,t)=>{const n=e=>{l.closePopup({isDismissed:!0,dismiss:e})};var o,i,a;Ot.swalPromiseResolve.set(l,e),Ot.swalPromiseReject.set(l,t),u.confirmButton.onclick=()=>{var e=l,t=L.innerParams.get(e);e.disableButtons(),t.input?Yt(e,"confirm"):$t(e,!0)},u.denyButton.onclick=()=>{var e=l,t=L.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Yt(e,"deny"):Zt(e,!1)},u.cancelButton.onclick=()=>{var e=l,t=n;e.disableButtons(),t(j.cancel)},u.closeButton.onclick=()=>n(j.close),e=l,t=u,a=n,L.innerParams.get(e).toast?Gt(e,t,a):(en(t),tn(t),nn(e,t,a)),o=l,e=T,t=d,i=n,Mt(e),t.toast||(e.keydownHandler=e=>Ht(o,e,i),e.keydownTarget=t.keydownListenerCapture?window:g(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0),a=l,"select"===(t=d).input||"radio"===t.input?Bt(a,t):["text","email","number","tel","textarea"].includes(t.input)&&(F(t.inputValue)||U(t.inputValue))&&(D(h()),xt(a,t));{var r=d;const s=m(),c=g();"function"==typeof r.willOpen&&r.willOpen(c),e=window.getComputedStyle(document.body).overflowY,Pt(s,c,r),setTimeout(()=>{At(s,c)},wt),ae()&&(kt(s,r.scrollbarPadding,e),nt()),re()||T.previousActiveElement||(T.previousActiveElement=document.activeElement),"function"==typeof r.didOpen&&setTimeout(()=>r.didOpen(c)),k(s,p["no-transition"])}fn(T,d,n),bn(u,d),setTimeout(()=>{u.container.scrollTop=0})}),gn=(e,t)=>{var n=(e=>{e="string"==typeof e.template?document.querySelector(e.template):e.template;if(!e)return{};e=e.content,dt(e),e=Object.assign(at(e),rt(e),st(e),ct(e),lt(e),ut(e,it));return e})(e);const o=Object.assign({},r,t,n,e);return o.showClass=Object.assign({},r.showClass,o.showClass),o.hideClass=Object.assign({},r.hideClass,o.hideClass),o},hn=e=>{var t={popup:g(),container:m(),actions:v(),confirmButton:h(),denyButton:f(),cancelButton:b(),loader:d(),closeButton:oe(),validationMessage:ee(),progressSteps:Q()};return L.domCache.set(e,t),t},fn=(e,t,n)=>{var o=ne();x(o),t.timer&&(e.timeout=new gt(()=>{n("timer"),delete e.timeout},t.timer),t.timerProgressBar&&(B(o),C(o,t,"timerProgressBar"),setTimeout(()=>{e.timeout&&e.timeout.running&&se(t.timer)})))},bn=(e,t)=>{if(!t.toast)return R(t.allowEnterKey)?void(vn(e,t)||Dt(t,-1,1)):yn()},vn=(e,t)=>t.focusDeny&&E(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&E(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!E(e.confirmButton))&&(e.confirmButton.focus(),!0),yn=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()},wn=(Object.assign(I.prototype,e),Object.assign(I,dn),Object.keys(e).forEach(e=>{I[e]=function(){if(pn)return pn[e](...arguments)}}),I.DismissReason=j,I.version="11.4.8",I);return wn.default=wn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2);
|
2 |
+
"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}");
|
static/js/toastr.min.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* Note that this is toastr v2.1.3, the "latest" version in url has no more maintenance,
|
3 |
+
* please go to https://cdnjs.com/libraries/toastr.js and pick a certain version you want to use,
|
4 |
+
* make sure you copy the url from the website since the url may change between versions.
|
5 |
+
* */
|
6 |
+
!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return g({type:O.error,iconClass:m().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=m()),v=e("#"+t.containerId),v.length?v:(n&&(v=d(t)),v)}function o(e,t,n){return g({type:O.info,iconClass:m().iconClasses.info,message:e,optionsOverride:n,title:t})}function s(e){C=e}function i(e,t,n){return g({type:O.success,iconClass:m().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return g({type:O.warning,iconClass:m().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e,t){var o=m();v||n(o),u(e,o,t)||l(o)}function c(t){var o=m();return v||n(o),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function l(t){for(var n=v.children(),o=n.length-1;o>=0;o--)u(e(n[o]),t)}function u(t,n,o){var s=!(!o||!o.force)&&o.force;return!(!t||!s&&0!==e(":focus",t).length)&&(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0)}function d(t){return v=e("<div/>").attr("id",t.containerId).addClass(t.positionClass),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,closeOnHover:!0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",escapeHtml:!1,target:"body",closeHtml:'<button type="button">×</button>',closeClass:"toast-close-button",newestOnTop:!0,preventDuplicates:!1,progressBar:!1,progressClass:"toast-progress",rtl:!1}}function f(e){C&&C(e)}function g(t){function o(e){return null==e&&(e=""),e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}function s(){c(),u(),d(),p(),g(),C(),l(),i()}function i(){var e="";switch(t.iconClass){case"toast-success":case"toast-info":e="polite";break;default:e="assertive"}I.attr("aria-live",e)}function a(){E.closeOnHover&&I.hover(H,D),!E.onclick&&E.tapToDismiss&&I.click(b),E.closeButton&&j&&j.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),E.onCloseClick&&E.onCloseClick(e),b(!0)}),E.onclick&&I.click(function(e){E.onclick(e),b()})}function r(){I.hide(),I[E.showMethod]({duration:E.showDuration,easing:E.showEasing,complete:E.onShown}),E.timeOut>0&&(k=setTimeout(b,E.timeOut),F.maxHideTime=parseFloat(E.timeOut),F.hideEta=(new Date).getTime()+F.maxHideTime,E.progressBar&&(F.intervalId=setInterval(x,10)))}function c(){t.iconClass&&I.addClass(E.toastClass).addClass(y)}function l(){E.newestOnTop?v.prepend(I):v.append(I)}function u(){if(t.title){var e=t.title;E.escapeHtml&&(e=o(t.title)),M.append(e).addClass(E.titleClass),I.append(M)}}function d(){if(t.message){var e=t.message;E.escapeHtml&&(e=o(t.message)),B.append(e).addClass(E.messageClass),I.append(B)}}function p(){E.closeButton&&(j.addClass(E.closeClass).attr("role","button"),I.prepend(j))}function g(){E.progressBar&&(q.addClass(E.progressClass),I.prepend(q))}function C(){E.rtl&&I.addClass("rtl")}function O(e,t){if(e.preventDuplicates){if(t.message===w)return!0;w=t.message}return!1}function b(t){var n=t&&E.closeMethod!==!1?E.closeMethod:E.hideMethod,o=t&&E.closeDuration!==!1?E.closeDuration:E.hideDuration,s=t&&E.closeEasing!==!1?E.closeEasing:E.hideEasing;if(!e(":focus",I).length||t)return clearTimeout(F.intervalId),I[n]({duration:o,easing:s,complete:function(){h(I),clearTimeout(k),E.onHidden&&"hidden"!==P.state&&E.onHidden(),P.state="hidden",P.endTime=new Date,f(P)}})}function D(){(E.timeOut>0||E.extendedTimeOut>0)&&(k=setTimeout(b,E.extendedTimeOut),F.maxHideTime=parseFloat(E.extendedTimeOut),F.hideEta=(new Date).getTime()+F.maxHideTime)}function H(){clearTimeout(k),F.hideEta=0,I.stop(!0,!0)[E.showMethod]({duration:E.showDuration,easing:E.showEasing})}function x(){var e=(F.hideEta-(new Date).getTime())/F.maxHideTime*100;q.width(e+"%")}var E=m(),y=t.iconClass||E.iconClass;if("undefined"!=typeof t.optionsOverride&&(E=e.extend(E,t.optionsOverride),y=t.optionsOverride.iconClass||y),!O(E,t)){T++,v=n(E,!0);var k=null,I=e("<div/>"),M=e("<div/>"),B=e("<div/>"),q=e("<div/>"),j=e(E.closeHtml),F={intervalId:null,hideEta:null,maxHideTime:null},P={toastId:T,state:"visible",startTime:new Date,options:E,map:t};return s(),r(),a(),f(P),E.debug&&console&&console.log(P),I}}function m(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),w=void 0))}var v,C,w,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:c,error:t,getContainer:n,info:o,options:{},subscribe:s,success:i,version:"2.1.3",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)});
|
7 |
+
//# sourceMappingURL=toastr.js.map
|
static/js/vfs_fonts.js
ADDED
The diff for this file is too large to render.
See raw diff
|
|
static/json/badwords.json
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"badwords":"acrotomophilia,alabama hot pocket,alaskan pipeline,anal,anilingus,anus,apeshit,ar5e,arrse,arse,arsehole,ass,ass-fucker,ass-hat,ass-pirate,assbag,assbandit,assbanger,assbite,assclown,asscock,asscracker,asses,assface,assfucker,assfukka,assgoblin,asshat,asshead,asshole,assholes,asshopper,assjacker,asslick,asslicker,assmonkey,assmunch,assmuncher,asspirate,assshole,asssucker,asswad,asswhole,asswipe,auto erotic,autoerotic,b!tch,b00bs,b17ch,b1tch,babeland,baby batter,baby juice,ball gag,ball gravy,ball kicking,ball licking,ball sack,ball sucking,ballbag,balls,ballsack,bampot,bangbros,bareback,barely legal,barenaked,bastard,bastardo,bastinado,bbw,bdsm,beaner,beaners,beastial,beastiality,beastility,beaver cleaver,beaver lips,bellend,bestial,bestiality,bi+ch,biatch,big black,big breasts,big knockers,big tits,bimbos,birdlock,bitch,bitcher,bitchers,bitches,bitchin,bitching,black cock,blonde action,blonde on blonde action,bloody,blow job,blow your load,blowjob,blowjobs,blue waffle,blumpkin,boiolas,bollock,bollocks,bollok,bollox,bondage,boner,boob,boobie,boobs,booobs,boooobs,booooobs,booooooobs,booty call,breasts,brown showers,brunette action,buceta,bugger,bukkake,bulldyke,bullet vibe,bullshit,bum,bung hole,bunghole,bunny fucker,busty,butt,butt-pirate,buttcheeks,butthole,buttmunch,buttplug,c0ck,c0cksucker,camel toe,camgirl,camslut,camwhore,carpet muncher,carpetmuncher,cawk,chinc,chink,choad,chocolate rosebuds,chode,cipa,circlejerk,cl1t,cleveland steamer,clit,clitface,clitoris,clits,clover clamps,clusterfuck,cnut,cock,cock-sucker,cockbite,cockburger,cockface,cockhead,cockjockey,cockknoker,cockmaster,cockmongler,cockmongruel,cockmonkey,cockmunch,cockmuncher,cocknose,cocknugget,cocks,cockshit,cocksmith,cocksmoker,cocksuck,cocksuck ,cocksucked,cocksucked ,cocksucker,cocksucking,cocksucks,cocksuka,cocksukka,cok,cokmuncher,coksucka,coochie,coochy,coon,coons,cooter,coprolagnia,coprophilia,cornhole,cox,crap,creampie,cum,cumbubble,cumdumpster,cumguzzler,cumjockey,cummer,cumming,cums,cumshot,cumslut,cumtart,cunilingus,cunillingus,cunnie,cunnilingus,cunt,cuntface,cunthole,cuntlick,cuntlick ,cuntlicker,cuntlicker ,cuntlicking,cuntlicking ,cuntrag,cunts,cyalis,cyberfuc,cyberfuck ,cyberfucked ,cyberfucker,cyberfuckers,cyberfucking ,d1ck,dammit,damn,darkie,date rape,daterape,deep throat,deepthroat,dendrophilia,dick,dickbag,dickbeater,dickface,dickhead,dickhole,dickjuice,dickmilk,dickmonger,dickslap,dicksucker,dickwad,dickweasel,dickweed,dickwod,dike,dildo,dildos,dingleberries,dingleberry,dink,dinks,dipshit,dirsa,dirty pillows,dirty sanchez,dlck,dog style,dog-fucker,doggie style,doggiestyle,doggin,dogging,doggy style,doggystyle,dolcett,domination,dominatrix,dommes,donkey punch,donkeyribber,doochbag,dookie,doosh,double dong,double penetration,douche,douchebag,dp action,dry hump,duche,dumbshit,dumshit,dvda,dyke,eat my ass,ecchi,ejaculate,ejaculated,ejaculates ,ejaculating ,ejaculatings,ejaculation,ejakulate,erotic,erotism,escort,eunuch,f u c k,f u c k e r,f4nny,f_u_c_k,fag,fagbag,fagg,fagging,faggit,faggitt,faggot,faggs,fagot,fagots,fags,fagtard,fanny,fannyflaps,fannyfucker,fanyy,fart,farted,farting,farty,fatass,fcuk,fcuker,fcuking,fecal,feck,fecker,felatio,felch,felching,fellate,fellatio,feltch,female squirting,femdom,figging,fingerbang,fingerfuck ,fingerfucked ,fingerfucker ,fingerfuckers,fingerfucking ,fingerfucks ,fingering,fistfuck,fistfucked ,fistfucker ,fistfuckers ,fistfucking ,fistfuckings ,fistfucks ,fisting,flamer,flange,fook,fooker,foot fetish,footjob,frotting,fuck,fuck buttons,fucka,fucked,fucker,fuckers,fuckhead,fuckheads,fuckin,fucking,fuckings,fuckingshitmotherfucker,fuckme ,fucks,fucktards,fuckwhit,fuckwit,fudge packer,fudgepacker,fuk,fuker,fukker,fukkin,fuks,fukwhit,fukwit,futanari,fux,fux0r,g-spot,gang bang,gangbang,gangbanged,gangbanged ,gangbangs ,gay sex,gayass,gaybob,gaydo,gaylord,gaysex,gaytard,gaywad,genitals,giant cock,girl on,girl on top,girls gone wild,goatcx,goatse,god damn,god-dam,god-damned,goddamn,goddamned,gokkun,golden shower,goo girl,gooch,goodpoop,gook,goregasm,gringo,grope,group sex,guido,guro,hand job,handjob,hard core,hardcore,hardcoresex,heeb,heshe,hoar,hoare,hoe,hoer,homo,homoerotic,honkey,honky,hooker,hore,horniest,horny,hot carl,hot chick,hotsex,how to kill,how to murder,huge fat,humping,incest,intercourse,jack off,jack-off ,jackass,jackoff,jail bait,jailbait,jap,jelly donut,jerk off,jerk-off ,jigaboo,jiggaboo,jiggerboo,jism,jiz,jiz ,jizm,jizm ,jizz,juggs,kawk,kike,kinbaku,kinkster,kinky,kiunt,knob,knobbing,knobead,knobed,knobend,knobhead,knobjocky,knobjokey,kock,kondum,kondums,kooch,kootch,kum,kumer,kummer,kumming,kums,kunilingus,kunt,kyke,l3i+ch,l3itch,labia,leather restraint,leather straight jacket,lemon party,lesbo,lezzie,lmfao,lolita,lovemaking,lust,lusting,m0f0,m0fo,m45terbate,ma5terb8,ma5terbate,make me come,male squirting,masochist,master-bate,masterb8,masterbat*,masterbat3,masterbate,masterbation,masterbations,masturbate,menage a trois,milf,minge,missionary position,mo-fo,mof0,mofo,mothafuck,mothafucka,mothafuckas,mothafuckaz,mothafucked ,mothafucker,mothafuckers,mothafuckin,mothafucking ,mothafuckings,mothafucks,mother fucker,motherfuck,motherfucked,motherfucker,motherfuckers,motherfuckin,motherfucking,motherfuckings,motherfuckka,motherfucks,mound of venus,mr hands,muff,muff diver,muffdiver,muffdiving,mutha,muthafecker,muthafuckker,muther,mutherfucker,n1gga,n1gger,nambla,nawashi,nazi,negro,neonazi,nig nog,nigg3r,nigg4h,nigga,niggah,niggas,niggaz,nigger,niggers ,niglet,nimphomania,nipple,nipples,nob,nob jokey,nobhead,nobjocky,nobjokey,nsfw images,nude,nudity,numbnuts,nutsack,nympho,nymphomania,octopussy,omorashi,one cup two girls,one guy one jar,orgasim,orgasim ,orgasims ,orgasm,orgasms ,orgy,p0rn,paedophile,paki,panooch,panties,panty,pawn,pecker,peckerhead,pedobear,pedophile,pegging,penis,penisfucker,phone sex,phonesex,phuck,phuk,phuked,phuking,phukked,phukking,phuks,phuq,piece of shit,pigfucker,pimpis,pis,pises,pisin,pising,pisof,piss,piss pig,pissed,pisser,pissers,pisses ,pissflap,pissflaps,pissin,pissin ,pissing,pissoff,pissoff ,pisspig,playboy,pleasure chest,pole smoker,polesmoker,pollock,ponyplay,poo,poof,poon,poonani,poonany,poontang,poop,poop chute,poopchute,porn,porno,pornography,pornos,prick,pricks ,prince albert piercing,pron,pthc,pube,pubes,punanny,punany,punta,pusies,pusse,pussi,pussies,pussy,pussylicking,pussys ,pusy,puto,queaf,queef,queerbait,queerhole,quim,raghead,raging boner,rape,raping,rapist,rectum,renob,retard,reverse cowgirl,rimjaw,rimjob,rimming,rosy palm,rosy palm and her 5 sisters,ruski,rusty trombone,s hit,s&m,s.o.b.,s_h_i_t,sadism,sadist,santorum,scat,schlong,scissoring,screwing,scroat,scrote,scrotum,semen,sex,sexo,sexy,sh!+,sh!t,sh1t,shag,shagger,shaggin,shagging,shaved beaver,shaved pussy,shemale,shi+,shibari,shit,shit-ass,shit-bag,shit-bagger,shit-brain,shit-breath,shit-cunt,shit-dick,shit-eating,shit-face,shit-faced,shit-fit,shit-head,shit-heel,shit-hole,shit-house,shit-load,shit-pot,shit-spitter,shit-stain,shitass,shitbag,shitbagger,shitblimp,shitbrain,shitbreath,shitcunt,shitdick,shite,shiteating,shited,shitey,shitface,shitfaced,shitfit,shitfuck,shitfull,shithead,shitheel,shithole,shithouse,shiting,shitings,shitload,shitpot,shits,shitspitter,shitstain,shitted,shitter,shitters ,shittiest,shitting,shittings,shitty,shitty ,shity,shiz,shiznit,shota,shrimping,skank,skeet,slanteye,slut,slutbag,sluts,smeg,smegma,smut,snatch,snowballing,sodomize,sodomy,son-of-a-bitch,spac,spic,spick,splooge,splooge moose,spooge,spread legs,spunk,strap on,strapon,strappado,strip club,style doggy,suck,sucks,suicide girls,sultry women,swastika,swinger,t1tt1e5,t1tties,tainted love,tard,taste my,tea bagging,teets,teez,testical,testicle,threesome,throating,thundercunt,tied up,tight white,tit,titfuck,tits,titt,tittie5,tittiefucker,titties,titty,tittyfuck,tittywank,titwank,tongue in a,topless,tosser,towelhead,tranny,tribadism,tub girl,tubgirl,turd,tushy,tw4t,twat,twathead,twatlips,twatty,twink,twinkie,two girls one cup,twunt,twunter,undressing,upskirt,urethra play,urophilia,v14gra,v1gra,va-j-j,vag,vagina,venus mound,viagra,vibrator,violet wand,vjayjay,vorarephilia,voyeur,vulva,w00se,wang,wank,wanker,wanky,wet dream,wetback,white power,whoar,whore,willies,willy,wrapping men,wrinkled starfish,xrated,xx,xxx,yaoi,yellow showers,yiffy,zoophilia"
|
3 |
+
}
|
static/json/config.json
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"use_text_stream": true,
|
3 |
+
"display_contacts_user_list": true,
|
4 |
+
"display_avatar_in_chat": true,
|
5 |
+
"display_copy_text_button_in_chat": true,
|
6 |
+
"display_audio_button_answers": true,
|
7 |
+
"display_microphone_in_chat": true,
|
8 |
+
"microphone_speak_lang": "en-US",
|
9 |
+
"google_voice":"Google US English",
|
10 |
+
"google_voice_lang_code":"en-US",
|
11 |
+
"filter_badwords": true,
|
12 |
+
"chat_history": true,
|
13 |
+
"chat_font_size": "17px"
|
14 |
+
}
|
static/json/lang.json
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"use_lang_index":0,
|
3 |
+
"translate": [
|
4 |
+
{
|
5 |
+
"lang_index": 0,
|
6 |
+
"widget_name_1":"Text Process",
|
7 |
+
"widget_name_2":"Upload File",
|
8 |
+
"widget_name_3":"Website URL",
|
9 |
+
"widget_name_4":"Database",
|
10 |
+
"main_title": "Empower Your Search with ScanUDoc: Your <span>Ultimate Assistant</span>.",
|
11 |
+
"sub_title": "Welcome to the future of text queries. Simplify document searches with powerful LLM models for efficient and accurate responses.",
|
12 |
+
"slogan": "ScanUDoc",
|
13 |
+
"chat_call_action1": "Explore with Ease. Choose an Option.",
|
14 |
+
"you": "You",
|
15 |
+
"button_close": "Close Chat",
|
16 |
+
"button_send":"Send",
|
17 |
+
"button_cancel":"Cancel",
|
18 |
+
"button_download_chat":"Download Chat (.txt)",
|
19 |
+
"button_download_chat_pdf":"Download Chat (.pdf)",
|
20 |
+
"button_clear_chat":"Clear Chat",
|
21 |
+
"button_clear_all_chats":"Clear all Chats",
|
22 |
+
"input_placeholder":"Type your message here",
|
23 |
+
"wait":"Wait,",
|
24 |
+
"is_typing":"is typing...",
|
25 |
+
"badword_feedback":"bad words will not be accepted, please rewrite your question.",
|
26 |
+
"error_chat_minlength":"❌ Please enter a message greater than",
|
27 |
+
"error_chat_minlength_part2":"characters",
|
28 |
+
"creating_ia_image":"Wait a few seconds, I'm creating your image:",
|
29 |
+
"creating_ia_image_chat_instruction":"I will create an image about",
|
30 |
+
"expire_img_message":"Attention: Save your images, they will expire after some time.",
|
31 |
+
"copy_code1":"Copy code",
|
32 |
+
"copy_code2":"Copied!",
|
33 |
+
"copy_text1":"Copy text",
|
34 |
+
"copy_text2":"Copied!",
|
35 |
+
"confirmation_delete_chat1":"Are you sure?",
|
36 |
+
"confirmation_delete_chat2":"You won't be able to revert this!",
|
37 |
+
"confirmation_delete_chat3":"Yes, delete it!",
|
38 |
+
"confirmation_delete_chat4":"Cancel",
|
39 |
+
"confirmation_delete_chat5":"Deleted!",
|
40 |
+
"confirmation_delete_chat_all":"All conversations have been deleted",
|
41 |
+
"confirmation_delete_current_chat":"Current chat conversations have been deleted",
|
42 |
+
"button_close_modal":"Close",
|
43 |
+
"about_label":"About",
|
44 |
+
"header_title_pdf":"Conversation history"
|
45 |
+
}
|
46 |
+
]
|
47 |
+
}
|
static/json/prompts-en.json
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
{
|
3 |
+
"id": 1,
|
4 |
+
"name": "Answerio",
|
5 |
+
"widget_name": "{{widget_name_1}}",
|
6 |
+
"image": "img/icon-text.svg",
|
7 |
+
"welcome_message": "Welcome! Feel free to ask any questions about the selected text. I'm here to provide you with insightful answers.",
|
8 |
+
"description": "Our mission is to simplify text processing and enhance information retrieval using cutting-edge LLM models. Explore our project on <a href=\"#\">GitHub</a>.",
|
9 |
+
"display_welcome_message": true,
|
10 |
+
"chat_minlength": 2,
|
11 |
+
"chat_maxlength": 1000,
|
12 |
+
"max_num_chats_api": 8
|
13 |
+
},
|
14 |
+
{
|
15 |
+
"id": 2,
|
16 |
+
"name": "Answerio",
|
17 |
+
"widget_name": "{{widget_name_2}}",
|
18 |
+
"image": "img/icon-file.svg",
|
19 |
+
"welcome_message": "Welcome! Feel free to ask any questions about the selected text. I'm here to provide you with insightful answers.",
|
20 |
+
"description": "<h6>Tips:</h6> Haz las preguntas que quieras acerca del texto",
|
21 |
+
"display_welcome_message": true,
|
22 |
+
"chat_minlength": 2,
|
23 |
+
"chat_maxlength": 1000,
|
24 |
+
"max_num_chats_api": 8
|
25 |
+
}
|
26 |
+
]
|
static/style/app.css
ADDED
@@ -0,0 +1,1322 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*{
|
2 |
+
outline: none;
|
3 |
+
}
|
4 |
+
html{
|
5 |
+
overflow-x: hidden;
|
6 |
+
}
|
7 |
+
body{
|
8 |
+
background-color: #121325;
|
9 |
+
background-size: auto;
|
10 |
+
overflow-x: hidden;
|
11 |
+
}
|
12 |
+
section {
|
13 |
+
background: url(../img/hero.jpg) no-repeat;
|
14 |
+
background-color: #121325;
|
15 |
+
background-position-x: center;
|
16 |
+
}
|
17 |
+
p, a, span, button, label, small, textarea, select, option, em, strong {
|
18 |
+
font-family: 'Nunito Sans', sans-serif;
|
19 |
+
}
|
20 |
+
h1, h2, h3, h4, h5, h6 {
|
21 |
+
font-family: 'Poppins', sans-serif;
|
22 |
+
font-weight: 700;
|
23 |
+
}
|
24 |
+
.btn-primary{
|
25 |
+
background: linear-gradient(180deg, #00509D 0%, #0077CC 100%);
|
26 |
+
}
|
27 |
+
.form-check-input:checked {
|
28 |
+
background-color: #F25F3E;
|
29 |
+
border-color: #F25F3E;
|
30 |
+
}
|
31 |
+
.modal-header{
|
32 |
+
background-color: #F7926A;
|
33 |
+
color: #FFFFFF;
|
34 |
+
}
|
35 |
+
.color-purple{
|
36 |
+
color: #D023E8;
|
37 |
+
}
|
38 |
+
header{
|
39 |
+
position: absolute;
|
40 |
+
width: 100%;
|
41 |
+
padding: 2em 0;
|
42 |
+
}
|
43 |
+
#hero{
|
44 |
+
display: flex;
|
45 |
+
overflow: hidden;
|
46 |
+
align-items: flex-end !important;
|
47 |
+
}
|
48 |
+
#hero h1{
|
49 |
+
color: #FFFFFF;
|
50 |
+
font-size: 2.25rem;
|
51 |
+
}
|
52 |
+
#hero h1 span{
|
53 |
+
font-family: 'Poppins', sans-serif;
|
54 |
+
color: #F25F3E;
|
55 |
+
margin-bottom: 1em;
|
56 |
+
}
|
57 |
+
#hero p{
|
58 |
+
font-size: 20px;
|
59 |
+
color: #FFFFFF;
|
60 |
+
margin-bottom: 0;
|
61 |
+
margin-top: 1em;
|
62 |
+
}
|
63 |
+
#hero .btn{
|
64 |
+
font-family: 'Poppins', sans-serif;
|
65 |
+
background: linear-gradient(180deg, #e33cff 0%, #9a0cb3 100%);
|
66 |
+
border-radius: 6px;
|
67 |
+
padding: 12px 1.5em;
|
68 |
+
font-size: 18px;
|
69 |
+
font-weight: bold;
|
70 |
+
border:0;
|
71 |
+
}
|
72 |
+
#hero .btn:hover{
|
73 |
+
box-shadow: 0px 1px 19px #c434dd;
|
74 |
+
}
|
75 |
+
#logo{
|
76 |
+
max-width: 510px;
|
77 |
+
}
|
78 |
+
|
79 |
+
.hero-call-action-img{
|
80 |
+
position: relative;
|
81 |
+
}
|
82 |
+
.robot{
|
83 |
+
position: relative;
|
84 |
+
height: 314px;
|
85 |
+
}
|
86 |
+
.default-title{
|
87 |
+
font-weight: bold;
|
88 |
+
color: #0180DE;
|
89 |
+
}
|
90 |
+
.section-spacing{
|
91 |
+
padding-top: 3em;
|
92 |
+
padding-bottom: 3em;
|
93 |
+
}
|
94 |
+
p{
|
95 |
+
font-size: 20px;
|
96 |
+
color: #434343;
|
97 |
+
}
|
98 |
+
.card-option-img img{
|
99 |
+
height: 82px;
|
100 |
+
}
|
101 |
+
.card-ai{
|
102 |
+
border-radius: 10px;
|
103 |
+
overflow: hidden;
|
104 |
+
background: #FFFFFF;
|
105 |
+
margin-bottom: 2em;
|
106 |
+
border: 1px solid #e2f4ff;
|
107 |
+
}
|
108 |
+
.card-ai:hover{
|
109 |
+
box-shadow: 4px 4px 11px #dff3ff;
|
110 |
+
}
|
111 |
+
.card-ai-image{
|
112 |
+
background: #EAEAEA;
|
113 |
+
}
|
114 |
+
.card-ai-image img{
|
115 |
+
width: 100%;
|
116 |
+
max-height: 325px;
|
117 |
+
object-fit: cover;
|
118 |
+
}
|
119 |
+
.card-ai-image img:hover{
|
120 |
+
cursor: pointer;
|
121 |
+
}
|
122 |
+
.card-ai-bottom{
|
123 |
+
padding: 0.5em 1em 0.1em 1em;
|
124 |
+
text-align: center;
|
125 |
+
min-height: 170px;
|
126 |
+
align-items: center;
|
127 |
+
justify-content: space-evenly;
|
128 |
+
display: flex;
|
129 |
+
flex-direction: column;
|
130 |
+
}
|
131 |
+
.card-ai-name h3{
|
132 |
+
color: #0180DE;
|
133 |
+
font-size: 20px;
|
134 |
+
margin-bottom: 0.2em;
|
135 |
+
}
|
136 |
+
.card-ai-job span{
|
137 |
+
font-size: 16px;
|
138 |
+
color: #434343;
|
139 |
+
}
|
140 |
+
.card-ai .btn{
|
141 |
+
font-family: 'Poppins', sans-serif;
|
142 |
+
border-radius: 6px;
|
143 |
+
font-size: 16px;
|
144 |
+
font-weight: bold;
|
145 |
+
border: 0;
|
146 |
+
width: 100%;
|
147 |
+
padding: 12px;
|
148 |
+
margin-top: 0.5em;
|
149 |
+
}
|
150 |
+
.chat-background{
|
151 |
+
/* border-radius: 10px; */
|
152 |
+
overflow: hidden;
|
153 |
+
}
|
154 |
+
.ai-contacts-item-active{
|
155 |
+
background: #E6F1FA;
|
156 |
+
}
|
157 |
+
.ai-contacts-item:hover{
|
158 |
+
cursor: pointer;
|
159 |
+
}
|
160 |
+
.ai-chat-top{
|
161 |
+
padding: 5px 1em;
|
162 |
+
border-bottom: 1px solid #00008B;
|
163 |
+
min-height: 103px;
|
164 |
+
display: flex;
|
165 |
+
flex-direction: column;
|
166 |
+
justify-content: center;
|
167 |
+
background: #503181;
|
168 |
+
}
|
169 |
+
.ai-contacts-top strong{
|
170 |
+
font-size: 18px;
|
171 |
+
color: #0072C6;
|
172 |
+
font-weight: bold;
|
173 |
+
display: block;
|
174 |
+
}
|
175 |
+
.ai-contacts-top span{
|
176 |
+
font-size: 18px;
|
177 |
+
color: #434343;
|
178 |
+
display: block;
|
179 |
+
}
|
180 |
+
.ai-contacts-scroll::-webkit-scrollbar {
|
181 |
+
width: 4px;
|
182 |
+
}
|
183 |
+
.ai-contacts-scroll::-webkit-scrollbar-thumb {
|
184 |
+
background-color: #888;
|
185 |
+
border-radius: 5px;
|
186 |
+
}
|
187 |
+
.ai-contacts-scroll::-webkit-scrollbar-thumb:hover {
|
188 |
+
background-color: #555;
|
189 |
+
}
|
190 |
+
.ai-contacts-scroll::-webkit-scrollbar-track {
|
191 |
+
background-color: #eee;
|
192 |
+
}
|
193 |
+
.ai-contacts-scroll::-webkit-scrollbar-track:hover {
|
194 |
+
background-color: #ddd;
|
195 |
+
}
|
196 |
+
|
197 |
+
.ai-contacts-item{
|
198 |
+
padding: 1em;
|
199 |
+
display: flex;
|
200 |
+
gap:1em;
|
201 |
+
align-items: center;
|
202 |
+
border-bottom: 1px solid #ebf7ff;
|
203 |
+
}
|
204 |
+
.ai-contacts-item:hover{
|
205 |
+
background: #550176;
|
206 |
+
}
|
207 |
+
.ai-contacts-item-active:hover{
|
208 |
+
background: #E6F1FA;
|
209 |
+
}
|
210 |
+
.ai-contacts-name{
|
211 |
+
color: #070707;
|
212 |
+
font-size: 16px;
|
213 |
+
font-weight: bold;
|
214 |
+
font-family: 'Poppins', sans-serif;
|
215 |
+
display: -webkit-box;
|
216 |
+
-webkit-line-clamp: 3;
|
217 |
+
-webkit-box-orient: vertical;
|
218 |
+
overflow: hidden;
|
219 |
+
}
|
220 |
+
.ai-contacts-job{
|
221 |
+
color: #7E7E7E;
|
222 |
+
font-size: 16px;
|
223 |
+
display: -webkit-box;
|
224 |
+
-webkit-line-clamp: 3;
|
225 |
+
-webkit-box-orient: vertical;
|
226 |
+
overflow: hidden;
|
227 |
+
}
|
228 |
+
.ai-contacts-image{
|
229 |
+
overflow: hidden;
|
230 |
+
width: 55px;
|
231 |
+
min-width: 55px;
|
232 |
+
height: 55px;
|
233 |
+
border-radius: 50%;
|
234 |
+
}
|
235 |
+
.ai-contacts-image img{
|
236 |
+
width: 100%;
|
237 |
+
}
|
238 |
+
.col-contacts-border{
|
239 |
+
border-right: 1px solid #E0E4E7;
|
240 |
+
}
|
241 |
+
.wrapper-ai-chat-top{
|
242 |
+
display: flex;
|
243 |
+
gap: 0 16px;
|
244 |
+
align-items: center;
|
245 |
+
}
|
246 |
+
.ai-chat-top-image{
|
247 |
+
width: 65px;
|
248 |
+
height: 65px;
|
249 |
+
border-radius: 50%;
|
250 |
+
overflow: hidden;
|
251 |
+
background: #0579ce;
|
252 |
+
}
|
253 |
+
.ai-chat-top-image img{
|
254 |
+
width: 100%;
|
255 |
+
}
|
256 |
+
.ai-chat-top-name h4{
|
257 |
+
color: #FFF;
|
258 |
+
font-weight: bold;
|
259 |
+
font-size: 18px;
|
260 |
+
margin-bottom: 0;
|
261 |
+
}
|
262 |
+
.ai-chat-top-job{
|
263 |
+
display: block;
|
264 |
+
font-size: 16px;
|
265 |
+
color: #FFF;
|
266 |
+
}
|
267 |
+
.online-bullet{
|
268 |
+
background: #7BC043;
|
269 |
+
width: 14px;
|
270 |
+
height: 14px;
|
271 |
+
border-radius: 50%;
|
272 |
+
display: inline-block;
|
273 |
+
}
|
274 |
+
.icons-options .dropdown-toggle{
|
275 |
+
padding: 0;
|
276 |
+
border:0;
|
277 |
+
}
|
278 |
+
.btn-check:checked+.btn, .btn.active, .btn.show, .btn:first-child:active, :not(.btn-check)+.btn:active, .dropdown-toggle::after{
|
279 |
+
color: #FFF;
|
280 |
+
}
|
281 |
+
.icons-options{
|
282 |
+
display: flex;
|
283 |
+
flex-direction: row;
|
284 |
+
gap: 16px;
|
285 |
+
justify-content: flex-end;
|
286 |
+
}
|
287 |
+
.icons-options img{
|
288 |
+
padding: 0 4px;
|
289 |
+
}
|
290 |
+
.icons-options img:hover{
|
291 |
+
cursor: pointer;
|
292 |
+
}
|
293 |
+
.chat-frame{
|
294 |
+
background: #0B042E;
|
295 |
+
padding-left: 1em;
|
296 |
+
background-size: cover;
|
297 |
+
position: relative;
|
298 |
+
}
|
299 |
+
|
300 |
+
.chat-frame.chat-frame-talk {
|
301 |
+
background: transparent;
|
302 |
+
}
|
303 |
+
|
304 |
+
.chat-frame-talk{
|
305 |
+
height: 70vh !important;
|
306 |
+
}
|
307 |
+
.body-frame-chat{
|
308 |
+
|
309 |
+
}
|
310 |
+
.chat-frame-talk #overflow-chat{
|
311 |
+
padding-bottom: 6em;
|
312 |
+
}
|
313 |
+
.conversation-thread{
|
314 |
+
display: flex;
|
315 |
+
gap: 16px;
|
316 |
+
align-items: flex-end;
|
317 |
+
margin:1.5em 0;
|
318 |
+
position: relative;
|
319 |
+
}
|
320 |
+
.user-image{
|
321 |
+
width: 45px;
|
322 |
+
min-width: 45px;
|
323 |
+
height: 45px;
|
324 |
+
min-height: 45px;
|
325 |
+
border-radius: 50%;
|
326 |
+
overflow: hidden;
|
327 |
+
}
|
328 |
+
.user-image img{
|
329 |
+
width: 100%;
|
330 |
+
}
|
331 |
+
.message-container{
|
332 |
+
background: #FFF;
|
333 |
+
border-radius: 15px;
|
334 |
+
padding: 1.2em;
|
335 |
+
min-width: 310px;
|
336 |
+
position: relative;
|
337 |
+
}
|
338 |
+
.thread-ai .message-container{
|
339 |
+
margin-right: 7em;
|
340 |
+
border-bottom: 4px solid #e3e3e3;
|
341 |
+
}
|
342 |
+
.thread-user{
|
343 |
+
justify-content: flex-end;
|
344 |
+
}
|
345 |
+
.thread-user .message-container{
|
346 |
+
background: #E3F3FF;
|
347 |
+
border-bottom: 4px solid #baccd9;
|
348 |
+
}
|
349 |
+
.thread-user .message-text::before{
|
350 |
+
display: none;
|
351 |
+
}
|
352 |
+
.chat-response{
|
353 |
+
white-space: pre-wrap;
|
354 |
+
}
|
355 |
+
.message-container .user-name h5{
|
356 |
+
font-size: 18px;
|
357 |
+
font-weight: bold;
|
358 |
+
color: #F25F3E;
|
359 |
+
margin-bottom: 0.3em;
|
360 |
+
}
|
361 |
+
.message-container .user-name h5 br{
|
362 |
+
display: none;
|
363 |
+
}
|
364 |
+
.chat-response{
|
365 |
+
font-family: 'Nunito Sans', sans-serif;
|
366 |
+
}
|
367 |
+
.message-container .message-text{
|
368 |
+
color: #2c2c2c;
|
369 |
+
font-size: 16px;
|
370 |
+
position: relative;
|
371 |
+
}
|
372 |
+
.message-container::before{
|
373 |
+
content: '';
|
374 |
+
position: absolute;
|
375 |
+
bottom: 13px;
|
376 |
+
left: -9px;
|
377 |
+
border-top: 10px solid transparent;
|
378 |
+
border-right: 10px solid #ffffff;
|
379 |
+
border-bottom: 10px solid transparent;
|
380 |
+
}
|
381 |
+
.date-chat{
|
382 |
+
font-size: 14px;
|
383 |
+
padding-top: 10px;
|
384 |
+
display: flex;
|
385 |
+
align-items: center;
|
386 |
+
gap: 3px;
|
387 |
+
color: #787878;
|
388 |
+
}
|
389 |
+
.date-chat img{
|
390 |
+
height: 14px;
|
391 |
+
}
|
392 |
+
#overflow-chat {
|
393 |
+
overflow-y: auto;
|
394 |
+
overflow-x: hidden;
|
395 |
+
height: 100%;
|
396 |
+
padding: 1em;
|
397 |
+
}
|
398 |
+
.message-area-bottom{
|
399 |
+
position: fixed;
|
400 |
+
bottom: 0;
|
401 |
+
left: 0;
|
402 |
+
background: #503181;
|
403 |
+
padding: 10px 0;
|
404 |
+
border-top: 1px solid #00008B;
|
405 |
+
}
|
406 |
+
.character-typing{
|
407 |
+
position: absolute;
|
408 |
+
z-index: 2;
|
409 |
+
top: -32px;
|
410 |
+
left: 0;
|
411 |
+
right: 0;
|
412 |
+
margin: 0 auto;
|
413 |
+
visibility: hidden;
|
414 |
+
display: flex;
|
415 |
+
align-items: center;
|
416 |
+
justify-content: center;
|
417 |
+
}
|
418 |
+
.character-typing div{
|
419 |
+
background: #2e2e2ede;
|
420 |
+
text-align: center;
|
421 |
+
border-radius: 6px;
|
422 |
+
color: #FFF;
|
423 |
+
padding: 6px 16px;
|
424 |
+
font-weight: 300;
|
425 |
+
display: inline-block;
|
426 |
+
font-size: 16px;
|
427 |
+
}
|
428 |
+
.chat-input{
|
429 |
+
display: flex;
|
430 |
+
align-items: center;
|
431 |
+
justify-content: space-between;
|
432 |
+
gap: 20px;
|
433 |
+
position: relative;
|
434 |
+
margin: 0 auto;
|
435 |
+
}
|
436 |
+
.chat-input textarea{
|
437 |
+
width: 100%;
|
438 |
+
margin-bottom: 0;
|
439 |
+
border: 1px solid #ff959d;
|
440 |
+
resize: none;
|
441 |
+
border-radius: 10px;
|
442 |
+
color: #4E4E4E;
|
443 |
+
display: flex;
|
444 |
+
padding: 10px 1em;
|
445 |
+
font-size: 18px;
|
446 |
+
background: #FFF;
|
447 |
+
}
|
448 |
+
.chat-input textarea:focus{
|
449 |
+
border: 1px solid #d059ff;
|
450 |
+
}
|
451 |
+
|
452 |
+
.btn-send-chat, .btn-cancel-chat{
|
453 |
+
background: linear-gradient(180deg, #00509D 0%, #0077CC 100%);
|
454 |
+
border-radius: 8px;
|
455 |
+
padding: 1em 1.5em;
|
456 |
+
font-size: 18px;
|
457 |
+
font-weight: bold;
|
458 |
+
font-family: 'Poppins', sans-serif;
|
459 |
+
border: 0;
|
460 |
+
display: flex;
|
461 |
+
align-items: center;
|
462 |
+
justify-content: center;
|
463 |
+
gap: 7px;
|
464 |
+
}
|
465 |
+
.btn-send-chat:hover{
|
466 |
+
background: linear-gradient(180deg, #0067b3 0%, #0072C6 100%);
|
467 |
+
}
|
468 |
+
.btn-cancel-chat{
|
469 |
+
background: linear-gradient(180deg, #db2020 0%, #c50d00 100%);
|
470 |
+
}
|
471 |
+
.btn-cancel-chat:hover{
|
472 |
+
background: #ff3434;
|
473 |
+
}
|
474 |
+
#overflow-chat::-webkit-scrollbar {
|
475 |
+
width: 8px;
|
476 |
+
}
|
477 |
+
#overflow-chat::-webkit-scrollbar-thumb {
|
478 |
+
background-color: #5947b3;
|
479 |
+
border-radius: 5px;
|
480 |
+
}
|
481 |
+
#overflow-chat::-webkit-scrollbar-thumb:hover {
|
482 |
+
background-color: #362855;
|
483 |
+
}
|
484 |
+
#overflow-chat::-webkit-scrollbar-track {
|
485 |
+
background-color: #eee;
|
486 |
+
}
|
487 |
+
#overflow-chat::-webkit-scrollbar-track:hover {
|
488 |
+
background-color: #ddd;
|
489 |
+
}
|
490 |
+
#toast-container>div{
|
491 |
+
opacity: 1;
|
492 |
+
}
|
493 |
+
#toast-container>div:hover{
|
494 |
+
box-shadow: none !important;
|
495 |
+
}
|
496 |
+
.toast{
|
497 |
+
text-align: center;
|
498 |
+
font-size: 16px;
|
499 |
+
font-weight: bold;
|
500 |
+
}
|
501 |
+
.copy-code, .copy-text{
|
502 |
+
position: absolute;
|
503 |
+
top: 6px;
|
504 |
+
font-size: 14px;
|
505 |
+
color: #0478cd;
|
506 |
+
display: flex;
|
507 |
+
align-items: center;
|
508 |
+
justify-content: center;
|
509 |
+
right: 5px;
|
510 |
+
padding: 0.3em 0.6em;
|
511 |
+
gap: 0 5px;
|
512 |
+
}
|
513 |
+
.copy-code{
|
514 |
+
background: transparent;
|
515 |
+
color: #FFF;
|
516 |
+
border: 1px solid #EAEAEA;
|
517 |
+
border-radius: 7px;
|
518 |
+
}
|
519 |
+
.copy-text{
|
520 |
+
background: transparent;
|
521 |
+
top: auto;
|
522 |
+
bottom: 13px;
|
523 |
+
border: 1px solid #2196f3;
|
524 |
+
font-size: 14px;
|
525 |
+
color: #0478cd;
|
526 |
+
border-radius: 8px;
|
527 |
+
right: 11px;
|
528 |
+
}
|
529 |
+
.copy-text:hover{
|
530 |
+
background: #017cb4;
|
531 |
+
}
|
532 |
+
.copy-text:hover{
|
533 |
+
background: transparent;
|
534 |
+
cursor: pointer;
|
535 |
+
color: #0478cd;
|
536 |
+
}
|
537 |
+
.no-white-space{
|
538 |
+
white-space: inherit;
|
539 |
+
}
|
540 |
+
.chat-audio{
|
541 |
+
position: absolute;
|
542 |
+
right: 15px;
|
543 |
+
top: 16px;
|
544 |
+
}
|
545 |
+
.chat-audio img{
|
546 |
+
height: 24px;
|
547 |
+
}
|
548 |
+
.chat-audio img:hover{
|
549 |
+
cursor: pointer;
|
550 |
+
}
|
551 |
+
.copy-text{
|
552 |
+
display: none;
|
553 |
+
}
|
554 |
+
.message-container:hover .copy-text{
|
555 |
+
display: block;
|
556 |
+
}
|
557 |
+
.chat-response-highlight{
|
558 |
+
background: #03a9f4;
|
559 |
+
color: #FFF;
|
560 |
+
}
|
561 |
+
.no-white-space{
|
562 |
+
white-space: inherit;
|
563 |
+
}
|
564 |
+
.expire-img-message{
|
565 |
+
background: #2196f3;
|
566 |
+
padding: 7px;
|
567 |
+
border-radius: 7px;
|
568 |
+
margin-top: 1em;
|
569 |
+
font-size: 14px;
|
570 |
+
color: #fff;
|
571 |
+
}
|
572 |
+
|
573 |
+
#loading{
|
574 |
+
background: linear-gradient(180deg, #0C0D1B 0%, #121325 100%);
|
575 |
+
position: fixed;
|
576 |
+
z-index: 999;
|
577 |
+
width: 100%;
|
578 |
+
height: 100%;
|
579 |
+
top: 0;
|
580 |
+
left: 0;
|
581 |
+
right: 0;
|
582 |
+
bottom: 0;
|
583 |
+
align-items: center;
|
584 |
+
justify-content: center
|
585 |
+
}
|
586 |
+
#loading svg{
|
587 |
+
transform: scale(3);
|
588 |
+
position: absolute;
|
589 |
+
top: 0;
|
590 |
+
right: 0;
|
591 |
+
bottom: 0;
|
592 |
+
left: 0;
|
593 |
+
margin: 0 auto;
|
594 |
+
height: 100%;
|
595 |
+
}
|
596 |
+
.wrapper-name-and-chat{
|
597 |
+
width: 100%;
|
598 |
+
}
|
599 |
+
.wrapper-image-ia{
|
600 |
+
position: relative;
|
601 |
+
border: 1px solid #EAEAEA;
|
602 |
+
padding: 1em;
|
603 |
+
border-radius: 8px;
|
604 |
+
display: grid;
|
605 |
+
grid-template-columns: repeat(2, 1fr);
|
606 |
+
grid-gap: 10px;
|
607 |
+
min-height: 300px;
|
608 |
+
}
|
609 |
+
|
610 |
+
.image-ia{
|
611 |
+
background-color: #e9e9e9;
|
612 |
+
border-radius: 5px;
|
613 |
+
overflow: hidden;
|
614 |
+
height: auto;
|
615 |
+
display: flex;
|
616 |
+
align-items: center;
|
617 |
+
justify-content: center;
|
618 |
+
}
|
619 |
+
.image-ia img{
|
620 |
+
object-fit: cover;
|
621 |
+
width: 100%;
|
622 |
+
}
|
623 |
+
|
624 |
+
/* width */
|
625 |
+
.wrapper-image-ia::-webkit-scrollbar {
|
626 |
+
width: 10px;
|
627 |
+
}
|
628 |
+
|
629 |
+
/* Track */
|
630 |
+
.wrapper-image-ia::-webkit-scrollbar-track {
|
631 |
+
background: #f1f1f1;
|
632 |
+
}
|
633 |
+
|
634 |
+
/* Handle */
|
635 |
+
.wrapper-image-ia::-webkit-scrollbar-thumb {
|
636 |
+
background: #888;
|
637 |
+
}
|
638 |
+
|
639 |
+
/* Handle on hover */
|
640 |
+
.wrapper-image-ia::-webkit-scrollbar-thumb:hover {
|
641 |
+
background: #555;
|
642 |
+
}
|
643 |
+
.ia-image-prompt-label{
|
644 |
+
padding: 5px 10px;
|
645 |
+
border-radius: 6px;
|
646 |
+
font-size: 16px;
|
647 |
+
color: #2196f3;
|
648 |
+
display: block;
|
649 |
+
border: 1px solid #2196f3;
|
650 |
+
margin-top: 6px;
|
651 |
+
}
|
652 |
+
.wrapper-image-ia svg{
|
653 |
+
position: absolute;
|
654 |
+
top: 0;
|
655 |
+
bottom: 0;
|
656 |
+
left: 0;
|
657 |
+
right: 0;
|
658 |
+
margin: auto;
|
659 |
+
transform: scale(3.5);
|
660 |
+
}
|
661 |
+
#load-character{
|
662 |
+
padding-bottom: 4em;
|
663 |
+
}
|
664 |
+
code{
|
665 |
+
white-space: pre-wrap;
|
666 |
+
border-radius: 8px;
|
667 |
+
}
|
668 |
+
pre{
|
669 |
+
border-radius: 8px;
|
670 |
+
border: 2px solid #9c27b0;
|
671 |
+
color: #d5d5d5;
|
672 |
+
background: #1d2021;
|
673 |
+
margin: 0;
|
674 |
+
position: relative;
|
675 |
+
padding: 0.5em 1em;
|
676 |
+
}
|
677 |
+
.dropdown-item{
|
678 |
+
display: flex;
|
679 |
+
align-items: center;
|
680 |
+
padding: 10px;
|
681 |
+
gap: 0 5px;
|
682 |
+
}
|
683 |
+
.thread-user .message-container::before{
|
684 |
+
display: none;
|
685 |
+
}
|
686 |
+
footer{
|
687 |
+
background: linear-gradient(180deg, #1995F0 0%, #0072C6 100%);
|
688 |
+
padding: 20px 0;
|
689 |
+
border-top: 1px solid #249ef7;
|
690 |
+
}
|
691 |
+
footer img:hover{
|
692 |
+
cursor: pointer;
|
693 |
+
}
|
694 |
+
.cursor {
|
695 |
+
display: inline-block;
|
696 |
+
width: 0.2em;
|
697 |
+
height: 1.2em;
|
698 |
+
margin-left: 0.2em;
|
699 |
+
background-color: #323232;
|
700 |
+
animation: blink 0.5s infinite;
|
701 |
+
}
|
702 |
+
|
703 |
+
@keyframes blink {
|
704 |
+
0% {
|
705 |
+
opacity: 0;
|
706 |
+
}
|
707 |
+
50% {
|
708 |
+
opacity: 1;
|
709 |
+
}
|
710 |
+
100% {
|
711 |
+
opacity: 0;
|
712 |
+
}
|
713 |
+
}
|
714 |
+
#microphone-button{
|
715 |
+
height: 60px;
|
716 |
+
}
|
717 |
+
#microphone-button:hover{
|
718 |
+
cursor: pointer;
|
719 |
+
}
|
720 |
+
#body-frame{
|
721 |
+
box-shadow: 0px 4px 30px rgb(255 137 145 / 30%);
|
722 |
+
margin-bottom: 4em;
|
723 |
+
padding: 0;
|
724 |
+
margin-top: -6em;
|
725 |
+
z-index: 1;
|
726 |
+
position: relative;
|
727 |
+
overflow: hidden;
|
728 |
+
background: #FFFFFF;
|
729 |
+
padding: 5px;
|
730 |
+
border-radius: 10px;
|
731 |
+
}
|
732 |
+
.select-option-title{
|
733 |
+
color: #FFFFFF;
|
734 |
+
font-size: 24px;
|
735 |
+
padding: 2em 0 1em 0;
|
736 |
+
}
|
737 |
+
.cards-options{
|
738 |
+
display: flex;
|
739 |
+
align-items: center;
|
740 |
+
justify-content: center;
|
741 |
+
}
|
742 |
+
.card-option{
|
743 |
+
background: #ffffff;
|
744 |
+
border-radius: 8px;
|
745 |
+
width: 100%;
|
746 |
+
max-width: 210px;
|
747 |
+
min-width: 190px;
|
748 |
+
padding: 1.2em 0.6em;
|
749 |
+
min-height: 155px;
|
750 |
+
transition: box-shadow 0.3s ease-in-out;
|
751 |
+
}
|
752 |
+
.card-option:hover{
|
753 |
+
box-shadow: 3px 3px 19px #00008B;
|
754 |
+
cursor: pointer;
|
755 |
+
}
|
756 |
+
.card-option-title h5{
|
757 |
+
margin-bottom: 0;
|
758 |
+
font-size: 16px;
|
759 |
+
margin-top: 14px;
|
760 |
+
display: flex;
|
761 |
+
align-items: flex-start;
|
762 |
+
justify-content: center;
|
763 |
+
padding: 0 10px;
|
764 |
+
font-weight: 500;
|
765 |
+
}
|
766 |
+
.wrapper-cards-option{
|
767 |
+
display: grid;
|
768 |
+
grid-template-columns: repeat(3, 1fr);
|
769 |
+
justify-content: center;
|
770 |
+
text-align: center;
|
771 |
+
justify-items: center;
|
772 |
+
align-items: center;
|
773 |
+
max-width: 830px;
|
774 |
+
margin:0 auto;
|
775 |
+
gap:35px;
|
776 |
+
}
|
777 |
+
.card-tarot-select{
|
778 |
+
position: absolute;
|
779 |
+
left: 0;
|
780 |
+
top: 0;
|
781 |
+
right: 0;
|
782 |
+
bottom: 0;
|
783 |
+
display: flex;
|
784 |
+
padding: 2em 5em;
|
785 |
+
align-items: center;
|
786 |
+
justify-content: center;
|
787 |
+
z-index: 2;
|
788 |
+
flex-direction: column;
|
789 |
+
overflow: auto;
|
790 |
+
}
|
791 |
+
.select-cards-label{
|
792 |
+
background: #9c27b0;
|
793 |
+
color: #FFF;
|
794 |
+
font-size: 1.2em;
|
795 |
+
padding: 0.4em 1.4em;
|
796 |
+
border-radius: 50px;
|
797 |
+
z-index: 23;
|
798 |
+
display: inline-block;
|
799 |
+
margin-bottom: 12px;
|
800 |
+
margin-top: -10px;
|
801 |
+
}
|
802 |
+
|
803 |
+
.tarot-grid-container {
|
804 |
+
display: flex;
|
805 |
+
flex-wrap: wrap;
|
806 |
+
justify-content: center;
|
807 |
+
align-items: center;
|
808 |
+
gap: 20px;
|
809 |
+
width: 100%;
|
810 |
+
height: 100%;
|
811 |
+
}
|
812 |
+
|
813 |
+
.tarot-grid-item {
|
814 |
+
width: 100px;
|
815 |
+
height: 150px;
|
816 |
+
}
|
817 |
+
|
818 |
+
.tarot-card{
|
819 |
+
position: relative;
|
820 |
+
width: 100%;
|
821 |
+
height: 163px;
|
822 |
+
transition: transform 0.8s;
|
823 |
+
transform-style: preserve-3d;
|
824 |
+
transform: rotateY(0deg);
|
825 |
+
}
|
826 |
+
|
827 |
+
.tarot-card.flipped {
|
828 |
+
transform: rotateY(180deg);
|
829 |
+
}
|
830 |
+
|
831 |
+
.tarot-front, .tarot-back {
|
832 |
+
position: absolute;
|
833 |
+
width: 100%;
|
834 |
+
height: 100%;
|
835 |
+
backface-visibility: hidden;
|
836 |
+
}
|
837 |
+
|
838 |
+
.tarot-front{
|
839 |
+
transform: rotateY(180deg);
|
840 |
+
}
|
841 |
+
|
842 |
+
.tarot-back{
|
843 |
+
transform: rotateY(0deg);
|
844 |
+
}
|
845 |
+
.tarot-grid-item img{
|
846 |
+
width: 100%;
|
847 |
+
border-radius: 4px;
|
848 |
+
overflow: hidden;
|
849 |
+
border: 1px solid #ad27e3;
|
850 |
+
}
|
851 |
+
.tarot-zoom{
|
852 |
+
width: 260px;
|
853 |
+
height: inherit;
|
854 |
+
}
|
855 |
+
.tarot-cards-display{
|
856 |
+
gap: 10px;
|
857 |
+
align-items: center;
|
858 |
+
justify-content: flex-start;
|
859 |
+
padding: 8px;
|
860 |
+
display: none;
|
861 |
+
}
|
862 |
+
.tarot-cards-display .tarot-grid-item{
|
863 |
+
height: 170px;
|
864 |
+
}
|
865 |
+
.tarot-card-removed{
|
866 |
+
opacity: 0.4;
|
867 |
+
}
|
868 |
+
/* Defina a posição da seção "wheel" */
|
869 |
+
.wheel {
|
870 |
+
position: absolute;
|
871 |
+
overflow: hidden;
|
872 |
+
top: 0;
|
873 |
+
z-index: 0;
|
874 |
+
opacity: 0.3;
|
875 |
+
pointer-events: none;
|
876 |
+
display: flex;
|
877 |
+
align-items: center;
|
878 |
+
justify-content: center;
|
879 |
+
left: 125px;
|
880 |
+
}
|
881 |
+
|
882 |
+
/* Defina a animação da roda */
|
883 |
+
.wheel-img {
|
884 |
+
animation-name: rotate;
|
885 |
+
animation-duration: 100s;
|
886 |
+
animation-iteration-count: infinite;
|
887 |
+
animation-timing-function: linear;
|
888 |
+
width: 100%;
|
889 |
+
height: 100%;
|
890 |
+
}
|
891 |
+
|
892 |
+
/* Defina a rotação da roda */
|
893 |
+
@keyframes rotate {
|
894 |
+
from {
|
895 |
+
transform: rotate(0deg);
|
896 |
+
}
|
897 |
+
to {
|
898 |
+
transform: rotate(360deg);
|
899 |
+
}
|
900 |
+
}
|
901 |
+
.hideOnMobile{
|
902 |
+
display: none !important;
|
903 |
+
}
|
904 |
+
.body-frame-chat{
|
905 |
+
margin-top: 1em !important;
|
906 |
+
}
|
907 |
+
|
908 |
+
/*/ Small devices (landscape phones, 576px and up)/*/
|
909 |
+
@media (max-width: 767px){
|
910 |
+
.custom-body{
|
911 |
+
|
912 |
+
}
|
913 |
+
.character-typing {
|
914 |
+
top: -42px;
|
915 |
+
right: auto;
|
916 |
+
margin: initial;
|
917 |
+
}
|
918 |
+
.character-typing div{
|
919 |
+
font-size: 14px;
|
920 |
+
padding: 4px 16px;
|
921 |
+
}
|
922 |
+
#microphone-button{
|
923 |
+
height: 45px;
|
924 |
+
}
|
925 |
+
.ai-chat-top-name h4{
|
926 |
+
font-size: 16px;
|
927 |
+
}
|
928 |
+
.ai-chat-top-job{
|
929 |
+
display: -webkit-box;
|
930 |
+
-webkit-line-clamp: 2;
|
931 |
+
-webkit-box-orient: vertical;
|
932 |
+
overflow: hidden;
|
933 |
+
}
|
934 |
+
.ai-contacts-top{
|
935 |
+
display: none;
|
936 |
+
}
|
937 |
+
.ai-contacts-top{
|
938 |
+
border:0;
|
939 |
+
display: none;
|
940 |
+
}
|
941 |
+
footer{
|
942 |
+
display: none;
|
943 |
+
}
|
944 |
+
.toggle_employees_list, .ai-contacts-scroll{
|
945 |
+
display: none;
|
946 |
+
}
|
947 |
+
.icons-options img {
|
948 |
+
padding: 0 2px;
|
949 |
+
}
|
950 |
+
|
951 |
+
.ai-contacts-top, .ai-chat-top{
|
952 |
+
min-height: auto;
|
953 |
+
}
|
954 |
+
#overflow-chat{
|
955 |
+
padding-right: 10px;
|
956 |
+
padding-left: 10px;
|
957 |
+
height: auto;
|
958 |
+
padding-bottom: 4em;
|
959 |
+
padding-top: 6em;
|
960 |
+
}
|
961 |
+
.copy-text{
|
962 |
+
display: block;
|
963 |
+
}
|
964 |
+
.user-image {
|
965 |
+
width: 35px;
|
966 |
+
min-width: 35px;
|
967 |
+
height: 35px;
|
968 |
+
min-height: 35px;
|
969 |
+
border-radius: 50%;
|
970 |
+
overflow: hidden;
|
971 |
+
position: absolute;
|
972 |
+
top: -15px;
|
973 |
+
z-index: 1;
|
974 |
+
left: -9px;
|
975 |
+
}
|
976 |
+
.thread-ai .message-container{
|
977 |
+
margin-right: 0;
|
978 |
+
}
|
979 |
+
.message-area-bottom{
|
980 |
+
position: fixed;
|
981 |
+
bottom: 0;
|
982 |
+
width: 100%;
|
983 |
+
background: #FFF;
|
984 |
+
height: 70px;
|
985 |
+
z-index: 2;
|
986 |
+
right: 0;
|
987 |
+
left: 0;
|
988 |
+
}
|
989 |
+
.chat-input textarea{
|
990 |
+
padding:5px;
|
991 |
+
font-size: 16px;
|
992 |
+
height: 46px;
|
993 |
+
border-radius: 3px;
|
994 |
+
border: 1px solid #bfbfbf
|
995 |
+
}
|
996 |
+
.chat-input{
|
997 |
+
gap:10px;
|
998 |
+
}
|
999 |
+
.btn-send-chat, .btn-cancel-chat{
|
1000 |
+
padding: 0.6em 1em;
|
1001 |
+
font-size: 16px;
|
1002 |
+
border-radius: 3px;
|
1003 |
+
}
|
1004 |
+
|
1005 |
+
.btn-send-chat span, .btn-cancel-chat span{
|
1006 |
+
display: none;
|
1007 |
+
}
|
1008 |
+
.header-min{
|
1009 |
+
display: none;
|
1010 |
+
}
|
1011 |
+
.col-contacts-border{
|
1012 |
+
display: none;
|
1013 |
+
}
|
1014 |
+
.ai-chat-top-image{
|
1015 |
+
min-width: 45px;
|
1016 |
+
width: 45px;
|
1017 |
+
height: 45px;
|
1018 |
+
}
|
1019 |
+
.ai-chat-top{
|
1020 |
+
top:0;
|
1021 |
+
padding: 0.5em;
|
1022 |
+
position: fixed;
|
1023 |
+
z-index: 2;
|
1024 |
+
background: #673ab7;
|
1025 |
+
left: 0;
|
1026 |
+
right: 0;
|
1027 |
+
border-radius: 0;
|
1028 |
+
width: 100%;
|
1029 |
+
}
|
1030 |
+
.card-ai-bottom {
|
1031 |
+
padding: 1em;
|
1032 |
+
display: flex;
|
1033 |
+
flex-direction: column;
|
1034 |
+
align-items: center;
|
1035 |
+
}
|
1036 |
+
#hero .btn{
|
1037 |
+
font-size: initial;
|
1038 |
+
}
|
1039 |
+
.card-ai-image img{
|
1040 |
+
max-height: initial;
|
1041 |
+
}
|
1042 |
+
.card-ai .btn{
|
1043 |
+
padding: 8px;
|
1044 |
+
}
|
1045 |
+
#hero p{
|
1046 |
+
padding-right: 0;
|
1047 |
+
font-size: inherit;
|
1048 |
+
}
|
1049 |
+
.container-fluid-md{
|
1050 |
+
max-width: 95%;
|
1051 |
+
}
|
1052 |
+
#hero{
|
1053 |
+
background-repeat: no-repeat;
|
1054 |
+
background-size: inherit;
|
1055 |
+
padding-top: 8em;
|
1056 |
+
text-align: center;
|
1057 |
+
height: auto;
|
1058 |
+
}
|
1059 |
+
.justify-content-sm-center{
|
1060 |
+
justify-content: center!important;
|
1061 |
+
}
|
1062 |
+
.header-slogan{
|
1063 |
+
margin-top: 10px;
|
1064 |
+
}
|
1065 |
+
.container{
|
1066 |
+
max-width: 100%;
|
1067 |
+
}
|
1068 |
+
header{
|
1069 |
+
position: absolute;
|
1070 |
+
width: 100%;
|
1071 |
+
display: flex;
|
1072 |
+
align-items: center;
|
1073 |
+
justify-content: center;
|
1074 |
+
text-align: center;
|
1075 |
+
background: transparent;
|
1076 |
+
}
|
1077 |
+
.wheel{
|
1078 |
+
left: 0;
|
1079 |
+
}
|
1080 |
+
.card-option{
|
1081 |
+
max-width: 190px;
|
1082 |
+
}
|
1083 |
+
#body-frame{
|
1084 |
+
padding: 5px;
|
1085 |
+
margin-top: 0;
|
1086 |
+
}
|
1087 |
+
.select-cards-label{
|
1088 |
+
margin-top: 0;
|
1089 |
+
font-size: 1em;
|
1090 |
+
}
|
1091 |
+
.tarot-grid-item {
|
1092 |
+
width: 65px;
|
1093 |
+
height: 100px !important;
|
1094 |
+
}
|
1095 |
+
#logo{
|
1096 |
+
max-width: 90%;
|
1097 |
+
}
|
1098 |
+
.chat-frame{
|
1099 |
+
height: auto;
|
1100 |
+
}
|
1101 |
+
.chat-frame-talk{
|
1102 |
+
background: transparent !important;
|
1103 |
+
height: 100% !important;
|
1104 |
+
}
|
1105 |
+
.wrapper-cards-option{
|
1106 |
+
max-width: 100%;
|
1107 |
+
grid-template-columns: repeat(2, 1fr);
|
1108 |
+
gap:20px;
|
1109 |
+
}
|
1110 |
+
.select-option-title{
|
1111 |
+
padding: 1em;
|
1112 |
+
}
|
1113 |
+
.card-option {
|
1114 |
+
width: 140px;
|
1115 |
+
min-width: inherit;
|
1116 |
+
}
|
1117 |
+
.card-option-img img{
|
1118 |
+
height: 100px;
|
1119 |
+
}
|
1120 |
+
.card-option-title h5{
|
1121 |
+
line-height: 1.3;
|
1122 |
+
font-size: 14px;
|
1123 |
+
}
|
1124 |
+
.body-frame-chat{
|
1125 |
+
padding: 0px !important;
|
1126 |
+
background: transparent !important;
|
1127 |
+
box-shadow: none !important;
|
1128 |
+
width: 100% !important;
|
1129 |
+
max-width: 100% !important;
|
1130 |
+
}
|
1131 |
+
.card-tarot-select{
|
1132 |
+
position: inherit;
|
1133 |
+
padding: 0.5em;
|
1134 |
+
}
|
1135 |
+
.tarot-card{
|
1136 |
+
height: 100px;
|
1137 |
+
}
|
1138 |
+
.tarot-cards-display{
|
1139 |
+
margin-bottom: 1em;
|
1140 |
+
}
|
1141 |
+
#body-frame{
|
1142 |
+
padding: 5px;
|
1143 |
+
width: 90%;
|
1144 |
+
margin:0 auto;
|
1145 |
+
}
|
1146 |
+
.message-area-bottom .col{
|
1147 |
+
padding: 0 5px;
|
1148 |
+
}
|
1149 |
+
}
|
1150 |
+
|
1151 |
+
/*/ Medium devices (tablets, 768px and up)/*/
|
1152 |
+
@media (min-width: 768px) and (max-width: 991px){
|
1153 |
+
#overflow-chat{
|
1154 |
+
padding-right: 10px;
|
1155 |
+
padding-left: 10px;
|
1156 |
+
height: auto;
|
1157 |
+
padding-bottom: 4em;
|
1158 |
+
padding-top: 6em;
|
1159 |
+
}
|
1160 |
+
.ai-chat-top {
|
1161 |
+
top: 0;
|
1162 |
+
padding: 0.5em;
|
1163 |
+
position: fixed;
|
1164 |
+
z-index: 2;
|
1165 |
+
background: #673ab7;
|
1166 |
+
left: 0;
|
1167 |
+
right: 0;
|
1168 |
+
border-radius: 0;
|
1169 |
+
width: 100%;
|
1170 |
+
}
|
1171 |
+
.custom-body{
|
1172 |
+
background: url(../img/chat-background.svg) top center #550176;
|
1173 |
+
}
|
1174 |
+
#microphone-button{
|
1175 |
+
height: 45px;
|
1176 |
+
}
|
1177 |
+
.container{
|
1178 |
+
max-width: 95%;
|
1179 |
+
}
|
1180 |
+
.card-ai-image img{
|
1181 |
+
max-height: initial;
|
1182 |
+
}
|
1183 |
+
.card-ai .btn{
|
1184 |
+
padding: 8px;
|
1185 |
+
}
|
1186 |
+
#hero p{
|
1187 |
+
padding-right: 0;
|
1188 |
+
}
|
1189 |
+
#hero{
|
1190 |
+
background-repeat: no-repeat;
|
1191 |
+
background-size: initial;
|
1192 |
+
padding-top: 3em;
|
1193 |
+
text-align: center;
|
1194 |
+
height: auto;
|
1195 |
+
}
|
1196 |
+
#chat-background .container{
|
1197 |
+
max-width: 100%;
|
1198 |
+
}
|
1199 |
+
.copy-text{
|
1200 |
+
display: block;
|
1201 |
+
}
|
1202 |
+
header{
|
1203 |
+
position: inherit;
|
1204 |
+
display: flex;
|
1205 |
+
align-items: center;
|
1206 |
+
justify-content: center;
|
1207 |
+
text-align: center;
|
1208 |
+
}
|
1209 |
+
.wheel{
|
1210 |
+
left: 0;
|
1211 |
+
}
|
1212 |
+
.card-option{
|
1213 |
+
max-width: 190px;
|
1214 |
+
}
|
1215 |
+
#body-frame{
|
1216 |
+
padding: 5px;
|
1217 |
+
width: 95%;
|
1218 |
+
margin:0 auto;
|
1219 |
+
}
|
1220 |
+
.body-frame-chat{
|
1221 |
+
width: 100% !important;
|
1222 |
+
margin-top: 0 !important;
|
1223 |
+
box-shadow: none !important;
|
1224 |
+
}
|
1225 |
+
.chat-frame-talk{
|
1226 |
+
background: transparent;
|
1227 |
+
height: 100% !important;
|
1228 |
+
}
|
1229 |
+
.select-cards-label{
|
1230 |
+
margin-top: 0;
|
1231 |
+
font-size: 1em;
|
1232 |
+
}
|
1233 |
+
.card-tarot-select{
|
1234 |
+
padding: 2em 1em;
|
1235 |
+
position: inherit;
|
1236 |
+
overflow: hidden;
|
1237 |
+
}
|
1238 |
+
.tarot-grid-item {
|
1239 |
+
width: 80px;
|
1240 |
+
height: 125px;
|
1241 |
+
}
|
1242 |
+
.body-frame-chat{
|
1243 |
+
padding: 0px !important;
|
1244 |
+
background: transparent !important;
|
1245 |
+
}
|
1246 |
+
|
1247 |
+
}
|
1248 |
+
|
1249 |
+
|
1250 |
+
@media (min-width: 992px) {
|
1251 |
+
section {
|
1252 |
+
background-size: cover;
|
1253 |
+
max-width: 1500px;
|
1254 |
+
margin: 0 auto;
|
1255 |
+
}
|
1256 |
+
}
|
1257 |
+
|
1258 |
+
/*/Large devices (desktops, 992px and up)/*/
|
1259 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
1260 |
+
.robot {
|
1261 |
+
height: 272px;
|
1262 |
+
margin-right: 146px;
|
1263 |
+
margin-bottom: 167px;
|
1264 |
+
}
|
1265 |
+
#hero p{
|
1266 |
+
padding-right: 4.5em;
|
1267 |
+
}
|
1268 |
+
.ai-contacts-job{
|
1269 |
+
-webkit-line-clamp: 1;
|
1270 |
+
}
|
1271 |
+
.card-ai-image{
|
1272 |
+
min-height: 230px;
|
1273 |
+
}
|
1274 |
+
#microphone-button{
|
1275 |
+
height: 45px;
|
1276 |
+
}
|
1277 |
+
#hero h1{
|
1278 |
+
font-size: 2em;
|
1279 |
+
}
|
1280 |
+
.wheel{
|
1281 |
+
left: 0;
|
1282 |
+
}
|
1283 |
+
.card-tarot-select{
|
1284 |
+
padding: 2em 1em;
|
1285 |
+
}
|
1286 |
+
.tarot-grid-item{
|
1287 |
+
width: 90px;
|
1288 |
+
}
|
1289 |
+
.tarot-grid-container{
|
1290 |
+
gap: 0 20px;
|
1291 |
+
}
|
1292 |
+
}
|
1293 |
+
|
1294 |
+
/*/ X-Large devices (large desktops, 1200px and up)/*/
|
1295 |
+
@media (min-width: 1200px) and (max-width: 1399px){
|
1296 |
+
.robot {
|
1297 |
+
height: 272px;
|
1298 |
+
margin-right: 100px;
|
1299 |
+
margin-bottom: 167px;
|
1300 |
+
margin-top: 30px;
|
1301 |
+
}
|
1302 |
+
.card-ai-image{
|
1303 |
+
min-height: 280px;
|
1304 |
+
}
|
1305 |
+
|
1306 |
+
}
|
1307 |
+
|
1308 |
+
/*/// XX-Large devices (larger desktops, 1400px and up)/*/
|
1309 |
+
@media (min-width: 1400px) {
|
1310 |
+
.robot {
|
1311 |
+
height: 299px;
|
1312 |
+
margin-right: 250px;
|
1313 |
+
margin-bottom: 122px;
|
1314 |
+
margin-top: 35px;
|
1315 |
+
}
|
1316 |
+
.card-ai-image{
|
1317 |
+
min-height: 300px;
|
1318 |
+
}
|
1319 |
+
.robot{
|
1320 |
+
right: 5%;
|
1321 |
+
}
|
1322 |
+
}
|
static/style/bootstrap.min.css
ADDED
The diff for this file is too large to render.
See raw diff
|
|
static/style/highlight.dark.min.css
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
Theme: Helios
|
3 |
+
Author: Alex Meyer (https://github.com/reyemxela)
|
4 |
+
License: ~ MIT (or more permissive) [via base16-schemes-source]
|
5 |
+
Maintainer: @highlightjs/core-team
|
6 |
+
Version: 2021.09.0
|
7 |
+
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#d5d5d5;background:#1d2021}.hljs ::selection,.hljs::selection{background-color:#53585b;color:#d5d5d5}.hljs-comment{color:#6f7579}.hljs-tag{color:#cdcdcd}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d5d5d5}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#d72638}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#eb8413}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f19d1a}.hljs-strong{font-weight:700;color:#f19d1a}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#88b92d}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#1ba595}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#1e8bac}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#be4264}.hljs-emphasis{color:#be4264;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c85e0d}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700}
|